Kodax

أنواع البرمجيات الخبيثة — أساسيات الأمن السيبراني

البرمجيات الخبيثة (Malware)

أنواع Malware

🦠 Virus

ينتشر عبر الملفات ويحتاج تفعيل المستخدم.

🐛 Worm

ينتشر ذاتياً عبر الشبكات.

🏇 Trojan Horse

يتنكر كبرنامج مفيد.

🔒 Ransomware

يشفر الملفات ويطلب فدية.

👁️ Spyware

يتجسس على نشاط المستخدم.

⌨️ Keylogger

يسجل ضغطات لوحة المفاتيح.

🧟 Botnet

يحول الجهاز لـ "zombie" للتحكم عن بُعد.

كيف تحمي نفسك؟

- تحديث النظام والبرامج

- مكافح فيروسات محدث

- عدم فتح روابط مشبوهة

- النسخ الاحتياطي المنتظم

# محاكاة بسيطة لاكتشاف الأنماط المشبوهة
import hashlib
import os

class SimpleMalwareScanner:
    def __init__(self):
        # قائمة بسيطة من التواقيع المعروفة (MD5 hashes)
        self.known_signatures = {
            "44d88612fea8a8f36de82e1278abb02f": "EICAR Test File",
            "e99a18c428cb38d5f260853678922e03": "Suspicious Pattern 1",
        }
        
        # أنماط مشبوهة في الكود
        self.suspicious_patterns = [
            r"exec\s*\(",         # تنفيذ ديناميكي
            r"eval\s*\(",         # eval خطير
            r"subprocess",          # تشغيل processes
            r"os\.system",         # أوامر نظام
            r"socket\.",           # اتصالات شبكية
            r"base64\.decode",     # فك تشفير (قد يخفي كود)
            r"\\x[0-9a-fA-F]{2}", # Hex encoded
        ]
    
    def calculate_hash(self, filepath):
        """حساب MD5 hash للملف"""
        hasher = hashlib.md5()
        with open(filepath, 'rb') as f:
            for chunk in iter(lambda: f.read(4096), b''):
                hasher.update(chunk)
        return hasher.hexdigest()
    
    def scan_file(self, filepath):
        """فحص ملف واحد"""
        results = {
            "file": filepath,
            "threats": [],
            "is_safe": True
        }
        
        # فحص التوقيع
        file_hash = self.calculate_hash(filepath)
        if file_hash in self.known_signatures:
            results["threats"].append({
                "type": "Known Malware",
                "name": self.known_signatures[file_hash]
            })
            results["is_safe"] = False
        
        # فحص الأنماط (للملفات النصية)
        try:
            with open(filepath, 'r', encoding='utf-8') as f:
                content = f.read()
                for pattern in self.suspicious_patterns:
                    import re
                    if re.search(pattern, content):
                        results["threats"].append({
                            "type": "Suspicious Pattern",
                            "pattern": pattern
                        })
                        results["is_safe"] = False
        except:
            pass  # ملف binary
        
        return results

# مثال الاستخدام
scanner = SimpleMalwareScanner()
# result = scanner.scan_file("suspicious_file.py")
# print(result)
اختبر فهمك