من بعد واسه آسیب پذیری ها این سایت رو هم چک کنید
#آکادمی_روزبه
https://center-for-threat-informed-defense.github.io/mappings-explorer/external/kev/attack-15.1/domain-enterprise/kev-02.13.2025/CVE-2024-37085/
#آکادمی_روزبه
https://center-for-threat-informed-defense.github.io/mappings-explorer/external/kev/attack-15.1/domain-enterprise/kev-02.13.2025/CVE-2024-37085/
Mappings Explorer | The Center for Threat-Informed Defense
Known Exploited Vulnerabilities CVE-2024-37085 - Mappings Explorer
Mappings Explorer enables cyber defenders to understand how security controls and capabilities map onto the adversary behaviors catalogued in the MITRE ATT&CK® knowledge base. These mappings form a bridge between the threat-informed approach to cybersecurity…
👍1
🟢تجربه ۸ ماهه من در کار با DLP
🚨کدام بهروش ها برای پیاده سازی DLP مناسب هستند چون برخی پروژه ها به شکست میخورند
✍️روزبه نوروزی
پیادهسازی موفق DLP به یک رویکرد جامع نیاز دارد، زیرا بسیاری از پروژههای Data Loss Prevention (DLP) به دلیل عدم برنامهریزی مناسب، پیچیدگی فنی، و مقاومت کاربران شکست میخورند. در ادامه، بهترین روشها (Best Practices) برای پیادهسازی موفق Symantec DLP آورده شده است:
1. تعریف اهداف و استراتژی DLP
قبل از پیادهسازی باید به سؤالات زیر پاسخ دهید:
✅ چه دادههایی باید محافظت شوند؟ (اطلاعات مالی، مشتریان، دادههای محرمانه)
✅ چه تهدیداتی وجود دارند؟ (نشت داده از طریق ایمیل، USB، کپی در Cloud و غیره)
✅ کدام بخشها بیشترین خطر را دارند؟ (مالی، منابع انسانی، IT)
🔹 راهکار: استفاده از Data Classification برای اولویتبندی دادههای حساس.
2. شناخت و طبقهبندی دادهها
✅ راهکار: ابتدا یک Discovery Scan اجرا کنید تا بدانید دادههای حساس کجا ذخیره شدهاند و سپس Policyهای مناسب را تنظیم کنید.
💡 اشتباه رایج: تنظیم سیاستهای خیلی سختگیرانه بدون شناخت صحیح دادهها، که باعث هشدارهای کاذب (False Positive) و نارضایتی کاربران میشود.
3. شروع با مانیتورینگ (Monitor Mode) و نه بلاک کردن
✅ راهکار: ابتدا سیاستها را در حالت Monitor تنظیم کنید تا تأثیر آنها روی سیستم بررسی شود.
💡 دلیل: اگر سیاستها مستقیماً در حالت Block باشند، ممکن است عملیات تجاری دچار اختلال شود و مقاومت کاربران افزایش یابد.
4. اجرای سیاستها بهصورت مرحلهای (Phased Approach)
✅ راهکار: سیاستهای DLP را مرحلهبهمرحله اجرا کنید، نه بهصورت یکجا.
🔹 مثال:
فاز ۱: نظارت بر ایمیلهای خروجی
فاز ۲: نظارت بر دادههای USB و Cloud
فاز ۳: اجرای سیاستهای بلاکینگ
💡 چرا؟ اجرای ناگهانی تمام سیاستها باعث نارضایتی کارمندان و مشکلات عملکردی میشود.
5. ایجاد فرآیندهای پاسخگویی (Incident Response Plan)
✅ راهکار: قبل از اجرای سیاستهای DLP، مشخص کنید که در صورت نقض قوانین، چه اقدامی انجام خواهد شد.
🔹 مثال:
ارسال هشدار به کاربر و تیم امنیت
بررسی دستی و تأیید تخلفات
مسدود کردن خودکار انتقال داده
💡 اشتباه رایج: نداشتن برنامه مشخص، که باعث تأخیر در واکنش به تهدیدها میشود.
6. تعامل با کاربران و آموزش آنها
✅ راهکار: کارمندان باید بدانند که DLP برای کمک به امنیت سازمان است، نه صرفاً برای کنترل آنها.
🔹 اقدامات:
برگزاری جلسات آموزشی درباره سیاستهای DLP
اطلاعرسانی درباره دلایل مسدود شدن برخی فعالیتها
ارائه راهکارهای جایگزین (مانند استفاده از VPN یا Secure File Transfer برای ارسال دادههای حساس)
💡 دلیل شکست: مقاومت کاربران به دلیل اطلاع نداشتن از هدف پروژه DLP.
7. استفاده از Context-Aware Policies
✅ راهکار: به جای مسدود کردن تمام فعالیتها، از سیاستهای هوشمند و مبتنی بر محتوا (Content-Aware) استفاده کنید.
🔹 مثال:
ارسال فایلهای اکسل حاوی شماره کارت بانکی مسدود شود، ولی ارسال سایر فایلها مجاز باشد.
مدیران سطح بالا اجازه انتقال برخی دادههای حساس را داشته باشند، ولی کارمندان معمولی نه.
💡 دلیل شکست: تنظیم قوانین سفتوسخت که عملکرد کسبوکار را مختل میکند.
8. نظارت و بهینهسازی مداوم (Continuous Tuning & Optimization)
✅ راهکار: تنظیمات و سیاستهای DLP را بهصورت دورهای بازبینی کنید و بر اساس گزارشها و وقایع امنیتی بهینهسازی کنید.
🔹 ابزارها:
تحلیل False Positive و تنظیم قوانین برای کاهش آن
بررسی عملکرد سیستم و بهینهسازی سیاستها برای جلوگیری از کاهش کارایی
💡 اشتباه رایج: تنظیم یکبارهی DLP و عدم بررسی مداوم، که باعث هشدارهای زیاد و ناکارآمدی سیاستها میشود.
9. استفاده از یک تیم متخصص و همکاری با مدیران سازمان
✅ راهکار:
تیمی متشکل از امنیت اطلاعات، شبکه، حقوقی و منابع انسانی تشکیل دهید.
مدیران سازمان را در جریان بگذارید تا از اجرای سیاستهای DLP حمایت کنند.
💡 دلیل شکست: عدم حمایت مدیران و نادیده گرفتن نیازهای بخشهای مختلف سازمان.
جمعبندی: چرا پروژههای DLP شکست میخورند؟
❌ سیاستهای خیلی سختگیرانه بدون شناخت دقیق دادهها
❌ عدم تعامل و آموزش کاربران
❌ اجرای ناگهانی و بدون برنامهریزی
❌ تنظیم نکردن فرآیندهای پاسخگویی
❌ عدم بررسی و بهینهسازی مداوم
✅ راهکارهای موفقیت:
1️⃣ اجرای اسکنهای اولیه برای شناخت دادهها
2️⃣ شروع با مانیتورینگ و اجرای سیاستها بهصورت تدریجی
3️⃣ تعامل و آموزش کاربران برای کاهش مقاومت
4️⃣ تنظیم سیاستهای هوشمند و انعطافپذیر
5️⃣ بررسی مداوم و بهینهسازی سیاستهای DLP
#من_آموزش_میدهم
#آکادمی_روزبه
🚨کدام بهروش ها برای پیاده سازی DLP مناسب هستند چون برخی پروژه ها به شکست میخورند
✍️روزبه نوروزی
پیادهسازی موفق DLP به یک رویکرد جامع نیاز دارد، زیرا بسیاری از پروژههای Data Loss Prevention (DLP) به دلیل عدم برنامهریزی مناسب، پیچیدگی فنی، و مقاومت کاربران شکست میخورند. در ادامه، بهترین روشها (Best Practices) برای پیادهسازی موفق Symantec DLP آورده شده است:
1. تعریف اهداف و استراتژی DLP
قبل از پیادهسازی باید به سؤالات زیر پاسخ دهید:
✅ چه دادههایی باید محافظت شوند؟ (اطلاعات مالی، مشتریان، دادههای محرمانه)
✅ چه تهدیداتی وجود دارند؟ (نشت داده از طریق ایمیل، USB، کپی در Cloud و غیره)
✅ کدام بخشها بیشترین خطر را دارند؟ (مالی، منابع انسانی، IT)
🔹 راهکار: استفاده از Data Classification برای اولویتبندی دادههای حساس.
2. شناخت و طبقهبندی دادهها
✅ راهکار: ابتدا یک Discovery Scan اجرا کنید تا بدانید دادههای حساس کجا ذخیره شدهاند و سپس Policyهای مناسب را تنظیم کنید.
💡 اشتباه رایج: تنظیم سیاستهای خیلی سختگیرانه بدون شناخت صحیح دادهها، که باعث هشدارهای کاذب (False Positive) و نارضایتی کاربران میشود.
3. شروع با مانیتورینگ (Monitor Mode) و نه بلاک کردن
✅ راهکار: ابتدا سیاستها را در حالت Monitor تنظیم کنید تا تأثیر آنها روی سیستم بررسی شود.
💡 دلیل: اگر سیاستها مستقیماً در حالت Block باشند، ممکن است عملیات تجاری دچار اختلال شود و مقاومت کاربران افزایش یابد.
4. اجرای سیاستها بهصورت مرحلهای (Phased Approach)
✅ راهکار: سیاستهای DLP را مرحلهبهمرحله اجرا کنید، نه بهصورت یکجا.
🔹 مثال:
فاز ۱: نظارت بر ایمیلهای خروجی
فاز ۲: نظارت بر دادههای USB و Cloud
فاز ۳: اجرای سیاستهای بلاکینگ
💡 چرا؟ اجرای ناگهانی تمام سیاستها باعث نارضایتی کارمندان و مشکلات عملکردی میشود.
5. ایجاد فرآیندهای پاسخگویی (Incident Response Plan)
✅ راهکار: قبل از اجرای سیاستهای DLP، مشخص کنید که در صورت نقض قوانین، چه اقدامی انجام خواهد شد.
🔹 مثال:
ارسال هشدار به کاربر و تیم امنیت
بررسی دستی و تأیید تخلفات
مسدود کردن خودکار انتقال داده
💡 اشتباه رایج: نداشتن برنامه مشخص، که باعث تأخیر در واکنش به تهدیدها میشود.
6. تعامل با کاربران و آموزش آنها
✅ راهکار: کارمندان باید بدانند که DLP برای کمک به امنیت سازمان است، نه صرفاً برای کنترل آنها.
🔹 اقدامات:
برگزاری جلسات آموزشی درباره سیاستهای DLP
اطلاعرسانی درباره دلایل مسدود شدن برخی فعالیتها
ارائه راهکارهای جایگزین (مانند استفاده از VPN یا Secure File Transfer برای ارسال دادههای حساس)
💡 دلیل شکست: مقاومت کاربران به دلیل اطلاع نداشتن از هدف پروژه DLP.
7. استفاده از Context-Aware Policies
✅ راهکار: به جای مسدود کردن تمام فعالیتها، از سیاستهای هوشمند و مبتنی بر محتوا (Content-Aware) استفاده کنید.
🔹 مثال:
ارسال فایلهای اکسل حاوی شماره کارت بانکی مسدود شود، ولی ارسال سایر فایلها مجاز باشد.
مدیران سطح بالا اجازه انتقال برخی دادههای حساس را داشته باشند، ولی کارمندان معمولی نه.
💡 دلیل شکست: تنظیم قوانین سفتوسخت که عملکرد کسبوکار را مختل میکند.
8. نظارت و بهینهسازی مداوم (Continuous Tuning & Optimization)
✅ راهکار: تنظیمات و سیاستهای DLP را بهصورت دورهای بازبینی کنید و بر اساس گزارشها و وقایع امنیتی بهینهسازی کنید.
🔹 ابزارها:
تحلیل False Positive و تنظیم قوانین برای کاهش آن
بررسی عملکرد سیستم و بهینهسازی سیاستها برای جلوگیری از کاهش کارایی
💡 اشتباه رایج: تنظیم یکبارهی DLP و عدم بررسی مداوم، که باعث هشدارهای زیاد و ناکارآمدی سیاستها میشود.
9. استفاده از یک تیم متخصص و همکاری با مدیران سازمان
✅ راهکار:
تیمی متشکل از امنیت اطلاعات، شبکه، حقوقی و منابع انسانی تشکیل دهید.
مدیران سازمان را در جریان بگذارید تا از اجرای سیاستهای DLP حمایت کنند.
💡 دلیل شکست: عدم حمایت مدیران و نادیده گرفتن نیازهای بخشهای مختلف سازمان.
جمعبندی: چرا پروژههای DLP شکست میخورند؟
❌ سیاستهای خیلی سختگیرانه بدون شناخت دقیق دادهها
❌ عدم تعامل و آموزش کاربران
❌ اجرای ناگهانی و بدون برنامهریزی
❌ تنظیم نکردن فرآیندهای پاسخگویی
❌ عدم بررسی و بهینهسازی مداوم
✅ راهکارهای موفقیت:
1️⃣ اجرای اسکنهای اولیه برای شناخت دادهها
2️⃣ شروع با مانیتورینگ و اجرای سیاستها بهصورت تدریجی
3️⃣ تعامل و آموزش کاربران برای کاهش مقاومت
4️⃣ تنظیم سیاستهای هوشمند و انعطافپذیر
5️⃣ بررسی مداوم و بهینهسازی سیاستهای DLP
#من_آموزش_میدهم
#آکادمی_روزبه
👍4❤2🔥1
👆💡 با این روشها، DLP نهتنها باعث بهبود امنیت سازمان میشود، بلکه از ایجاد مشکلات عملیاتی جلوگیری میکند.
انتقال تجربه در SOC و IR
✍️روزبه نوروزی
دوستان در لینکدین و اینجا از انتقال تجربه استقبال کردند. من هم دیدم چون از یک سناریویی که درگیر بودم چند وقتی گذشته؛ میتونم اونو بیان کنم.
کل تجربه رو با قدری حواشی مخلوط کردم و یک بازنویسی به زبان یک معلم انجام دادم که در زیر میبینید.
✴️ تحلیل و حذف یک Rootkit کرنل در ویندوز
📌 پس از مشاهدات اعلان رولها ( فایر شدن ) و ارتباطات مشکوک و پراسس های غیر مرتبط روی یک سرور در داشبورد اسپلانک ، آن سرور از بقیه جدا شد و تحت تحلیل قرار گرفت .
مشاهدات که پی در پی کم کم پدیدار شدند عبارتند از :
پردازشهایی که در Task Manager دیده نمیشوند.
اتصالهای شبکهای که در netstat ظاهر نمیشوند.
فایلهایی که در Explorer و CMD دیده نمیشوند.
کاربرانی که به سیستم لاگین میکنند اما در لاگها ثبت نمیشوند.
اینها نشان بزرگی برای وجود روت کیت بودند .
🔹 هدف: با توجه به اهمیت up بودن سرور و کمبود زمان Down time؛ شناسایی، تحلیل، و حذف Rootkit بدون آسیب به سیستم در دستور کار قرار گرفت .
1️⃣ کشف اولیه – بررسی نشانههای Rootkit
الف) بررسی پردازشهای پنهانشده
در ویندوز، Rootkit ممکن است با Hook کردن APIهای کاربری یا Patch کردن کرنل پردازشهای مخرب را مخفی کند.
راه بررسی این است که از WMIC یا Process Explorer استفاده کنیم:
wmic process list full | findstr /i "SuspiciousProcess"
اگر پردازش در Task Manager نباشد ولی در wmic ظاهر شود، Rootkit در حال پنهانسازی است.
🔹 ابزار Sysinternals Process Explorer را اجرا میکنیم و در قسمت Verify Signatures، پردازشهای مشکوک را بررسی میکنیم.
ب) بررسی ارتباطات شبکهای مخفی
بد افزار Rootkit ممکن است برخی از اتصالات مخرب را پنهان کند. برای بررسی دقیق، از Wireshark یا TCPView (Sysinternals) استفاده میکنیم.
اما یک روش سریعتر این است که از PowerShell استفاده کنیم:
Get-NetTCPConnection | Where-Object { $_.State -eq "Established" }
سپس این خروجی را با netstat -ano مقایسه میکنیم. اگر تفاوتی وجود داشت، نشاندهنده Hook شدن APIها توسط Rootkit است.
البته نکته مهم اینه که در اون مجموعه ZEEK هم کمک مهمی داشت تونستیم بفهمیم که چه کانکشن هایی واقعی وجود داره که روی سرور نمیبینم.
ج) بررسی فایلهای مخفیشده
برخی Rootkitها با استفاده از NTFS Alternate Data Streams (ADS) فایلهای خود را پنهان میکنند.
برای شناسایی، از دستور زیر استفاده میکنیم:
dir /r C:\Windows\System32
اگر فایلهایی با نامهای عجیب همراه با :Zone.Identifier یا :hidden ببینیم، ممکن است Rootkit باشد.
2️⃣ بررسی سطح پایینتر – تحلیل کرنل
الف) بررسی Hook های SSDT و IRP
این Rootkitهای پیشرفته معمولاً System Service Descriptor Table (SSDT) را دستکاری میکنند.
برای بررسی، از ابزار GMER یا WinDbg استفاده میکنیم.
🔹 روش با GMER:
این GMER را اجرا میکنیم. اگر Rootkit SSDT را Hook کرده باشد، در تب "Rootkit/Malware" نمایش داده میشود.
🔹 روش با WinDbg:
کامپیوتر هدف را به سیستم تحلیلگر متصل میکنیم.
در WinDbg دستور زیر را اجرا میکنیم:
!chkimg -lo 50 -d nt
این دستور بررسی میکند که آیا کرنل ویندوز Patch شده است یا خیر.
ب) بررسی درایورهای کرنل مخرب
این Rootkit کرنلی معمولاً یک Driver مخرب (sys.) را بارگذاری میکند.
برای لیست کردن تمام درایورهای کرنل در حال اجرا:
Get-WmiObject Win32_SystemDriver | Select-Object Name,PathName,State
یا با استفاده از sigcheck (از Sysinternals) میتوان درایورهای فاقد امضای دیجیتال را یافت:
sigcheck -u -v
اگر درایوری بدون امضای دیجیتال مایکروسافت مشاهده کردیم، باید بیشتر بررسی شود.
3️⃣ استخراج و تحلیل Rootkit
الف) Dump گرفتن از درایور مشکوک
اگر یک درایور مشکوک پیدا کردیم، میتوانیم آن را استخراج کنیم:
copy C:\Windows\System32\drivers\suspicious.sys C:\Investigate\suspicious.sys
سپس با IDA Pro, Ghidra یا WinDbg تحلیل مهندسی معکوس انجام میدهیم.
ب) بررسی ارتباطات C2
برخی Rootkitها به سرور کنترل و فرماندهی (C2) متصل میشوند.
برای بررسی این ارتباطات از Wireshark یا Fiddler استفاده میکنیم.
در Wireshark میتوانیم با فیلتر DNS یا HTTP ترافیک مشکوک را پیدا کنیم:
dns.qry.name contains "suspicious.com"
4️⃣ حذف و پاکسازی Rootkit
الف) حذف درایور مخرب
🔹 اگر Rootkit از یک درایور کرنل استفاده میکند، نباید آن را مستقیماً حذف کنیم، بلکه باید Disable کنیم:
sc stop suspicious
sc delete suspicious
ب) ریست تنظیمات کرنل
#تجربه #درس_آموخته
#آکادمی_روزبه
#من_آموزش_میدهم
ادامه در پست بعد
✍️روزبه نوروزی
دوستان در لینکدین و اینجا از انتقال تجربه استقبال کردند. من هم دیدم چون از یک سناریویی که درگیر بودم چند وقتی گذشته؛ میتونم اونو بیان کنم.
کل تجربه رو با قدری حواشی مخلوط کردم و یک بازنویسی به زبان یک معلم انجام دادم که در زیر میبینید.
✴️ تحلیل و حذف یک Rootkit کرنل در ویندوز
📌 پس از مشاهدات اعلان رولها ( فایر شدن ) و ارتباطات مشکوک و پراسس های غیر مرتبط روی یک سرور در داشبورد اسپلانک ، آن سرور از بقیه جدا شد و تحت تحلیل قرار گرفت .
مشاهدات که پی در پی کم کم پدیدار شدند عبارتند از :
پردازشهایی که در Task Manager دیده نمیشوند.
اتصالهای شبکهای که در netstat ظاهر نمیشوند.
فایلهایی که در Explorer و CMD دیده نمیشوند.
کاربرانی که به سیستم لاگین میکنند اما در لاگها ثبت نمیشوند.
اینها نشان بزرگی برای وجود روت کیت بودند .
🔹 هدف: با توجه به اهمیت up بودن سرور و کمبود زمان Down time؛ شناسایی، تحلیل، و حذف Rootkit بدون آسیب به سیستم در دستور کار قرار گرفت .
1️⃣ کشف اولیه – بررسی نشانههای Rootkit
الف) بررسی پردازشهای پنهانشده
در ویندوز، Rootkit ممکن است با Hook کردن APIهای کاربری یا Patch کردن کرنل پردازشهای مخرب را مخفی کند.
راه بررسی این است که از WMIC یا Process Explorer استفاده کنیم:
wmic process list full | findstr /i "SuspiciousProcess"
اگر پردازش در Task Manager نباشد ولی در wmic ظاهر شود، Rootkit در حال پنهانسازی است.
🔹 ابزار Sysinternals Process Explorer را اجرا میکنیم و در قسمت Verify Signatures، پردازشهای مشکوک را بررسی میکنیم.
ب) بررسی ارتباطات شبکهای مخفی
بد افزار Rootkit ممکن است برخی از اتصالات مخرب را پنهان کند. برای بررسی دقیق، از Wireshark یا TCPView (Sysinternals) استفاده میکنیم.
اما یک روش سریعتر این است که از PowerShell استفاده کنیم:
Get-NetTCPConnection | Where-Object { $_.State -eq "Established" }
سپس این خروجی را با netstat -ano مقایسه میکنیم. اگر تفاوتی وجود داشت، نشاندهنده Hook شدن APIها توسط Rootkit است.
البته نکته مهم اینه که در اون مجموعه ZEEK هم کمک مهمی داشت تونستیم بفهمیم که چه کانکشن هایی واقعی وجود داره که روی سرور نمیبینم.
ج) بررسی فایلهای مخفیشده
برخی Rootkitها با استفاده از NTFS Alternate Data Streams (ADS) فایلهای خود را پنهان میکنند.
برای شناسایی، از دستور زیر استفاده میکنیم:
dir /r C:\Windows\System32
اگر فایلهایی با نامهای عجیب همراه با :Zone.Identifier یا :hidden ببینیم، ممکن است Rootkit باشد.
2️⃣ بررسی سطح پایینتر – تحلیل کرنل
الف) بررسی Hook های SSDT و IRP
این Rootkitهای پیشرفته معمولاً System Service Descriptor Table (SSDT) را دستکاری میکنند.
برای بررسی، از ابزار GMER یا WinDbg استفاده میکنیم.
🔹 روش با GMER:
این GMER را اجرا میکنیم. اگر Rootkit SSDT را Hook کرده باشد، در تب "Rootkit/Malware" نمایش داده میشود.
🔹 روش با WinDbg:
کامپیوتر هدف را به سیستم تحلیلگر متصل میکنیم.
در WinDbg دستور زیر را اجرا میکنیم:
!chkimg -lo 50 -d nt
این دستور بررسی میکند که آیا کرنل ویندوز Patch شده است یا خیر.
ب) بررسی درایورهای کرنل مخرب
این Rootkit کرنلی معمولاً یک Driver مخرب (sys.) را بارگذاری میکند.
برای لیست کردن تمام درایورهای کرنل در حال اجرا:
Get-WmiObject Win32_SystemDriver | Select-Object Name,PathName,State
یا با استفاده از sigcheck (از Sysinternals) میتوان درایورهای فاقد امضای دیجیتال را یافت:
sigcheck -u -v
اگر درایوری بدون امضای دیجیتال مایکروسافت مشاهده کردیم، باید بیشتر بررسی شود.
3️⃣ استخراج و تحلیل Rootkit
الف) Dump گرفتن از درایور مشکوک
اگر یک درایور مشکوک پیدا کردیم، میتوانیم آن را استخراج کنیم:
copy C:\Windows\System32\drivers\suspicious.sys C:\Investigate\suspicious.sys
سپس با IDA Pro, Ghidra یا WinDbg تحلیل مهندسی معکوس انجام میدهیم.
ب) بررسی ارتباطات C2
برخی Rootkitها به سرور کنترل و فرماندهی (C2) متصل میشوند.
برای بررسی این ارتباطات از Wireshark یا Fiddler استفاده میکنیم.
در Wireshark میتوانیم با فیلتر DNS یا HTTP ترافیک مشکوک را پیدا کنیم:
dns.qry.name contains "suspicious.com"
4️⃣ حذف و پاکسازی Rootkit
الف) حذف درایور مخرب
🔹 اگر Rootkit از یک درایور کرنل استفاده میکند، نباید آن را مستقیماً حذف کنیم، بلکه باید Disable کنیم:
sc stop suspicious
sc delete suspicious
ب) ریست تنظیمات کرنل
#تجربه #درس_آموخته
#آکادمی_روزبه
#من_آموزش_میدهم
ادامه در پست بعد
👍7❤6🙏2
آکادمی آموزش روزبه 📚
انتقال تجربه در SOC و IR ✍️روزبه نوروزی دوستان در لینکدین و اینجا از انتقال تجربه استقبال کردند. من هم دیدم چون از یک سناریویی که درگیر بودم چند وقتی گذشته؛ میتونم اونو بیان کنم. کل تجربه رو با قدری حواشی مخلوط کردم و یک بازنویسی به زبان یک معلم انجام…
ادامه از پست قبل
🔹 برای بازگردانی Hookهای کرنل و SSDT، باید از Safe Mode بوت کنیم و سپس دستور زیر را اجرا کنیم:
sfc /scannow
این کار فایلهای سیستمی تغییر دادهشده را بازیابی میکند.
ج) بلاک ماندگاری Rootkit
🔹 برخی Rootkitها در Registry خود را دوباره فعال میکنند.
با این دستور میتوان کلیدهای مشکوک را پیدا کرد:
reg query HKLM\SOFTWARE\Microsoft\Windows\CurrentVersion\Run
اگر مقدار مشکوکی پیدا کردیم، حذفش میکنیم:
reg delete HKLM\SOFTWARE\Microsoft\Windows\CurrentVersion\Run /v malicious /f
#آکادمی_روزبه
#من_آموزش_میدهم
#تجربه #درس_آموخته
🔹 برای بازگردانی Hookهای کرنل و SSDT، باید از Safe Mode بوت کنیم و سپس دستور زیر را اجرا کنیم:
sfc /scannow
این کار فایلهای سیستمی تغییر دادهشده را بازیابی میکند.
ج) بلاک ماندگاری Rootkit
🔹 برخی Rootkitها در Registry خود را دوباره فعال میکنند.
با این دستور میتوان کلیدهای مشکوک را پیدا کرد:
reg query HKLM\SOFTWARE\Microsoft\Windows\CurrentVersion\Run
اگر مقدار مشکوکی پیدا کردیم، حذفش میکنیم:
reg delete HKLM\SOFTWARE\Microsoft\Windows\CurrentVersion\Run /v malicious /f
#آکادمی_روزبه
#من_آموزش_میدهم
#تجربه #درس_آموخته
❤5🙏2
🔆آشنایی با مشاغل امنیت سایبری :vCISO
این vCISO (Virtual Chief Information Security Officer) یک متخصص ارشد و ماهر امنیت اطلاعات است که بهصورت قراردادی یا پارهوقت با سازمانها همکاری میکند تا راهبری امنیت سایبری آنها را انجام دهد. این نقش برای شرکتهایی که نیاز به راهبری امنیتی دارند اما نمیخواهند یا نمیتوانند یک CISO تماموقت استخدام کنند، ایدهآل است.
🟣وظایف vCISO
✔️تدوین و اجرای استراتژی امنیتی: طراحی و پیادهسازی برنامههای امنیتی مطابق با نیازهای سازمان.
✔️ارزیابی و مدیریت ریسک: شناسایی تهدیدات و ارائه راهکارهای کاهش ریسک.
✔️انطباق با قوانین و مقررات: اطمینان از رعایت استانداردها و الزامات قانونی مانند شاپرک ؛ NIST, ISO 27001, GDPR, PCI-DSS.
✔️نظارت بر عملیات امنیتی: تحلیل گزارشات امنیتی، بررسی رخدادها و همکاری با تیم SOC.
✔️آموزش و آگاهیبخشی: ارتقای فرهنگ امنیت سایبری در سازمان.
✔️مدیریت کشف نفوذ و پاسخ به حادثه: تدوین و اجرای برنامههای واکنش به رخدادهای امنیتی و نظارت بر آن
✔️نظارت بر تامینکنندگان و شرکای امنیتی: ارزیابی امنیتی پیمانکاران و زنجیره تأمین.
✔️ مشاوره به مدیریت ارشد: ارائه گزارشها و پیشنهادات راهبردی به مدیران سازمان.
❇️حوزه فعالیت vCISO
استارتاپهایی که قصد دارند در بازارهای تنظیمشده فعالیت کنند.
شرکتهای کوچک و متوسط (SMB) که نیروی متخصص داخلی ندارند.
سازمانهای در حال رشد که به راهبری امنیتی نیاز دارند.
شرکتهای در صنایع حساس مانند بانکداری، سلامت، فناوری و دولتی.
🔴اختیارات vCISO
تصمیمگیری در مورد سیاستهای امنیتی.
هدایت تیم امنیتی و تعیین نقشها و وظایف.
پیشنهاد خرید ابزارها و راهکارهای امنیتی.
تعامل مستقیم با مدیرعامل (CEO)، مدیر فناوری (CTO) و هیئتمدیره.
همکاری با تیم حقوقی و انطباق برای مدیریت ریسکهای قانونی.
به دلیل ماهیت قراردادی این نقش، اختیارات vCISO معمولاً محدودتر از یک CISO تماموقت است و نیاز به همکاری نزدیک با مدیران سازمان دارد.
#آکادمی_روزبه
این vCISO (Virtual Chief Information Security Officer) یک متخصص ارشد و ماهر امنیت اطلاعات است که بهصورت قراردادی یا پارهوقت با سازمانها همکاری میکند تا راهبری امنیت سایبری آنها را انجام دهد. این نقش برای شرکتهایی که نیاز به راهبری امنیتی دارند اما نمیخواهند یا نمیتوانند یک CISO تماموقت استخدام کنند، ایدهآل است.
🟣وظایف vCISO
✔️تدوین و اجرای استراتژی امنیتی: طراحی و پیادهسازی برنامههای امنیتی مطابق با نیازهای سازمان.
✔️ارزیابی و مدیریت ریسک: شناسایی تهدیدات و ارائه راهکارهای کاهش ریسک.
✔️انطباق با قوانین و مقررات: اطمینان از رعایت استانداردها و الزامات قانونی مانند شاپرک ؛ NIST, ISO 27001, GDPR, PCI-DSS.
✔️نظارت بر عملیات امنیتی: تحلیل گزارشات امنیتی، بررسی رخدادها و همکاری با تیم SOC.
✔️آموزش و آگاهیبخشی: ارتقای فرهنگ امنیت سایبری در سازمان.
✔️مدیریت کشف نفوذ و پاسخ به حادثه: تدوین و اجرای برنامههای واکنش به رخدادهای امنیتی و نظارت بر آن
✔️نظارت بر تامینکنندگان و شرکای امنیتی: ارزیابی امنیتی پیمانکاران و زنجیره تأمین.
✔️ مشاوره به مدیریت ارشد: ارائه گزارشها و پیشنهادات راهبردی به مدیران سازمان.
❇️حوزه فعالیت vCISO
استارتاپهایی که قصد دارند در بازارهای تنظیمشده فعالیت کنند.
شرکتهای کوچک و متوسط (SMB) که نیروی متخصص داخلی ندارند.
سازمانهای در حال رشد که به راهبری امنیتی نیاز دارند.
شرکتهای در صنایع حساس مانند بانکداری، سلامت، فناوری و دولتی.
🔴اختیارات vCISO
تصمیمگیری در مورد سیاستهای امنیتی.
هدایت تیم امنیتی و تعیین نقشها و وظایف.
پیشنهاد خرید ابزارها و راهکارهای امنیتی.
تعامل مستقیم با مدیرعامل (CEO)، مدیر فناوری (CTO) و هیئتمدیره.
همکاری با تیم حقوقی و انطباق برای مدیریت ریسکهای قانونی.
به دلیل ماهیت قراردادی این نقش، اختیارات vCISO معمولاً محدودتر از یک CISO تماموقت است و نیاز به همکاری نزدیک با مدیران سازمان دارد.
#آکادمی_روزبه
👍3🔥1
مقالهای با عنوان «حالت مخفی: دامپ LSASS بدون ردپا»
این مقاله به تکنیکی پیشرفته برای استخراج حافظه فرآیند LSASS در سیستمهای ویندوزی میپردازد که به مهاجمان امکان میدهد اطلاعات حساس مانند رمزهای عبور و هشها را بهدست آورند، بدون اینکه توسط راهحلهای امنیتی شناسایی شوند.
در این مقاله، نویسنده با استفاده از PowerShell و تکنیکهای خاصی مانند بازتاب حافظه (Memory Reflection)، دسترسی حداقلی به فرآیندها و رمزنگاری دادهها، روشی را برای استخراج حافظه LSASS معرفی میکند. این روش شامل مراحل زیر است:
شناسایی پراسس LSASS:
با استفاده از دستورات PowerShell، فرآیند LSASS بهطور مخفیانه شناسایی میشود.
دسترسی با حداقل مجوزها:
بهجای استفاده از دسترسیهای کامل که ممکن است توسط نرمافزارهای امنیتی شناسایی شود، از مجوزهای محدود برای دسترسی به حافظه فرآیند استفاده میشود.
دامپ حافظه با استفاده از بازتاب درونحافظهای:
با تعریف پویا و درونحافظهای توابع API مورد نیاز، از شناسایی توسط ابزارهای امنیتی جلوگیری میشود.
استخراج و رمزنگاری فایل دامپ:
دادههای استخراجشده قبل از ذخیرهسازی، بهصورت Base64 رمزنگاری میشوند تا از شناسایی توسط نرمافزارهای امنیتی جلوگیری شود.
فشردهسازی، انتقال و حذف آثار:
فایل رمزنگاریشده فشرده شده و پس از انتقال، تمامی ردپاها از سیستم حذف میشوند.
این تکنیکها به مهاجمان امکان میدهند تا بدون شناسایی توسط نرمافزارهای امنیتی، به اطلاعات حساس سیستم دسترسی پیدا کنند.
برای مطالعه دقیقتر و مشاهده جزئیات فنی، میتوانید به مقاله اصلی در لینک زیر مراجعه کنید:
#آکادمی_روزبه
https://mrvar0x.com/2025/02/16/stealth-mode-dumping-lsass-without-a-trace/
این مقاله به تکنیکی پیشرفته برای استخراج حافظه فرآیند LSASS در سیستمهای ویندوزی میپردازد که به مهاجمان امکان میدهد اطلاعات حساس مانند رمزهای عبور و هشها را بهدست آورند، بدون اینکه توسط راهحلهای امنیتی شناسایی شوند.
در این مقاله، نویسنده با استفاده از PowerShell و تکنیکهای خاصی مانند بازتاب حافظه (Memory Reflection)، دسترسی حداقلی به فرآیندها و رمزنگاری دادهها، روشی را برای استخراج حافظه LSASS معرفی میکند. این روش شامل مراحل زیر است:
شناسایی پراسس LSASS:
با استفاده از دستورات PowerShell، فرآیند LSASS بهطور مخفیانه شناسایی میشود.
دسترسی با حداقل مجوزها:
بهجای استفاده از دسترسیهای کامل که ممکن است توسط نرمافزارهای امنیتی شناسایی شود، از مجوزهای محدود برای دسترسی به حافظه فرآیند استفاده میشود.
دامپ حافظه با استفاده از بازتاب درونحافظهای:
با تعریف پویا و درونحافظهای توابع API مورد نیاز، از شناسایی توسط ابزارهای امنیتی جلوگیری میشود.
استخراج و رمزنگاری فایل دامپ:
دادههای استخراجشده قبل از ذخیرهسازی، بهصورت Base64 رمزنگاری میشوند تا از شناسایی توسط نرمافزارهای امنیتی جلوگیری شود.
فشردهسازی، انتقال و حذف آثار:
فایل رمزنگاریشده فشرده شده و پس از انتقال، تمامی ردپاها از سیستم حذف میشوند.
این تکنیکها به مهاجمان امکان میدهند تا بدون شناسایی توسط نرمافزارهای امنیتی، به اطلاعات حساس سیستم دسترسی پیدا کنند.
برای مطالعه دقیقتر و مشاهده جزئیات فنی، میتوانید به مقاله اصلی در لینک زیر مراجعه کنید:
#آکادمی_روزبه
https://mrvar0x.com/2025/02/16/stealth-mode-dumping-lsass-without-a-trace/
👍3👌3
یه متن خوب برای علاقمندان به بررسی پراسس های لینوکس
#آکادمی_روزبه
https://medium.com/@iramjack8/hunting-for-processes-53c541d8cfc2
#آکادمی_روزبه
https://medium.com/@iramjack8/hunting-for-processes-53c541d8cfc2
Medium
Hunting for Processes
Linux Live Analysis
👍2
یه شرح خوب از حملات در حوزه کربروس و روشهای مقابله
#آکادمی_روزبه
https://medium.com/@noah_h/offensive-kerberos-techniques-for-detection-engineering-16a81483f676
#آکادمی_روزبه
https://medium.com/@noah_h/offensive-kerberos-techniques-for-detection-engineering-16a81483f676
Medium
Offensive Kerberos Techniques for Detection Engineering
Hunting for Kerberoasting, forged tickets, delegation-based attacks and more.
🔥4
🔴 کشف در ترافیک رمز شده
✍️روزبه نوروزی
بله ترافیک های بسیاری امروزه رمز شده است
ولی دست شما در تحلیل کامل بسته نیست : JA3 و JA4
این JA3 چیست و چگونه محاسبه میشود؟
عامل JA3 یک تکنیک fingerprinting برای شناسایی کلاینتهای TLS است که توسط John Althouse توسعه داده شده است. این روش برای شناسایی کلاینتهای مختلف بر اساس پارامترهای TLS در Client Hello مورد استفاده قرار میگیرد.
نحوه محاسبه JA3 Hash
این JA3 با استفاده از ترکیب مقادیر مشخصی از بسته Client Hello در TLS یک رشته متنی تولید کرده و سپس از آن یک MD5 Hash ایجاد میکند. این پارامترها عبارتند از:
Version → نسخهی TLS
Accepted Cipher Suites → لیست الگوریتمهای رمزنگاری
List of Extensions → لیست افزونههای TLS
Elliptic Curves → منحنیهای بیضوی قابل قبول
Elliptic Curve Point Formats → فرمتهای نقطهای منحنی بیضوی
پس از استخراج این مقادیر، آنها به صورت عددی (بدون فاصله) در قالب یک رشته به هم متصل شده و از آن MD5 Hash گرفته میشود.
مثال رشتهی JA3:
771,49200-49199-49192-49191-52393,23-65281-10-35,29-23-24,0
MD5 Hash → 4d7a28e74224b2e9b22c206f2d7cbbeb
مزایای JA3
شناسایی بدافزارها و ابزارهای مخرب
تشخیص ترافیک رمزگذاریشده حتی بدون رمزگشایی
مانیتورینگ ارتباطات مشکوک در شبکه
حالا JA4 چیست و چه تفاوتی با JA3 دارد؟
اینJA4 نسخهی بهبودیافتهی JA3 است که نهتنها Client Hello بلکه Server Hello را نیز بررسی میکند.
مزایای JA4 نسبت به JA3:
دقت بیشتر در شناسایی کلاینتهای واقعی و بدافزارها
توانایی fingerprinting سرورها
امکان شناسایی TLS Encrypted Client Hello (ECH)
اگر به تحلیل ترافیک رمزگذاریشده و امنیت شبکه علاقه دارید، بهتر است در کنار JA3، از JA4 نیز استفاده کنید.
کاربرد JA3 و JA4 در کشف نفوذ و حملات سایبری
این JA3 و JA4 بهعنوان TLS Fingerprinting به شناسایی الگوهای خاص در ترافیک رمزگذاریشده کمک میکنند. این روشها بدون نیاز به رمزگشایی (TLS Decryption)، کلاینتها و سرورها را بر اساس ویژگیهای ارتباطی شناسایی کرده و در کشف انواع تهدیدات مؤثر هستند.
حملات و نفوذهایی که JA3 و JA4 قادر به شناسایی آنها هستند
1. بدافزارهایی که از TLS برای ارتباط با C2 استفاده میکنند
JA3 میتواند برای شناسایی بدافزارهایی که از ارتباطات رمزگذاریشده استفاده میکنند، مفید باشد. برخی از مهمترین بدافزارهایی که با JA3 شناسایی شدهاند عبارتاند از:
✅ TrickBot
✅ Emotet
✅ Ursnif (Gozi)
✅ Cobalt Strike
✅ Metasploit Meterpreter
روش کشف:
هر بدافزار معمولاً هنگام برقراری ارتباط با سرور C2، یک JA3 Hash ثابت دارد.
این مقدار میتواند با Threat Intelligence Feeds مقایسه شود تا ارتباطات مشکوک شناسایی شوند.
2. حملات MITM (Man-in-the-Middle)
✅ JA4S میتواند سرورهای مخرب را که در حملات MITM استفاده میشوند، شناسایی کند.
حملاتی که در آنها SSL Proxyهای مخرب برای رهگیری ترافیک رمزگذاریشده استفاده میشوند.
ابزارهایی مانند Bettercap، mitmproxy و Burp Suite که در تحلیل و دستکاری TLS مورد استفاده قرار میگیرند، JA3/JA4 خاصی دارند که قابل شناسایی است.
3. دور زدن مکانیزمهای امنیتی (Evasion Techniques)
✅ شناسایی ابزارهایی که برای دور زدن IDS/IPS یا فایروال استفاده میشوند، مانند:
Tor Browser
Proxies و VPNهای خاص
Malicious TLS Libraries (مانند OpenSSLهای تغییر یافته در بدافزارها)
JA3 میتواند تشخیص دهد که یک ارتباط واقعاً از یک مرورگر عادی مانند Chrome یا Firefox آمده است یا اینکه از طریق ابزارهای تغییر مسیر مثل Proxies و VPNهای ناشناسکننده هدایت شده است.
4. Exploits و حملات RCE در سرورهای TLS
✅ JA4S میتواند رفتار سرورهای آسیبپذیر را شناسایی کند.
برخی سرورهای مخرب یا آلوده به بکدور، JA4 مشخصی دارند که میتواند آنها را از سرورهای عادی متمایز کند.
در حملاتی مانند Heartbleed یا RCEهای جدید در OpenSSL، سرور آلوده معمولاً یک پاسخ خاص در Server Hello دارد که با JA4 قابل شناسایی است.
5. حملات با استفاده از ابزارهای تست نفوذ
✅ بسیاری از ابزارهای تست نفوذ (Red Team و هکرها) دارای JA3 ثابت هستند، از جمله:
Cobalt Strike
Metasploit Framework
Empire
Meterpreter
✅ برخی سرورهای مخرب مانند Cobalt Strike Team Server نیز JA4S ثابت دارند که توسط تیمهای امنیتی شناسایی میشود.
محدودیتهای JA3 و JA4
#من_آموزش_میدهم
#آکادمی_روزبه
✍️روزبه نوروزی
بله ترافیک های بسیاری امروزه رمز شده است
ولی دست شما در تحلیل کامل بسته نیست : JA3 و JA4
این JA3 چیست و چگونه محاسبه میشود؟
عامل JA3 یک تکنیک fingerprinting برای شناسایی کلاینتهای TLS است که توسط John Althouse توسعه داده شده است. این روش برای شناسایی کلاینتهای مختلف بر اساس پارامترهای TLS در Client Hello مورد استفاده قرار میگیرد.
نحوه محاسبه JA3 Hash
این JA3 با استفاده از ترکیب مقادیر مشخصی از بسته Client Hello در TLS یک رشته متنی تولید کرده و سپس از آن یک MD5 Hash ایجاد میکند. این پارامترها عبارتند از:
Version → نسخهی TLS
Accepted Cipher Suites → لیست الگوریتمهای رمزنگاری
List of Extensions → لیست افزونههای TLS
Elliptic Curves → منحنیهای بیضوی قابل قبول
Elliptic Curve Point Formats → فرمتهای نقطهای منحنی بیضوی
پس از استخراج این مقادیر، آنها به صورت عددی (بدون فاصله) در قالب یک رشته به هم متصل شده و از آن MD5 Hash گرفته میشود.
مثال رشتهی JA3:
771,49200-49199-49192-49191-52393,23-65281-10-35,29-23-24,0
MD5 Hash → 4d7a28e74224b2e9b22c206f2d7cbbeb
مزایای JA3
شناسایی بدافزارها و ابزارهای مخرب
تشخیص ترافیک رمزگذاریشده حتی بدون رمزگشایی
مانیتورینگ ارتباطات مشکوک در شبکه
حالا JA4 چیست و چه تفاوتی با JA3 دارد؟
اینJA4 نسخهی بهبودیافتهی JA3 است که نهتنها Client Hello بلکه Server Hello را نیز بررسی میکند.
مزایای JA4 نسبت به JA3:
دقت بیشتر در شناسایی کلاینتهای واقعی و بدافزارها
توانایی fingerprinting سرورها
امکان شناسایی TLS Encrypted Client Hello (ECH)
اگر به تحلیل ترافیک رمزگذاریشده و امنیت شبکه علاقه دارید، بهتر است در کنار JA3، از JA4 نیز استفاده کنید.
کاربرد JA3 و JA4 در کشف نفوذ و حملات سایبری
این JA3 و JA4 بهعنوان TLS Fingerprinting به شناسایی الگوهای خاص در ترافیک رمزگذاریشده کمک میکنند. این روشها بدون نیاز به رمزگشایی (TLS Decryption)، کلاینتها و سرورها را بر اساس ویژگیهای ارتباطی شناسایی کرده و در کشف انواع تهدیدات مؤثر هستند.
حملات و نفوذهایی که JA3 و JA4 قادر به شناسایی آنها هستند
1. بدافزارهایی که از TLS برای ارتباط با C2 استفاده میکنند
JA3 میتواند برای شناسایی بدافزارهایی که از ارتباطات رمزگذاریشده استفاده میکنند، مفید باشد. برخی از مهمترین بدافزارهایی که با JA3 شناسایی شدهاند عبارتاند از:
✅ TrickBot
✅ Emotet
✅ Ursnif (Gozi)
✅ Cobalt Strike
✅ Metasploit Meterpreter
روش کشف:
هر بدافزار معمولاً هنگام برقراری ارتباط با سرور C2، یک JA3 Hash ثابت دارد.
این مقدار میتواند با Threat Intelligence Feeds مقایسه شود تا ارتباطات مشکوک شناسایی شوند.
2. حملات MITM (Man-in-the-Middle)
✅ JA4S میتواند سرورهای مخرب را که در حملات MITM استفاده میشوند، شناسایی کند.
حملاتی که در آنها SSL Proxyهای مخرب برای رهگیری ترافیک رمزگذاریشده استفاده میشوند.
ابزارهایی مانند Bettercap، mitmproxy و Burp Suite که در تحلیل و دستکاری TLS مورد استفاده قرار میگیرند، JA3/JA4 خاصی دارند که قابل شناسایی است.
3. دور زدن مکانیزمهای امنیتی (Evasion Techniques)
✅ شناسایی ابزارهایی که برای دور زدن IDS/IPS یا فایروال استفاده میشوند، مانند:
Tor Browser
Proxies و VPNهای خاص
Malicious TLS Libraries (مانند OpenSSLهای تغییر یافته در بدافزارها)
JA3 میتواند تشخیص دهد که یک ارتباط واقعاً از یک مرورگر عادی مانند Chrome یا Firefox آمده است یا اینکه از طریق ابزارهای تغییر مسیر مثل Proxies و VPNهای ناشناسکننده هدایت شده است.
4. Exploits و حملات RCE در سرورهای TLS
✅ JA4S میتواند رفتار سرورهای آسیبپذیر را شناسایی کند.
برخی سرورهای مخرب یا آلوده به بکدور، JA4 مشخصی دارند که میتواند آنها را از سرورهای عادی متمایز کند.
در حملاتی مانند Heartbleed یا RCEهای جدید در OpenSSL، سرور آلوده معمولاً یک پاسخ خاص در Server Hello دارد که با JA4 قابل شناسایی است.
5. حملات با استفاده از ابزارهای تست نفوذ
✅ بسیاری از ابزارهای تست نفوذ (Red Team و هکرها) دارای JA3 ثابت هستند، از جمله:
Cobalt Strike
Metasploit Framework
Empire
Meterpreter
✅ برخی سرورهای مخرب مانند Cobalt Strike Team Server نیز JA4S ثابت دارند که توسط تیمهای امنیتی شناسایی میشود.
محدودیتهای JA3 و JA4
#من_آموزش_میدهم
#آکادمی_روزبه
👍4🔥2
ادامه از پست قبل
⛔ در حملات TLS 1.3 با Encrypted Client Hello (ECH) → JA3 نمیتواند fingerprinting انجام دهد.
⛔ بدافزارهای جدید میتوانند JA3 خود را تغییر دهند (JA3 Evasion).
⛔ اگر سرورها JA3 را تغییر دهند، روش شناسایی آن سختتر میشود.
✅ راهکار: استفاده از JA4 (شناسایی همزمان Client و Server) و ترکیب آن با تحلیلهای دیگر مانند رفتارشناسی و Threat Intelligence Feeds.
بنابراین JA3 برای شناسایی کلاینتهای مخرب و JA4 برای بررسی کلاینت و سرور بهصورت همزمان کاربرد دارد.
#آکادمی_روزبه
#من_آموزش_میدهم
⛔ در حملات TLS 1.3 با Encrypted Client Hello (ECH) → JA3 نمیتواند fingerprinting انجام دهد.
⛔ بدافزارهای جدید میتوانند JA3 خود را تغییر دهند (JA3 Evasion).
⛔ اگر سرورها JA3 را تغییر دهند، روش شناسایی آن سختتر میشود.
✅ راهکار: استفاده از JA4 (شناسایی همزمان Client و Server) و ترکیب آن با تحلیلهای دیگر مانند رفتارشناسی و Threat Intelligence Feeds.
بنابراین JA3 برای شناسایی کلاینتهای مخرب و JA4 برای بررسی کلاینت و سرور بهصورت همزمان کاربرد دارد.
#آکادمی_روزبه
#من_آموزش_میدهم
👍4🔥1
این مقاله امروزه که براتون انتخاب کردم
#آکادمی_روزبه
https://hunt.io/blog/golang-beacons-vs-code-tunnels-tracking-cobalt-strike
#آکادمی_روزبه
https://hunt.io/blog/golang-beacons-vs-code-tunnels-tracking-cobalt-strike
hunt.io
Golang Beacons and VS Code Tunnels: Tracking a Cobalt Strike Server Leveraging Trusted Infrastructure
Discover how a Cobalt Strike server with a TLS certificate and watermark used a Golang beacon to communicate via Visual Studio Code tunnels. Learn more.
👍3
💫 مقایسه TLSH و ssdeep در تحلیل بدافزار و فیشینگ
✍️روزبه نوروزی
در دنیای امنیت سایبری، شناسایی فایلهای مخرب و حملات فیشینگ یکی از چالشهای مهم است. روشهای سنتی هشینگ مانند MD5 و SHA-256 برای شناسایی دقیق یک فایل خاص مفید هستند، اما در برابر تغییرات جزئی در فایلها کارایی ندارند یعنی هکر با تغییر کوچکی در بدافزار ؛ امضا (هش)آنرا تغییر داده و ما را دور میزند. .
برای حل این مشکل، روشهای هشینگ فازی مانند TLSH (Trend Locality Sensitive Hashing) و ssdeep توسعه یافتهاند. این روشها امکان شناسایی شباهتهای ساختاری بین فایلها را فراهم میکنند، حتی اگر تغییراتی در محتوا رخ داده باشد. در این اینجا ، به بررسی این دو روش و کاربردهای آنها در امنیت سایبری میپردازم.
🟧معرفی ssdeep
این ssdeep یک ابزار هشینگ فازی است که از Context Triggered Piecewise Hashing (CTPH) استفاده میکند. این روش فایل را به بلوکهای کوچکتر تقسیم کرده و برای هر بلوک یک مقدار هش تولید میکند. سپس این هشها ترکیب شده و مقدار نهایی هشینگ فازی را تشکیل میدهند. تفاوت اصلی ssdeep با روشهای هشینگ سنتی این است که امکان مقایسه درصدی دو فایل را فراهم میکند، به طوری که فایلهایی که تغییرات اندکی دارند، همچنان به عنوان فایلهای مشابه شناخته میشوند.
✔️از جمله کاربردهای ssdeep میتوان به موارد زیر اشاره کرد:
تحلیل بدافزارها: شناسایی نمونههای مشابه از بدافزارها، حتی اگر تغییرات جزئی در آنها ایجاد شده باشد.
تشخیص فیشینگ: مقایسه محتوای HTML سایتهای فیشینگ برای یافتن الگوهای مشابه.
مدیریت دادههای بزرگ: شناسایی فایلهای مشابه در حجمهای عظیم داده.
با این حال، ssdeep دارای محدودیتهایی نیز هست. برای مثال، اگر تغییرات در فایل به صورت پراکنده باشد، دقت شناسایی کاهش مییابد.
🔴معرفی TLSH
این TLSH یک روش هشینگ فازی توسعهیافته توسط Trend Micro است که بر خلاف ssdeep، از رویکرد متفاوتی برای شناسایی شباهتها استفاده میکند. TLSH ساختار کلی فایل را با استفاده از تجزیه و تحلیل الگوی بایتی آن بررسی کرده و یک هش خاص تولید میکند. این هشها قابلیت مقایسه عددی دارند، به طوری که امتیازات پایینتر نشاندهنده شباهت بیشتر بین فایلها هستند.
❇️مزایای TLSH عبارتند از:
دقت بالاتر در مقایسه فایلها: برخلاف ssdeep، این روش به تغییرات جزئی حساسیت کمتری دارد.
کارایی بالا در تحلیل بدافزار: قابلیت تشخیص نمونههای تغییر یافته از یک بدافزار با دقت بیشتر.
عدم نیاز به اندازه ثابت فایلها: برخلاف ssdeep که به فایلهای بزرگ وابسته است، TLSH روی فایلهای کوچکتر نیز موثر عمل میکند.
یکی از نقاط ضعف TLSH این است که به اندازه ssdeep در تشخیص تغییرات محلی حساس نیست، زیرا تمرکز آن بر ساختار کلی فایل است.
👌به طور کلی، اگر نیاز به تشخیص تغییرات جزئی در یک فایل باشد، ssdeep انتخاب بهتری است. اما اگر هدف، تحلیل ساختاری کلی فایل باشد، TLSH عملکرد بهتری دارد.
هشینگ فازی یک ابزار قدرتمند برای شناسایی بدافزارها و حملات فیشینگ است. هر دو روش ssdeep و TLSH در امنیت سایبری کاربردهای فراوانی دارند، اما بسته به نیاز، یکی ممکن است بر دیگری برتری داشته باشد. ترکیب این دو روش میتواند به تحلیلگران امنیتی کمک کند تا تهدیدات جدید را سریعتر و دقیقتر شناسایی کنند.
#من_آموزش_میدهم
#آکادمی_روزبه
✍️روزبه نوروزی
در دنیای امنیت سایبری، شناسایی فایلهای مخرب و حملات فیشینگ یکی از چالشهای مهم است. روشهای سنتی هشینگ مانند MD5 و SHA-256 برای شناسایی دقیق یک فایل خاص مفید هستند، اما در برابر تغییرات جزئی در فایلها کارایی ندارند یعنی هکر با تغییر کوچکی در بدافزار ؛ امضا (هش)آنرا تغییر داده و ما را دور میزند. .
برای حل این مشکل، روشهای هشینگ فازی مانند TLSH (Trend Locality Sensitive Hashing) و ssdeep توسعه یافتهاند. این روشها امکان شناسایی شباهتهای ساختاری بین فایلها را فراهم میکنند، حتی اگر تغییراتی در محتوا رخ داده باشد. در این اینجا ، به بررسی این دو روش و کاربردهای آنها در امنیت سایبری میپردازم.
🟧معرفی ssdeep
این ssdeep یک ابزار هشینگ فازی است که از Context Triggered Piecewise Hashing (CTPH) استفاده میکند. این روش فایل را به بلوکهای کوچکتر تقسیم کرده و برای هر بلوک یک مقدار هش تولید میکند. سپس این هشها ترکیب شده و مقدار نهایی هشینگ فازی را تشکیل میدهند. تفاوت اصلی ssdeep با روشهای هشینگ سنتی این است که امکان مقایسه درصدی دو فایل را فراهم میکند، به طوری که فایلهایی که تغییرات اندکی دارند، همچنان به عنوان فایلهای مشابه شناخته میشوند.
✔️از جمله کاربردهای ssdeep میتوان به موارد زیر اشاره کرد:
تحلیل بدافزارها: شناسایی نمونههای مشابه از بدافزارها، حتی اگر تغییرات جزئی در آنها ایجاد شده باشد.
تشخیص فیشینگ: مقایسه محتوای HTML سایتهای فیشینگ برای یافتن الگوهای مشابه.
مدیریت دادههای بزرگ: شناسایی فایلهای مشابه در حجمهای عظیم داده.
با این حال، ssdeep دارای محدودیتهایی نیز هست. برای مثال، اگر تغییرات در فایل به صورت پراکنده باشد، دقت شناسایی کاهش مییابد.
🔴معرفی TLSH
این TLSH یک روش هشینگ فازی توسعهیافته توسط Trend Micro است که بر خلاف ssdeep، از رویکرد متفاوتی برای شناسایی شباهتها استفاده میکند. TLSH ساختار کلی فایل را با استفاده از تجزیه و تحلیل الگوی بایتی آن بررسی کرده و یک هش خاص تولید میکند. این هشها قابلیت مقایسه عددی دارند، به طوری که امتیازات پایینتر نشاندهنده شباهت بیشتر بین فایلها هستند.
❇️مزایای TLSH عبارتند از:
دقت بالاتر در مقایسه فایلها: برخلاف ssdeep، این روش به تغییرات جزئی حساسیت کمتری دارد.
کارایی بالا در تحلیل بدافزار: قابلیت تشخیص نمونههای تغییر یافته از یک بدافزار با دقت بیشتر.
عدم نیاز به اندازه ثابت فایلها: برخلاف ssdeep که به فایلهای بزرگ وابسته است، TLSH روی فایلهای کوچکتر نیز موثر عمل میکند.
یکی از نقاط ضعف TLSH این است که به اندازه ssdeep در تشخیص تغییرات محلی حساس نیست، زیرا تمرکز آن بر ساختار کلی فایل است.
👌به طور کلی، اگر نیاز به تشخیص تغییرات جزئی در یک فایل باشد، ssdeep انتخاب بهتری است. اما اگر هدف، تحلیل ساختاری کلی فایل باشد، TLSH عملکرد بهتری دارد.
هشینگ فازی یک ابزار قدرتمند برای شناسایی بدافزارها و حملات فیشینگ است. هر دو روش ssdeep و TLSH در امنیت سایبری کاربردهای فراوانی دارند، اما بسته به نیاز، یکی ممکن است بر دیگری برتری داشته باشد. ترکیب این دو روش میتواند به تحلیلگران امنیتی کمک کند تا تهدیدات جدید را سریعتر و دقیقتر شناسایی کنند.
#من_آموزش_میدهم
#آکادمی_روزبه
❤3👍1
جلوگیری از شناسایی VM هنگام تحلیل بدافزار
✍️روزبه نوروزی
بدافزار ها را معمولا در یک vm اجرا میکنیم تا رفتار آنرا ببینیم. بدافزارها هم تلاش دارند محیط vm را شناسایی کنند و اقدامات لازم را انجام دهند.
حال ما چه میکنیم ؟
🔆بطور خلاصه یکسری ایده :
✔️استفاده از دیباگر (x64dbg) و تغییر مقدار APIها در حافظه.
✔️ویرایش رجیستری برای حذف نامهای مربوط به VMware و VirtualBox.
✔️انجام Hook کردن APIها در سطح کد (DLL Injection) برای تغییر مقدار برگشتی.
✔️استفاده از ابزارهای آماده مثل ScyllaHide برای مخفی کردن محیط مجازی.
🔴شرح موضوع
برای جلوگیری از شناسایی محیط مجازی، میتوانیم APIهایی که بدافزار برای تشخیص VM استفاده میکند را Patch کنیم یا مقادیر جعلی برگردانیم. این کار را میتوان از طریق Hook کردن APIها، ویرایش کد اسمبلی، یا استفاده از ابزارهای آماده انجام داد.
روش ۱: Hook کردن APIها در دیباگر (x64dbg / OllyDbg)
مثال: Patch کردن NtQuerySystemInformation
یکی از رایجترین روشهای تشخیص VM، استفاده از NtQuerySystemInformation است. این API مقدار SystemFirmwareTableInformation یا SystemManufacturer را بررسی میکند. اگر مقادیر مربوط به VMware یا VirtualBox باشند، بدافزار متوجه محیط مجازی خواهد شد.
مراحل Patch کردن در دیباگر (x64dbg)
بدافزار را در x64dbg اجرا کنید.
به منوی Symbols بروید و ntdll.dll را انتخاب کنید.
تابع NtQuerySystemInformation را پیدا کنید.
روی آن Breakpoint (BP) بگذارید تا ببینید چه مقدار برمیگرداند.
مقدار برگشتی را با مقدار یک سیستم فیزیکی جایگزین کنید. (مثلاً "DELL" یا "HP" برای سازندهی سیستم)
در اسمبلی، مقدار EAX را به عدد 0 تغییر دهید (که یعنی تابع موفق اجرا شده ولی مقدار VM را برنمیگرداند).
mov eax, 0
ret
روش ۲: تغییر مقادیر رجیستری برای جلوگیری از تشخیص VM
اگر بدافزار مستقیماً از رجیستری ویندوز مقدار را میخواند، میتوانیم آن را تغییر دهیم. برخی کلیدهای مهم:
ویرایش مقدار SystemBiosVersion در رجیستری
regedit را باز کنید.
به مسیر زیر بروید:
HKEY_LOCAL_MACHINE\HARDWARE\DESCRIPTION\System
مقدار SystemBiosVersion را تغییر دهید و مثلاً "DELL BIOS" را جایگزین کنید.
حذف اطلاعات مربوط به VMware از رجیستری
به مسیرهای زیر بروید و مقدار آنها را پاک کنید:
HKEY_LOCAL_MACHINE\SOFTWARE\VMware, Inc.
HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\VBoxGuest
روش ۳: Hook کردن APIها در سطح کد (با DLL Injection)
✴️میتوان با نوشتن یک DLL و تزریق آن در پروسهی بدافزار، مقدار خروجی API را تغییر داد.
مثال: Hook کردن CPUID برای جلوگیری از شناسایی VMware
۱. کد C++ برای تغییر خروجی CPUID
#include <windows.h>
#include <detours.h>
#include <intrin.h>
typedef void (WINAPI* CPUID_t)(int[4], int);
CPUID_t Real_CPUID = (CPUID_t)__cpuid;
void WINAPI Fake_CPUID(int CPUInfo[4], int InfoType) {
Real_CPUID(CPUInfo, InfoType);
if (InfoType == 0) {
// تغییر مقدار برگشتی برای جلوگیری از شناسایی VM
CPUInfo[1] = 'Genu'; // تغییر به پردازنده Intel
CPUInfo[2] = 'ineI';
CPUInfo[3] = 'ntel';
}
}
void HookAPI() {
DetourTransactionBegin();
DetourUpdateThread(GetCurrentThread());
DetourAttach(&(PVOID&)Real_CPUID, Fake_CPUID);
DetourTransactionCommit();
}
۲. کامپایل کد و تزریق آن در بدافزار
این کد مقدار CPUID را تغییر میدهد تا سیستم بهعنوان Intel واقعی شناسایی شود و نه ماشین مجازی.
برای اجرای آن، باید از DLL Injection استفاده کنید.
روش ۴: استفاده از ابزارهای آماده برای مخفی کردن VM
ScyllaHide (برای دور زدن Anti-Debug و VM Detection)
این ScyllaHide یک پلاگین برای x64dbg است که بهصورت خودکار مقدار APIها را تغییر میدهد تا سیستم، فیزیکی به نظر برسد.
مراحل استفاده از ScyllaHide
پلاگین ScyllaHide را در x64dbg نصب کنید.
به مسیر Plugins > ScyllaHide بروید.
گزینههای VM Detection Bypass و Anti-Debug Protection را فعال کنید.
اجرای بدافزار را تست کنید تا ببینید آیا همچنان محیط را به عنوان VM تشخیص میدهد یا نه.
#آکادمی_روزبه
#من_آموزش_میدهم
🟣 برای پیوستن به گروه مطالعه کتاب Evasive Malware در نوروز ۱۴۰۴ به لینک زیر مراجعه کنید
https://t.me/roozbeh_learning/15130
✍️روزبه نوروزی
بدافزار ها را معمولا در یک vm اجرا میکنیم تا رفتار آنرا ببینیم. بدافزارها هم تلاش دارند محیط vm را شناسایی کنند و اقدامات لازم را انجام دهند.
حال ما چه میکنیم ؟
🔆بطور خلاصه یکسری ایده :
✔️استفاده از دیباگر (x64dbg) و تغییر مقدار APIها در حافظه.
✔️ویرایش رجیستری برای حذف نامهای مربوط به VMware و VirtualBox.
✔️انجام Hook کردن APIها در سطح کد (DLL Injection) برای تغییر مقدار برگشتی.
✔️استفاده از ابزارهای آماده مثل ScyllaHide برای مخفی کردن محیط مجازی.
🔴شرح موضوع
برای جلوگیری از شناسایی محیط مجازی، میتوانیم APIهایی که بدافزار برای تشخیص VM استفاده میکند را Patch کنیم یا مقادیر جعلی برگردانیم. این کار را میتوان از طریق Hook کردن APIها، ویرایش کد اسمبلی، یا استفاده از ابزارهای آماده انجام داد.
روش ۱: Hook کردن APIها در دیباگر (x64dbg / OllyDbg)
مثال: Patch کردن NtQuerySystemInformation
یکی از رایجترین روشهای تشخیص VM، استفاده از NtQuerySystemInformation است. این API مقدار SystemFirmwareTableInformation یا SystemManufacturer را بررسی میکند. اگر مقادیر مربوط به VMware یا VirtualBox باشند، بدافزار متوجه محیط مجازی خواهد شد.
مراحل Patch کردن در دیباگر (x64dbg)
بدافزار را در x64dbg اجرا کنید.
به منوی Symbols بروید و ntdll.dll را انتخاب کنید.
تابع NtQuerySystemInformation را پیدا کنید.
روی آن Breakpoint (BP) بگذارید تا ببینید چه مقدار برمیگرداند.
مقدار برگشتی را با مقدار یک سیستم فیزیکی جایگزین کنید. (مثلاً "DELL" یا "HP" برای سازندهی سیستم)
در اسمبلی، مقدار EAX را به عدد 0 تغییر دهید (که یعنی تابع موفق اجرا شده ولی مقدار VM را برنمیگرداند).
mov eax, 0
ret
روش ۲: تغییر مقادیر رجیستری برای جلوگیری از تشخیص VM
اگر بدافزار مستقیماً از رجیستری ویندوز مقدار را میخواند، میتوانیم آن را تغییر دهیم. برخی کلیدهای مهم:
ویرایش مقدار SystemBiosVersion در رجیستری
regedit را باز کنید.
به مسیر زیر بروید:
HKEY_LOCAL_MACHINE\HARDWARE\DESCRIPTION\System
مقدار SystemBiosVersion را تغییر دهید و مثلاً "DELL BIOS" را جایگزین کنید.
حذف اطلاعات مربوط به VMware از رجیستری
به مسیرهای زیر بروید و مقدار آنها را پاک کنید:
HKEY_LOCAL_MACHINE\SOFTWARE\VMware, Inc.
HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\VBoxGuest
روش ۳: Hook کردن APIها در سطح کد (با DLL Injection)
✴️میتوان با نوشتن یک DLL و تزریق آن در پروسهی بدافزار، مقدار خروجی API را تغییر داد.
مثال: Hook کردن CPUID برای جلوگیری از شناسایی VMware
۱. کد C++ برای تغییر خروجی CPUID
#include <windows.h>
#include <detours.h>
#include <intrin.h>
typedef void (WINAPI* CPUID_t)(int[4], int);
CPUID_t Real_CPUID = (CPUID_t)__cpuid;
void WINAPI Fake_CPUID(int CPUInfo[4], int InfoType) {
Real_CPUID(CPUInfo, InfoType);
if (InfoType == 0) {
// تغییر مقدار برگشتی برای جلوگیری از شناسایی VM
CPUInfo[1] = 'Genu'; // تغییر به پردازنده Intel
CPUInfo[2] = 'ineI';
CPUInfo[3] = 'ntel';
}
}
void HookAPI() {
DetourTransactionBegin();
DetourUpdateThread(GetCurrentThread());
DetourAttach(&(PVOID&)Real_CPUID, Fake_CPUID);
DetourTransactionCommit();
}
۲. کامپایل کد و تزریق آن در بدافزار
این کد مقدار CPUID را تغییر میدهد تا سیستم بهعنوان Intel واقعی شناسایی شود و نه ماشین مجازی.
برای اجرای آن، باید از DLL Injection استفاده کنید.
روش ۴: استفاده از ابزارهای آماده برای مخفی کردن VM
ScyllaHide (برای دور زدن Anti-Debug و VM Detection)
این ScyllaHide یک پلاگین برای x64dbg است که بهصورت خودکار مقدار APIها را تغییر میدهد تا سیستم، فیزیکی به نظر برسد.
مراحل استفاده از ScyllaHide
پلاگین ScyllaHide را در x64dbg نصب کنید.
به مسیر Plugins > ScyllaHide بروید.
گزینههای VM Detection Bypass و Anti-Debug Protection را فعال کنید.
اجرای بدافزار را تست کنید تا ببینید آیا همچنان محیط را به عنوان VM تشخیص میدهد یا نه.
#آکادمی_روزبه
#من_آموزش_میدهم
🟣 برای پیوستن به گروه مطالعه کتاب Evasive Malware در نوروز ۱۴۰۴ به لینک زیر مراجعه کنید
https://t.me/roozbeh_learning/15130
Telegram
آکادمی آموزش روزبه 📚
نوروز فرصت خوبی برای بهتر شدن و ارتقای شخصی هست.
بهتره برای اون زمان کتاب، ویدئو ها و کلاسها رو برنامه ریزی کنید.
من خودم قصد دارم کتاب زیر رو شروع کنم تا خرده خوانده ها که تا حالا داشته ام و تجربه ای که در این حوزه اندوخته ام در یک جا از پایه تجمیع بشن…
بهتره برای اون زمان کتاب، ویدئو ها و کلاسها رو برنامه ریزی کنید.
من خودم قصد دارم کتاب زیر رو شروع کنم تا خرده خوانده ها که تا حالا داشته ام و تجربه ای که در این حوزه اندوخته ام در یک جا از پایه تجمیع بشن…
👏6👍2❤1
تکنیک Patch کردن API یعنی چی و چطور انجام میشود؟
✍️روزبه نوروزی
تکنیکPatch کردن API ؛ یعنی تغییر رفتار یک تابع در حافظه یا کد اجرایی بهطوری که هنگام اجرای برنامه، تابع مقدار متفاوتی برگرداند یا اصلاً اجرا نشود.
این تکنیک در مهندسی معکوس، تحلیل بدافزار، و دور زدن محدودیتهای نرمافزاری استفاده میشود.
روشهای مختلف Patch کردن API
برای Patch کردن API میتوان از چندین روش مختلف استفاده کرد:
ویرایش باینری (Binary Patching) در فایل اجرایی
تکنیک Patch کردن در حافظه (Runtime Patching) با دیباگر
انجام Hook کردن API با DLL Injection یا Inline Hooking
۱. ویرایش باینری (Binary Patching) در فایل اجرایی
در این روش، مستقیماً فایل اجرایی (EXE / DLL) را ویرایش میکنیم و کد تابع را تغییر میدهیم.
مثال: حذف یک شرط در Assembly
فرض کنید یک برنامه این شرط را دارد:
cmp eax, 1 ;
مقدار EAX را با 1 مقایسه میکند
jne Exit ;
اگر برابر نبود، به Exit میرود
اگر بخواهیم این شرط را حذف کنیم تا برنامه همیشه مقدار موردنظر ما را بپذیرد، میتوانیم این دو دستور را NOP (No Operation) کنیم:
nop ; هیچ عملی انجام نده
nop ; هیچ عملی انجام نده
ابزارهای مورد نیاز برای این روش
Hiew → برای ویرایش فایلهای باینری
IDA Pro / Ghidra → برای مشاهده و تغییر کد اسمبلی
x64dbg / OllyDbg → برای دیباگ و Patch کردن در حافظه
۲. انجامPatch کردن در حافظه (Runtime Patching) با دیباگر
در این روش، برنامه را اجرا میکنیم و در لحظه (runtime) کد آن را تغییر میدهیم.
مثال: Patch کردن NtQuerySystemInformation در x64dbg
فرض کنید یک بدافزار از این API استفاده میکند تا ببیند سیستم داخل VM است یا نه:
call NtQuerySystemInformation
cmp eax, 0x1 ;
اگر مقدار برگشتی ۱ باشد، یعنی سیستم مجازی است
je Exit ;
اگر مقدار ۱ بود، خروج
مراحل انجام کار در x64dbg:
برنامه را در x64dbg اجرا کنید.
به تابع NtQuerySystemInformation بروید.
روی دستور cmp eax, 0x1 Breakpoint بگذارید.
مقدار eax را به ۰ تغییر دهید تا برنامه فکر کند در سیستم واقعی اجرا میشود.
mov eax, 0
اجرای برنامه را ادامه دهید.
🔹 نتیجه: بدافزار نمیتواند تشخیص دهد که در VM اجرا شده است!
۳. انجام Hook کردن API با DLL Injection یا Inline Hooking
در این روش، یک DLL جدید مینویسیم و آن را به برنامه تزریق میکنیم تا رفتار یک API را تغییر دهد.
مثال: Hook کردن NtQuerySystemInformation با DLL Injection
کد زیر باعث میشود که مقدار برگشتی NtQuerySystemInformation همیشه مقدار جعلی (مثلاً ۰) باشد، بنابراین بدافزار فکر میکند در یک سیستم واقعی اجرا شده است.
#include <windows.h>
#include <detours.h>
#include <winternl.h>
typedef NTSTATUS (WINAPI* NtQuerySystemInformation_t)(SYSTEM_INFORMATION_CLASS, PVOID, ULONG, PULONG);
NtQuerySystemInformation_t OriginalNtQuerySystemInformation;
NTSTATUS WINAPI HookedNtQuerySystemInformation(SYSTEM_INFORMATION_CLASS SystemInformationClass, PVOID SystemInformation, ULONG SystemInformationLength, PULONG ReturnLength) {
if (SystemInformationClass == SystemManufacturer) {
strcpy((char*)SystemInformation, "DELL");
مقدار جعلی برای سیستم فیزیکی
return 0;
}
return OriginalNtQuerySystemInformation(SystemInformationClass, SystemInformation, SystemInformationLength, ReturnLength);
}
void HookAPI() {
OriginalNtQuerySystemInformation = (NtQuerySystemInformation_t)GetProcAddress(GetModuleHandle("ntdll.dll"), "NtQuerySystemInformation");
DetourTransactionBegin();
DetourUpdateThread(GetCurrentThread());
DetourAttach(&(PVOID&)OriginalNtQuerySystemInformation, HookedNtQuerySystemInformation);
DetourTransactionCommit();
}
BOOL APIENTRY DllMain(HMODULE hModule, DWORD ul_reason_for_call, LPVOID lpReserved) {
if (ul_reason_for_call == DLL_PROCESS_ATTACH) {
HookAPI();
}
return TRUE;
}
مراحل اجرای Hook
این کد را کامپایل کنید و یک DLL بسازید.
این DLL را به بدافزار Inject کنید (مثلاً با Process Hacker یا DLL Injector).
حالا API NtQuerySystemInformation مقدار دلخواه شما را برمیگرداند.
#آکادمی_روزبه
#من_آموزش_میدهم
✍️روزبه نوروزی
تکنیکPatch کردن API ؛ یعنی تغییر رفتار یک تابع در حافظه یا کد اجرایی بهطوری که هنگام اجرای برنامه، تابع مقدار متفاوتی برگرداند یا اصلاً اجرا نشود.
این تکنیک در مهندسی معکوس، تحلیل بدافزار، و دور زدن محدودیتهای نرمافزاری استفاده میشود.
روشهای مختلف Patch کردن API
برای Patch کردن API میتوان از چندین روش مختلف استفاده کرد:
ویرایش باینری (Binary Patching) در فایل اجرایی
تکنیک Patch کردن در حافظه (Runtime Patching) با دیباگر
انجام Hook کردن API با DLL Injection یا Inline Hooking
۱. ویرایش باینری (Binary Patching) در فایل اجرایی
در این روش، مستقیماً فایل اجرایی (EXE / DLL) را ویرایش میکنیم و کد تابع را تغییر میدهیم.
مثال: حذف یک شرط در Assembly
فرض کنید یک برنامه این شرط را دارد:
cmp eax, 1 ;
مقدار EAX را با 1 مقایسه میکند
jne Exit ;
اگر برابر نبود، به Exit میرود
اگر بخواهیم این شرط را حذف کنیم تا برنامه همیشه مقدار موردنظر ما را بپذیرد، میتوانیم این دو دستور را NOP (No Operation) کنیم:
nop ; هیچ عملی انجام نده
nop ; هیچ عملی انجام نده
ابزارهای مورد نیاز برای این روش
Hiew → برای ویرایش فایلهای باینری
IDA Pro / Ghidra → برای مشاهده و تغییر کد اسمبلی
x64dbg / OllyDbg → برای دیباگ و Patch کردن در حافظه
۲. انجامPatch کردن در حافظه (Runtime Patching) با دیباگر
در این روش، برنامه را اجرا میکنیم و در لحظه (runtime) کد آن را تغییر میدهیم.
مثال: Patch کردن NtQuerySystemInformation در x64dbg
فرض کنید یک بدافزار از این API استفاده میکند تا ببیند سیستم داخل VM است یا نه:
call NtQuerySystemInformation
cmp eax, 0x1 ;
اگر مقدار برگشتی ۱ باشد، یعنی سیستم مجازی است
je Exit ;
اگر مقدار ۱ بود، خروج
مراحل انجام کار در x64dbg:
برنامه را در x64dbg اجرا کنید.
به تابع NtQuerySystemInformation بروید.
روی دستور cmp eax, 0x1 Breakpoint بگذارید.
مقدار eax را به ۰ تغییر دهید تا برنامه فکر کند در سیستم واقعی اجرا میشود.
mov eax, 0
اجرای برنامه را ادامه دهید.
🔹 نتیجه: بدافزار نمیتواند تشخیص دهد که در VM اجرا شده است!
۳. انجام Hook کردن API با DLL Injection یا Inline Hooking
در این روش، یک DLL جدید مینویسیم و آن را به برنامه تزریق میکنیم تا رفتار یک API را تغییر دهد.
مثال: Hook کردن NtQuerySystemInformation با DLL Injection
کد زیر باعث میشود که مقدار برگشتی NtQuerySystemInformation همیشه مقدار جعلی (مثلاً ۰) باشد، بنابراین بدافزار فکر میکند در یک سیستم واقعی اجرا شده است.
#include <windows.h>
#include <detours.h>
#include <winternl.h>
typedef NTSTATUS (WINAPI* NtQuerySystemInformation_t)(SYSTEM_INFORMATION_CLASS, PVOID, ULONG, PULONG);
NtQuerySystemInformation_t OriginalNtQuerySystemInformation;
NTSTATUS WINAPI HookedNtQuerySystemInformation(SYSTEM_INFORMATION_CLASS SystemInformationClass, PVOID SystemInformation, ULONG SystemInformationLength, PULONG ReturnLength) {
if (SystemInformationClass == SystemManufacturer) {
strcpy((char*)SystemInformation, "DELL");
مقدار جعلی برای سیستم فیزیکی
return 0;
}
return OriginalNtQuerySystemInformation(SystemInformationClass, SystemInformation, SystemInformationLength, ReturnLength);
}
void HookAPI() {
OriginalNtQuerySystemInformation = (NtQuerySystemInformation_t)GetProcAddress(GetModuleHandle("ntdll.dll"), "NtQuerySystemInformation");
DetourTransactionBegin();
DetourUpdateThread(GetCurrentThread());
DetourAttach(&(PVOID&)OriginalNtQuerySystemInformation, HookedNtQuerySystemInformation);
DetourTransactionCommit();
}
BOOL APIENTRY DllMain(HMODULE hModule, DWORD ul_reason_for_call, LPVOID lpReserved) {
if (ul_reason_for_call == DLL_PROCESS_ATTACH) {
HookAPI();
}
return TRUE;
}
مراحل اجرای Hook
این کد را کامپایل کنید و یک DLL بسازید.
این DLL را به بدافزار Inject کنید (مثلاً با Process Hacker یا DLL Injector).
حالا API NtQuerySystemInformation مقدار دلخواه شما را برمیگرداند.
#آکادمی_روزبه
#من_آموزش_میدهم
👏3❤1👍1
دستگرمی با یادگیری ماشینی
و اسپلانک Machine Learning and splunk
✍️روزبه نوروزی
☘️تشخیص حمله با Splunk MLTK
یک بانک متوجه شده است که برخی از سیستمهای داخلی در حال برقراری ارتباط با یک سرور خارجی مشکوک هستند. رفتار غیرعادی این سیستمها نشاندهندهی یک حمله است. تیم امنیتی قصد دارد با استفاده از Splunk Machine Learning Toolkit (MLTK) و SOAR، این نوع حملات را بهتر شناسایی و کنترل کند.
از مدل PCA (Principal Component Analysis) برای تحلیل رفتار نرمال و تشخیص انحرافات استفاده میکنیم:
اول
index=network_traffic sourcetype=firewall_logs
| stats count dc(dest_ip) as unique_destinations by src_ip
| where unique_destinations > 50
سیستمهایی که با بیش از ۵۰ دامنهی مختلف در مدت کوتاه ارتباط دارند، ممکن است به سرورهای C2 متصل باشند.
این دادهها برای یادگیری ماشین آماده میشوند.
دوم
| fit PCA unique_destinations into anomaly_model
| where anomaly_model_score > 2.5
مدل PCA دادههای پرت (Outliers) را که از الگوی عادی انحراف دارند، شناسایی میکند.
سیستمهایی که امتیاز anomaly_model_score > 2.5 دارند، بهعنوان ارتباطات مشکوک شناخته میشوند.
☘️تطبیق با IOCها و ایجاد هشدار امنیتی
اگر IP مقصد در Indicator of Compromise (IOC) ها موجود باشد، باید به آن وزن بیشتری داده شود:
| lookup ioc_list.csv dest_ip AS suspicious_ip
| eval risk_score = case(anomaly_model_score > 2.5 AND isnotnull(suspicious_ip), 100, anomaly_model_score > 2.5, 80)
| table src_ip, dest_ip, risk_score
| sendalert "notable"
اگر IP مقصد در IOC لیست سیاه باشد، امتیاز ریسک به ۱۰۰ افزایش پیدا میکند.
اگر ارتباط فقط از مدل یادگیری ماشین مشکوک باشد، امتیاز ۸۰ دریافت میکند.
☘️پاسخ خودکار با Splunk SOAR (Phantom)
با استفاده از Splunk SOAR، اقداماتی خودکار اجرا میشود:
مسدود کردن IP مشکوک در فایروال:
phantom.act("block ip", parameters={"ip": suspicious_ip, "device": "firewall"})
🌷نقش یادگیری ماشین در این سناریو و چرایی استفاده از آن
در این سناریو، هدف ما شناسایی ارتباطات مشکوک بین سیستمهای داخلی بانک و سرورهای خارجی (که احتمالاً سرورهای C2 هستند) است. اما چرا از یادگیری ماشین استفاده کردیم؟
۱. مشکل اصلی: تشخیص ارتباطات غیرعادی در میان حجم بالای ترافیک
در یک سازمان بزرگ، روزانه میلیونها ارتباط شبکهای ثبت میشود. تشخیص حملات APT از طریق روشهای سنتی مانند Signature-based Detection (مبتنی بر قوانین و فیلترها) دشوار است، زیرا:
مهاجمان از IPهای جدید و ناشناخته استفاده میکنند که در لیستهای IOC نیستند.
رفتار C2 ممکن است آهسته و پنهانی باشد (ارتباطات مداوم اما کمحجم).
قوانین ثابت (مثل "اگر بیش از ۵۰ ارتباط داشت، هشدار بده") ممکن است False Positive زیادی تولید کند.
یادگیری ماشین کمک میکند که رفتار عادی کاربران و سرورها را یاد بگیرد و فقط موارد غیرعادی را علامتگذاری کند.
۲. نقش PCA (Principal Component Analysis) در تشخیص ناهنجاریها
ما از PCA (تحلیل مؤلفههای اصلی) استفاده کردیم که یک روش یادگیری ماشین برای کاهش ابعاد دادهها و کشف نقاط پرت است.
چطور کار میکند؟
مدل PCA الگوهای عادی را در ارتباطات کاربران یاد میگیرد (مثلاً کاربران معمولاً با چند سرور مشخص کار میکنند).
وقتی سیستمی رفتار جدید و غیرعادی از خود نشان دهد (مثلاً تعداد زیادی ارتباط به دامنههای ناشناخته)، امتیاز ناهنجاری بالایی میگیرد.
سیستمهایی که امتیازشان از یک حد خاص عبور کند (anomaly_model_score > 2.5)، به عنوان مشکوک علامتگذاری میشوند.
🔆 یادگیری ماشین به ما کمک کرد که فقط روی سیستمهایی تمرکز کنیم که رفتارشان واقعاً متفاوت از رفتار نرمال است، بدون اینکه هزاران هشدار غلط تولید شود.
۳. ترکیب یادگیری ماشین با IOCها برای دقت بالاتر
برخی ارتباطات ناهنجار ممکن است بیخطر باشند (مثلاً یک مهندس شبکه که به سرورهای زیادی متصل میشود).
اما اگر یک سیستم هم رفتار غیرعادی داشته باشد و هم به یک IP مشکوک متصل شود، احتمال حمله بسیار زیاد است.
ترکیب این دو (امتیاز PCA + تطبیق با IOCها) باعث شد که فقط موارد مهم با امتیاز ریسک بالا (مثلاً 100) به تیم امنیتی گزارش شود.
#من_آموزش_میدهم
#آکادمی_روزبه
و اسپلانک Machine Learning and splunk
✍️روزبه نوروزی
☘️تشخیص حمله با Splunk MLTK
یک بانک متوجه شده است که برخی از سیستمهای داخلی در حال برقراری ارتباط با یک سرور خارجی مشکوک هستند. رفتار غیرعادی این سیستمها نشاندهندهی یک حمله است. تیم امنیتی قصد دارد با استفاده از Splunk Machine Learning Toolkit (MLTK) و SOAR، این نوع حملات را بهتر شناسایی و کنترل کند.
از مدل PCA (Principal Component Analysis) برای تحلیل رفتار نرمال و تشخیص انحرافات استفاده میکنیم:
اول
index=network_traffic sourcetype=firewall_logs
| stats count dc(dest_ip) as unique_destinations by src_ip
| where unique_destinations > 50
سیستمهایی که با بیش از ۵۰ دامنهی مختلف در مدت کوتاه ارتباط دارند، ممکن است به سرورهای C2 متصل باشند.
این دادهها برای یادگیری ماشین آماده میشوند.
دوم
| fit PCA unique_destinations into anomaly_model
| where anomaly_model_score > 2.5
مدل PCA دادههای پرت (Outliers) را که از الگوی عادی انحراف دارند، شناسایی میکند.
سیستمهایی که امتیاز anomaly_model_score > 2.5 دارند، بهعنوان ارتباطات مشکوک شناخته میشوند.
☘️تطبیق با IOCها و ایجاد هشدار امنیتی
اگر IP مقصد در Indicator of Compromise (IOC) ها موجود باشد، باید به آن وزن بیشتری داده شود:
| lookup ioc_list.csv dest_ip AS suspicious_ip
| eval risk_score = case(anomaly_model_score > 2.5 AND isnotnull(suspicious_ip), 100, anomaly_model_score > 2.5, 80)
| table src_ip, dest_ip, risk_score
| sendalert "notable"
اگر IP مقصد در IOC لیست سیاه باشد، امتیاز ریسک به ۱۰۰ افزایش پیدا میکند.
اگر ارتباط فقط از مدل یادگیری ماشین مشکوک باشد، امتیاز ۸۰ دریافت میکند.
☘️پاسخ خودکار با Splunk SOAR (Phantom)
با استفاده از Splunk SOAR، اقداماتی خودکار اجرا میشود:
مسدود کردن IP مشکوک در فایروال:
phantom.act("block ip", parameters={"ip": suspicious_ip, "device": "firewall"})
🌷نقش یادگیری ماشین در این سناریو و چرایی استفاده از آن
در این سناریو، هدف ما شناسایی ارتباطات مشکوک بین سیستمهای داخلی بانک و سرورهای خارجی (که احتمالاً سرورهای C2 هستند) است. اما چرا از یادگیری ماشین استفاده کردیم؟
۱. مشکل اصلی: تشخیص ارتباطات غیرعادی در میان حجم بالای ترافیک
در یک سازمان بزرگ، روزانه میلیونها ارتباط شبکهای ثبت میشود. تشخیص حملات APT از طریق روشهای سنتی مانند Signature-based Detection (مبتنی بر قوانین و فیلترها) دشوار است، زیرا:
مهاجمان از IPهای جدید و ناشناخته استفاده میکنند که در لیستهای IOC نیستند.
رفتار C2 ممکن است آهسته و پنهانی باشد (ارتباطات مداوم اما کمحجم).
قوانین ثابت (مثل "اگر بیش از ۵۰ ارتباط داشت، هشدار بده") ممکن است False Positive زیادی تولید کند.
یادگیری ماشین کمک میکند که رفتار عادی کاربران و سرورها را یاد بگیرد و فقط موارد غیرعادی را علامتگذاری کند.
۲. نقش PCA (Principal Component Analysis) در تشخیص ناهنجاریها
ما از PCA (تحلیل مؤلفههای اصلی) استفاده کردیم که یک روش یادگیری ماشین برای کاهش ابعاد دادهها و کشف نقاط پرت است.
چطور کار میکند؟
مدل PCA الگوهای عادی را در ارتباطات کاربران یاد میگیرد (مثلاً کاربران معمولاً با چند سرور مشخص کار میکنند).
وقتی سیستمی رفتار جدید و غیرعادی از خود نشان دهد (مثلاً تعداد زیادی ارتباط به دامنههای ناشناخته)، امتیاز ناهنجاری بالایی میگیرد.
سیستمهایی که امتیازشان از یک حد خاص عبور کند (anomaly_model_score > 2.5)، به عنوان مشکوک علامتگذاری میشوند.
🔆 یادگیری ماشین به ما کمک کرد که فقط روی سیستمهایی تمرکز کنیم که رفتارشان واقعاً متفاوت از رفتار نرمال است، بدون اینکه هزاران هشدار غلط تولید شود.
۳. ترکیب یادگیری ماشین با IOCها برای دقت بالاتر
برخی ارتباطات ناهنجار ممکن است بیخطر باشند (مثلاً یک مهندس شبکه که به سرورهای زیادی متصل میشود).
اما اگر یک سیستم هم رفتار غیرعادی داشته باشد و هم به یک IP مشکوک متصل شود، احتمال حمله بسیار زیاد است.
ترکیب این دو (امتیاز PCA + تطبیق با IOCها) باعث شد که فقط موارد مهم با امتیاز ریسک بالا (مثلاً 100) به تیم امنیتی گزارش شود.
#من_آموزش_میدهم
#آکادمی_روزبه
🔥4❤1👏1
✅️با توجه به پست قبل که در لینکدین منتشر شد دانشجویان از من درمورد مدلهای یادگیری ماشین در اسپلانک سوال داشتند
✍️روزبه نوروزی
۱. مدلهای تشخیص ناهنجاری (Anomaly Detection)
🔹 Density Function
از توزیع دادهها برای شناسایی نقاط پرت (Outliers) استفاده میکند.
کاربرد: تشخیص رفتار غیرعادی در ورود کاربران، تشخیص حجم غیرعادی ترافیک شبکه.
مثال: تشخیص افزایش ناگهانی ورود ناموفق به سیستم (Brute Force).
دستور:
| fit DensityFunction count into anomaly_model
🔹 Local Outlier Factor (LOF)
ارتباط هر نقطه داده را با همسایگانش مقایسه میکند.
کاربرد: تشخیص حملات سایبری با الگوهای جدید، مثل APT.
دستور:
| fit LOF network_activity into lof_model
🔹 Isolation Forest
دادههای پرت را با ساخت درختهای تصادفی شناسایی میکند.
کاربرد: تشخیص بدافزارهای ناشناخته در ترافیک شبکه.
دستور:
| fit IsolationForest dest_ip into if_model
۲. مدلهای پیشبینی (Prediction Models)
🔹 Linear Regression
برای پیشبینی مقدار عددی استفاده میشود.
کاربرد: پیشبینی حجم ترافیک آینده یا رشد لاگهای ناموفق ورود.
دستور:
| fit LinearRegression count from time into prediction_model
🔹 Random Forest Regressor
از چندین درخت تصمیم (Decision Trees) برای پیشبینی استفاده میکند.
کاربرد: پیشبینی تعداد حملات DDoS در روزهای آینده.
دستور:
| fit RandomForestRegressor error_rate from time into rf_model
۳. مدلهای دستهبندی (Classification Models)
🔹 Decision Tree Classifier
دادهها را به گروههای مختلف طبقهبندی میکند.
کاربرد: شناسایی حملات بر اساس نوع (مثلاً Phishing، DDoS، Malware).
دستور:
| fit DecisionTreeClassifier attack_type from features into dt_model
🔹 Support Vector Machine (SVM)
دادهها را با استفاده از مرزهای مشخص شده طبقهبندی میکند.
کاربرد: شناسایی ایمیلهای فیشینگ بر اساس محتوا و فرستنده.
دستور:
| fit SVM email_content into svm_model
🔹 Naïve Bayes Classifier
از احتمالات برای دستهبندی دادهها استفاده میکند.
کاربرد: طبقهبندی رویدادهای امنیتی (مثلاً تمایز بین خطای کاربری و حمله).
دستور:
| fit NaiveBayes attack_type from event_logs into nb_model
۴. مدلهای خوشهبندی (Clustering Models)
🔹 K-Means Clustering
دادهها را به چند گروه مشابه تقسیم میکند.
کاربرد: تشخیص رفتار مشابه بین کاربران مشکوک.
دستور:
| fit KMeans number_of_logins into cluster_model k=3
🔹 DBSCAN (Density-Based Clustering)
خوشههای پرتراکم را پیدا کرده و نقاط پرت را جدا میکند.
کاربرد: تشخیص دستگاههایی که رفتار مشکوک مشابه دارند.
دستور:
| fit DBSCAN network_activity into dbscan_model
۵. مدلهای کاهش ابعاد (Dimensionality Reduction)
🔹 PCA (Principal Component Analysis)
تعداد ویژگیهای داده را کاهش میدهد و به تشخیص ناهنجاریها کمک میکند.
کاربرد: تحلیل دادههای بزرگ برای کشف الگوهای پنهان در حملات APT.
دستور:
| fit PCA network_features into pca_model
جمعبندی
✅ اگر دنبال تشخیص ناهنجاری هستیم: Density Function، Isolation Forest، LOF
✅ اگر نیاز به پیشبینی روند داریم: Linear Regression، Random Forest
✅ اگر باید دادهها را دستهبندی کنیم: Decision Tree، SVM، Naïve Bayes
✅ اگر میخواهیم خوشههای مشکوک را پیدا کنیم: K-Means، DBSCAN
#من_آموزش_میدهم
#آکادمی_روزبه
پی نوشت : این مدلها از حوزه یادگیری ماشین زیر مجموعه هوش مصنوعی هستند
درصورت علاقه به یادگیری خود مدل ؛ باید به کتابهای هوش مصنوعی مراجعه کرد
✍️روزبه نوروزی
۱. مدلهای تشخیص ناهنجاری (Anomaly Detection)
🔹 Density Function
از توزیع دادهها برای شناسایی نقاط پرت (Outliers) استفاده میکند.
کاربرد: تشخیص رفتار غیرعادی در ورود کاربران، تشخیص حجم غیرعادی ترافیک شبکه.
مثال: تشخیص افزایش ناگهانی ورود ناموفق به سیستم (Brute Force).
دستور:
| fit DensityFunction count into anomaly_model
🔹 Local Outlier Factor (LOF)
ارتباط هر نقطه داده را با همسایگانش مقایسه میکند.
کاربرد: تشخیص حملات سایبری با الگوهای جدید، مثل APT.
دستور:
| fit LOF network_activity into lof_model
🔹 Isolation Forest
دادههای پرت را با ساخت درختهای تصادفی شناسایی میکند.
کاربرد: تشخیص بدافزارهای ناشناخته در ترافیک شبکه.
دستور:
| fit IsolationForest dest_ip into if_model
۲. مدلهای پیشبینی (Prediction Models)
🔹 Linear Regression
برای پیشبینی مقدار عددی استفاده میشود.
کاربرد: پیشبینی حجم ترافیک آینده یا رشد لاگهای ناموفق ورود.
دستور:
| fit LinearRegression count from time into prediction_model
🔹 Random Forest Regressor
از چندین درخت تصمیم (Decision Trees) برای پیشبینی استفاده میکند.
کاربرد: پیشبینی تعداد حملات DDoS در روزهای آینده.
دستور:
| fit RandomForestRegressor error_rate from time into rf_model
۳. مدلهای دستهبندی (Classification Models)
🔹 Decision Tree Classifier
دادهها را به گروههای مختلف طبقهبندی میکند.
کاربرد: شناسایی حملات بر اساس نوع (مثلاً Phishing، DDoS، Malware).
دستور:
| fit DecisionTreeClassifier attack_type from features into dt_model
🔹 Support Vector Machine (SVM)
دادهها را با استفاده از مرزهای مشخص شده طبقهبندی میکند.
کاربرد: شناسایی ایمیلهای فیشینگ بر اساس محتوا و فرستنده.
دستور:
| fit SVM email_content into svm_model
🔹 Naïve Bayes Classifier
از احتمالات برای دستهبندی دادهها استفاده میکند.
کاربرد: طبقهبندی رویدادهای امنیتی (مثلاً تمایز بین خطای کاربری و حمله).
دستور:
| fit NaiveBayes attack_type from event_logs into nb_model
۴. مدلهای خوشهبندی (Clustering Models)
🔹 K-Means Clustering
دادهها را به چند گروه مشابه تقسیم میکند.
کاربرد: تشخیص رفتار مشابه بین کاربران مشکوک.
دستور:
| fit KMeans number_of_logins into cluster_model k=3
🔹 DBSCAN (Density-Based Clustering)
خوشههای پرتراکم را پیدا کرده و نقاط پرت را جدا میکند.
کاربرد: تشخیص دستگاههایی که رفتار مشکوک مشابه دارند.
دستور:
| fit DBSCAN network_activity into dbscan_model
۵. مدلهای کاهش ابعاد (Dimensionality Reduction)
🔹 PCA (Principal Component Analysis)
تعداد ویژگیهای داده را کاهش میدهد و به تشخیص ناهنجاریها کمک میکند.
کاربرد: تحلیل دادههای بزرگ برای کشف الگوهای پنهان در حملات APT.
دستور:
| fit PCA network_features into pca_model
جمعبندی
✅ اگر دنبال تشخیص ناهنجاری هستیم: Density Function، Isolation Forest، LOF
✅ اگر نیاز به پیشبینی روند داریم: Linear Regression، Random Forest
✅ اگر باید دادهها را دستهبندی کنیم: Decision Tree، SVM، Naïve Bayes
✅ اگر میخواهیم خوشههای مشکوک را پیدا کنیم: K-Means، DBSCAN
#من_آموزش_میدهم
#آکادمی_روزبه
پی نوشت : این مدلها از حوزه یادگیری ماشین زیر مجموعه هوش مصنوعی هستند
درصورت علاقه به یادگیری خود مدل ؛ باید به کتابهای هوش مصنوعی مراجعه کرد
👏4❤1👍1