آکادمی آموزش روزبه 📚
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
آکادمی آموزش روزبه 📚
به دور از تمام مقدمات و تعاریف اولیه ؛ زیرو تراست رو ببینیم و انواع ش رو #آکادمی_روزبه 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
آشنایی با ابزار

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

ابزار Monocle یک LLM متن‌باز برای تحلیل دودویی (Binary Analysis) و جستجوی باینری است. این ابزار طراحی شده تا به پژوهشگران امنیت، تحلیلگران بدافزار، و توسعه‌دهندگان مهندسی معکوس کمک کند تا کدهای باینری را به شکل بهینه‌تری تحلیل کنند.

✳️ویژگی‌های کلیدی Monocle:

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

✳️کاربردها:

⬅️شناسایی توابع مشترک در باینری‌های ناشناس
⬅️تحلیل بدافزار و کشف تکنیک‌های مخفی شده در کدهای باینری
⬅️کمک به مهندسی معکوس و پژوهش‌های امنیتی

✳️معماری و نحوه کار Monocle

ابزار Monocle از چندین مؤلفه کلیدی تشکیل شده است که در کنار هم برای تحلیل کدهای باینری کار می‌کنند:
1. تبدیل باینری به نمایش مناسب (Feature Extraction)

کدهای باینری خام ابتدا باید به قالبی تبدیل شوند که بتوانند توسط مدل پردازش شوند. این شامل:

Disassembly:
تبدیل کد باینری به اسمبلی برای بررسی ساختار دستورالعمل‌ها.
Control Flow Graph (CFG):
استخراج گراف جریان کنترل برای نمایش ارتباط بین توابع و بلوک‌های کد.
Data Flow Analysis:
بررسی نحوه جابه‌جایی داده‌ها در برنامه.

2. مدل‌سازی و پردازش داده‌ها با استفاده از LLM

پس از استخراج ویژگی‌ها، Monocle از یک مدل زبان بزرگ (LLM) برای تحلیل و پردازش این داده‌ها استفاده می‌کند. این مدل معمولاً روی مجموعه داده‌های عظیمی از کدهای اسمبلی و باینری آموزش دیده است تا بتواند الگوهای پیچیده را درک کند. برخی از تکنیک‌های یادگیری ماشینی که ممکن است در Monocle به کار گرفته شوند:

Embedding-based Similarity:
تبدیل کدها به بردارهای عددی برای یافتن شباهت بین آن‌ها.
Sequence-to-Sequence Learning:
استفاده از مدل‌های زبانی برای ترجمه و درک ساختار اسمبلی.
Graph Neural Networks (GNN):
بهره‌گیری از گراف برای تحلیل ارتباط بین بخش‌های مختلف کد.

3. جستجو و مقایسه کدها (Binary Code Search)

ابزار Monocle این امکان را می‌دهد که بتوان کدهای باینری را جستجو کرد و شباهت آن‌ها را با نمونه‌های قبلی مقایسه کرد. این ویژگی برای شناسایی مجدد توابع شناخته‌شده یا کشف نمونه‌های مشابه در بدافزارها بسیار مفید است.

روش‌های جستجو شامل:

Exact Match:
پیدا کردن توابع و قطعه‌کدهایی که دقیقاً مشابه یک نمونه خاص هستند.
Fuzzy Matching:
یافتن کدهایی که ساختار مشابه دارند ولی ممکن است کمی تغییر یافته باشند.
Semantic Search:
جستجوی مبتنی بر معنا، که حتی اگر کدها تغییر جزئی کرده باشند، همچنان بتواند شباهت را تشخیص دهد.

4. کاربرد در تحلیل بدافزار و مهندسی معکوس

یکی از مهم‌ترین کاربردهای Monocle در تحلیل بدافزار است، زیرا:

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

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

✳️لینک دانلود و نصب
https://github.com/arphanetx/Monocle
🔥2👏1
نکته #موقت

⛔️ اگر برخی ها دست از بی اخلاقی ها بردارند و کار خود رو بکنند خیلی خوب می‌شود اونوقت ....

↪️موضوع من نیستم یک بی اخلاقی علیه دوستی دیدم.

==≈============


فعلا بشینیم هانی پات همراه با LLM نصب کنیم

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

https://dispatch.thorcollective.com/p/exploring-splunk-deceive
❤4
تمرین دست گرمی برای گروه تلگرامی Evasive Malware

🔮اعضای گروه این لینک حتما امشب بخونن

خلاصه

گروه تهدید پیشرفته‌ی Earth Preta (همچنین شناخته‌شده به‌عنوان APT37 یا Mustang Panda) اخیراً تکنیک‌ها و ابزارهای جدیدی را برای دور زدن مکانیزم‌های شناسایی امنیتی به کار گرفته است. این گروه با ترکیب اجزای قانونی و مخرب، به‌طور مؤثر سیستم‌های هدف را آلوده می‌کند.

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

استفاده از ابزارهای قانونی برای تزریق کد مخرب:
ابزار MAVInject.exe: این ابزار قانونی مایکروسافت برای تزریق کد به فرآیندهای در حال اجرا استفاده می‌شود. Earth Preta از MAVInject.exe برای تزریق payloadهای مخرب به فرآیندهای قانونی مانند waitfor.exe بهره می‌برد، به‌ویژه زمانی که نرم‌افزار آنتی‌ویروس ESET شناسایی شود.


بهره‌گیری از ابزارهای ساخت بسته‌های نصب:
ابزار Setup Factory: این ابزار قانونی برای ایجاد بسته‌های نصب نرم‌افزار استفاده می‌شود. Earth Preta از Setup Factory برای ایجاد بسته‌های نصب حاوی اجزای مخرب بهره می‌برد تا از شناسایی توسط نرم‌افزارهای امنیتی جلوگیری کند.


استفاده از فایل‌های فریب‌دهنده برای پنهان‌سازی فعالیت‌های مخرب:
فایل PDFهای جعلی: در حین اجرای payload مخرب، یک فایل PDF بی‌ضرر به‌عنوان طعمه به قربانی نمایش داده می‌شود تا توجه او را منحرف کرده و فعالیت‌های مخرب در پس‌زمینه انجام شود.


تشخیص و واکنش به نرم‌افزارهای امنیتی:
شناسایی آنتی‌ویروس ESET: در صورتی که Earth Preta حضور آنتی‌ویروس ESET را تشخیص دهد، payload مخرب خود را به فرآیند waitfor.exe تزریق می‌کند تا از شناسایی جلوگیری کند.


این رویکردها نشان‌دهنده‌ی توانایی Earth Preta در ترکیب اجزای قانونی و مخرب برای دور زدن مکانیزم‌های امنیتی و حفظ پایداری در سیستم‌های آلوده است.

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


https://www.trendmicro.com/en_us/research/25/b/earth-preta-mixes-legitimate-and-malicious-components-to-sidestep-detection.html
👍2❤1
جدید 😍😍


خلاصه‌ اگر بود یه خبر بدین 🙏🙏

https://www.sans.org/cyber-security-courses/linux-threat-hunting-incident-response/
🔥2🥰1🤣1
اینم یکی دیگه از مقالاته که امشب میخونم بعد میخوابم

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

Advanced Initial Access Techniques

In this blog post, I will teach you the methodology and techniques adversaries use to compromise systems. I will showcase the payload development process and its delivery—both remote and physical.



https://lorenzomeacci.com/advanced-initial-access-techniques
👍5
خبری خوش

یکنفر دارنده CISSP به دارندگان این مدرک عالی امنیت در ایران اضافه شد 🤓👌👌

جناب مهندس Amir Jafari توانستند با قبولی در آزمون رسمی و مهم و پشت سر گذاشتن مراحل تاییدیه ؛ این مدرک مهم و پر اعتبار در دنیای فناوری و امنیت را کسب کنند 🌹

تبریک به ایشان ، جامعه فناوری اطلاعات و امنیت سایبری ایران و خصوصا بانک خاورمیانه👏👏

Middle East Bank (MEBank)

به امید برای افزایش سهم ایرانیان که دارای این مدرک هستند تا بتوانیم جامعه ای توانمند از متخصصان حرفه ای برای ایران داشته باشیم.

اخذ این مدرک نشان از توان بالای حرفه ای منجمله سواد تئوری و تجربه عملی و سابقه مدیریت است.
🎉12👍1
حملات مبتنی بر Syscall و نقش EDR در مقابله با آنها ( قسمت اول ) 1⃣

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


مقدمه

فناوریSystem Calls (Syscall) یکی از مهم‌ترین اجزای سیستم‌عامل است که به برنامه‌های کاربری اجازه می‌دهد با کرنل ارتباط برقرار کنند. این مکانیزم برای دسترسی به منابع سیستم مانند حافظه، پردازش‌ها، فایل‌ها و شبکه ضروری است. بااین‌حال، مهاجمان از Syscallها برای دور زدن مکانیزم‌های امنیتی، اجرای بدافزار و بهره‌برداری از آسیب‌پذیری‌های کرنل استفاده می‌کنند.

حملات مبتنی بر Syscall
1. اجرای مستقیم Syscall برای دور زدن EDR

بسیاری از نرم‌افزارهای امنیتی مانند آنتی‌ویروس (AV) و EDR از API Hooking برای شناسایی فعالیت‌های مشکوک استفاده می‌کنند. Hooking به این معناست که EDR جلوی برخی توابع حیاتی را گرفته و رفتار آنها را بررسی می‌کند.

برای مثال، در ویندوز VirtualAlloc و CreateRemoteThread معمولاً برای تخصیص حافظه و اجرای کد استفاده می‌شوند. EDRها این توابع را مانیتور می‌کنند تا تزریق کد (Process Injection) و اجرای بدافزارها را تشخیص دهند.

🔴 روش حمله: مهاجمان برای دور زدن این نظارت‌ها، مستقیماً از Syscallهای کرنل استفاده می‌کنند.

✅ نمونه حمله:

یک بدافزار ممکن است به‌جای استفاده از VirtualAlloc از NtAllocateVirtualMemory (که یک syscall در سطح کرنل است) استفاده کند.
از ابزارهایی مانند SysWhispers یا Halo’s Gate برای یافتن شماره Syscallها و اجرای آنها استفاده می‌شود.

📌 نمونه کد حمله در C برای اجرای مستقیم syscall:

__asm {
mov eax, 0x50 //
شماره Syscall مربوط به NtAllocateVirtualMemory
call dword ptr fs:[0xC0]
}

با این روش، مهاجمان می‌توانند بدون اینکه EDR متوجه شود، کد را مستقیماً در حافظه اجرا کنند.
2. تزریق کد در حافظه و اجرای مخفیانه

یکی از حملات رایج برای اجرای بدافزار در سیستم، تزریق کد در یک فرآیند معتبر مانند explorer.exe است. در این روش، مهاجم:

حافظه‌ای در فرآیند هدف رزرو می‌کند (NtAllocateVirtualMemory).
بدافزار را در آن حافظه کپی می‌کند (NtWriteVirtualMemory).
کد را اجرا می‌کند (NtCreateThreadEx).

📌 مثال کد حمله در C:

HANDLE hProcess = OpenProcess(PROCESS_ALL_ACCESS, FALSE, pid);
LPVOID pRemoteMemory = VirtualAllocEx(hProcess, NULL, payload_size, MEM_COMMIT, PAGE_EXECUTE_READWRITE);
WriteProcessMemory(hProcess, pRemoteMemory, payload, payload_size, NULL);
HANDLE hThread = CreateRemoteThread(hProcess, NULL, 0, (LPTHREAD_START_ROUTINE)pRemoteMemory, NULL, 0, NULL);

این حمله به Process Injection معروف است و در بسیاری از بدافزارها مانند Meterpreter استفاده می‌شود.
3. ارتقای دسترسی با سوءاستفاده از Syscallها

برخی از حملات Privilege Escalation از آسیب‌پذیری‌های مربوط به Syscallها سوءاستفاده می‌کنند. این نوع حملات شامل Race Condition، Buffer Overflow و استفاده از Handleهای نادرست هستند.

مثال:

آسیب‌پذیری CVE-2016-7255 در ویندوز، به مهاجم اجازه می‌دهد از طریق یک Syscall نادرست، سطح دسترسی خود را به SYSTEM افزایش دهد.
آسیب‌پذیری‌های کرنل لینوکس، مانند Dirty COW (CVE-2016-5195)، از Syscallهای مربوط به مدیریت حافظه سوءاستفاده می‌کنند.


#من_آموزش_میدهم
#آکادمی_روزبه
👏3👍2
حملات مبتنی بر Syscall و نقش EDR

2⃣قسمت دوم

این EDR را جدی بگیرید

ادامه از پست قبل

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


🔴 چرا این روش خطرناک است؟
زیرا Syscallها مستقیماً در سطح کرنل اجرا می‌شوند و در صورت وجود آسیب‌پذیری، مهاجم می‌تواند کنترل کل سیستم را به دست بگیرد.
چگونه EDR با حملات Syscall مقابله می‌کند؟
1. تحلیل رفتار و کشف فعالیت‌های مشکوک

این EDRهای پیشرفته مانند Microsoft Defender for Endpoint، CrowdStrike Falcon و SentinelOne از Behavioral Analysis برای شناسایی رفتارهای غیرعادی استفاده می‌کنند.

✅ روش‌های شناسایی:

نظارت بر Syscallهای غیرعادی مانند NtAllocateVirtualMemory و NtWriteVirtualMemory.
کشف فرآیندهایی که بدون دلیل خاصی حافظه‌ی اجرایی تخصیص می‌دهند.
تشخیص تغییرات در Handleهای کرنل که ممکن است نشان‌دهنده یک حمله باشد.

2. این Hook کردن و جلوگیری از اجرای Syscallهای خطرناک

این EDRها می‌توانند APIهای مهم را Hook کنند تا رفتار آنها را قبل از اجرا بررسی کنند. اگر فرآیندی مانند notepad.exe ناگهان سعی کند NtCreateThreadEx را اجرا کند، این یک نشانه از حمله است و می‌توان آن را مسدود کرد.

📌 نمونه کد Hook برای جلوگیری از اجرای Syscallهای خطرناک در کرنل:

PsSetCreateProcessNotifyRoutine(CallbackFunction);

🔹 نتیجه: اگر یک بدافزار بخواهد Syscall را اجرا کند، این Callback اول آن را بررسی می‌کند.
3. مانیتورینگ در سطح کرنل با Kernel-mode Callbacks

برخی از EDRها مستقیماً در سطح Kernel Mode کار می‌کنند و اجرای برخی Syscallهای خطرناک را متوقف می‌کنند.

📌 نمونه‌ای از Syscallهای خطرناک که EDRها رصد می‌کنند:

NtAllocateVirtualMemory → تخصیص حافظه در فرآیند دیگر
NtWriteVirtualMemory → نوشتن در حافظه فرآیند دیگر
NtCreateThreadEx → ایجاد رشته در فرآیند دیگر

🔹 مزیت این روش: مقابله با Direct Syscall، حتی اگر مهاجم از تکنیک‌هایی مانند SysWhispers استفاده کند.
4. استفاده از Exploit Guard و ASLR برای سخت‌تر کردن حملات

✅فناوری Exploit Guard در ویندوز می‌تواند جلوی اجرای کدهای ناشناخته را بگیرد.
✅ فناوریASLR (Address Space Layout Randomization) باعث می‌شود آدرس‌های حافظه در هر اجرا تغییر کنند، که استفاده از برخی Syscallهای مخرب را سخت‌تر می‌کند.

📌 فعال‌سازی ASLR:

Set-ProcessMitigation -Name explorer.exe -Enable BottomUpASLR

جمع‌بندی

حملات مبتنی بر Syscall یکی از روش‌های قدرتمند برای دور زدن آنتی‌ویروس‌ها و اجرای مخفیانه بدافزارها است. مهاجمان با استفاده از Direct Syscall و Process Injection می‌توانند کدهای مخرب را در حافظه اجرا کنند بدون اینکه توسط ابزارهای سنتی شناسایی شوند.

اما EDRهای پیشرفته با روش‌هایی مانند:
✔ Behavioral Analysis برای شناسایی فعالیت‌های غیرعادی
✔ Hook کردن Syscallهای خطرناک
✔ نظارت بر سطح کرنل با Kernel-mode Callbacks
✔ استفاده از Exploit Guard و ASLR

می‌توانند این حملات را شناسایی و متوقف کنند. بنابراین، برای مقابله با حملات مدرن، سازمان‌ها باید از EDRهای پیشرفته استفاده کنند و به‌طور مداوم تحلیل تهدیدات سایبری را انجام دهند.


#من_آموزش_میدهم
#آکادمی_روزبه
👍3
خداروشکر یک دوره با موفقیت علی رغم سختی هاش برگزار شد.

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

پی نوشت: لازم نیست در این دو روزه دنیا به هم سخت بگیریم. در سکوت کار کنید و بقول محمد علی کلی : اجاره زندگی در جهانتان را بپردازید. دم غنیمت که عمر تمام شد.
👏3🔥2👍1