تهدیدهای پیشرفته در لاگ فورتیگیت
در هفتههای گذشته با چهار حمله رایج (Brute Force، Port Scan، DDoS و Data Exfiltration) آشنا شدیم. این هفته به سراغ تکنیکهای پیشرفتهتری میرویم که مهاجمان حرفهای از آنها استفاده میکنند. تشخیص این تهدیدها نیاز به دقت بیشتری دارد، اما همچنان با فیلدهای موجود در لاگ فورتیگیت قابل انجام است.
تعریف: در این حمله، مهاجم حجم بالایی از بستههای ICMP (پینگ) را به سمت قربانی ارسال میکند تا پهنای باند و منابع سیستم را مصرف کند. این حمله میتواند ساده یا توزیعشده باشد.
نشانه در فورتیگیت: تعداد بسیار زیاد رویدادهای service=ICMP از یک IP مبدأ.
کوئری کلیدی:
index=firewall sourcetype=fortigate service=ICMP | stats count by srcip | sort - count | head 20
تعریف: بدافزار پس از نفوذ، برای دریافت فرمان یا ارسال اطلاعات، بهصورت منظم با سرور فرمان و کنترل (C2) ارتباط برقرار میکند. این ارتباطها معمولاً کوچک، دورهای و به یک IP خارجی خاص هستند.
نشانه در فورتیگیت: اتصالهای مکرر یک IP داخلی به یک IP خارجی ثابت با حجم کم (مثلاً هر ۵ دقیقه یکبار).
کوئری کلیدی:
index=firewall sourcetype=fortigate | eval total_bytes = sentbyte + rcvdbyte | stats count, avg(total_bytes) as avg_bytes by srcip, dstip | where count > 20 AND avg_bytes < 500 | sort - count
تعریف: مهاجم پس از آلودهکردن یک سیستم، سعی میکند به سیستمهای دیگر در شبکه داخلی نفوذ کند. این کار اغلب از طریق SMB (پورت 445) یا RDP (پورت 3389) انجام میشود.
نشانه در فورتیگیت: اتصالهای زیاد از یک IP داخلی به چندین IP داخلی دیگر روی پورتهای SMB یا RDP.
کوئری کلیدی:
index=firewall sourcetype=fortigate (dstport=445 OR dstport=3389) | stats dc(dstip) as dest_count by srcip | where dest_count > 5 | sort - dest_count
تعریف: مهاجم با استفاده از پرسمانهای DNS، داده را به بیرون منتقل میکند. این روش معمولاً از سرویسهای DNS عمومی استفاده میکند و در لاگ فورتیگیت بهصورت تعداد زیاد DNS query دیده میشود.
نشانه در فورتیگیت: تعداد بالای اتصالهای DNS (پورت 53) از یک IP داخلی به یک دامنه یا IP خارجی خاص.
کوئری کلیدی:
index=firewall sourcetype=fortigate service=DNS | stats count by srcip, dstip | where count > 50 | sort - count
| حمله | ویژگی | کوئری کوتاه |
|---|---|---|
| 💣 ICMP Flood | تعداد بالای service=ICMP از یک IP | stats count by srcip | where count > 100 |
| 🕵️ C2 Beaconing | اتصالات مکرر کمحجم به یک مقصد | stats count, avg(total_bytes) by srcip, dstip |
| 🔀 Lateral Movement | اتصال یک IP به چندین مقصد داخلی روی 445/3389 | stats dc(dstip) by srcip | where dest_count > 5 |
| 🌐 DNS Tunneling | تعداد بالای service=DNS به یک مقصد | stats count by srcip, dstip | where count > 50 |
یک کوئری بنویسید که روند زمانی اتصالات یک IP داخلی به یک IP خارجی ثابت را نشان دهد. چرا این نمودار به تشخیص C2 کمک میکند؟
کوئری زیر را طوری تغییر دهید که فقط IPهایی را نشان دهد که بیش از ۱۰ مقصد داخلی مختلف را روی پورت 445 دیدهاند:
index=firewall sourcetype=fortigate dstport=445 | stats dc(dstip) as dest_count by srcip
چرا تشخیص DNS Tunneling سختتر از Data Exfiltration ساده است؟ چه فیلدهای اضافی به شما کمک میکند؟