رویکرد OWASP به 3 دسته جدید از خطرات
[1]OWASP در راستای بازسازی فهرست 10 تهدید سایبری مهم خودش، سه دستهبندی جدید ایجاد کرده است. این دستهبندیها میتوانند نقش چشمگیری در حفاظت از برنامههای کابردی در برابر مخاطرات امنیتی شدید و مهم داشته باشند. از این رو تیمهای امنیت سایبری نباید از آنها غافل شوند.
در این مطلب از فراست این سه دستهبندی و همچنین دلایل اهمیت آنها را مورد بررسی قرار میدهیم.
طراحی ناامن (A04:2021): نقطه شروع آسیبپذیری در برنامههای کاربردی
اگرچه این دستهبندی جدید در رتبه چهارم فهرست تهدیدات سایبری OWASP قرار دارد اما بدون شک یکی از مخاطرات بسیار مهم و تأثیرگذار بر روی سایر موارد موجود در این فهرست است. اضافه شدن این مورد توسط OWASP که معمولاً بر روی امنیت برنامههای کاربردی در مرحله پس از تولید تمرکز میکند اقدام بسیار مهمی است. بنا بر توصیه OWASP: «ایجاد امنیت در مراحل کدنویسی و حتی برنامهریزی و طراحی از جمله عوامل مهمی است که منجر به پیشرفت چشمگیر در حوزه امنیت سایبری میشود زیرا حتی در یک پیادهسازی عالی و بینقص هم امکان اصلاح نقصهای موجود در طراحی اولیه وجود ندارد. بنابراین کسبوکارها باید موضوع برقراری امنیت در مراحل مقدماتی طراحی برنامههای کاربردی را در اولویت قرار دهند. این حرکت منجر به ایجاد تغییرات مهمی در نحوه عملکرد صنعت نرمافزار و همچنین کاهش مشکلات احتمالی میشود که در ادامه مسیر به وجود میآیند.
نقض جامعیت دادهها و نرمافزارها (A08:2021): اهمیت کلیه افزونهها، کتابخانهها، ماژولها و زنجیره تأمین
جامعیت دادهها و نرمافزارها نیز یکی از دستهبندیهای بسیار مهم، جدید و همچنین مرتبط با دسته پیشین یعنی طراحی ناامن در فهرست 2021 است. این دستهبندی اشاره به مشکلات مربوط به استفاده از کد و زیرساختهایی دارد که از ایمنی چندان بالایی در برابر نقض جامعیت برخوردار نیستند. از این رو استفاده از افزونهها، کتابخانهها یا ماژولها از منابعی که بررسی یا اعتبارسنجی نشدهاند، میتوانند منجر به بروز مسائل امنیتی بسیار زیادی شود. برای مثال به Log4j توجه کنید. این ابزار متن باز با وجود همه راهکارهای پیشگیرانه همچنان ممکن است تحت تأثیر آسیبپذیری Log4Shell قرار گرفته و میتواند یک حفره امنیتی جدی را ایجاد کند.
براساس آمار و دادههای OWASP، مسئله نقض دادهها و نرمافزار یک تهدید رو به رشد است. OWASP دلیل ایجاد چنین تهدیدی را، افزایش استفاده از رویکرد خودکارسازی و نظارت پیوسته CI/CD (یا Continuous Integration/ Continuous Delivery or Development) در کل طول عمر برنامه کاربردی در راستای توسعه نرمافزار تخمین میزند. اگرچه CI/CD سازوکار ایدهآلی برای تسریع در تحویل سرویسها و نرمافزارهای جدید محسوب میشود اما همین عجله جهت سرعت بخشیدن به کارها معمولاً منجر به عدم اعتبارسنجی کامل و سرتاسری کدها یا اجزای مختلف شده و حتی ممکن است امکان دسترسی غیرمجاز، تزریق کدهای مخرب یا نفوذ به سیستمها را فراهم کند.
برای مقابله با این تهدید پیش از هر چیز باید اطمینان یابید که نرمافزارهای شما (از جمله کتابخانه مورد استفاده در آنها) از یک مخزن مورد اعتماد به دست آمده و کاملاً ایمن هستند. استفاده از امضاهای دیجیتال و اجرای یک فرایند بازبینی جهت کسب اطمینان از عدم تعبیه موارد مخرب در کد اصلی میتواند کارآمد باشد. OWASP همچنین استفاده از یک ابزار امنیت زنجیره تأمین نرمافزار برای بررسی همه اجزا جهت شناسایی آسیبپذیریهای شناخته شده را توصیه میکند.
جعل درخواست سمت سرور (A10:2021): یک نوع اسب تروجان
کارشناسان امنیت سایبری معتقدند که جعل درخواست سمت سرور یا SSRF (به انگلیسی: server-side request forgery) یک حمله بسیار جدی و خطرناک محسوب میشود. برنامههای کاربردی امروزی فراخوانیهای بیشتری را برای دسترسی به دادههای خارجی از جانب کاربران انجام میدهند. بنابراین پیشبینی میشود که حجم حملات SSRF نیز افزایش خواهند یافت.
مهاجمان در این حملات میتوانند درخواستهای طراحی شده به صورت اختصاصی را از سرور بک – اند (Back-End) به یک برنامه کاربردی آسیبپذیر ارسال کنند. اگرچه امکان حفاظت از منابع در مقابل دسترسیهای خارجی وجود دارد ولی این درخواستها معمولاً بهگونهای طراحی میگردند که ظاهراً از سوی یک منبع مورد اعتماد (مثل یک سرور داخلی) ارسال شدهاند. در نهایت نیز مهاجمان به دادههای درخواستیشان دسترسی داشته و سازمانها هم در معرض انواع حملات و پیامدهای مخرب قرار خواهند گرفت.
یکی از اقدامات مهم برای مقابله با این حملات، کاهش نوع، محدوده و تعداد درخواستهایی است که یک برنامه کاربردی میتواند ایجاد کند. البته برنامههای کاربردی نیاز به گفتگو با یکدیگر دارند. بنابراین تکنیکهای لازم باید فقط در راستای کاهش سطح مخاطرات پیادهسازی شوند. در ادامه تعدادی از فنون کارآمد جهت کاهش تهدیدات امنیتی در سطح شبکه و همچنین در لایه کاربرد را مورد بررسی قرار میدهیم.
در سطح شبکه
- استفاده از یک فایروال برای محدودسازی اتصالات به میزبان و فعال کردن حالت پیش فرض جهت رد همه درخواستها؛
- قرار دادن اتصالات مجاز در فهرست سفید و پیشگیری از پذیرش همه درخواستها مگر موارد ضروری؛
- فعالسازی احراز هویت در بین میزبانها (این روش باید برای همه ارتباطات داخلی میزبان در نظر گرفته شود)؛
- ثبت همه جریانهای ترافیک برای نظارت و بازبینی. مشخص کنید که چه میزبانهایی، چرا و چگونه باید با یکدیگر ارتباط برقرار کنند.
در لایه کاربرد:
- برای برنامههای کاربردی خودتان، پروتکلهای ارتباطی دقیق، فهرست مقاصد، پورتها و الگوی لینکهای مجاز را تعریف نموده و اعمال کنید؛
- جهت پیشگیری از دور زدن فهرست سفید، قابلیت تغییر جهت HTTP را غیرفعال کنید؛
- همه دادههای ورودی سمت کلاینت را پاکسازی و اعتبارسنجی نمایید. بهتر است این کار را در برنامه کاربردی یا با استفاده از یک فایروال برنامههای کاربردی تحت وب انجام دهید؛
- همیشه پیش از ارسال پاسخهای ایجاد به سمت کلاینت بررسی کنید که آیا ساختار و محتوای این پاسخها مطابق انتظار است یا خیر.
[1] انجمن آنلاین OWASP در زمینه تولید مطالب و فناوریهای مرتبط با امنیت وب فعالیت دارد.
برای مطالعه سایر مقالات در حوزه امنیت سایبری اینجا کلیک کنید.
منبع: infosecurity-magazine