اخیراً، من با یک شرکت کوچک Software as a Services (SaaS) کار کردهام، و به سرعت مشخص شد که آنها از لحاظ امنیتی چیز زیادی ندارند. آنها سیاست مستندی نداشتند. آنها بررسی کد را انجام ندادند. کدهای جدید منتشر شده در پرواز مستقر شدند. آنها اسکن ایمن کد یا برنامه وب را انجام ندادند. آنها فایروال برنامه وب (WAF) نداشتند. پایگاه داده برنامه روی همان سروری میزبانی می شد که سرور برنامه. تعداد انگشت شماری از توسعه دهندگان بودند که سال ها تجربه داشتند. آنها ظاهراً در بهترین شیوههای توسعه نرمافزار آگاه بودند و به آنچه که آنها کنترلهای امنیتی سفت و سخت و غیرضروری میدانستند، نیاز نداشتند.
در آن زمان بود که من در مورد برخی از اصول اولیه در مورد امنیت برنامه از CIS Control 16 بحث کردم. به عنوان یادآوری، مرکز کنترل های امنیت اینترنت 18 کنترل مهم امنیت اطلاعات هستند که همه سازمان ها و متخصصان امنیت اطلاعات باید با آنها آشنا باشند و برای محافظت از شبکه ها و داده های خود اجرا کنند. این سند حاوی اطلاعات سطح بالایی است که مدیران می توانند آن را درک کنند و همچنین دارای جزئیات خاصی در مورد ابزارها و رویه هایی است که کارکنان فنی باید با آنها کار کنند. من آن را برای راهنمایی امنیت اطلاعات به همه مشتریانم توصیه می کنم.
بررسی اجمالی برای کنترل 16 – امنیت نرم افزار کاربردی عبارت است از: چرخه عمر امنیتی نرم افزارهای داخلی توسعه یافته، میزبانی شده یا به دست آمده را مدیریت کنید تا از ضعف های امنیتی جلوگیری کنید، شناسایی کنید و قبل از اینکه بر سازمان تأثیر بگذارند، آنها را اصلاح کنید.
چرا امنیت نرم افزار کاربردی حیاتی است؟
مهاجمان میتوانند از برنامههای عمومی خود شرکت برای دور زدن ابزارهای امنیتی شبکه برای به خطر انداختن اطلاعات شرکت و مشتری استفاده کنند. مهاجمان همچنین می توانند از برنامه ها برای سرقت اطلاعات کاربری و نصب بدافزار بر روی سیستم های کاربر استفاده کنند. برنامه های امروزی پیچیده هستند و به گونه ای طراحی شده اند که از پلتفرم های مختلف مانند مرورگرهای وب، برنامه های تلفن همراه و تماس های API قابل دسترسی باشند. چرخه های توسعه بسیار بیشتر از گذشته است، در مقایسه با انتشار یک یا دو بار در سال، چندین بار در روز یا هفته. علاوه بر این، توسعه دهندگان از بسیاری از کتابخانه های منبع باز استفاده می کنند که باید به روز شوند. این عناصر امنیت اپلیکیشن را بسیار چالش برانگیز می کند. این امر اجرای و حفظ کنترلهای امنیتی مناسب در حمایت از برنامههای توسعهیافته داخلی و خارج از قفسه را ضروری میسازد.
کنترل 16 شامل 14 کنترل فرعی یا پادمان است:
16.1 ایجاد و حفظ یک فرآیند توسعه برنامه ایمن
16.2 ایجاد و حفظ فرآیندی برای پذیرش و رفع آسیب پذیری های نرم افزار
16.3 انجام تجزیه و تحلیل علت ریشه در برنامه های کاربردی آسیب پذیری های امنیتی
16.4 ایجاد و مدیریت فهرستی از اجزای نرم افزار شخص ثالث
16.5 استفاده از اجزای نرم افزار شخص ثالث به روز و قابل اعتماد
16.6 ایجاد و حفظ یک سیستم درجه بندی شدت و فرآیند برای آسیب پذیری های برنامه
16.7 از الگوهای پیکربندی سختی استاندارد برای زیرساخت برنامه استفاده کنید
16.8 سیستم های تولیدی و غیرتولیدی مجزا
16.9 توسعه دهندگان را در مفاهیم امنیتی برنامه و کدگذاری ایمن آموزش دهید
16.10 آموزش توسعه دهندگان در مفاهیم امنیتی برنامه و کدگذاری ایمن
16.11 از ماژول ها یا خدمات تأیید شده برای مؤلفه های امنیتی برنامه استفاده کنید
16.12 بررسی های امنیتی سطح کد را اجرا کنید
16.13 آزمایش نفوذ برنامه را انجام دهید
16.14 مدل سازی تهدید
بیایید برخی از کنترل های بالا را مورد بحث قرار دهیم.
16.1 – ایجاد و حفظ فرآیند توسعه برنامه ایمن
Safeguard 16.1 زمینه را برای کل کنترل و پادمان هایی که به دنبال آن است، ایجاد می کند. یک خطمشی را مستند کنید و رویههایی را در سازمان خود اجرا کنید که الزامات توسعه را ایجاد میکند، مانند محدود کردن دسترسی به مخازن کد؛ بررسی کد توسط یک همتا یا یک تیم رهبری قبل از پیشرفت کد در خط لوله کد. DAST کد و کتابخانه ها را اسکن می کند تا آسیب پذیری ها را شناسایی کند. و SAST اسکن برنامه ها. تست QA و تست پذیرش کاربر باید تعریف شود. این سند همچنین باید نحوه انتشار نسخه های جدید کد را بیان کند. این یک فرآیند خودکار پس از گذراندن کد یک سری آزمایش دستی و خودکار است یا تیمی وجود دارد که باید در انتشار نسخه جدید امضا کند.
استاندارد امنیتی که شرکت دنبال می کند نیز باید فهرست شود، مانند OWASP Top 10 با حداقل آموزش تجدید سالانه برای توسعه دهندگان در مورد نگرانی های رایج امنیتی برنامه.
16.10 – اصول طراحی امن را در معماری های کاربردی اعمال کنید
Safeguard 16.10 درست کردن بسیار مهم است، زیرا اگر اشتباه متوجه شوید اصلاح آن دشوار است. طراحی اپلیکیشن و زیرساخت پشتیبانی برای به حداقل رساندن سطح حمله بسیار مهم است. برخی از شرکت ها سرورها و پایگاه های اطلاعاتی خود را مستقیماً در اینترنت در معرض دید عموم قرار می دهند. شرکتهایی که من با آنها کار کردهام، کنترلهای خوبی دارند، معمولاً از حفاظت DDOS و WAF Cloudflare برای فیلتر کردن همه ترافیک قبل از رسیدن به متعادلکنندههای بار AWS استفاده میکنند. این از سیستم های آنها محافظت می کند، وب، برنامه ها و سرورهای دیگر را روی IP های خصوصی قرار می دهد که مستقیماً در دسترس اینترنت نیستند. این شرکت همچنین با آزاد کردن منابع به جای اجرای کنترلهای امنیتی پیچیده و گرانقیمتی که میتوانند از Cloudflare یا سایر فروشندگان دریافت کنند، سود میبرد.
16.12 – بررسی های امنیتی سطح کد را اجرا کنید
شرکت هایی با شیوه های توسعه خوب از ابزارهای تجزیه و تحلیل کد مانند BurpSuite، Brakeman، Qualysis و SonarQube استفاده می کنند. ابزارهای مختلفی برای زبان های برنامه نویسی خاص وجود دارد. برخی از اینها می توانند برای اسکن DAST برنامه واقعی استفاده شوند. در هر صورت، استفاده از چنین ابزارهایی برای یافتن آسیبپذیریها در کد خود، کتابخانههایی که کد شما بر روی آنها ساخته شده است و در سطح برنامه ضروری است.
کنترل 16.13 – آزمایش نفوذ برنامه را انجام دهید
Safeguard 16.13 به شناسایی آسیبپذیریهایی در برنامههای شما کمک میکند که با استفاده از ابزارهای خودکار قابل شناسایی نیستند. اگر سازمان شما منابع داخلی ندارد که بتواند تست قلم را انجام دهد، یک شرکت امنیتی را برای انجام این کار درگیر کنید. ابتدا مطمئن شوید که از قبل می دانید آزمون قلم شرکت انتخابی شما شامل چه مواردی می شود. مشتریانی که با تستهای قلم ناآشنا هستند، گزارشهایی را به من نشان دادهاند که اساساً اسکن آسیبپذیری با برخی جزئیات روایی در مورد دامنه اضافه شده بود. هیچ آزمایش دستی واقعی توسط یک متخصص امنیتی تهاجمی ماهر انجام نشد. ناگفته نماند، آنها پول زیادی برای اسکن آسیب پذیری پرداخت کردند.
قبل از تصمیم گیری در مورد یک شرکت، بخواهید یک گزارش نمونه را ببینید. اگر آنها از ارائه آن امتناع کردند، این یک پرچم قرمز است و شما باید تا زمانی که یک شرکت تست قلم را پیدا کنید که مطمئن هستید یک اسکن دقیق انجام می دهد، ادامه دهید. یک آزمون کامل قلم شامل بحثی با تیم شما و آزمایش کنندگان قلم در مورد محیط شما می شود. این گزارش باید شامل توصیههای عملی برای امنیت بهتر برنامه و محیط شما باشد.
با KirkpatrickPrice شریک شوید تا امنیت نرم افزار برنامه شما را بهبود بخشد
اجرای دستورالعمل های CIS Control 16 به محافظت از برنامه های داخلی و شخص ثالث شرکت شما و همچنین اطلاعات شرکت و مشتریان شما کمک زیادی می کند. امیدواریم این بررسی اجمالی از CIS Control 16 راهنمایی در مورد اینکه چگونه می توانید بهترین شیوه های امنیتی برنامه را دنبال کنید ارائه کرده باشد، اما اگر در مورد محیط خاص سازمان خود سؤالی دارید یا می خواهید در مورد خدمات تست نفوذ ما بحث کنید، امروز با یکی از کارشناسان ما تماس بگیرید.
درباره نویسنده
گرگ هالپین