سلام به همگی، به اپیزود جدید پادکست ما خوش اومدید! امروز میخوایم در مورد یکی از قدیمیترین، ولی همچنان خطرناکترین، دروازههای ورود مهاجمان به سازمانهامون صحبت کنیم: ایمیل.
شاید فکر کنید با وجود این همه فایروال خفن، آنتیویروسهای هوشمند و ابزارهای امنیتی مدرن، دیگه ایمیل نباید نگرانی اصلی ما باشه. اما آمار و واقعیت چیز دیگهای میگه. ایمیل همچنان یکی از اصلیترین کانالها برای حملات فیشینگ، پخش بدافزارها از طریق پیوستهای آلوده، و حتی استفاده از سرورهای داخلی ما به عنوان سرور اسپم هست. مهاجمها عاشقشن، چون مستقیماً با آسیبپذیرترین بخش هر سازمان، یعنی انسان، ارتباط برقرار میکنه.
1.2 معرفی سناریوی واقعی
برای اینکه عمق فاجعه رو بهتر درک کنیم، بیاید یک داستان واقعی رو با هم مرور کنیم. داستان شرکت «Lab Me, Inc». این شرکت در یک روز عادی، به خاطر یک ایمیل فیشینگ ساده، ۲۵۰ هزار دلار از دست داد! بله، درست شنیدید. یک ایمیل باعث شد این مبلغ هنگفت به حساب مهاجمها واریز بشه.
در این اپیزود، قراره این ماجرا رو کالبدشکافی کنیم و ببینیم دقیقاً چه اتفاقی افتاد. مهمتر از اون، نشون میدیم که چطور میشد با استفاده از یک ابزار تحلیل لاگ قدرتمند مثل Splunk، این حمله رو شناسایی کرد یا حداقل ردپاش رو خیلی سریع پیدا کرد.
خب، بیاید اول ببینیم دقیقاً چه اتفاقی برای این شرکت افتاد تا بفهمیم مهاجمها چطور از اعتماد ما سوءاستفاده میکنن.
2.0 کالبدشکافی یک حمله فیشینگ موفق
2.1 تحلیل متن ایمیل فیشینگ
بهترین راه برای درک تاکتیکهای مهاجمان، تحلیل یک حمله واقعیه. این کار به ما کمک میکنه روانشناسی پشت این حملات رو بفهمیم و بفهمیم چرا کارمندهای حتی آموزشدیده هم گاهی فریب میخورن.
بیاید نگاهی به ایمیلی بندازیم که به دست «سالوادور رابینسون»، یکی از کارمندان بخش مالی شرکت «Lab Me, Inc»، رسید. فرستنده ایمیل، خودش رو «پاول دادسون»، مدیر ارشد مالی یا CFO شرکت، معرفی کرده بود. متن ایمیل خیلی کوتاه و هوشمندانه بود:
موضوع: پرداخت
سالوادور، اطلاعات بانکی یک فروشنده ضمیمه شده که پرداختش باید هفته پیش انجام میشد. من نیاز دارم که این پرداخت فوراً انجام بشه تا جریمه نشیم.
من الان با خانوادهام هستم، ولی حدوداً یک ساعت دیگه باهات تماس میگیرم تا مطمئن شم کار انجام شده.
با احترام، پاول دادسون
این ایمیل چند عنصر کلیدی داشت که باعث موفقیتش شد:
- ایجاد حس فوریت: با جمله «نیاز دارم که این پرداخت فوراً انجام بشه»، مهاجم اجازه فکر کردن رو از قربانی میگیره.
- ایجاد فشار روانی: اشاره به «جریمه» یا penalty، یک ترس پنهان ایجاد میکنه که باعث میشه کارمند برای جلوگیری از یک اتفاق بد، سریعتر اقدام کنه.
- تظاهر به هویت یک مقام ارشد: وقتی دستوری از طرف CFO میاد، کمتر کسی جرئت میکنه اون رو زیر سوال ببره.
- عدم امکان تأیید فوری: با جمله «من با خانوادهام هستم و یک ساعت دیگه تماس میگیرم»، مهاجم عملاً راه تأیید تلفنی فوری رو میبنده و قربانی رو در یک بازه زمانی محدود قرار میده.
این تکنیکها به طرز وحشتناکی مؤثر هستن و متأسفانه خیلی از کارمندان فریب میخورن. اینجاست که دیگه آموزش به تنهایی کافی نیست و باید ابزارهای تکنولوژیک به کمکمون بیان.
اینجا دقیقاً همون نقطهایه که یه SIEM قدرتمند مثل Splunk میتونه به ما کمک کنه، اما نه اونجوری که شاید فکر میکنید.
3.0 نقش استراتژیک Splunk در امنیت ایمیل
3.1 Splunk جایگزین نیست، مکمل است!
یک تصور اشتباه رایج اینه که وقتی ما یک SIEM مثل Splunk داریم، باید تمام کارهای امنیتی رو با اون انجام بدیم. اما این کار مثل اینه که چرخ رو از اول اختراع کنیم. ما ابزارهای تخصصی امنیت ایمیل، مثل پروکسیهای ایمیل و سیستمهای ضد اسپم، داریم که کارشون رو به خوبی انجام میدن. وظیفه اصلی این ابزارها پیشگیری (Prevention) هست. یعنی جلوی ورود ایمیلهای بد رو از همون اول میگیرن.
نقش Splunk اینجا متفاوت و استراتژیکه. Splunk روی تشخیص (Detection) و افزایش دید (Visibility) تمرکز داره.
اجازه بدید با یک مثال کاملاً واقعی این تفاوت رو نشون بدم. وظیفه فایروال شما پیشگیری هست. شما باید فایروال رو طوری تنظیم کنید که جلوی هر کامپیوتری، به جز سرورهای ایمیل مجازتون، رو برای ارسال ایمیل به اینترنت بگیره. این میشه همون گیت ورودی. اما وظیفه Splunk تشخیص هست. Splunk با تحلیل لاگهای ترافیک رد شده (denied) روی فایروال، میتونه فوراً یک لپتاپ آلوده داخلی رو پیدا کنه که داره تلاش میکنه اسپم ارسال کنه، حتی با وجود اینکه فایروال جلوش رو گرفته. شما یک هشدار دریافت میکنید، نه به خاطر اینکه حمله موفق شده، بلکه به خاطر اینکه تلاش برای حمله اتفاق افتاده. این یعنی ازدواج بینقصِ پیشگیری و تشخیص.
3.2 چالش لاگها: قبل از فیلتر یا بعد از فیلتر؟ (Pre-Filtered vs. Post-Filtered)
خب، حالا که تصمیم گرفتیم از Splunk استفاده کنیم، یک سوال مهم پیش میاد: چه لاگهایی رو باید جمع کنیم؟ آیا باید تمام لاگهای ایمیل رو جمع کنیم (یعنی قبل از اینکه سیستم ضد اسپم اونها رو فیلتر کنه) یا فقط لاگ ایمیلهایی که از فیلتر رد شدن و به دست کارمندان رسیدن؟
هر کدوم مزایا و معایب خودشون رو دارن:
- جمعآوری همه چیز (Pre-Filtered): این رویکرد به ما دید کاملی میده. مثلاً میتونیم گزارش بگیریم که دقیقاً چه کسی چه ایمیل اسپمی دریافت کرده. اما مشکل اینجاست که حجم داده به شدت بالا میره و این یعنی هزینه لایسنس Splunk و هزینه ذخیرهسازی سر به فلک میکشه.
- جمعآوری لاگهای مجاز (Post-Filtered): این رویکرد بهینهتره. ما روی ایمیلهایی تمرکز میکنیم که واقعاً به دست کاربر رسیدن و پتانسیل خطرناک بودن رو دارن. این کار برای تحلیل تاکتیکی و بهبود فیلترها عالیه و هزینه کمتری داره.
یادتون باشه، یکی از دلایل اصلی شکست پروژههای SIEM، جمعآوری بیرویه داده بدون در نظر گرفتن ارزش اون دادهست. همیشه باید از خودمون بپرسیم: «آیا این داده به من در پیدا کردن تهدید کمک میکنه؟»
پس استراتژی مشخصه: هوشمندانه جمعآوری کنیم، نه فقط زیاد. اما این “دادههای هوشمند” دقیقاً از کجا میان؟ بیاید مسیر یک لاگ ایمیل رو از سرور تا رسیدن به داخل Splunk با هم دنبال کنیم.
4.0 جمعآوری دادههای ایمیل در Splunk
4.1 منابع لاگ و روشهای جمعآوری
اولین قدم اینه که منبع لاگ مناسب رو انتخاب کنیم. خیلی از سازمانها اشتباه میکنن و دادههای تکراری رو از چند منبع مختلف جمع میکنن؛ مثلاً هم از سرور ایمیل و هم از دستگاه ضد اسپم. این کار فقط حجم داده رو زیاد میکنه و تحلیل رو پیچیده میکنه. باید یک منبع اصلی و قابل اعتماد انتخاب کرد.
چند منبع رایج لاگ SMTP عبارتند از:
- سرورهای ایمیل مثل Postfix یا Microsoft Exchange
- رابطهای برنامهنویسی ابری (Cloud APIs) مثل Microsoft 365 یا Google Workspace
- دستگاههای ضد اسپم (SPAM Appliances)
برای جمعآوری این لاگها، روشهای مختلفی وجود داره. در دنیای Splunk، ما معمولاً از Splunk Universal Forwarder استفاده میکنیم. اینها ایجنتهای خیلی سبکی هستن که روی سرورها نصب میشن و لاگها رو به صورت امن و مطمئن برای Splunk ارسال میکنن. روشهای دیگهای مثل دریافت لاگ از طریق Syslog یا فراخوانی API هم وجود داره.
4.2 فیلدهای کلیدی SMTP در Splunk
وقتی دادههای SMTP وارد Splunk میشن، جادوی واقعی شروع میشه. Splunk به صورت هوشمند این لاگهای خام و بیساختار رو به فیلدهای قابل جستجو تبدیل میکنه. این کار تحلیل رو فوقالعاده راحت میکنه.
چندتا از مهمترین فیلدهای SMTP که باید بشناسید اینها هستن:
From: آدرس ایمیل فرستندهTo: آدرس ایمیل گیرندهSubject: موضوع ایمیلSource IP: آدرس IP سروری که ایمیل رو ارسال کردهDestination IP: آدرس IP سروری که ایمیل رو دریافت کردهFile attachment name: نام فایل پیوست شدهMail User Agent: نام نرمافزاری که ایمیل رو ارسال کرده (مثلاً Outlook یا PHPMailer)
علاوه بر اینها، Splunk میتونه دادهها رو غنیسازی هم بکنه. مثلاً میتونه با استفاده از Source IP، فیلدهای ارزش افزوده (Value-Add) مثل GeoIP رو اضافه کنه که به ما موقعیت جغرافیایی اون IP رو نشون میده.
خب، حالا که دادههای خام رو توی Splunk داریم، وقتشه که جادوی واقعی شروع بشه و ببینیم چطور میتونیم تهدیدهایی رو پیدا کنیم که ابزارهای دیگه از پسش برنمیان.
5.0 تکنیکهای پیشرفته شکار فیشینگ در Splunk (بخش ورودی)
5.1 مقدمه بخش
قدرت واقعی Splunk این نیست که کار ابزارهای امنیتی دیگه رو تکرار کنه. قدرت Splunk در اینه که میتونه الگوهای خاص و منحصر به فرد محیط ما رو یاد بگیره و تهدیدات سفارشیسازی شدهای رو پیدا کنه که برای سازمان ما طراحی شدن؛ کاری که ابزارهای عمومی قادر به انجامش نیستن.
5.2 شکار دامنههای فیشینگ مشابه (Fuzzy Phishing)
یکی از تکنیکهای هوشمندانه مهاجمان، ثبت دامنههایی هست که خیلی شبیه به دامنه شرکت شماست. فرض کنید دامنه شرکت شما mycompany.com باشه. مهاجم میره و دامنههایی مثل mycornpany.com (با rn به جای m) یا my-company.com رو ثبت میکنه و از طریق اونها ایمیل فیشینگ ارسال میکنه.
در Splunk، ما میتونیم با یک جستجوی ساده، به دنبال ایمیلهایی بگردیم که دامنه فرستندهشون خیلی شبیه به دامنه ماست، ولی دقیقاً خود دامنه ما نیست. این تکنیک که بهش «Fuzzy Phishing» میگن، برای شناسایی حملات هدفمند فوقالعاده مؤثره.
5.3 استفاده از dnstwist و Lookup در Splunk
جستجوی فازی برای اشتباهات تایپی ساده عالیه، اما در مورد مهاجمان واقعاً باهوش چطور؟ اونهایی که از کاراکترهایی استفاده میکنن که شبیه حروف ما هستن اما در واقع کاملاً متفاوتن؟ این یک سطح کاملاً جدید از فریبه و به یک سلاح قدرتمندتر نیاز داره.
اینجاست که ابزاری مثل dnstwist به کمک ما میاد. این ابزار مثل یک مهاجم فکر میکنه. dnstwist هزاران دامنه خطرناک رو با تکنیکهای مختلف تولید میکنه، مثل جایگزینی حروف شبیه به هم (مثلاً عدد ‘1’ به جای حرف ‘l’)، جابجا کردن حروف کنار هم، یا حتی استفاده از کاراکترهای الفبای دیگه که دقیقاً شبیه حروف ما هستن—تکنیکی که بهش حمله Homograph میگن.
فرآیند کار به این صورته:
- اول، با
dnstwistیک لیست کامل از دامنههای خطرناک تولید میکنیم. - بعد، این لیست رو به عنوان یک “Lookup Table” (جدول جستجو) در Splunk آپلود میکنیم.
- در نهایت، یک جستجوی زمانبندی شده (Scheduled Search) در Splunk ایجاد میکنیم که به صورت دائم، دامنه فرستنده ایمیلهای ورودی رو با این لیست سیاه مقایسه میکنه و به محض پیدا کردن یک مورد منطبق، به ما هشدار (Alert) میده.
5.4 شناسایی سیل ایمیلهای مشکوک
خیلی از کمپینهای فیشینگ به صورت انبوه اجرا میشن. یعنی مهاجم در یک بازه زمانی کوتاه، یک ایمیل یکسان رو برای تعداد زیادی از کارمندان ما ارسال میکنه. اما چالش اینجاست که سرویسهای ایمیل مارکتینگ و خبرنامههای مجاز هم دقیقاً همین کار رو میکنن!
راهکار، استفاده از رویکرد لیست سفید (Allow List) در Splunk هست. ما یک جستجو مینویسیم که تعداد ایمیلهای دریافتی از هر IP مبدأ رو در یک بازه زمانی کوتاه (مثلاً ۵ دقیقه) میشماره. بعد، IPهایی که میدونیم مجاز هستن (مثل IPهای سرویسهای مارکتینگ) رو در یک لیست سفید قرار میدیم و از نتایج فیلتر میکنیم. هر IP دیگهای که از یک آستانه مشخص (مثلاً ارسال ایمیل به بیش از ۵۰ کارمند در ۵ دقیقه) عبور کنه، به شدت مشکوک تلقی میشه و باید بررسی بشه.
5.5 قدرت غنیسازی داده (Log Enrichment)
شاید بگید تشخیص اینکه کدوم IP مربوط به یک سرویس مارکتینگ مجاز مثل SurveyMonkey هست، کار تقریباً غیرممکنیه. و حق با شماست، اگه فقط لاگ خام داشته باشید.
اینجاست که قدرت غنیسازی داده در Splunk مشخص میشه. Splunk میتونه با استفاده از IP مبدأ، اطلاعاتی مثل نام سازمان (ASN) و اطلاعات ثبت دامنه (WHOIS) رو به صورت خودکار به لاگها اضافه کنه. وقتی توی نتایج جستجومون ببینیم که IP مبدأ متعلق به “SurveyMonkey Inc.” هست، به راحتی میتونیم اون رو به لیست سفیدمون اضافه کنیم و نویز رو به شدت کاهش بدیم.
5.6 شکار فیشینگ هدفمند علیه مدیران (Whaling)
برگردیم به سناریوی شرکت “Lab Me, Inc”. یادتونه که مهاجم از نام مدیر مالی، «Paul Dodson»، در قسمت “Display Name” ایمیل استفاده کرده بود؟ این یک تکنیک بسیار رایج به نام “Whaling” یا شکار نهنگهاست که مدیران ارشد رو هدف قرار میده.
شناسایی این حمله در Splunk به طرز شگفتآوری سادهست. ما یک جستجو مینویسیم که به دنبال ایمیلهای ورودی بگرده که دو شرط همزمان داشته باشن:
- فیلد
Display Nameاونها، نام یکی از مدیران ارشد ما باشه. - اما آدرس ایمیل فرستنده، متعلق به دامنه شرکت خودمون (
@labmeinc.com) نباشه.
به زبان ساده، این هشدار فریاد میزنه: «یکی داره از یک آدرس ایمیل خارجی تظاهر میکنه که مدیر ماست!» این یک روش تقریباً قطعی برای گرفتن این نوع حمله بسیار پرخطره.
تا اینجا دیدیم چطور جلوی ورود مهاجم رو بگیریم، اما اگه مهاجم از قبل داخل شبکه ما باشه چی؟ بیاید ببینیم چطور ترافیک خروجی ایمیل رو زیر نظر بگیریم.
6.0 شناسایی سیستمهای آلوده با مانیتورینگ ایمیلهای خروجی
6.1 مقدمه بخش
گاهی اوقات، شناسایی نفوذ اولیه به شبکه بسیار سخته. اما فعالیتهای مهاجم بعد از نفوذ (Post-Compromise) اغلب راحتتر قابل شناساییه. یکی از رایجترین کارها بعد از نفوذ، استفاده از سیستمهای آلوده داخلی به عنوان سرور اسپم برای حمله به دیگران، یا برقراری ارتباط با سرور فرماندهی و کنترل (C2) از طریق پروتکل SMTP هست.
6.2 شناسایی منابع ارسال ایمیل غیرمجاز
این یک اصل ساده ولی مهم در امنیت شبکه است: در یک سازمان نرمال، فقط تعداد بسیار محدودی سرور (یعنی سرورهای ایمیل رسمی شرکت) مجاز به ارسال ایمیل به اینترنت هستند. کامپیوتر یک کارمند عادی در بخش حسابداری یا فروش، هرگز نباید مستقیماً به اینترنت ایمیل ارسال کنه.
راهکار اینجا هم استفاده از رویکرد لیست سفید هست:
- اول، لیستی از آدرسهای IP تمام سرورهای ایمیل مجاز سازمان رو تهیه میکنیم.
- بعد، در Splunk یک جستجو مینویسیم تا تمام IPهای داخلی که دارن ترافیک SMTP (پورت ۲۵) به بیرون ارسال میکنن رو پیدا کنه.
- در نهایت، نتایج رو با لیست سفید خودمون مقایسه میکنیم. هر IP که در نتایج جستجو بود ولی در لیست سفید ما نبود، به شدت مشکوکه و به احتمال زیاد یک سیستم آلودهست که باید فوراً ایزوله بشه. (و برای حرفهایها بگم که این لیست سفید نباید ثابت باشه؛ در محیطهای مدرن و خودکار، این لیست باید به صورت پویا از CMDB یا مخزن Infrastructure-as-Code شما آپدیت بشه.)
6.3 تحلیل عامل کاربری ایمیل (Mail User Agent)
یکی از فیلدهای جالبی که در لاگهای SMTP وجود داره، Mail User Agent یا MUA هست. این فیلد به ما میگه که چه نرمافزاری ایمیل رو ارسال کرده. مثلاً “PHPMailer” یا “ColdFusion”.
فرض کنید شما یک وبسرور دارید که مجازه ایمیلهای اطلاعرسانی (مثلاً برای بازیابی رمز عبور) ارسال کنه و همیشه این کار رو با نرمافزار “PHPMailer” انجام میده. حالا اگه یک روز در لاگهای Splunk ببینید که همین سرور شروع کرده به ارسال ایمیل با یک MUA متفاوت، مثلاً مربوط به زبان Python، این یک زنگ خطر بسیار جدیه. این اتفاق نشون میده که به احتمال زیاد یک اسکریپت مخرب روی اون سرور آپلود شده و داره ازش سوءاستفاده میکنه.
6.4 تعیین آستانه برای ایمیلهای خروجی (Clipping Level)
یک سوال ساده: “یک سرور ایمیل در حالت عادی، در هر ساعت چند ایمیل به بیرون ارسال میکنه؟” شرط میبندم که اکثر سازمانها جواب دقیق این سوال رو نمیدونن. ندونستن رفتار نرمال، تشخیص رفتار غیرنرمال رو غیرممکن میکنه.
اینجاست که Splunk به ما کمک میکنه. ما میتونیم با تحلیل دادههای گذشته، یک خط پایه (Baseline) از رفتار نرمال سرورهای ایمیل خودمون ایجاد کنیم. بعد، یک آستانه بالا (Clipping Level) تعریف میکنیم. مثلاً میگیم سرور ایمیل ما در حالت عادی حداکثر ۱۰۰۰ ایمیل در ساعت ارسال میکنه، پس ما آستانه رو روی ۵۰۰۰ قرار میدیم.
اگر تعداد ایمیلهای ارسالی از یک سرور به طور ناگهانی و شدید از این آستانه عبور کنه، میتونه نشانه یک سیستم آلوده باشه که کنترلش به دست مهاجم افتاده و داره ازش برای ارسال حجم عظیمی از ایمیلهای فیشینگ یا اسپم به سازمانهای دیگه استفاده میکنه. (برای حرفهایها هم بگم که ماژول یادگیری ماشین Splunk یا MLTK میتونه این فرآیند تعیین خط پایه و آستانه رو به صورت کاملاً هوشمند و خودکار انجام بده.)
7.0 جمعبندی و نتیجهگیری
7.1 مرور تکنیکها
خب، بیاید یک مرور سریع داشته باشیم بر تکنیکهای کلیدی که امروز یاد گرفتیم:
- شکار دامنههای فیشینگ مشابه: با استفاده از جستجوهای Fuzzy و ابزارهایی مثل dnstwist.
- نظارت بر نام مدیران ارشد: برای شناسایی حملات هدفمند Whaling.
- استفاده از لیست سفید برای منابع خروجی: برای پیدا کردن سیستمهای داخلی آلوده که در حال ارسال اسپم هستند.
- تعیین آستانه ارسال: برای شناسایی افزایش ناگهانی و غیرعادی در تعداد ایمیلهای خروجی.
7.2 پیام نهایی
پیام کلیدی این اپیزود اینه: Splunk (یا هر SIEM دیگهای) قرار نیست جایگزین ابزارهای امنیتی تخصصی ایمیل شما بشه. این ابزارها در زمینه پیشگیری عالی عمل میکنن. اما Splunk با فراهم کردن یک دید متمرکز و قابلیتهای تحلیلی سفارشی، اونها رو تکمیل میکنه و به ما کمک میکنه تهدیداتی رو پیدا کنیم که دیگران نمیتونن. تهدیداتی که به صورت خاص برای سازمان ما طراحی شدن.
امیدوارم این اپیزود براتون مفید بوده باشه. ممنون که تا آخر با ما همراه بودید. تا اپیزود بعدی، امن بمونید!
دیدگاهتان را بنویسید