در عصر حاضر، سرعت معرفی تکنولوژیهای جدید به قدری زیاد است که تدوین دستورالعملهای جداگانه برای هر یک غیرممکن مینماید. با این حال، مفاهیم پایه حسابرسی نظیر مدیریت حسابها، احراز هویت (Authentication) و کنترل سطح دسترسی (Authorization) در تمامی این سیستمها صادق است. برای ارزیابی دقیق هر فناوری نوین، نیاز به یک چارچوب ساختاریافته داریم که بتوان ظرایف هر سیستم را در آن جایگذاری کرد.
وبسرورها و برنامههای مبتنی بر وب بیش از ۳۰ سال است که امکان دسترسی و تعامل کاربران و سیستمها با اطلاعات را فراهم کردهاند. با تکامل اینترنت، خدمات وب پیچیدهتر شدهاند و اکنون از تجربههای غنی و تعاملی، برنامههای موبایل و موارد دیگر پشتیبانی میکنند. اگرچه مدلهای برنامهنویسی میتوانند متفاوت باشند، اما برخی اصول پایهای کنترلهای خدمات وب در طیف وسیعی از سیستمها قابل اعمال هستند. این فصل به موضوعات زیر میپردازد:
- روش حسابرسی یک وبسرور
- روش حسابرسی یک برنامه وب
پیشزمینه
مفهومی که امروزه به عنوان وب جهانی (World Wide Web) شناخته میشود، در اواخر دهه ۱۹۸۰ توسط تیم برنرز-لی و رابرت کایو مطرح شد و هدف آن بهبود نحوه ارجاعدهی در اسناد متنی بود. برنرز-لی، که در آن زمان مهندس نرمافزار در سازمان اروپایی پژوهشهای هستهای (CERN) در سوئیس بود، به دنبال روشی بهتر برای دسترسی و اشتراکگذاری اطلاعات ذخیرهشده روی رایانهها بود. بنیانهایی که برنرز-لی و کایو توسعه دادند—از جمله وبسرورها، مرورگرهای وب، و حتی زبان و قالببندی صفحات وب—امروزه و پس از ۳۰ سال همچنان زیربنای وب محسوب میشوند. رابط کاربری وب از صفحات ساده و ایستا به دنیای آنلاین تعاملی که اکنون با مرورگرها و برنامههای موبایل تجربه میکنیم تبدیل شده است.
کسبوکارها برای ارتباط با مشتریان از طریق وبسایتها، مدیریت سیستمهای منابع انسانی، ایمیل و همکاری سازمانی، و بسیاری کاربردهای دیگر به برنامههای وب متکی هستند. امروزه تقریباً هر کسبوکاری یک حضور آنلاین در قالب یک یا چند وبسایت دارد و بسیاری از فرایندهای کلیدی کسبوکار بر تکنولوژی وب تکیه میکنند. با توجه به فراگیری و اهمیت حیاتی این برنامهها، ضروری است که شما بهعنوان حسابرس مطمئن شوید کنترلهای مناسب برای حفاظت از منافع سازمان وجود دارد.
اصول پایه در حسابرسی وب
گزارش «بررسی نفوذهای داده» شرکت ورایزن در سال ۲۰۱۸ نشان داد که حملات برنامههای وب در نزدیک به ۲۰ درصد از رخنههای موفق سازمانی نقش داشتهاند. علاوه بر این، ورایزن در همان گزارش بیش از ۲۳ هزار حادثه را شناسایی کرد که در آنها یک برنامه وب آسیبدیده برای مقاصد مخرب دیگری مانند ارسال اسپم، حملات فیشینگ یا حتی بهکارگیری مجدد آن برنامه در حمله به یک سازمان دیگر مورد استفاده قرار گرفته بود. وبسرورها اهداف رایجی برای مهاجمان هستند. ایمنسازی آنها میتواند دشوار باشد و معمولاً شامل اطلاعات حساس سازمان، دادههای شخصی یا اطلاعات مالی مانند سوابق کارت اعتباری هستند یا دسترسی به این دادهها از طریق آنها انجام میشود.
مانند بسیاری از حوزههای حسابرسی، ارزیابی یک وبسرور یک علم کاملاً دقیق نیست. انواع مختلفی از وبسرورها در حال استفاده هستند وبسرورهای مبتنی بر Apache، nginx و Microsoft Internet Information Services از رایجترینها هستند و میلیونها برنامه مختلف به خدمات وب وابستهاند. امروزه درصد فزایندهای از ترافیک وب مربوط به برنامهها است و بسیاری از سیستمها رابطهای برنامهنویسی کاربردی (API) خود را در قالب خدمات وب ارائه میکنند. این تنوع گسترده سیستمهایی که به خدمات وب متکیاند میتواند حسابرسی را پیچیده کند؛ اما با تمرکز بر اصول پایهای، میتوان فرایند را ساده کرد—اصولی که تقریباً برای هر سیستم مبتنی بر وب کاربرد دارند.
سازمانی که برنامه امنیتی قوی دارد، مجموعهای از کنترلهای تکمیلی برای حفاظت از وبسرورها در نظر میگیرد. فایروالهای برنامه وب(WAF)، کنترل دسترسی پورتهای شبکه و ریورسپراکسیها از جمله فناوریهایی هستند که ممکن است در یک محیط وب مشاهده کنید. علاوه بر این، سازمانهای بالغ معمولاً آزمونهای منظم آسیبپذیری و/یا تست نفوذ مرتبط با سامانههای وب را خود انجام میدهند یا به شرکتهای متخصص برونسپاری میکنند. یک وبسرور نمیتواند تنها به تکیه بر یک حسابرسی موفق در برابر تهدیدات محافظت شود؛ وجود لایههای متعدد دفاعی قویاً توصیه میشود. برخی از این کنترلهای تکمیلی در بخش بعدی بررسی شدهاند.
«مرکز امنیت اینترنت» (CIS) مجموعهای از راهنماهای سختسازی برای فناوریهای رایج از جمله Apache و Microsoft Internet Information Services (IIS) منتشر میکند. این راهنماها شامل دستورالعملهای پیکربندی فنی دقیق و همچنین گامهای لازم برای انجام بررسی و تأیید هستند و منبعی بسیار ارزشمند برای حسابرسان و مدیران سیستم به شمار میروند. هر زمان که امکانپذیر باشد، باید نسخهای از راهنماهای سختسازی CIS را تهیه کرده و توصیههای موجود در آنها را بررسی کنید.
یک حسابرسی با چندین مؤلفه
یک حسابرسی کامل وب در واقع حسابرسی سه مؤلفه اصلی است: سیستمعامل سرور، وبسرور و برنامه وب. این سه مؤلفه در جدول ۹-۱ نشان داده شدهاند. علاوه بر این، مؤلفههایی مانند پایگاهداده پشتیبان یا زیرساخت شبکه مرتبط نیز ممکن است لازم باشد در دامنه حسابرسی شما مورد توجه قرار گیرند.
جدول مؤلفههای حسابرسی وب
اولین مؤلفهای که بررسی میکنیم، پلتفرم یا سیستمعامل زیربنایی است که وبسرور و برنامه بر روی آن نصب شده و اجرا میشوند. مؤلفه بعدی خود وبسرور است برای مثال Microsoft IIS یا Apache که برای میزبانی برنامه وب استفاده میشود. در نهایت، حسابرسی برنامه وب را پوشش میدهیم.
تنوع گسترده زبانها و ساختارهای توسعه برنامههای وب، فرایند حسابرسی را پیچیده میکند. با این حال، ابزارها و روشهای متعددی نیز در دسترس هستند که به ما کمک میکنند مشخص کنیم کدام بخشها نیازمند بررسی دقیقتر هستند. مراحل بعدی این ابزارها و روشها را پوشش میدهند.
| مؤلفه حسابرسی وب (Component) | نگرانیهای کلیدی (Key Concerns) |
| سیستمعامل سرور | امنیت بستر میزبان و سیستمعامل |
| وبسرور | تنظیمات پیشفرض، کدهای نمونه، پیکربندیهای نادرست عمومی، لاگینگ |
| وباپلیکیشن | تنظیمات امنیتی چارچوب توسعه، تنظیمات پیشفرض برنامه، اعتبارسنجی ورودی، ارائه نادرست دادهها، دسترسی به دادههای محرمانه شرکت، پیکربندیهای نادرست عمومی |
چکلیستهای اصلی
جداول زیر خلاصهای از گامهای کلیدی برای حسابرسی وبسرورها و وباپلیکیشنها را ارائه میدهند:
- چکلیست حسابرسی وبسرورها
- تأیید کنید که وبسرور روی یک سیستم منطقی اختصاصی اجرا میشود و با سایر برنامههای حیاتی بهصورت اشتراکی استفاده نشده است.
- تأیید کنید که وبسرور بهطور کامل بهروزرسانی و وصلهگذاری شده و از آخرین نسخه تأییدشده استفاده میکند.
- تأیید کنید که سرویسها، ماژولها، اشیاء و APIهای غیرضروری حذف یا غیرفعال شدهاند.
سرویسها و ماژولهای فعال باید تحت کمامتیازترین حسابهای کاربری اجرا شوند. - تأیید کنید که فقط پروتکلها و پورتهای مجاز اجازه دسترسی به وبسرور را دارند.
- تأیید کنید که حسابهای کاربری دارای دسترسی به وبسرور بهدرستی مدیریت میشوند و از گذرواژههای قوی استفاده میکنند.
- اطمینان حاصل کنید که کنترلهای مناسب برای فایلها، پوشهها و دایرکتوریهای مجازی برقرار است.
- اطمینان حاصل کنید که اطلاعات غیرضروری مانند نسخه نرمافزار یا فهرست دایرکتوریها از طریق رابط وب افشا نمیشود.
- اطمینان حاصل کنید که وبسرور دارای قابلیتهای ثبت رویداد (Logging) مناسب است و فرآیندهای مانیتورینگ در جای خود فعال هستند.
- اطمینان حاصل کنید که پسوندهای اسکریپتها بهدرستی نگاشت شدهاند.
- اعتبار گواهینامههای امنیتی مورد استفاده توسط وبسرور را تأیید کنید.
- چکلیست حسابرسی وباپلیکیشنها
- اطمینان حاصل کنید که برنامه وب در برابر حملات تزریق (Injection Attacks) محافظت شده است.
- برنامه را از نظر آسیبپذیریهای مربوط به احراز هویت و مدیریت نشست بررسی کنید.
- تأیید کنید که دادههای حساس شناسایی شدهاند و بهدرستی محافظت میشوند.
همچنین مطمئن شوید که از فناوریهای رمزنگاری مناسب برای حفاظت از دادههای حساس استفاده شده است. - وبسرور را از نظر امکان قرار گرفتن در معرض حملات XML External Entities (XXE) بررسی کنید.
- اطمینان حاصل کنید که کنترلهای مناسب دسترسی اعمال شدهاند.
- کنترلهای مرتبط با حفظ پیکربندی امن را بررسی کنید.
- وبسایت را از نظر آسیبپذیریهای Cross-Site Scripting (XSS) بررسی کنید.
- از وجود مکانیزمهای محافظتی در برابر بهرهبرداری از توالیهای Deserialization مطمئن شوید.
- فرآیندهایی را بررسی کنید که تضمین میکنند آسیبپذیریها در کتابخانهها، فریمورکها یا سایر مؤلفهها وجود ندارند.
- اطمینان حاصل کنید که قابلیتهای مناسب ثبت رویداد (Logging) فعال است و رویههای بررسی دادههای لاگ وجود دارد.
- آموزشهای امنیتی ارائهشده به تیمهای توسعه را بررسی کنید و مطمئن شوید توسعهدهندگان با شیوههای کدنویسی امن آشنا هستند.
- تأیید کنید که همه ورودیها قبل از پردازش توسط وبسرور اعتبارسنجی میشوند.
- نحوه مدیریت صحیح خطا (Error Handling) را ارزیابی کنید.
- ریدایرکتها و فوروادهای برنامه وب را بررسی کنید تا اطمینان حاصل شود تنها URLهای معتبر قابل دسترسی هستند.
- تأیید کنید که کنترلها برای جلوگیری از CSRF یا XSRF وجود دارد.
دانلود راهنمای جامع و چک لیست حسابرسی وب سرورها و برنامههای وب