Несмотря на значительные инвестиции в средства защиты, большинство крупных организаций остаются уязвимыми к вредоносным программам с открытым исходным кодом.
Коды с открытыми исходными кодами уже много лет являются неотъемлемыми составляющими современного программного обеспечения, но все же на них возлагается большая ответственность. Это объясняет тот факт, что в современном мире более 90 % программного обеспечения разрабатывается на базе открытого исходного кода. В свою очередь, открытые исходные тексты являются основным вектором угроз для киберпреступлений.
В течении последних нескольких лет 91% организаций подвергались атакам на цепочки поставок программного обеспечения. Организациям приходится бороться с растущей угрозой, вкладывая миллиарды в различные инструменты, которые помогают предотвратить, обнаружить и устранить риски, связанные с цепочкой поставок программного обеспечения.
Несмотря на это, несмотря на то, что в крупных организациях происходит рост и инвестиции в эффективные методы обеспечения безопасности, 99% организаций все еще подвержены легко эксплуатируемой бреши в системе безопасности, которую они могут быстро устранить, но которая остается незамеченной в большинстве цепочек поставок. Угроза представляет собой вредоносную программу с открытым исходным кодом. Интеллектуально и технически это является вредоносной частью с открытым исходным кодом, которая представляет собой наиболее опасную группу из-за того, что эксперты разрабатывают их таким образом, чтобы они были легитимными.
С учетом того, что открытый исходный код является неотъемлемой частью безопасности цепочки поставок программного обеспечения, можно выделить три категории угроз, которые имеют открытый исходный текст.
1. Уязвимый открытый источник:
Существует легальная версия компонента с открытым исходным кодом, в которую добросовестный разработчик не намеренно внес риск.
2. Вредоносные Open Source:
Легальная версия компонента с открытым исходным кодом, в которую злоумышленник внес риск.
3. Вредоносное ПО с открытым исходным кодом:
Особый тип вредоносного компонента, созданный злоумышленником с единственной целью - привнести риск в цепочки инструментов разработки и/или сборки.
Еще одна особенность, которая делает вредоносные компоненты с открытым исходным кодом такими коварными, заключается в том, что они специально созданы для того, чтобы полностью обойти ВСЕ традиционные средства защиты, такие как проверка кода, сканеры уязвимостей, традиционный анализ состава программного обеспечения (SCA) и средства защиты во время выполнения. Многие команды не имеют необходимых инструментов для борьбы с этой угрозой, потому что они часто сталкиваются с тем, что некоторые люди не понимают разницу между вредоносными компонентами с открытым исходным кодом и уязвимыми компонентами с открытыми исходными кодами.
Термины, которые часто используются как взаимозаменяемые, имеют существенные различия в значениях. Ограниченное восприятие их различий способствует ложному чувству защищенности, что является очевидной брешью в защите для большинства организаций. Подобное знание различий и осознание того, что источники риска имеют различные подходы к снижению рисков, является ключом к эффективной и комплексной программе безопасности.
Уязвимые и вредоносные компоненты
Слово «уязвимость» является универсальным термином для описания любого риска, который может возникнуть в работе программного обеспечения. Однако следует помнить о том, что уязвимости не являются преднамеренно плохими. В действительности, уязвимости являются недостатками в легитимных компонентах с открытым исходным кодом, которые злоумышленники могут использовать для получения несанкционированного доступа к системам или сетям. С другой стороны, вредоносные программы с открытым исходным кодом могут быть использованы для осуществления различных вредоносных действий - чаще всего это происходит путем внедрения определенных видов вредоносного ПО, которые могут серьезно скомпрометировать систему и организацию, которым они служат.
Если рассматривать программное обеспечение как дом, то уязвимости можно сравнить с человеком, который проник в жилище через незапертую дверь. Вредоносные компоненты программного обеспечения с открытым исходным кодом можно сравнить с намерением злоумышленника установить на дверь неисправный замок, рассчитывая затем проникнуть в помещение и избежать обнаружения.
Как пример вредоносного ПО с открытым исходным кодом можно привести обнаруженный в начале этого года пакет PyPI. Но, несмотря на то, что создатели полагали, что добавят законный пакет PyPI, это был всего лишь поддельный код, скрывающий информацию, который позволял загружать и устанавливать троянские двоичные файлы Windows, которые были способны вести слежку. Преднамеренное или сознательное использование вредоносных компонентов в данной среде является подтверждением наличия целенаправленной атаки.
Борьба со всеми угрозами, связанными с открытым исходным кодом
На первый взгляд может показаться, что в последнее время наблюдается тенденция к созданию новых угроз. Но, из-за того что киберпреступность превратилась в индустрию, которая стоит около 10 триллионов долларов, широкое распространение открытого исходного кода стало причиной появления новых угроз, таких как компоненты вредоносных программ с открытым исходным кодом. Чтобы бороться со стремительно меняющимся ландшафтом угроз, необходимо применять не только стандартные меры безопасности. У киберпреступников появилась новая тактика, позволяющая им использовать старые уловки, чтобы обмануть даже самых опытных разработчиков. У команд есть задача минимизировать все риски и не допускать появления брешей в безопасности системы.
Не следует использовать только сканеры для обнаружения новых угроз. Это может быть неэффективным. Для того, чтобы предотвратить проникновение известных и неизвестных рисков в цепочки поставок программного обеспечения, командам DevOps нужны специальные решения для мониторинга, управления, контроля и защиты потока компонентов в репозитории. С помощью этих инструментов можно применять политику контроля, которая будет использоваться для обеспечения доступа авторизованных пользователей к пактам и их модификации в репозитории. Помимо этого, они могут проводить проверку на подлинность и целостность компонентов перед их использованием.
Создание программ с открытым исходным кодом без должного уровня защиты может привести к непредсказуемым последствиям. Первая задача для снижения риска - это разделение компонентов с открытым исходным кодом на безопасные и уязвимые. Это различие имеет большое значение не только для разработки программного обеспечения, но и для репутации, непрерывности бизнеса и финансовой стабильности организаций, которые находятся в процессе своего развития, если они будут руководствоваться надежными программными продуктами.