پرش به محتوا
~/nourisec
همهٔ نوشته‌ها
2 دقیقه مطالعه

متدولوژی تست نفوذی که در اولین برخورد دوام می‌آورد

چک‌لیست‌ها همان لحظه‌ای که هدف غافلگیرت می‌کند می‌شکنند. این متدولوژی حلقه‌محوری است که واقعاً در پروژه‌ها استفاده می‌کنم.

هر تستر مبتدی با یک چک‌لیست شروع می‌کند: nmap بزن، اسکنر آسیب‌پذیری اجرا کن، رمزهای پیش‌فرض را امتحان کن، گزارش بنویس. و هر مبتدی به یک چیز می‌رسد — چک‌لیست همان لحظه‌ای که هدف کار غیرمنتظره‌ای می‌کند می‌میرد.

چیزی که دوام می‌آورد یک فهرست نیست. یک حلقه است.

قانون و اخلاق

هر چیزی که اینجا توضیح داده می‌شود، فرض را بر یک پروژهٔ مجاز با اسکوپ امضاشده می‌گذارد. اجرای این مراحل روی سیستم‌هایی که اجازهٔ تستشان را نداری غیرقانونی است.

حلقه

هر چرخه به یک پرسش پاسخ می‌دهد و پرسش بعدی را تغذیه می‌کند:

  1. مشاهده — این هاست/سرویس/endpoint واقعاً چه چیزی را در معرض دید قرار می‌دهد؟
  2. فرضیه — با توجه به آن نمایش، چه چیزی می‌تواند خراب باشد؟
  3. آزمون — کوچک‌ترین اقدامی که فرضیه را تأیید یا رد می‌کند.
  4. ثبت — آنچه یاد گرفتی را بنویس، چه جواب داد چه نه.

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

چرا از چک‌لیست بهتر است

چک‌لیست فرض می‌کند از قبل بخش‌های جالب را می‌شناسی. نمی‌شناسی. حلقه اجازه می‌دهد یک پاسخ غافلگیرکننده — یک هدر عجیب، یک خطای پرحرف، یک اختلاف زمانی — تو را به‌سمت ضعف واقعی بکشد، به‌جای این‌که از کنارش رد شوی.

# Observe: what's really answering on this port?
nmap -sV -sC -p443 target.example.com

# Hypothesize + test one thing at a time, recording as you go
curl -skI https://target.example.com | tee -a notes/headers.txt

همه‌چیز را ثبت کن

مرحلهٔ بی‌زرق‌وبرقی که بقیه را کار می‌اندازد ثبت است. یادداشت‌هایت همان حافظه‌ای هستند که حلقه رویشان اجرا می‌شود — بدون آن‌ها همان چیزها را دوباره تست می‌کنی و الگویی را که فقط در ده مشاهده پیدا می‌شود از دست می‌دهی. یافته‌ها و گزارشی که در پی می‌آید، تقریباً به‌رایگان از یادداشت‌های خوب بیرون می‌آیند.

متدولوژی، ابزارهایی که اجرا می‌کنی نیست. انضباطِ اجازه‌دادن به هدف است تا تو را هدایت کند، یک گام کوچکِ آزموده‌شده در هر بار.