آپاچی؛ شب ۴۹: اصلاح یافتههای CIS و آزمون عدم خرابی
فهرست نوشته
ممیزی بدون اصلاح، بدهی مشخصشده باقی میگذارد؛ اصلاح بدون آزمون میتواند سرویس سالم را قطع کند. امشب هر یافته را به یک تغییر محدود و نتیجهٔ قابل بازبینی تبدیل میکنیم.
این جلسه بخشی از دورهٔ آپاچی در ۵۰ شب است. قرارداد نامها، مسیرها و روش اعمال تغییر را در راهنمای دوره بخوان.
محیط: گزارش واقعی شب چهلوهشتم؛ Snapshot، maintenance window و ماتریس قابلیتهای فعلی. شمارهٔ کنترل را از PDF منتخب بگیر.
هر تغییر یک دلیل و یک برگشت#
برای یک یافته، این زنجیره را ثبت کن: معیار رسمی، وضعیت واقعی، اثر مورد انتظار، فایل فعال، diff، آزمون، راه برگشت و نتیجه. ابتدا در Clone اعمال کن. تغییر permission، حذف ماژول و کاهش timeout را در یک مرحلهٔ مبهم جمع نکن.
مثالهای اجرایی از این دوره، برای تطبیق با معیار PDF هستند:
| یافتهٔ محتمل | تغییر محدود | آزمون پس از تغییر |
|---|---|---|
| بنر پرجزئیات | تنظیم global شب ۴۳ | پاسخ موفق و خطا |
| ماژول CGI بینیاز | حذف handler و سپس ماژول | PHP-FPM و مسیرهای قدیمی |
| فایل خصوصی منتشرشده | انتقال خارج webroot و deny دفاعی | 403/404 و نبود دادهٔ خصوصی |
| اعتماد باز به هدر IP | محدود کردن remoteip به edge واقعی | جعل مستقیم و مسیر مجاز |
| حد منابع نامتناسب | بودجهٔ اندازهگیریشدهٔ شب ۴۴ | upload، streaming و ظرفیت |
وجود این موضوعها در برنامهٔ hardening به معنی شمارهگذاری آنها بهعنوان کنترل یک نسخهٔ CIS نیست؛ mapping باید با متن منتخب انجام شود.
اعمال و مشاهده#
بعد از هر تغییر Apache، -t، reload یا restart لازم، journal و درخواست تازه را بررسی کن. تغییر pool باید FPM configtest و restart خودش را هم داشته باشد. در failure، فایل و وضعیت سرویس قبلی را بازیابی و آزمون سالم را تکرار کن؛ برگشت نیز شاهد لازم دارد.
برای استثنای واقعی، نمونهٔ status فقط loopback را با مالک، توجیه مانیتورینگ و تاریخ بازبینی ثبت کن. exception را خودکار «قبول» حساب نکن. مقادیر profile و معیار رسمی را برای افزایش نمره دستکاری نکن.
گزارش قبل و بعد#
تعداد «قبول با شاهد»، «نیازمند اصلاح»، «استثنا»، «نامربوط» و «ارزیابینشده» را جدا بده. کنترل نامربوط یا بررسینشده نباید به قبول تبدیل شود. diff پیکربندی، خروجی دوبارهٔ audit و نتیجهٔ regression برنامه را کنار گزارش نگه دار.
تمرین: حذف ماژول proxy_fcgi چه قابلیت و چه تستی را میشکند؟ چرا بستن همهٔ POSTها ممکن است نمرهٔ ظاهری بهتر ولی WordPress خراب بدهد؟ برای تحویل شب بعد، تمام یافتههای باز باید مالک و اقدام بعدی داشته باشند؛ وجود استثنا را پنهان نکن.
منبع: CIS Benchmarks ، راهنمای امنیت Apache .