آکادمی آموزش روزبه 📚
3.96K subscribers
4.6K photos
184 videos
1.48K files
6.98K links
🍎آموزش و ترویج علمی فناوری اطلاعات ، امنیت و مدیریت پروژه های مرتبط
🍁 و کمی هم اخلاق و انسانیت

Training of Information Technology, Cyber Security, Project Management, Ethics and Humanitarian

ارتباط با مدیر کانال:
@roozbehadm
Download Telegram
✅️با توجه به پست قبل که در لینکدین منتشر شد دانشجویان از من درمورد مدل‌های یادگیری ماشین در اسپلانک سوال داشتند

✍️روزبه نوروزی

۱. مدل‌های تشخیص ناهنجاری (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
Investigation Linux Red Team Activity.pdf
1.2 MB
بررسی فعالیت های مخرب روی لینوکس

#آکادمی_روزبه
👍4❤1
شناسایی حمله باج‌افزاری (Ransomware) با Splunk و یادگیری ماشین (AI)


✍️روزبه نوروزی

حمله باج‌افزاری معمولاً در چند مرحله اجرا می‌شود و یادگیری ماشین و هوش مصنوعی می‌تواند در شناسایی آن از طریق تحلیل رفتار فایل‌ها، پردازش‌ها و ارتباطات شبکه‌ای کمک کند.
در اینجا یک سناریو از کشف باج‌افزار با استفاده از Splunk Machine Learning Toolkit (MLTK) ارائه شده است.

🔹 مراحل اجرای یک حمله باج‌افزاری

۱. دسترسی اولیه (Initial Access)

مهاجم از یکی از روش‌های زیر استفاده می‌کند:

فیشینگ (Phishing)
اکسپلویت آسیب‌پذیری‌ها (مثلاً RDP یا SMB باز)
حمله بروت فورس برای ورود به سیستم

✅ منبع داده‌ای: SIEM Logs، Email Logs، Authentication Logs
✅ مدل تشخیصی: Naïve Bayes (برای شناسایی ایمیل فیشینگ)
۲. اجرای بدافزار (Execution)

باج‌افزار معمولاً یک پردازش جدید و غیرمعمول روی سیستم اجرا می‌کند. این پردازش ممکن است دارای مشخصات زیر باشد:

اجرای پردازش جدید از پوشه Temp یا AppData
اجرای اسکریپت‌های PowerShell مشکوک
ایجاد پردازش‌های فرزند (مثلاً parent process = powershell.exe)

✅ منبع داده‌ای: Sysmon Logs، EDR Logs
✅ مدل تشخیصی: Decision Tree (برای شناسایی فرآیندهای مشکوک)

🔹 جستجوی پیشنهادی در Splunk برای پردازش‌های مشکوک:

index=endpoint_logs sourcetype=sysmon
| stats count by process_name, parent_process
| where parent_process="powershell.exe" AND count > 3
| fit DecisionTreeClassifier malware_flag from process_name into ransomware_exec_model

۳. رمزگذاری فایل‌ها (Encryption Phase)

هنگامی که باج‌افزار اجرا شد، شروع به رمزگذاری فایل‌ها می‌کند:

افزایش ناگهانی تغییرات در فایل‌ها
تغییر پسوند فایل‌ها به مقدار غیرعادی (مثلاً .lock، .encrypted)
حذف فایل‌های بکاپ (Volume Shadow Copies)

✅ منبع داده‌ای: File System Logs (Windows Security Logs, Sysmon Event ID 4663)
✅ مدل تشخیصی: Density Function (برای تشخیص رفتار غیرعادی فایل‌ها)

🔹 جستجوی پیشنهادی در Splunk برای شناسایی تغییرات غیرعادی فایل‌ها:

index=file_logs sourcetype=sysmon event_id=4663
| stats count by file_path, action
| where action="write" AND count > 100
| fit DensityFunction count into ransomware_file_model

۴. برقراری ارتباط با سرور فرماندهی و کنترل (C2 Communication)

در این مرحله، باج‌افزار به سرورهای خارجی متصل می‌شود تا کلید رمزگذاری یا دستورات جدید دریافت کند:

ارتباط با دامنه‌های تازه ثبت‌شده (Newly Registered Domains)
استفاده از پروتکل‌های غیرمعمول (مثلاً DNS tunneling)
ارتباط با IPهای شناخته‌شده در تهدیدات سایبری

✅ منبع داده‌ای: Firewall Logs، DNS Logs، Threat Intelligence Feeds
✅ مدل تشخیصی: Isolation Forest (برای تشخیص ارتباطات غیرعادی)

🔹 جستجوی پیشنهادی در Splunk برای شناسایی ارتباط با C2:

index=network_traffic sourcetype=firewall_logs
| stats count by dest_ip, protocol
| where protocol IN ("dns", "http", "https")
| fit IsolationForest count into ransomware_c2_model
| where ransomware_c2_model_score > 2.5

۵. درخواست باج (Ransom Demand)

ایجاد یک فایل متنی روی دسکتاپ کاربر (README.txt)
نمایش یک پیام در صفحه (Popup یا Wallpaper تغییر یافته)

✅ منبع داده‌ای: Endpoint Logs، Windows Event Logs
✅ مدل تشخیصی: K-Means Clustering (برای تحلیل الگوهای مشترک باج‌افزارها)



#من_آموزش_میدهم
#آکادمی_روزبه
❤4
آکادمی آموزش روزبه 📚
دستگرمی با یادگیری ماشینی و اسپلانک Machine Learning and splunk ✍️روزبه نوروزی ☘️تشخیص حمله با Splunk MLTK یک بانک متوجه شده است که برخی از سیستم‌های داخلی در حال برقراری ارتباط با یک سرور خارجی مشکوک هستند. رفتار غیرعادی این سیستم‌ها نشان‌دهنده‌ی یک…
⛵️هوش مصنوعی و اسپلانک
استفاده از Splunk App for Data Science and Deep Learning (DSDL) برای تحلیل امنیتی پیشرفته

✍️روزبه نوروزی

این Splunk DSDL یک افزونه برای Splunk MLTK است که به شما امکان می‌دهد مدل‌های یادگیری عمیق (Deep Learning) و پردازش داده‌های بزرگ را با استفاده از فریمورک‌هایی مثل TensorFlow، PyTorch و Scikit-learn اجرا کنید.
این اپلیکیشن به شما اجازه می‌دهد که مدل‌های پیچیده‌ای برای تحلیل امنیتی بسازید که در Splunk Enterprise Security (ES) یا محیط‌های دیگر Splunk اجرا شوند.
🔹 تفاوت DSDL با MLTK چیست؟

✅ این MLTK برای مدل‌های یادگیری ماشین کلاسیک مثل تصمیم‌گیری درختی، K-Means، Isolation Forest
✅ اما DSDL برای یادگیری عمیق و داده‌های حجیم، مانند LSTM برای تشخیص ناهنجاری در ترافیک شبکه یا CNN برای تحلیل لاگ‌ها

🔹 اجرای مدل‌های یادگیری عمیق با DSDL در امنیت سایبری

در ادامه چند سناریوی امنیتی پیچیده با استفاده از DSDL آورده شده است.

📌 سناریو ۱: تشخیص حملات مداوم (APT) با استفاده از LSTM
🛠 چالش:

حملات APT دارای الگوی زمانی خاص هستند و روش‌های کلاسیک (مثل Isolation Forest) نمی‌توانند تغییرات تدریجی رفتار مهاجمان را تشخیص دهند.
📊 مدل پیشنهادی:

مدل LSTM (Long Short-Term Memory) برای تشخیص ناهنجاری در ارتباطات شبکه‌ای
🔍 جستجوی Splunk برای آموزش مدل:

| inputlookup network_traffic_logs.csv
| table timestamp, src_ip, dest_ip, bytes_sent, bytes_received
| fit LSTM timestamp bytes_sent bytes_received into dsdl_apt_model

✅ مزیت: تشخیص رفتار مخفی مهاجمان از طریق الگوهای زمانی در ارتباطات شبکه

📌 سناریو ۲: تشخیص حمله باج‌افزاری با CNN و تحلیل فایل‌ها
🛠 چالش:

باج‌افزارها از روش‌های متنوعی برای رمزگذاری فایل‌ها استفاده می‌کنند، و مدل‌های سنتی ممکن است در تشخیص برخی نمونه‌های جدید ضعیف باشند.
📊 مدل پیشنهادی:

مدل CNN (Convolutional Neural Network) برای تحلیل تغییرات فایل‌های سیستمی و تشخیص رفتار رمزگذاری
🔍 جستجوی Splunk برای اجرای مدل:

| inputlookup file_change_logs.csv
| table filename, file_size, entropy, timestamp
| fit CNN filename entropy into dsdl_ransomware_model

✅ مزیت: امکان شناسایی رمزگذاری‌های مشکوک حتی در نمونه‌های جدید باج‌افزار

📌 سناریو ۳: تحلیل ایمیل‌های فیشینگ با Transformer (BERT)
🛠 چالش:

فیشینگ معمولاً با تغییرات جزئی در متن ایمیل انجام می‌شود که مدل‌های ساده مثل Naïve Bayes قادر به تشخیص آن‌ها نیستند.
📊 مدل پیشنهادی:

مدل BERT (Bidirectional Encoder Representations from Transformers) برای پردازش زبان طبیعی (NLP) در تحلیل متن ایمیل‌ها
🔍 جستجوی Splunk برای پردازش ایمیل‌ها:

| inputlookup email_logs.csv
| table email_subject, email_body
| fit BERT email_body into dsdl_phishing_model

✅ مزیت: تحلیل ایمیل‌های فیشینگ با دقت بالا و تشخیص تغییرات زیرکانه در متن ایمیل

🔹 نتیجه‌گیری: چه زمانی از DSDL استفاده کنیم؟

✅ اگر حجم داده‌های بالا و نیاز به مدل‌های پیچیده یادگیری عمیق دارید.
✅ برای تشخیص الگوهای غیرمعمول و حملات پنهان (مثل APT، باج‌افزار، فیشینگ پیشرفته).
✅ زمانی که MLTK برای سناریوی موردنظر کافی نیست (مثلاً تحلیل‌های توالی زمانی یا NLP).



#آکادمی_روزبه
#من_آموزش_میدهم
👍3👏2🔥1
🥇سناریوی امشب : کشف نفوذ آرام با ماندگاری طولانی

✍️روزبه نوروزی

✅️یک سناریوی پیچیده و جذاب برای کشف نفوذ با کمک از Splunk براتون آماده کردم که ترکیبی از تکنیک‌های فرار از شناسایی (Evasion)، حرکت جانبی (Lateral Movement) و دسترسی مداوم (Persistence) است.

🟧یک مهاجم موفق شده است از طریق یک حمله فیشینگ هوشمند و اجرای ماکرو مخرب در Excel، کنترل اولیه را روی یک سیستم کاربر در شبکه به دست بگیرد. سپس با استفاده از Cobalt Strike و تکنیک‌های Living off the Land (LOLBins)، در شبکه حرکت جانبی انجام داده و یک حساب کاربری جعلی در اکتیو دایرکتوری ایجاد می‌کند تا دسترسی دائمی داشته باشد.

🔰جزئیات حمله:

✔️ دریافت شل اولیه:
حمله فیشینگ با ارسال یک فایل Excel حاوی ماکروی مخرب به کاربر.
اجرای ماکرو باعث دانلود و اجرای یک PowerShell reverse shell می‌شود که به یک C2 Server متصل است.
ارتباط به‌صورت Encoded PowerShell ارسال می‌شود تا از SIEM و آنتی‌ویروس فرار کند.

✔️ حرکت جانبی و افزایش دسترسی:
مهاجم از Mimikatz برای استخراج کردنشیال‌های ذخیره‌شده استفاده می‌کند.
از طریق Pass-the-Hash (PtH) به یک سرور داخلی متصل می‌شود.
با استفاده از PsExec یا WMI روی یک سیستم دیگر کد اجرا می‌کند.

استفاده از ابزارهای ذاتی ویندوز (LOLBins) برای فرار از شناسایی:
اجرای کدهای مخرب با MSBuild.exe و CertUtil.exe برای دور زدن ابزارهای امنیتی.
استفاده از Rundll32.exe برای اجرای فایل DLL مخرب بدون ایجاد پروسس جدید مشکوک.

✔️ ماندگاری و دسترسی مداوم:
ایجاد یک حساب جعلی در Active Directory با نامی شبیه به ادمین‌های واقعی.
تنظیم یک Scheduled Task که در هر ریبوت، یک ریکانکت به C2 برقرار می‌کند.
ذخیره Web Shell در IIS روی یک سرور حساس برای دسترسی آینده.



🔮 بررسی کامل و انجام تحلیل در Splunk:

بحث کامل تحلیل و حل مساله را در پست های آینده بخوانید


#من_آموزش_میدهم
#آکادمی_روزبه
❤2🔥2
آکادمی آموزش روزبه 📚
🥇سناریوی امشب : کشف نفوذ آرام با ماندگاری طولانی ✍️روزبه نوروزی ✅️یک سناریوی پیچیده و جذاب برای کشف نفوذ با کمک از Splunk براتون آماده کردم که ترکیبی از تکنیک‌های فرار از شناسایی (Evasion)، حرکت جانبی (Lateral Movement) و دسترسی مداوم (Persistence) است.…
تحلیل سناریوی فوق در Splunk:

۱. کشف ارتباط اولیه (PowerShell Reverse Shell)

جستجوی دستورات مشکوک در لاگ‌های PowerShell که ممکن است ارتباط C2 برقرار کند:

index=windows EventCode=4104 ScriptBlockText="*IEX*(New-Object Net.WebClient).DownloadString*"

یا استفاده از Base64 encoded PowerShell:

index=windows EventCode=4104 ScriptBlockText="*FromBase64String*"

۲. کشف حرکت جانبی (Mimikatz و Pass-the-Hash)

index=windows EventCode=4624 LogonType=9 OR LogonType=3 Account_Name!=”Administrator” Account_Name!=”Service”

Logon Type 9: نشان‌دهنده استفاده از مکانیزم‌های احراز هویت غیرمعمول است.
Logon Type 3: اتصال از راه دور، اما بدون نام کاربری ادمین، که مشکوک است.

۳. کشف اجرای ابزارهای LOLBins (مانند MSBuild و CertUtil)

index=windows EventCode=4688 New_Process_Name="*MSBuild.exe" OR New_Process_Name="*CertUtil.exe"

این پردازش‌ها معمولاً در شبکه سازمانی استفاده نمی‌شوند، مگر در شرایط خاص.
۴. کشف ماندگاری (Scheduled Task و Web Shell در IIS)

index=windows EventCode=4698 OR EventCode=4700 Task_Name="*Update*"

بسیاری از مهاجمان برای فرار از شناسایی، نام‌های مشابه آپدیت‌های ویندوز برای Scheduled Task می‌گذارند.

و برای کشف Web Shell در IIS:

index=webserver sourcetype="iis" cs_uri_stem="*.asp" OR cs_uri_stem="*.aspx" cs_method="POST"

درخواست‌های POST غیرعادی به صفحات ASPX ممکن است نشان‌دهنده یک Web Shell باشد.



#من_آموزش_میدهم
#آکادمی_روزبه
👍3🔥1
تکنیک های بدافزارها علیه کشف
👿ضد مهندسی معکوس

✍️روزبه نوروزی

در دنیای امنیت سایبری و تحلیل بدافزار، یکی از مهم‌ترین چالش‌ها برای هکر شناسایی و مقابله با تکنیک‌های دیباگینگ و نقاط توقف (breakpoints) است که برای بررسی و تجزیه و تحلیل برنامه‌های آلوده به کار می‌روند. یکی از تکنیک‌های رایج برای ایجاد نقاط توقف در فرآیند دیباگینگ، استفاده از پرچم ترپ (Trap Flag) در رجیستر EFLAGS است. این پرچم به دیباگرها این امکان را می‌دهد که به‌صورت گام‌به‌گام دستورات برنامه را اجرا کنند و تغییرات حافظه و رجیسترها را بررسی نمایند. با این حال، شناسایی استفاده از پرچم ترپ برای نقاط توقف می‌تواند چالش‌برانگیز باشد، زیرا به‌راحتی نمی‌توان این پرچم را خواند و بررسی کرد.

🤡پرچم ترپ (Trap Flag) چیست؟

این Trap Flag (TF) یک پرچم خاص در رجیستر EFLAGS در معماری پردازنده‌های x86 است که برای فعال کردن Single-Stepping یا گام‌به‌گام اجرا کردن دستورات برنامه به کار می‌رود. هنگامی که دیباگر به‌طور گام به گام یک برنامه را تحلیل می‌کند، این پرچم در رجیستر EFLAGS تنظیم می‌شود تا پس از اجرای هر دستور، پردازنده یک Interrupt 1 (خطای دیباگ) ایجاد کند و کنترل را به دیباگر بازگرداند.

این ویژگی به دیباگر اجازه می‌دهد تا بتواند پس از اجرای هر دستور، وضعیت حافظه و مقادیر رجیسترها را بررسی کرده و تغییرات آن‌ها را نظارت کند. بنابراین، Trap Flag یک ابزار بسیار مفید برای تحلیل و بررسی دقیق عملکرد برنامه‌ها در سطح اسمبلی است.

👻چالش‌های شناسایی Trap Flag:

هرچند استفاده از Trap Flag برای گام به گام اجرا کردن برنامه بسیار مفید است، اما شناسایی و تشخیص آن از بیرون (یعنی توسط خود برنامه یا ابزارهای شناسایی بدافزار) کار دشواری است. دلایل این مشکل عبارتند از:

✔️این EFLAGS به‌طور مستقیم قابل خواندن نیست:
این EFLAGS که شامل Trap Flag می‌باشد، به‌طور مستقیم از طریق دستوراتی مانند mov قابل خواندن نیست. برای خواندن وضعیت این رجیستر باید از دستور pushf استفاده کرد، که وضعیت EFLAGS را در استک ذخیره می‌کند.

✔️پرچم Trap Flag به‌طور خودکار غیرفعال می‌شود:
پس از هر بار برگشت از دیباگر، Trap Flag به‌طور خودکار به حالت False (غیرفعال) تغییر می‌کند. این ویژگی باعث می‌شود که بررسی وضعیت این پرچم برای شناسایی نقاط توقف در برنامه سخت باشد.

👽روش‌های شناسایی رفتار دیباگینگ با استفاده از Trap Flag:

با وجود اینکه Trap Flag به‌طور مستقیم قابل شناسایی نیست، روش‌هایی برای شناسایی رفتار دیباگرها و نقاط توقف وجود دارد. برخی از این روش‌ها عبارتند از:

✔️ بررسی استک با استفاده از دستور pushf:
همانطور که اشاره شد، تنها راه دسترسی به وضعیت EFLAGS استفاده از دستور pushf است که وضعیت EFLAGS را در استک ذخیره می‌کند. بدافزار می‌تواند به‌طور پیوسته وضعیت استک را بررسی کرده و در صورتی که تغییرات غیرمنتظره‌ای در آن مشاهده شود، به وجود یک دیباگر مشکوک شود.

✔️ تحلیل زمان‌بندی دستورات:
اجرای گام به گام دستورات توسط دیباگر باعث تغییرات در زمان‌بندی اجرای دستورات می‌شود. این زمان‌بندی ممکن است برای برنامه قابل شناسایی باشد. به‌عنوان مثال، اگر برنامه بین هر دستور وقفه‌های کوچکی داشته باشد (که ناشی از فعال بودن Trap Flag است)، این تفاوت‌ها می‌توانند به‌عنوان علائم رفتاری دیباگر شناسایی شوند.



🟣کتاب Evasive malware را با هم در نوروز در کانال می‌خوانیم

#من_آموزش_میدهم
#من_آموزش_میدهم
❤3
تصویر مربوط به پست قبل : پرچم ها
ترپ فلگ TP
👍3
#تجربه
پایش تجهیزات شبکه
کشف نفوذ هایی که ندیده ایم

✍️روزبه نوروزی

یکی از مواردی که در SOC هایی که مواجه میشم میبینم کم توجهی به لاگ های تجهیزات شبکه ای است.

🔴این لاگها معمولا مشکلات زیر را دارند:

- اصلا جمع نمی‌شوند
- میزان Granularity لازم را ندارند
- تمام و کمال پارس نمیشوند
- رولهای کشفی مناسب برای آنها در SIEM نوشته نشده است
- به میزان مناسب در پریود زمانی نگهداری نمی‌شوند
- توجه چندانی به آلرت های آنها وجود ندارد


⚠️این مسائل میتواند مسبب نفوذ های پیچیده و ماندگاری در شبکه های ما باشد. مخصوصا در شبکه هایی که به سمت نرم افزار محور شدن رفته اند یا شبکه هایی که ادمین آنها در مورد فریم ور دقت کافی ندارد

یک گرا بدهم😈 : گزارش این حمله گروه هکری روسی Grizzly Steppe رو بخونید تا به اهمیت موضوع پی ببرید


پی نوشت :راه اندازی سرور AAA یکی از ضروریات برای تجهیزات شبکه است.

#آکادمی_روزبه
#من_آموزش_میدهم

https://cloud.google.com/blog/topics/threat-intelligence/synful-knock-acis
❤2👏2
تکنیک‌های ضد مهندسی معکوس
فاصله زمانی

✍️روزبه نوروزی

در مهندسی معکوس و تحلیل بدافزار ما از اجرای single-stepping یا به تعبیری اجرای خط به خط برای رفتار شناسی قطعه کد مشکوک استفاده می‌کنیم.
هکر دنبال آن است که این حرکت ما را شناسایی کند تا بتواند خود را از این آنالیز برهاند.
یک راهکار استفاده از تکنیک‌های زمان‌بندی برای شناسایی "single-stepping" در فرآیند دیباگ یا مهندسی معکوس است. در این روش، زمان دقیق (با دقت میلی‌ثانیه) از لحظه شروع سیستم تا اجرای دستور خاصی اندازه‌گیری می‌شود. دستور rdtsc در معماری x86 برای این منظور استفاده می‌شود، که زمان سیستمی را در دو رجیستر EDX و EAX ذخیره می‌کند.

در فرآیند شبیه‌سازی دیباگ یا مهندسی معکوس (reverse engineering)، وقتی یک متخصص امنیت در حال اجرای کد است، ممکن است از تکنیک‌هایی مانند "single-stepping" استفاده کند. این به معنای اجرای کد خط به خط و بررسی هر دستور است. اما این کار باعث تأخیرهای زمانی می‌شود، چون در این فرآیند، پردازش کد به صورت تدریجی انجام می‌شود. اگر بتوان زمان دقیق قبل و بعد از اجرای یک دستور را محاسبه کرد، تأخیر ناشی از این فرآیند به وضوح قابل مشاهده خواهد بود.

با استفاده از دستور rdtsc، تفاوت زمانی بین دو نقطه (قبل و بعد از اجرای یک دستور) محاسبه می‌شود. اگر تأخیری در اجرای دستور مشاهده شود، این به احتمال زیاد نشان‌دهنده این است که یک دیباگر در حال "single-stepping" در کد است و این تکنیک می‌تواند برای شناسایی و مقابله با مهندسی معکوس استفاده شود.

دستور rdtsc (Read Time-Stamp Counter) یک دستور در معماری x86 است که برای خواندن شمارنده زمان‌سنج (Timestamp Counter) استفاده می‌شود. این شمارنده یک شمارنده 64 بیتی است که از زمان بوت شدن سیستم شروع به افزایش می‌کند و به صورت پیوسته از آن زمان افزایش می‌یابد. هدف اصلی این دستور دسترسی به این شمارنده است که برای اندازه‌گیری زمان و انجام محاسبات زمانی دقیق (با دقت بسیار بالا) کاربرد دارد.


پی نوشت:
زمانی که دستور rdtsc اجرا می‌شود، مقدار شمارنده زمان‌سنج سیستم (که زمان از شروع سیستم تا آن لحظه را نشان می‌دهد) در دو رجیستر EDX و EAX ذخیره می‌شود. EAX نیمی از شمارنده (کم‌تر از 32 بیت) و EDX نیمه دیگر را نگه می‌دارد



کتاب Evasive Malware را در نوروز در کانال تلگرام آکادمی روزبه دنبال کنید.

#من_آموزش_میدهم
#آکادمی_روزبه
👍4
آکادمی آموزش روزبه 📚
به دور از تمام مقدمات و تعاریف اولیه ؛ زیرو تراست رو ببینیم و انواع ش رو #آکادمی_روزبه https://www.ibm.com/think/insights/the-evolution-of-zero-trust-and-the-frameworks-that-guide-it
مدل های زیرو تراست

این مدل ها بر اساس اصول و چارچوب‌های مختلفی طراحی شده‌اند. این مدل‌ها به سازمان‌ها کمک می‌کنند تا امنیت خود را در برابر تهدیدات سایبری بهبود بخشند. در ادامه، برخی از مدل‌ها و چارچوب‌های معروف Zero Trust :
۱. چارچوب NIST Zero Trust Architecture (ZTA)

این چارچوب توسط موسسه ملی فناوری و استانداردهای ایالات متحده (NIST) توسعه یافته و یکی از معتبرترین مدل‌های Zero Trust است.
اصول کلیدی:

هرگز اعتماد نکن، همیشه تأیید کن: هیچ کاربر، دستگاه یا شبکه‌ای به طور پیش‌فرض قابل اعتماد نیست.

دسترسی حداقلی: کاربران فقط به منابعی دسترسی دارند که برای انجام وظایفشان ضروری است.

تقسیم شبکه به بخش‌های کوچک (Micro-Segmentation): شبکه به بخش‌های کوچک تقسیم می‌شود تا در صورت حمله، آسیب محدود شود.

احراز هویت و مجوز مداوم: دسترسی کاربران و دستگاه‌ها به طور مداوم بررسی می‌شود.

اجزای اصلی:

سیاست‌های امنیتی (Policy Engine): تصمیم‌گیری درباره‌ی دسترسی‌ها.

اجرای سیاست‌ها (Policy Administrator): اعمال سیاست‌ها.

تأیید هویت (Authentication): احراز هویت کاربران و دستگاه‌ها.

۲. چارچوب CISA Zero Trust Maturity Model

این چارچوب توسط آژانس امنیت سایبری و زیرساخت ایالات متحده (CISA) ارائه شده و به سازمان‌ها کمک می‌کند تا سطح بلوغ Zero Trust خود را ارزیابی و بهبود دهند.
سطوح بلوغ:

سنتی (Traditional): سازمان‌ها از مدل‌های امنیتی قدیمی استفاده می‌کنند.

اولیه (Initial): شروع پیاده‌سازی Zero Trust با تغییرات کوچک.

پیشرفته (Advanced): استفاده از ابزارها و فناوری‌های پیشرفته برای Zero Trust.

بهینه (Optimal): دستیابی به یک مدل Zero Trust کاملاً یکپارچه و خودکار.

حوزه‌های کلیدی:

هویت (Identity): مدیریت هویت کاربران و دستگاه‌ها.

دستگاه‌ها (Devices): امنیت و نظارت بر دستگاه‌های متصل به شبکه.

شبکه (Network): تقسیم شبکه و کنترل ترافیک.

برنامه‌ها و داده‌ها (Applications & Data): محافظت از برنامه‌ها و داده‌ها.

۳. مدل Forrester Zero Trust

این مدل توسط شرکت تحقیقاتی Forrester توسعه یافته و یکی از اولین مدل‌های Zero Trust است.
اصول اصلی:

داده‌ها محور هستند: تمرکز اصلی بر محافظت از داده‌ها است.

دسترسی مبتنی بر نیاز: کاربران فقط به منابعی دسترسی دارند که برای کارشان ضروری است.

تقسیم شبکه: شبکه به بخش‌های کوچک تقسیم می‌شود تا امنیت افزایش یابد.

اجزای کلیدی:

حفاظت از داده‌ها: رمزنگاری و کنترل دسترسی به داده‌ها.

امنیت دستگاه‌ها: نظارت بر دستگاه‌های متصل به شبکه.

امنیت کاربران: احراز هویت چندعاملی (MFA) و مدیریت هویت.

۴. مدل Google BeyondCorp

این مدل توسط گوگل توسعه یافته و بر اساس اصول Zero Trust است. BeyondCorp دسترسی به برنامه‌ها و داده‌ها را بر اساس هویت کاربر و دستگاه تنظیم می‌کند، نه بر اساس مکان شبکه.
ویژگی‌های کلیدی:

دسترسی از هر مکان: کاربران می‌توانند از هر شبکه‌ای (داخلی یا خارجی) به منابع دسترسی داشته باشند.

تأیید هویت مداوم: دسترسی کاربران به طور مداوم بررسی می‌شود.

امنیت برنامه‌ها: برنامه‌ها به جای شبکه، محور امنیت هستند.

۵. مدل Microsoft Zero Trust

این مدل توسط مایکروسافت ارائه شده و بر سه اصل اصلی استوار است:
اصول اصلی:

تأیید هویت صریح (Verify Explicitly): همیشه هویت کاربران و دستگاه‌ها را تأیید کنید.

دسترسی حداقلی (Least Privilege Access): کاربران فقط به منابع ضروری دسترسی دارند.

فرض نقض (Assume Breach): همیشه فرض کنید که شبکه شما نقض شده است و بر این اساس اقدامات امنیتی انجام دهید.


۶. مدل Gartner Zero Trust Network Access (ZTNA)

این مدل توسط گارتنر ارائه شده و بر دسترسی امن به برنامه‌ها و خدمات متمرکز است.
ویژگی‌های کلیدی:

دسترسی مبتنی بر هویت: دسترسی کاربران بر اساس هویت آن‌ها تنظیم می‌شود.

عدم اعتماد به شبکه: شبکه به طور پیش‌فرض قابل اعتماد نیست.

امنیت برنامه‌ها: برنامه‌ها به جای شبکه، محور امنیت هستند.

جمع‌بندی

مدل‌های Zero Trust با وجود تفاوت‌های جزئی، همگی بر اعتماد صفر، دسترسی حداقلی و تأیید هویت مداوم تأکید دارند. انتخاب مدل مناسب به نیازها و زیرساخت‌های سازمان شما بستگی دارد.


#آکادمی_روزبه
👏6👍2
آکادمی آموزش روزبه 📚
مدل های زیرو تراست این مدل ها بر اساس اصول و چارچوب‌های مختلفی طراحی شده‌اند. این مدل‌ها به سازمان‌ها کمک می‌کنند تا امنیت خود را در برابر تهدیدات سایبری بهبود بخشند. در ادامه، برخی از مدل‌ها و چارچوب‌های معروف Zero Trust : ۱. چارچوب NIST Zero Trust Architecture…
توصیه‌هایی برای پیاده‌سازی Zero Trust در کدنویسی

مدل امنیتی Zero Trust (عدم اعتماد پیش‌فرض) بر این اصل استوار است که هیچ کاربر، دستگاه، یا فرآیندی نباید به‌صورت پیش‌فرض قابل‌اعتماد باشد. در نتیجه، هنگام توسعه نرم‌افزار و کدنویسی، باید مکانیزم‌هایی در نظر گرفته شود که حداقل سطح دسترسی، اعتبارسنجی مستمر، و کنترل دقیق دسترسی‌ها را اعمال کند.
📍 1️⃣ اصل حداقل دسترسی (Least Privilege)

🔹 هیچ کاربر یا پردازه‌ای نباید بیش از سطح دسترسی موردنیاز داشته باشد.
🔹 از Principle of Least Privilege (PoLP) پیروی کنید.

✅ در پایگاه داده:

GRANT SELECT, INSERT ON customers TO user_app;
REVOKE DELETE, UPDATE ON customers FROM user_app;

❌ غلط: دادن دسترسی کامل به همه کاربران

GRANT ALL PRIVILEGES ON customers TO user_app;

✅ در سیستم‌عامل: اگر کد شما نیاز به اجرای یک فرمان خاص دارد، آن را با حداقل مجوز اجرا کنید:

sudo -u limited_user command

❌ غلط: اجرای دستورات با کاربر root بدون نیاز
📍 2️⃣ اعتبارسنجی و احراز هویت قوی (Strong Authentication & Authorization)

🔹 همه درخواست‌ها را احراز هویت کنید.
🔹 از MFA (احراز هویت چندعاملی) برای کاربران حساس استفاده کنید.

✅ در APIها:

from flask import request, jsonify
from werkzeug.security import check_password_hash

def authenticate_user(username, password):
user = get_user_from_db(username)
if user and check_password_hash(user.password, password):
return generate_jwt(user)
return jsonify({"error": "Unauthorized"}), 401

❌ غلط: استفاده از Hardcoded Passwords

if username == "admin" and password == "password123":

✅ استفاده از OAuth2 یا JWT برای APIها:

@app.route("/secure-data", methods=["GET"])
@jwt_required()
def secure_data():
return jsonify({"message": "Access granted!"})

📍 3️⃣ بررسی و کنترل ورودی‌ها (Input Validation & Sanitization)

🔹 همیشه ورودی‌های کاربر را بررسی کنید تا از حملات SQL Injection، XSS و Command Injection جلوگیری شود.
🔹 از لیست سفید (Whitelist) به‌جای لیست سیاه (Blacklist) استفاده کنید.

✅ فیلتر کردن ورودی‌ها:

import re

def validate_username(username):
if re.match("^[a-zA-Z0-9_]{3,20}$", username):
return True
return False

❌ غلط: استفاده از ورودی خام در کوئری SQL

query = f"SELECT * FROM users WHERE username = '{user_input}'"

✅ درست: استفاده از Prepared Statements

cursor.execute("SELECT * FROM users WHERE username = ?", (user_input,))

📍 4️⃣ محدودسازی ارتباطات داخلی (Micro-Segmentation & Network Restrictions)

🔹 هیچ سیستمی نباید بتواند آزادانه با همه بخش‌های شبکه ارتباط بگیرد.
🔹 از Firewalls، VLANs و ACLs برای محدودسازی ارتباطات بین سرویس‌ها استفاده کنید.

✅ در Docker (Network Isolation):

services:
app:
networks:
- internal_net
db:
networks:
- internal_net

networks:
internal_net:
driver: bridge

❌ غلط: قرار دادن پایگاه داده در شبکه عمومی و قابل‌دسترسی از همه جا
📍 5️⃣ رمزنگاری داده‌ها در حین انتقال و ذخیره‌سازی (Encryption & Secure Storage)

🔹 همیشه داده‌های حساس را رمزنگاری کنید.
🔹 از TLS برای انتقال داده و AES برای ذخیره‌سازی اطلاعات مهم استفاده کنید.

✅ در REST API:

app.run(ssl_context=("cert.pem", "key.pem"))

✅ در پایگاه داده:

CREATE TABLE users (
id INT PRIMARY KEY,
email VARCHAR(255) NOT NULL UNIQUE,
password_hash TEXT NOT NULL
);

❌ غلط: ذخیره پسوردهای خام در دیتابیس

CREATE TABLE users (
id INT PRIMARY KEY,
email VARCHAR(255),
password TEXT
);

✅ درست: هش کردن رمزهای عبور

from werkzeug.security import generate_password_hash
hashed_password = generate_password_hash("mypassword")

📍 6️⃣ مانیتورینگ و لاگ‌گیری مداوم (Continuous Monitoring & Logging)

🔹 همه‌ی رویدادهای امنیتی باید لاگ شوند، اما اطلاعات حساس را نباید در لاگ‌ها ذخیره کرد.
🔹 از SIEM برای تحلیل لاگ‌ها استفاده کنید.

✅ در Python:

import logging

logging.basicConfig(filename="app.log", level=logging.INFO)
logging.info("User login attempt: %s", username)

❌ غلط: لاگ کردن پسوردها و اطلاعات حساس

logging.info("User: %s, Password: %s", username, password)

✅ در SIEM (مثل Splunk یا ELK):

index=security_logs source=auth.log "failed login attempt"

📍 7️⃣ اجرای تست‌های امنیتی (Security Testing & Code Review)

#آکادمی _روزبه
ادامه در پست بعد
👍4❤1
آکادمی آموزش روزبه 📚
مدل های زیرو تراست این مدل ها بر اساس اصول و چارچوب‌های مختلفی طراحی شده‌اند. این مدل‌ها به سازمان‌ها کمک می‌کنند تا امنیت خود را در برابر تهدیدات سایبری بهبود بخشند. در ادامه، برخی از مدل‌ها و چارچوب‌های معروف Zero Trust : ۱. چارچوب NIST Zero Trust Architecture…
🔹 همیشه کد خود را از نظر امنیتی بررسی کنید.
🔹 از ابزارهایی مانند OWASP ZAP، Burp Suite، SAST و DAST برای اسکن امنیتی استفاده کنید.

✅ در CI/CD:

jobs:
security_scan:
runs-on: ubuntu-latest
steps:
- name: Run Snyk Security Scan
run: snyk test

✅ استفاده از Dependency Scanning برای شناسایی آسیب‌پذیری‌ها:

pip install bandit && bandit -r my_project/

🎯 نتیجه‌گیری

🔹زیرو تراست Zero Trust در کدنویسی یعنی عدم اعتماد به هرچیزی و تأیید دائمی همه‌ی درخواست‌ها.
🔹 با اعتبارسنجی ورودی‌ها، احراز هویت قوی، رمزنگاری، حداقل دسترسی، نظارت مداوم و تست امنیتی می‌توان ریسک حملات را کاهش داد.
🔹 اجرای Zero Trust در معماری نرم‌افزار باعث افزایش امنیت سیستم و جلوگیری از حملات سایبری می‌شود.

✅ در نهایت، هدف این است که هیچ کد یا کاربری بدون بررسی اجازه دسترسی نداشته باشد.


#آکادمی_روزبه
👍5
کسی که می‌خواهد روزی پرواز بیاموزد باید نخست ایستادن و دویدن و جهش و بالارفتن و پایکوبی را به تمرین بگذارد، پرواز را با پرواز نتوان آموخت.

👤فردریش نیچه

درس خواندن ؛ ارتقای شغلی و بقول صالح علا دوست داشتن خورد خورد است و در لحظه نیست. پله ها یکی پس از دیگری می‌رسند و سیب ها بموقع

#موفقیت #مطالعه #شغل
👍9🔥2
Bug Bounty Course.pdf
3.1 MB
تزریق دستور در سیستم عامل

#آکادمی_روزبه
❤3👍1
پیش درآمد و آماده سازی برای خوانش کتاب Evasive Malware در گروه کتاب نوروز شروع شده است
میتوانید به جمع دوستان در لینک زیر بپیوندید

پیش درآمد فعلا شامل :
مروری کلی بر تحلیل بدافزار بصورت مقدماتی
نگاه به زبان اسمبلی

https://t.me/+iv8QJhCC4W4xZjJk
❤5👍1