Мэдээллийн технологийн компаниуд хамгийн түрүүнд нээлттэй эх сурвалжийг нэвтрүүлж, олон томоохон бизнесүүд үүнийг дагаж мөрдсөн. Эцсийн эцэст, кодыг дахин ашиглах, бие даан өөрчлөх, алдаа засах чадвар нь хурдацтай шинэчлэл, зардлыг бууруулахад түлхэц өгдөг.
Гэхдээ нээлттэй эх нь зарим нэг сөрөг шинж чанартай байдаг бөгөөд энэ нь кодыг үүсгэх, хадгалах үүрэг хариуцлагыг бүдгэрүүлсэнтэй холбоотой юм. Мэдээллийн технологийн томоохон фирмүүдийн 20 гаруй CISO болон CTO-уудын туслалцаатайгаар Endor Labs нь энэхүү шилдэг 10 эрсдэлийн жагсаалтыг гаргахын тулд системчилсэн дүн шинжилгээ хийсэн.
Мэдэгдэж буй сул талууд
Илэрсэн хамгийн чухал эрсдэл бол нээлттэй эхийн төсөл болон түүний хамаарал, өөрөөр хэлбэл төсөлд ашигласан гадаад нээлттэй эхийн бүрэлдэхүүн хэсгүүдийн аль алинд нь сул талууд байгаа явдал байв. Хараат байдлын эмзэг байдал нь энгийн Apache Log4j номын сан (CVE-2021-44228)-тай адил олон арван томоохон арилжааны програм хангамжийн иж бүрдэлд чухал асуудал үүсгэж болзошгүй.
Хамгаалалтын арга хэмжээ: Шууд болон шууд бус хамаарлын аль алиных нь эмзэг байдлыг оруулаад мэдэгдэж буй сул талуудыг өөрийн аппликешнүүдийг тогтмол шалгаарай. Боломжтой засваруудыг нэн даруй хэрэглээрэй. Компанийн нөөцийг оновчтой болгохын тулд тухайн эмзэг байдлын ноцтой байдал болон таны ашиглаж буй програм хангамжид түүнийг ашиглах магадлалд үндэслэн засваруудыг эрэмбэлэх боломжтой.
Эвдэрсэн хууль ёсны багцууд
Нээлттэй эхийн төслийн кодын 80 хүртэлх хувь нь эдгээр хамаарлын хэлбэрээр бусад төслөөс өвлөгддөг тул таны аппликешнд ашигласан гуравдагч талын бүрэлдэхүүн хэсгүүдийг троянжуулсан байх магадлал үргэлж байдаг. Эдгээр бүрэлдэхүүн хэсгүүдийн хөгжүүлэгч хакердагдах эсвэл бүрэлдэхүүн хэсгүүдийн түгээлтийн системд (өөрөөр хэлбэл багц менежер) багцыг хууран мэхлэх боломжийг олгодог эмзэг байдал илэрсэн тохиолдолд энэ нь тохиолдож болно. Энэ тохиолдолд гуравдагч этгээдийн хортой код таны программ дотор гэнэт гарч ирэх бөгөөд энэ нь практикт ихэвчлэн мэдээлэл хулгайлах эсвэл янз бүрийн хууль бус баяжуулах схемд (спам, зар сурталчилгааны луйвар, олборлолт) ашиглагддаг.
Хамгаалалт: Энэ аюулаас хамгаалах боловсронгуй аргачлал одоогоор байхгүй байгаа тул дараах арга хэмжээг хослуулан хийх шаардлагатай байна: эх кодыг шинжлэх, хадгалах санг хянах гарын авлагын болон автомат систем; бүрэлдэхүүн хэсгүүдийн итгэмжлэгдсэн хувилбаруудын дотоод хадгалалт; Ийм халдлагыг эхний шатанд нь илрүүлэхийн тулд Threat Intelligence-ийг ашиглах (компанийн нээлттэй эхийн програмуудад ашиглагдаж буй багцуудад нөлөөлөхөөс өмнө).
"Нэртэй хүмүүсийн" дайралт
Халдагчид хууль ёсны багцтай төстэй нэртэй багцуудыг үүсгэх эсвэл бусад програмчлалын хэлээр бичсэн эсвэл бусад түгээлтийн платформ дээр байрлуулсан хууль ёсны багцуудын нэрийг хуулдаг. Энэ нь таны нээлттэй эхийн хөгжүүлэгчид жинхэнэ багцын оронд хортой "нэр" багцыг нэгтгэх эрсдэлийг бий болгодог.
Хамгаалалтын арга хэмжээ: Хөгжүүлэгчдийг сонор сэрэмжтэй байхыг зааварлаарай. Стандарт процедурын нэг хэсэг болгон ашиглахын өмнө хөгжүүлэгчид багцын эх кодыг кодонд шифрлэгдсэн фрагментүүд, функцуудыг хулгайлах гэх мэт онцлог шинж чанаруудыг шалгаж үзэх шаардлагатай. Мөн багцын тоон гарын үсгийг (хэрэв байгаа бол) шалгахыг зөвлөж байна.
Дэмжигдээгүй код
Нээлттэй эхийн бүрэлдэхүүн хэсгүүд, багцууд болон програмуудыг хөгжүүлэгчид хүссэн үедээ, ямар ч шалтгаанаар дэмжлэг авах боломжтой. Энэ нь ихэвчлэн 1-2 хүний боловсруулсан жижиг багцад тохиолддог. Хэрэв ийм зүйл тохиолдвол шинэ технологитой нийцүүлэхийн тулд багцыг шинэчлэх эсвэл мэдээллийн аюулгүй байдлын эрсдлийг арилгах хүн байхгүй.
Хамгаалалтын арга хэмжээ: Төслийг бизнесийн үйл явц болон өөрийн кодтой нэгтгэхийн өмнө түүний төлөвшлийн түвшин, хөгжил/дэмжлэгийн хэтийн төлөвийг үнэл. Төслийг хэрэгжүүлж буй хөгжүүлэгчдийн тоо, хувилбарын давтамжийг анхаарч үзээрэй. Урт хугацааны дэмжлэг (LTS) хувилбарууд болон хэзээ гарсан эсэхийг шалгана уу. Зарим тогтвортой төслүүдийн хувьд хувилбарууд ховор, зөвхөн алдаа засах нь хэвийн үзэгдэл юм.
Хуучирсан програм хангамж
Төсөлд бүрэлдэхүүн хэсгүүдийн хуучин хувилбаруудыг ашиглах нь засвар хийх ажлыг илүү төвөгтэй болгодог. Энэ асуудал нь №1 эрсдэлийн үед ялангуяа хурцаар тавигддаг: бүрэлдэхүүн хэсгүүдийн эмзэг байдал. Ихэвчлэн бүрэлдэхүүн хэсгийн шинэ хувилбар нь синтакс эсвэл семантикийн хувьд өмнөх давталтуудаас эрс ялгаатай байх үед хуучирсан хамааралтай холбоотой асуудал үүсдэг. Энэ тохиолдолд хуучирсан хувилбар нь аюулгүй байдлын шинэчлэлтгүйгээр олон жилийн турш ашиглагдаж болно.
Хамгаалалт: Ашиглаж буй бүрэлдэхүүн хэсгүүдийн хамгийн сүүлийн хувилбарыг шинэчлэхийн тулд кодоо дахин засварлах зэрэг хамааралтай ажиллах цагийг хөгжүүлэгчдэд олгоно.
Хянагдаагүй хамаарлууд
Бараг бүх програм гуравдагч талын бүрэлдэхүүн хэсгүүдийг ашигладаг тул тэдгээр нь эргээд бусад гуравдагч талын бүрэлдэхүүн хэсгүүдийг ашигладаг тул үндсэн програмыг хөгжүүлэгчид өөрсдийнхөө кодонд тодорхой бүрэлдэхүүн хэсэг байгааг мэддэггүй. Энэ тохиолдолд жагсаалтад байгаа бусад бүх эрсдэлийг шалгахгүй. Шинэчлэлтүүдийн байдал, эмзэг байдал болон бусад зүйлс нь тодорхойгүй байна.
Хамгаалалт: Багц менежергүйгээр ашиглагдаж буй хамаарлыг ч илрүүлж чадах сканнерын хэрэглүүр ашиглан програм хангамжийн материалын нарийвчилсан тайланг (SBOM) хөтлөх.
Зохицуулалтын болон тусгай зөвшөөрлийн эрсдэл
Нээлттэй эх сурвалжтай хэдий ч нээлттэй эхийн програм, багц бүр өөрийн хэрэглээний лицензтэй ирдэг. Тусгай зөвшөөрөл нь програмыг зориулалтын дагуу ашиглахад нийцэхгүй эсвэл зарим програмын бүрэлдэхүүн хэсгүүдийн лицензүүд хоорондоо нийцэхгүй байвал эрсдэл үүсдэг. Нэг буюу хэд хэдэн хараат бүрэлдэхүүн хэсэг нь холбогдох хууль тогтоомж эсвэл компанид ногдуулсан зохицуулалтын шаардлагыг зөрчих боломжтой.
Хамгаалалт: Компанид ашиглагдаж буй нээлттэй эхийн програмууд болон бүрэлдэхүүн хэсгүүдэд хамаарах лиценз, лицензийн шаардлагыг хянахын тулд аль хэдийн дурдсан SBOM болон код сканнердах хэрэгслийг ашиглах ёстой. Компанид хүлээн зөвшөөрөгдсөн стандарт лицензийн жагсаалтыг боловсруулж, ашигласан програм хангамжийн зорилгод нийцэж байгаа эсэхийг нарийвчлан гаргахын тулд хуулийн хэлтэстэй хамтран ажиллах нь зүйтэй юм. Тохиромжгүй лицензтэй эсвэл огт лицензгүй программ хангамжийг устгах хэрэгтэй.
Хөгжилгүй програм хангамж
Төлөвшөөгүй багийн боловсруулсан бүрэлдэхүүн хэсгүүдийг ашиглах нь олон тооны таагүй байдал, эрсдэлийг дагуулдаг. Боловсроогүй программ хангамжтай холбоотой асуудлууд нь кодын баримт бичиг хангалтгүй эсвэл алдаатай байхаас эхлээд тогтворгүй байдал, алдаа ихтэй ажиллагаа, регрессийн тестийн багц байхгүй байх зэрэг багтана. Үүнээс гадна, төлөвшөөгүй код нь чухал эмзэг байдлыг агуулсан байх магадлалтай. Энэ бүхэн нь боловсорч гүйцээгүй программ хангамжийг ашиглах боломжгүй болгож, зардал болон чухал үйл явдал, сул зогсолтын эрсдэлийг хоёуланг нь нэмэгдүүлдэг.
Хамгаалалтын арга хэмжээ: Аппликешн эсвэл бүрэлдэхүүн хэсгийг ашиглахын өмнө хөгжүүлэгчид одоогийн шилдэг туршлагыг ашиглаж байгаа эсэхийг шалгаарай. Үүний үзүүлэлтүүд нь бүрэн бөгөөд хамгийн сүүлийн үеийн баримт бичиг, регрессийн тест хийх CI/CD дамжуулах хоолой, мөн туршилтын хамрах хүрээний талаарх дэлгэрэнгүй мэдээлэл, тэр ч байтугай өгөгдсөн бүрэлдэхүүн хэсгийг аль хэдийн ашигласан багцын тоо зэрэг орно.
Зөвшөөрөгдөөгүй өөрчлөлтүүд
Аппликейшний ашигладаг бүрэлдэхүүн хэсгүүд нь түүний хөгжүүлэгчдэд огт үзэгдэхгүй байдлаар өөрчлөгдөж болно. Бүрэлдэхүүн хэсгүүдийг хатуу хувилбарын хяналтгүй ба эсвэл шифрлэгдээгүй холбооны сувгуудаар серверээс татаж, хэш болон тоон гарын үсэг ашиглан баталгаажуулаагүй тохиолдолд ийм нөхцөл байдал үүсч болно. Энэ тохиолдолд програмын угсралт нь онолын хувьд цаг бүр өөр үр дүнг гаргаж чадна.
Хамгаалалтын арга хэмжээ: Аюулгүй хөгжлийн туршлагыг хэрэгжүүлэхдээ хатуу байх. Хөгжүүлэлтийн явцад бүрэлдэхүүн хэсгийн хувилбарыг тодорхой заасан нөөцийн танигчийг ашигла. Нэмж дурдахад, тоон гарын үсэг ашиглан татаж авсан бүрэлдэхүүн хэсгүүдийг шалгана уу. Үргэлж аюулгүй харилцааны протоколуудыг ашигла.
Хамаарал нь хэтэрхий том эсвэл хэтэрхий жижиг
Өнөө үед хөгжүүлэгчид ердөө гурван мөр код бүхий бүрэлдэхүүн хэсгийг нэгтгэх боломжтой. Үүний зэрэгцээ, бүхэл бүтэн бүрэлдэхүүн хэсэг нь дөрвөн мөр кодоос бүрдэх (маш жижиг) бөгөөд таны ашиглах гэж буй код мянга мянган бүрэлдэхүүн хэсгүүдийн зөвхөн нэг нь байх үед бусад нь компанийн хэрэглээнд ашиглагдаагүй байвал энэ нь адилхан хор хөнөөлтэй. Энэ тохиолдолд хөгжүүлэгчид маш бага ажиллагаатай байхын тулд өөр нэг хамаарлыг хадгалах үүрэгтэй.
Хамгаалалт: Бага зэргийн ажиллагаатай хамаарлаас зайлсхийх; үндсэн програм дотор ийм функцийг хөгжүүлэх.