لینوکس ۳۰۳؛ شب ۳۶: Snort؛ هشدار بساز تا بفهمی هشدار از کجا میآید
فهرست نوشته
هزار rule نصب کردهایم، اما نمیدانیم حسگر اصلاً ترافیک کتابخانه را میبیند یا نه. امشب با یک capture بیخطر و یک rule کوچک، زنجیرهٔ مشاهده تا هشدار را آزمایش میکنیم.
این جلسه بخشی از دورهٔ لینوکس ۳۰۳ در ۴۰ شب است.
محیط تمرین: VM دارای Snort 3 از release معتبر و config همان نصب؛ capture ICMP شب بیستوهشتم؛ اجرای offline.
جایگاه در دوره: هدفهای 334.2 آزمون 303-300.
حسگر کجا ایستاده است؟#
NIDS یعنی سامانهٔ تشخیص نفوذ شبکه؛ در حالت passive هشدار میدهد، ولی لزوماً بسته را مسدود نمیکند. IPS در مسیر اعمال قرار میگیرد. SPAN، TAP یا capture روی یک host، دیدهای متفاوت دارند؛ ترافیک رمزشده هم معمولاً محتوای plaintext را به حسگر passive نشان نمیدهد.
Snort 2 و Snort 3 پیکربندی یکسان ندارند؛ جزوهٔ قدیمی snort.conf و build سری ۲ را نشان میدهد. تمرین ما سری ۳ و config Lua همان release است. ابتدا snort -V را ثبت کن؛ اگر نصب تو سری ۲ است، فرمانها و config این درس را روی آن اجرا نکن. مسیر نصب نیز از دستور نصب رسمی همان release میآید.
یک rule قابل توضیح#
پوشهٔ کاربر عادی بساز و capture آزمایشگاه را به lab.pcap کپی کن. این capture باید واقعاً ping IPv4 داشته باشد. در local.rules:
alert icmp any any -> any any (msg:"LPIC303 lab echo"; itype:8; sid:1000001; rev:1;)
rule به ICMP echo request نسخهٔ چهار توجه میکند. sid شناسه و rev نسخهٔ rule است؛ برای مجموعهٔ محلی از شناسههای بدون تعارض استفاده کن. این هشدار عمداً یک رفتار معمولی را میگیرد تا سلامت مسیر را بسنجیم؛ ping بهخودیخود نفوذ نیست.
در متغیر زیر، مسیر config واقعی نصب Snort 3 را بگذار:
snort_config=/usr/local/etc/snort/snort.lua
snort -T -c "$snort_config" -R local.rules
snort -c "$snort_config" -R local.rules -r lab.pcap -A alert_fast
مسیر نمونه باید با config نصب خودت تطبیق داده شود. انتظار داریم validation موفق و در بازپخش capture، هشدار با SID محلی دیده شود. اگر هشدار نیست، وجود echo request در pcap، بارگذاری rule و logger را جدا بررسی کن؛ فقط دنبال خطای syntax نگرد.
از rule آموزشی به نگهداری واقعی#
در شبکهٔ واقعی، HOME_NET و نقاط مشاهده باید درست باشند. افزودن ruleهای بیشتر میتواند false positive و هزینهٔ CPU را زیاد کند. rule feed، مجوز دریافت، زمان update و سازگاری نسخه باید ثبت شوند. ابزارهای قدیمی مانند pulledpork.pl و snort-stat در منابع آزمون آمدهاند؛ آنها را بیبررسی جای ابزار مناسب سری ۳ نگذار.
ntop یا ntopng برای شناخت جریان و مصرف پهنایباند مفید است؛ «جریان بزرگ» لزوماً حمله نیست. counterهای capture drop و packet loss حسگر هم بخشی از کیفیت شواهدند. TLS ممکن است تحلیل metadata را ممکن نگه دارد، اما رمزگشایی خودکار همهٔ دادهها نمیدهد.
مأموریت امشب#
یک capture بدون ICMP بساز و نشان بده rule روی آن ساکت میماند. سپس همان capture دارای ping را با rule غیرفعال امتحان کن؛ تفاوت «ترافیک نبود» با «rule نبود» را گزارش کن. برای پایان هیچ IPS یا rule مسدودکننده روی شبکهٔ واقعی فعال نشده است.
منابع: پیکربندی Snort 3 ، بارگذاری ruleها و مستندات ntopng .