
اگرچه امروزه شاهد ظهور حملات سایبری در زمینههای مختلف مرتبط با فناوری هستیم، اما تمرکز مهاجمان بر زنجیرههای تامین بسیار بیشتر از سایر بخشها است. به عنوان مثال، در سال 2020، هک SolarWinds باعث شوک بزرگی در سراسر صنعت نرم افزار شد. وجود چنین رخنه های امنیتی مهمی توجه و توجه مردم را به این حوزه افزایش داده است.
از سوی دیگر، تشخیص دیرهنگام این حمله نقش بسزایی در جلب توجه شدید رسانه ها داشت. در این حمله، هکرهای روسی اطلاعات شرکت های مشتریان SolarWinds را برای بیش از یک سال جمع آوری و به سرقت بردند، از جمله سازمان های دولتی ایالات متحده مانند وزارت امنیت داخلی، وزارت خزانه داری، وزارت بازرگانی و غیره. شرکت های خصوصی مانند دیلویت، مایکروسافت و اینتل نیز تحت تاثیر این حمله قرار گرفتند.
در حال حاضر مدیریت ریسک با تهیه فهرستی از اجزای محصول [1] یا SBOM یکی از اقدامات DevOps بسیار توصیه شده برای کاهش خطرات حملات نرم افزاری در طول زنجیره تامین است. در این مقاله به بررسی این روش و نقش دید هر جزء در نرم افزار زنجیره تامین برای کاهش خطر حملات سایبری می پردازیم.
نرم افزار زنجیره تامین چیست؟
شرکت های مختلف توسعه نرم افزار از اجزای نرم افزاری مختلف برای بهبود کارایی عملیات خود و انجام وظایف روزانه خود استفاده می کنند. اجزا و وابستگی های شخص ثالث معمولاً در نرم افزار وجود دارند. بنابراین، محصولات نرم افزاری ذاتاً شامل زنجیره تأمین هر قطعه نرم افزار می شود.
این وب از وابستگی ها به توسعه دهندگان اجازه می دهد تا پروژه های خود را به سرعت مقیاس بندی کنند، اما همچنین نرم افزار را در معرض آسیب پذیری های دیگر کد منبع و فرآیندهایی قرار می دهد که خارج از کنترل مستقیم آنها است. نرم افزار زنجیره تامین شبکه ای از پلاگین ها، وابستگی های مخزن، کتابخانه ها، باینری ها و کدهای مختلف است. علاوه بر این، این شبکه شامل ابزارهایی مانند مخازن، تحلیلگرهای کد، ابزارهای ثبت عملیات و هماهنگ کننده های تولید است. نیروی انسانی درگیر در فرآیند تولید نیز بخشی از نرم افزار زنجیره تامین است.
با توجه به گستردگی این مشکل، یافتن راههایی برای شناسایی اجزای زنجیره تامین، تعیین اینکه هر بخش از کجا آمده و تهدیدها را قبل از آشکار شدن جداسازی کنید، ضروری است. در همین راستا، جو بایدن، رئیس جمهور ایالات متحده، به شرکت ها و فروشندگان نرم افزاری که مشتریان آنها دولت آمریکا هستند، دستور داد تا لیست SBOM را در اختیار مشتریان خود قرار دهند.
اجزای متداول SBOM عبارتند از:
- اجزای متن باز
- مجوزهای منبع باز
- نسخه های متن باز
- آسیب پذیری های منبع باز
با توجه به تهدیدات و خطرات امنیتی موجود، باید اقدامات لازم برای نظارت بر زنجیره تامین و کاهش ریسک امنیت سایبری انجام شود. در زیر به بررسی برخی از این اقدامات می پردازیم:
اسکن وابستگی ها
در هر مرحله از چرخه عمر توسعه سیستم باید وابستگی های منبع باز وجود داشته باشد (SDLC[2]) اسکن و ارزیابی شود. توسعه دهندگان می توانند از تجزیه و تحلیل اجزای نرم افزار (SCA[3]) از مسیرهای حمله احتمالی آگاه شده و قبل از اینکه مهاجمان آن مسیرها را پیش ببرند به آنها رسیدگی کند.
مخازن GitHub را اسکن کنید
مخازن GitHub یکی از بزرگترین کتابخانه های کد هستند. در نتیجه، نظارت بر این پلتفرم با اسکن منظم مخازن آن ضروری است. اعلانهای بلادرنگ میتوانند برای کاربران ارسال شوند و از افشای برخی اطلاعات جلوگیری کنند. به این ترتیب توسعه دهندگان می توانند به راحتی اعتبار کدهای منبع را بررسی کنند.
استفاده از فناوری هایپرلجر[4]
پروژه منبع باز Hyperledger که بر روی لینوکس تأسیس شد، شامل مجموعه متنوعی از ابزارها، پروژه ها و چارچوب ها برای کسب و کارها و توسعه دهندگان برای ساخت شبکه ها و برنامه های بلاک چین است. فناوری بلاک چین یک مکانیسم غیرمتمرکز است. استفاده از این فناوری در تحلیل نرم افزارهای زنجیره تامین، شفافیت زیادی ایجاد می کند و به شناسایی نقاط ضعف در مقابله با حملات مخفیانه کمک می کند. برای اعتبار سنجی زنجیره تامین، ارزیابی فناوری هایپرلجر و قرار دادن فناوری بلاک چین ضروری است.
استفاده از هانی توکن[5]
توکنهای عسل میتوانند بهعنوان دادههای فریب عمل کنند که به سازمانها کمک میکند تا تهدیدات و آسیبپذیریهای فعال هکرها را که باید در زمان واقعی اصلاح شوند، ارزیابی کنند. توکنهای عسل ابزار بسیار مفیدی هستند زیرا به مقابله با تعداد زیادی از خطرات امنیتی کمک میکنند.
ارزیابی ریسک
ارزیابی به موقع ریسک یکی از راه حل های موثر برای نظارت بر زنجیره تامین و کاهش ریسک نفوذ است. این روش همچنین برای آموزش اعضای تیم و آشنایی افراد با اصول توصیه شده زنجیره تامین مفید است.
رسیدگی به مسائل احتمالی شخص 4
مسائل زنجیره تامین نه تنها به وابستگی به اشخاص ثالث مربوط می شود، بلکه یک فروشنده نرم افزار ممکن است از خدمات پیمانکاران و سایر شرکت ها نیز استفاده کند. پرداختن به این خطر کار آسانی نیست، اما ابزارهای امنیتی خاصی وجود دارد که به اسکن خط لوله نرم افزار برای آسیب پذیری های احتمالی کمک می کند.
نظارت بر فروشندگان شخص ثالث
توسعه دهندگان نباید از فروشندگان شخص ثالث، به ویژه آنهایی که دسترسی ویژه ای به دارایی های نرم افزاری سازمان دارند، غافل شوند. یک ارزیابی کامل از این فروشندگان باید انجام شود تا اطمینان حاصل شود که نرم افزار SDLC تا حد امکان جامع است.
نقاط پایانی مورد استفاده توسعه دهندگان را رصد کنید
نقاط پایانی توسعهدهنده نیز به کنترلهای خاصی نیاز دارند. ابزارهایی مانند ماشین های مجازی، سرورها و ایستگاه های کاری باید به طور مرتب بررسی شوند و نقاط ضعف آنها شناسایی شود. پس از شناسایی آسیبپذیریها، میتوانید مکانیسمهای حفاظت از نقطه پایانی، پاسخ نقطه پایانی و فناوریهای تشخیص را برای بهینهسازی گزارشدهی پیادهسازی کنید.
اهمیت دید در زنجیره تامین
هکرها شروع به تطبیق الگوهای حمله خود با نرم افزار کرده اند. حملات هک معمولا مستقیم هستند. اسکن کامل سیستم به شناسایی آسیب پذیری های نرم افزار نصب شده کمک می کند. سپس بدافزار برای سوء استفاده از حفره های موجود در سیستم نصب می شود. در این مرحله بدافزار شروع به انتشار به اجزا و نرم افزارهای مختلف سیستم ها می کند.
در چنین مواردی دو راه برای مقابله با حمله وجود دارد. سازمانها میتوانند اکسپلویتهای شناختهشده را مسدود کرده و مدت زمان پنهان ماندن هکرها را کاهش دهند. در نتیجه، توسعه دهندگان نرم افزار باید تست آسیب پذیری و SCA را در مراحل اولیه SDLC اجرا کنند تا هر گونه نقض احتمالی در اسرع وقت شناسایی شود. اسکنرهای آسیب پذیری کد ضعیف را شناسایی کرده و آن را برای بررسی بیشتر علامت گذاری می کنند.
نتیجه
برای انتخاب بهترین رویکرد برای امنیت سایبری، باید تفاوتهای بین تشخیص دستکاری نرمافزار و تشخیص آسیبپذیری را بدانید. در حالت اول، آسیب از قبل وارد شده است و نرم افزار تغییر زیادی کرده است. از سوی دیگر، تشخیص آسیبپذیری شامل یافتن و جداسازی آسیبپذیریها قبل از تبدیل شدن به نقاط نفوذ است.
هر دو روش در موارد خاص ضروری است. اما شما باید از خط لوله توسعه نرم افزار در تمام مراحل SDLC محافظت کنید. بیشتر اوقات، آسیب پذیری ها در مراحل اولیه ایجاد می شوند و به تدریج به مراحل بعدی مهاجرت می کنند تا پروژه اجرا شود. معمولاً رفع آسیب پذیری در این مرحله بسیار دشوار است. اگرچه ابتکار عمل هکرها روز به روز در حال افزایش است، اما هنوز راه هایی برای مقابله با فعالیت آنها و ایمن نگه داشتن پروژه های نرم افزاری وجود دارد.
[1] این لیست شامل تمام موارد و مواد لازم برای ساخت یک محصول، دستورالعمل ها و دستورالعمل های لازم برای جمع آوری و استفاده از این مواد می باشد.
[2] چرخه عمر توسعه سیستم ها
[3] نرم افزار تجزیه و تحلیل ترکیب
[4] هایپرلجر
[5] هانی توکن
منبع: gbhackers