دسته OWASP: MASVS-CODE: کیفیت کد
نمای کلی
استفاده از API ها یا کتابخانه های ناامن وضعیت امنیتی برنامه را به میزان قابل توجهی کاهش می دهد. یک نقض امنیتی در هر یک از این وابستگی ها به مهاجم اجازه می دهد تا از تعدادی بردار برای انجام مجموعه گسترده ای از حملات مانند Man-in-the-Middle (MitM) و اجرای کد از راه دور (RCE) استفاده کند.
تهدید پیادهسازی وابستگیهای ناامن زمانی به وجود میآید که توسعهدهندگان ارزیابیهای امنیتی و تست آسیبپذیری را در چرخه عمر توسعه نرمافزار (SDLC) ادغام نمیکنند یا در برخی موارد، یک خطمشی بهروزرسانی خودکار برای وابستگیهای برنامهها را اجرا نمیکنند.
بهره برداری از وابستگی معمولاً با تجزیه و تحلیل باینری برنامه (apk.) برای جستجوی کتابخانه های آسیب پذیر شروع می شود. در این مرحله، اطلاعات منبع باز (OSINT) برای کشف آسیبپذیریهای بالقوه قابل بهرهبرداری که قبلاً کشف شده بودند، انجام میشود. سپس مهاجمان میتوانند از اطلاعات آسیبپذیری افشا شده عمومی مانند آسیبپذیریها و مواجهههای رایج (CVE) برای انجام حملات بیشتر استفاده کنند.
تاثیر
بهره برداری موفقیت آمیز از وابستگی های ناامن می تواند منجر به مجموعه گسترده ای از حملات مانند اجرای کد از راه دور (RCE)، تزریق SQL (SQLi) یا اسکریپت نویسی متقابل (XSS) شود. بنابراین، تأثیر کلی مستقیماً با نوع آسیبپذیری که نرمافزار شخص ثالث معرفی میکند و مهاجمان میتوانند از آن سوءاستفاده کنند، مرتبط است. پیامدهای احتمالی بهرهبرداری موفقیتآمیز از وابستگیهای آسیبپذیر، نقض دادهها یا در دسترس نبودن خدمات است که ممکن است به تأثیر قابلتوجهی بر شهرت و گردش اقتصادی منجر شود.
اقدامات کاهشی
دفاع در عمق
توجه داشته باشید که اقدامات کاهشی ذکر شده در زیر باید به صورت ترکیبی اجرا شوند تا از وضعیت امنیتی قویتر اطمینان حاصل شود و سطح حمله برنامه کاهش یابد. رویکرد دقیق همیشه باید بر اساس مورد به مورد ارزیابی شود.
ارزیابی آسیب پذیری وابستگی
برای شناسایی آسیبپذیریها در کد شخص ثالث، تأیید وابستگی را در ابتدای چرخه عمر توسعه پیادهسازی کنید. این مرحله آزمایش می کند که آیا کدی که در داخل ساخته نشده است، قبل از عرضه در محیط های تولید، ایمن است یا خیر. راستیآزمایی میتواند با پیادهسازی ابزارهای تست امنیت برنامه استاتیک (SAST) و تست امنیت برنامه کاربردی پویا (DAST) در چرخه عمر توسعه نرمافزار برای بهبود وضعیت امنیتی برنامه تکمیل شود.
به طور مداوم وابستگی ها را به روز کنید
همیشه مراقب باشید که به طور مداوم هر وابستگی تعبیه شده در کد را به روز کنید. برای این منظور، توصیه میشود که بهروزرسانیهای خودکار را پیادهسازی کنید که هر زمان که یک مؤلفه شخص ثالث یک وصله امنیتی جدید را منتشر میکند، به تولید منتقل میشوند.
انجام تست نفوذ برنامه
آزمایش های نفوذ منظم را انجام دهید. هدف این نوع آزمایشها کشف هر آسیبپذیری شناختهشدهای است که میتواند بر کد اختصاصی و یا وابستگیهای شخص ثالث تأثیر بگذارد. علاوه بر این، ارزیابیهای امنیتی اغلب آسیبپذیریهای ناشناخته (0 روز) را آشکار میکنند. تستهای نفوذ برای توسعهدهندگان مفید هستند، زیرا آنها یک عکس فوری از وضعیت امنیتی فعلی برنامه را ارائه میدهند و به آنها کمک میکنند تا مسائل امنیتی قابل بهرهبرداری را که باید مورد توجه قرار گیرند، اولویتبندی کنند.