آسیبپذیریشناسی (Vulnerability Assessment)
آسیبپذیریشناسی یعنی پیدا کردن ضعفهای امنیتی یک سیستم یا برنامه و بررسی اینکه چقدر میتونن خطرناک باشن
مثلاً ممکنه یک برنامه از یک نسخه قدیمی استفاده کنه یا تنظیمات امنیتی مناسبی نداشته باشه
در این مرحله فقط پیدا کردن مشکل مهم نیست بلکه باید بفهمی مشکل کجاست و چرا ایجاد شده و چطور میشه برطرفش کرد
معمولاً اول اطلاعات سیستم رو بررسی میکنی و بعد با روشهای مختلف دنبال ضعفهای احتمالی میگردی
ابزارهایی هم وجود دارن که میتونن در پیدا کردن بعضی از آسیبپذیریها کمک کنن ولی نتیجه ابزار همیشه نیاز به بررسی انسانی داره
بعد از پیدا کردن مشکل باید شدت آسیبپذیری (Severity) رو مشخص کنی تا معلوم بشه کدوم مشکل اولویت بیشتری برای رفع کردن داره
هدف اصلی این مرحله اینه که قبل از اینکه یک ضعف توسط فرد غیرمجاز مورد سوءاستفاده قرار بگیره اون رو پیدا و برطرف کنی
این بررسی هم باید فقط روی سیستمهایی انجام بشه که اجازه تستشون رو داری
Code Block
تست نفوذ (Penetration Testing)
تست نفوذ یعنی یک سیستم یا سایت رو با اجازه صاحبش بررسی کنی تا مشخص بشه آیا ضعفهای امنیتی واقعاً قابل سوءاستفاده هستن یا نه
اول از اطلاعاتی که در مراحل قبلی جمع شده استفاده میکنی و موارد مشکوک رو بررسی میکنی
بعد در یک محیط کنترلشده تلاش میکنی مشخص کنی یک آسیبپذیری چه مقدار خطر ایجاد میکنه
هدف اصلی این کار خرابکاری یا دسترسی به اطلاعات دیگران نیست
هدف اینه که ضعف امنیتی پیدا بشه و قبل از سوءاستفاده برطرف بشه
بعد از بررسی هم نتیجهها ثبت میشن و برای هر مشکل راهکار رفع کردنش پیشنهاد میشه
خلاصه تست نفوذ یعنی
پیدا کردن ضعف
بررسی میزان خطر
تست کنترلشده با اجازه
ثبت نتیجه
و در نهایت برطرف کردن مشکل
تست نفوذ بدون اجازه صاحب سیستم میتونه غیرقانونی باشه
Code Block
امنیت وب (Web Security)
امنیت وب یعنی محافظت از سایتها و برنامههای اینترنتی در برابر حمله و دسترسی غیرمجاز
اول باید بفهمی یک سایت چطور کار میکنه و اطلاعات بین مرورگر و سرور چطور جابهجا میشه
بعد باید مواردی مثل ورود به حساب (Authentication) و سطح دسترسی (Authorization) و نشست کاربر (Session) رو یاد بگیری
بعد میرسی به آسیبپذیریهای معروف وب مثل تزریق (Injection) و اسکریپت بین سایتی (XSS) و مشکلات مربوط به دسترسی کاربران
یکی از منابع معروف برای یادگیری این موضوع OWASP Top 10 هست که مهمترین دستههای آسیبپذیری وب رو معرفی میکنه
در مرحله بعد میتونی یاد بگیری چطور این مشکلات رو در محیطهای آموزشی پیدا کنی و مهمتر از اون چطور برطرفشون کنی
هدف امنیت وب اینه که اطلاعات کاربران و خود سایت در برابر دسترسی غیرمجاز و سوءاستفاده محافظت بشن
تمام این تمرینها هم باید روی سایتها و محیطهایی انجام بشه که اجازه تستشون رو داری
Code Block
ارتقای سطح دسترسی (Privilege Escalation)
ارتقای سطح دسترسی یعنی وقتی یک کاربر دسترسی محدودی داره بررسی کنی آیا یک ضعف امنیتی باعث میشه بتونه به دسترسی بیشتری برسه یا نه
مثلاً یک کاربر معمولی نباید به تنظیمات مهم سیستم یا اطلاعات حساس دسترسی داشته باشه
در بررسی امنیتی باید بفهمی چه دسترسیهایی وجود دارن و آیا تنظیمات اشتباهی باعث ایجاد دسترسی اضافی شدن یا نه
این موضوع هم در لینوکس (Linux) و هم در ویندوز (Windows) وجود داره
هدف اصلی یادگیری این بخش اینه که بفهمی سیستم چطور جلوی افزایش دسترسی غیرمجاز رو میگیره و اگر ضعفی وجود داشت چطور باید برطرفش کرد
خلاصه
شناخت سطح دسترسی فعلی
بررسی تنظیمات و مجوزها
پیدا کردن ضعفهای احتمالی
بررسی در محیط آزمایشگاهی
و در نهایت برطرف کردن مشکل
این بخش رو باید فقط روی سیستمهایی که اجازه تستشون رو داری تمرین کنی
Code Block
گزارشنویسی (Reporting)
گزارشنویسی یعنی بعد از بررسی امنیتی تمام چیزهایی که پیدا کردی رو مرتب و قابل فهم بنویسی
اول باید مشخص کنی چه چیزی رو بررسی کردی و چه محدودهای برای تست داشتی
بعد مشکلات امنیتی پیدا شده رو توضیح میدی و میگی مشکل کجاست و چه خطری ایجاد میکنه
برای هر مشکل بهتره میزان اهمیت یا شدت اون رو هم مشخص کنی تا معلوم بشه کدوم مورد باید زودتر برطرف بشه
بعد راهکار رفع آسیبپذیری (Remediation) رو پیشنهاد میدی
در آخر هم نتیجه کلی بررسی رو مینویسی تا مسئول سیستم بدونه چه مشکلاتی وجود داشته و برای امنتر کردن سیستم باید چه کارهایی انجام بده
خلاصه
چی رو بررسی کردی
چه مشکلی پیدا شد
چقدر خطرناکه
چرا اتفاق افتاده
چطور باید برطرف بشه
و چه پیشنهادی برای امنتر شدن سیستم داری
Code Block
مسیر کلی یادگیری هک و امنیت سایبری
برای یادگیری هک باید از پایه شروع کنی و اول پایتون (Python) و لینوکس (Linux) رو یاد بگیری و بعد بری سراغ شبکه (Networking) و وب (Web) و پایگاه داده (Database)
بعد از این پایهها باید مفاهیم امنیت (Security) و شناسایی (Reconnaissance) و اسکن و بررسی (Scanning) و آسیبپذیریشناسی (Vulnerability Assessment) رو یاد بگیری و در ادامه با تست نفوذ (Penetration Testing) و امنیت وب (Web Security) و ارتقای سطح دسترسی (Privilege Escalation) آشنا بشی
در آخر هم باید بلد باشی نتایج بررسیهات رو درست گزارشنویسی (Reporting) کنی
همه این موارد باید فقط برای یادگیری و روی سیستمهایی انجام بشن که اجازه تستشون رو داری
استفاده از این مهارتها برای دسترسی غیرمجاز به سیستمها یا اطلاعات دیگران غیرقانونیه و میتونه جرم سایبری محسوب بشه
Code Block
امروز میخوام دوتا برنامه کاربردی و آموزشی در سطح مبتدی معرفی کنم
یکی برای موبایل یکی برای Pc
Code Block
برای اندروید (Termux)
یک شبیه ساز ترمینال قدرتمند لینوکس برای اندروید است که بدون نیاز به روت گوشی کار می کند این برنامه یک محیط لینوکس کامل با مدیر بسته مخصوص خودش فراهم می کند شما می توانید صدها ابزار خط فرمان لینوکس را مستقیما روی موبایل خود نصب و اجرا کنید
نحوه استفاده
ابتدا برنامه را از فروشگاه F-Droid دانلود کنید چون نسخه گوگل پلی آپدیت نیست بعد از نصب برنامه را باز کنید دستور apt update را بزنید تا لیست بسته ها به روز شود سپس دستور apt upgrade را اجرا کنید برای نصب ابزار دلخواه از دستور pkg install استفاده کنید مثلا pkg install nmap ابزار اسکن شبکه را نصب می کند بعد از نصب کافیست نام ابزار را در ترمینال تایپ کنید تا اجرا شود تمام ابزارهای معروف لینوکس مثل nmap metasploit hydra sqlmap و صدها ابزار دیگر قابل نصب هستند
کاربردهای آموزشی Termux
یادگیری دستورات لینوکس تمرین اسکن شبکه روی شبکه خانگی خودتان تست نفوذ روی دستگاه های شخصی خودتان اجرای اسکریپت های پایتون برای آموزش امنیت و مدیریت سرور از راه دور
مزایا
رایگان و متن باز بدون نیاز به کامپیوتر قابل حمل و همیشه در دسترس مصرف باتری کم و سرعت خوب
محدودیت ها
صفحه نمایش کوچک موبایل تایپ دستورات طولانی سخت است بعضی ابزارها روی معماری ARM موبایل اجرا نمی شوند نبود ابزارهای گرافیکی
Code Block
برای کامپیوتر و پی سی (Kali Linux)
یک سیستم عامل کامل مبتنی بر لینوکس دبیان است که مخصوص تست نفوذ و امنیت سایبری ساخته شده این سیستم عامل توسط شرکت Offensive Security توسعه داده می شود و بیش از ششصد ابزار هک و امنیت از قبل نصب شده دارد Kali Linux استاندارد صنعت امنیت اطلاعات است و تمام دوره های معتبر هک قانونی از همین سیستم عامل استفاده می کنند
نحوه نصب و استفاده
بهترین روش نصب روی ماشین مجازی است اول نرم افزار VirtualBox یا VMware را روی ویندوز یا مک خود نصب کنید بعد فایل ISO کالی لینوکس را از سایت رسمی kali org دانلود کنید در نرم افزار مجازی ساز یک ماشین جدید بسازید و فایل ISO را به آن متصل کنید نصب کالی لینوکس مثل نصب هر سیستم عامل دیگری چند دقیقه طول می کشد بعد از نصب وارد سیستم می شوید و از منوی Applications صدها ابزار دسته بندی شده را می بینید
دسته بندی ابزارهای کالی لینوکس
Information Gathering شامل nmap و maltego برای جمع آوری اطلاعات از هدف
Vulnerability Analysis شامل nikto و openvas برای پیدا کردن ضعف های امنیتی
Wireless Attacks شامل aircrack-ng و reaver برای تست امنیت شبکه های وای فای
Password Attacks شامل john و hashcat و hydra برای تست قدرت پسوردها
Exploitation Tools شامل metasploit framework و searchsploit برای بهره برداری از آسیب پذیری ها
Forensics Tools شامل autopsy و volatility برای آنالیز شواهد دیجیتال
Code Block
ادامه Kali Linux
کاربردهای آموزشی
تمرین حمله و دفاع روی ماشین های مجازی آسیب پذیر مثل Metasploitable شبیه سازی حملات واقعی در محیط ایزوله یادگیری تست نفوذ شبکه و وب آموزش مفاهیم امنیت سایبری به صورت عملی
مزایا
کامل ترین مجموعه ابزار امنیتی استاندارد جهانی برای آموزش هک قانونی مستندات و آموزش های فراوان رایگان جامعه کاربری بزرگ و فعال
نکات ایمنی
Kali Linux فقط باید در محیط های مجازی و آزمایشگاهی استفاده شود هرگز روی سیستم های واقعی بدون اجازه کتبی تست نفوذ انجام ندهید استفاده از ابزارهای کالی برای حمله به سیستم های دیگران جرم است و پیگرد قانونی دارد
کدام یک را انتخاب کنیم
اگر موبایل داری و می خواهی سریع شروع کنی Termux بهترین گزینه است اگر کامپیوتر داری و قصد یادگیری جدی و حرفه ای داری Kali Linux قطعا انتخاب درست است بهترین مسیر یادگیری این است که هر دو را امتحان کنی و ببینی با کدام راحت تر هستی
Code Block
آموزش متوسط (Hacking)
ببینید، هک کردن (Hacking) یه چیز ساده و سطحی نیست برای اینکه واقعاً توی این حوزه وارد باشید، باید چند سال توی این زمینه (Field) کار کرده باشید و برنامهنویسی (Programming) و بخشهای مختلفش رو خوب بلد باشید؛ از شبکه (Networking) و مفاهیم سیستمعامل (OS Concepts) گرفته تا توسعه وب (Web Development) و اسکریپتنویسی (Scripting)
بعد از اون میرسیم به شناسایی اولیه (Reconnaissance) و بررسی سرویسها و اطلاعات سیستم (Enumeration) که ابزارهایی مثل Nmap و Wireshark توی این بخش استفاده میشن
مرحله بعد ارزیابی آسیبپذیریها (Vulnerability Assessment) هست که ابزارهایی مثل Nessus یا OpenVAS برای این کار استفاده میشن
بعدش بحث بهرهبرداری از آسیبپذیریها (Exploitation) مطرح میشه که یکی از ابزارهای شناختهشده توی این زمینه Metasploit Framework هست
برای امنیت وب هم ابزارهایی مثل Sqlmap و Burp Suite کاربرد زیادی دارن
مراحل پیشرفتهتر هم شامل فعالیتهای پس از نفوذ (Post-Exploitation)، ارتقای سطح دسترسی (Privilege Escalation) و حرکت جانبی داخل شبکه (Lateral Movement) میشه
ولی مهمتر از همه اینه که تمام این کارها باید فقط با مجوز (Authorization) و بهصورت اخلاقی و قانونی (Ethical) انجام بشه؛ وگرنه میتونه مصداق جرایم سایبری (Cybercrime) محسوب بشه
Code Block
شروع (Hacking) و بلد بودن اجزای آن
برای شروع هک (Hacking)، اول باید روی یه زبان برنامهنویسی (Programming Language) مثل پایتون (Python) مسلط باشی، مخصوصاً برای اسکریپتنویسی (Scripting) و خودکارسازی (Automation)
بعدش باید شبکه (Networking) رو خوب بلد باشی؛ چیزهایی مثل TCP/IP، زیرشبکهبندی (Subnetting)، DNS و پروتکلهای HTTP، FTP و SMB که پایه کار هستن
بعد میرسی به لینوکس (Linux)، ترمینال (Terminal) و Bash Scripting که برای کار با ابزارهای امنیتی خیلی مهمن
در بخش عملی هم با مفاهیمی مثل اسکن (Scanning)، شناسایی سرویسها (Enumeration)، تحلیل آسیبپذیری (Vulnerability Analysis) و تست نفوذ (Exploitation) آشنا میشی و ابزارهایی مثل Nmap و Metasploit رو یاد میگیری
برای امنیت وب هم باید Burp Suite و OWASP Top 10 رو بشناسی در مراحل پیشرفتهتر هم مفاهیمی مثل ارتقای سطح دسترسی (Privilege Escalation) و ماندگاری دسترسی (Persistence) مطرح میشن
برای تمرین، میتونی این مسیر رو در محیطهای آموزشی مثل Hack The Box و TryHackMe بهصورت قانونی و اخلاقی (Legal & Ethical) دنبال کنی
Code Block