هر یافتهٔ audit باید به تغییر قابل بررسی تبدیل شود. امشب یکی از موارد نامطابق واقعی را اصلاح می‌کنیم، اثر آن بر برنامه را می‌سنجیم و استثنای لازم را با دلیل ثبت می‌کنیم.

این جلسه بخشی از دورهٔ انجین‌اکس در ۵۰ شب است. قرارداد آزمایشگاه، مسیرها و روال اعمال تغییر در راهنمای دوره آمده است.

محیط: worksheet شب ۴۸، benchmark مشخص، backup config و Snapshot؛ نتیجهٔ baseline برای درخواست‌های سالم/منفی ثبت شده است. فهرست عمومی این درس جای شماره و متن کنترل‌های PDF را نمی‌گیرد.

تغییر کوچک با شاهد قبل و بعد#

مثلاً اگر status روی همهٔ addressها منتشر شده، آن را مثل شب ۴۷ به loopback محدود کن؛ اگر worker می‌تواند config را بنویسد، owner/mode و ACL واقعی مسیر را اصلاح کن؛ اگر backend TLS verify خاموش است، chain/name را طبق شب ۲۴ درست کن و verify را فعال کن. یافته‌ای را که در ماشین خودت مشاهده نشده، با نتیجهٔ فرضی pass/fail گزارش نکن.

برای هر مورد ثبت کن: کنترل دقیق، رفتار قبلی، فایل/line تغییر، دلیل، آزمون موفقیت و روش rollback. فقط همان مورد را اصلاح کن و nginx -t بگیر؛ روی failure reload نکن. برای firewall و systemd که restart/قطع دسترسی دارند، ابتدا console و زمان بازگشت را آماده کن.

روش HTTP مطابق نیاز برنامه#

اگر سیاست سازمان methodهای مجاز را مشخص کرده است، آن را با WordPress، REST، preflight و API واقعی تطبیق بده. بستن همهٔ POSTها login و upload را خراب می‌کند. نمونهٔ آموزشی در http برای یک سایت ساده:

map $request_method $lab_method_allowed {
    default 0;
    GET 1;
    HEAD 1;
}

در server سایت static:

if ($lab_method_allowed = 0) { return 405; }

if فقط برای return در این مثال استفاده شده است؛ آن را به rewrite/پراکسی پیچیده گسترش نده. GET و HEAD باید سالم و POST/TRACE در همین سایت 405 باشند. WordPress این policy را به ارث نگیرد؛ برای آن فهرست متناسب و آزمون مستقل لازم است. این مثال را بدون تطبیق شمارهٔ واقعی PDF «کنترل شمارهٔ X از CIS» ننام.

regression در چند مسیر#

مسیرچه چیزی باید دوباره بررسی شود؟
static/TLSنام صحیح و ناشناخته، 200/404، هدرها، HTTP/2
مدیریتIP مجاز/غیرمجاز، credential غلط، هدر XFF جعلی
برنامهURI، redirect/cookie، WSS، SSE، timeout و failure
WordPresslogin، permalink، upload، cron، عدم اجرای PHP upload
WAFدرخواست سالم، probe کنترل‌شده و دامنهٔ استثنا
کانتینرuser/mount/port، DNS بعد recreate، drain و rollback
streamACL TCP/UDP، failover، SNI و دوطرف PROXY protocol

استفاده از curl -I فقط HEAD را می‌سنجد؛ برای GET، body و header هر دو را بررسی کن. payload یا دادهٔ خصوصی را وارد گزارش نکن. برای rate limit، وضعیت واقعی 429 و log لازم است؛ افزودن دستور روی دیسک کافی نیست.

استثنای پذیرفته‌شده#

اگر یک کنترل طبق scope قابل اعمال نیست یا با نیاز برنامه تعارض دارد، شماره/نسخه، دلیل، ریسک مشخص، کنترل جبرانی، مسئول و تاریخ بازبینی را ثبت کن. استثنا را pass تبدیل نکن و جمع امتیاز چند benchmark متفاوت را با هم مخلوط نکن. افزایش امتیاز scanner اگر backup، TLS یا WordPress خراب شده باشد نتیجهٔ عملی مناسب نیست.

بازگشت: config/permission/drop-in قبلی همان تغییر را برگردان، validate و reload/restart متناسب کن؛ سپس شاهد runtime تازه بگیر. بررسی نهایی را با evidence تازه به همان worksheet پیوند بده.

منبع: CIS NGINX ، map ، return در rewrite module .