أنواع البرمجيات الخبيثة — أساسيات الأمن السيبراني
البرمجيات الخبيثة (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)اختبر فهمك