Detection & Monitoring — تشوف ولا بتتفرّج
Detection Engineering و Sigma و Suricata و Honeypots
بنراقب ليه أصلاً؟ ومين بيتفرّج؟
- بس يا حضرتك إحنا عندنا SIEM وعندنا EDR وعندنا كل حاجة!
تمام يا نجم. طب لو الـ adversary دخل ومحدش حسّ، يبقى انت بتراقب فعلاً؟ ولا انت بتتفرّج على dashboard لأنه شكله حلو؟
هندسة الكشف — Detection Engineering
هرم Bianco (Pyramid of Pain) — كل ما طلعنا فوق، كل ما وجعنا الـ adversary أكتر:
- Hash values — بيتغيّروا بضغطة زرار. مفيش وجع.
- IP addresses — VPS جديد بـ 5 دولار. سهل.
- Domain names — محتاج registrar وسمعة. بيوجع شوية.
- Network/Host artifacts — بيوجع.
- Tools — لو منعت Cobalt Strike beacon signature، الـ adversary لازم يكتب tool جديد.
- TTPs — أصعب حاجة يغيّرها. السلوك نفسه. هنا الكشف بيوجع. هنا بنركّز.
الـ junior بيكتب IoCs. الـ senior بيكتب behavioral rules.
مصادر الـ logs اللي مفيش غنى عنها
SIEM — مركز التحليل
الـ SIEM بيجمع كل الـ logs، بيطبّق rules، وبيرفع alerts. ده الكلام النظري. الواقع إن 60% من الـ SIEM deployments عندنا في المنطقة بتشتغل بـ default rules ومحدش بيـ tune-هم. اللي بيحصل فعلياً: alert fatigue، الـ analyst بيقفل كل حاجة بـ "false positive"، والـ adversary بيعدّي.
- مجاني/open source: Wazuh, ELK + Elastic Security, OpenSearch, Graylog, Security Onion.
- تجاري: Splunk, Microsoft Sentinel, Chronicle, QRadar, Sumo Logic.
قواعد كشف بـ Sigma (الـ format الموحّد)
title: SSH Multiple Failed Logins
logsource: { product: linux, service: auth }
detection:
fail:
process_name: 'sshd'
msg|contains: 'Failed password'
timeframe: 5m
condition: fail | count() by src_ip > 10
level: high
tags: [attack.credential_access, attack.t1110]title: AWS Access Key Created for Another User
logsource: { product: aws, service: cloudtrail }
detection:
sel:
eventName: 'CreateAccessKey'
requestParameters.userName|cidr|not: '{{ caller_user }}'
condition: sel
level: criticalEDR / XDR على نقاط النهاية
- CrowdStrike Falcon, SentinelOne, Microsoft Defender for Endpoint, Wazuh agent + Sysmon.
- بيكشف: process injection, mimikatz, suspicious child processes (winword -> powershell).
- القاعدة الذهبية: كل alert لازم يكون عنده SOAR playbook بيشتغل عليه automatically. لو الـ analyst هو اللي بيـ triage يدوي كل حاجة، انت بتشتري وقت الـ adversary.
IDS / NDR على الشبكة
alert http any any -> $HOME_NET any (msg:"Log4Shell JNDI in HTTP header"; \
flow:to_server,established; content:"jndi:"; nocase; http_header; \
classtype:web-application-attack; sid:9000010; rev:1;)event dns_request(c, msg, query, qtype, qclass) {
if (|query| > 60 && /[a-f0-9]{40,}/ in query)
NOTICE([$note=DNS::Long_Encoded_Query, $msg=fmt("possible DNS exfil: %s", query)]);
}Honeypots و Honeytokens — فخاخ بتفضح اللي بيلمس
- Canarytokens.org — مجاني، بيولّد DNS / HTTP / DOC / AWS tokens في دقيقة.
- SSH server وهمي بـ cowrie — بيسجّل كل command الـ adversary بيجرّبه. بتعرف الـ TTPs بتاعته قبل ما يدخل عندك أصلاً.
- حساب AD اسمه svc_backup أو domain_admin_old — أي logon attempt = alert فوري. الـ adversary بيدوّر على الأسماء دي بالظبط.
- ملف passwords.xlsx مزيّف على file share — مع canary token جواه. اللي يفتحه، انت شوفته.
UEBA — تحليل سلوك المستخدم
الـ UEBA بيبني baseline لكل user. الـ admin اللي بيدخل عادةً من القاهرة الساعة 9 الصبح، فجأة ظاهر من فيتنام الساعة 3 الفجر بيحمّل 50MB من SharePoint؟ alert. حتى لو الـ password صح. حتى لو MFA عدّى. السلوك ده مش هو.
ده الفرق بين identity-based detection و password-based detection. الـ password ممكن يتسرق. السلوك أصعب يتقلّد.
Threat Hunting — اطلع دوّر بدل ما تستنّى
ما تستنّاش الـ alert. افترض إن في حد جوّه دلوقتي، ودوّر:
- الفرضية: "لو الـ adversary دخل بـ phishing، أكيد هيستخدم PowerShell encoded commands".
- الـ query في SIEM عن powershell.exe -enc * آخر 30 يوم.
- حلّل النتايج، وثّق الـ false positives، حوّل اللي بيظهر مرتين لـ Sigma rule دائم.
الخلاصة الناشفة
الـ detection مش tools. الـ tools موجودة عند الكل. الفرق:
- data نضيفة (Sysmon config صح، EDR على كل device، DNS logs بتتجمع).
- rules مكتوبة على TTPs مش على hashes.
- tuning أسبوعي عشان تقلّل الـ noise.
- SOAR بيـ enrich كل alert automatically — IP reputation, user context, host context.
- hunting أسبوعي بفرضية جديدة.
غير كده، انت ما بتراقبش. انت بتدفع licenses بس.