Защита исходного кода с помощью DLP

Технологические предприятия, которые разрабатывают пользовательские приложения как для внутреннего использования, так и для продажи, имеют ценный актив, который заслуживает такой же защиты, как личная информация клиентов или номера кредитных карт — исходный код. Для многих компаний исходный код является сердцем бизнеса. Если компания разрабатывает уникальный IT-продукт, его исходный код должен быть защищен очень надежно.

Почему исходный код так ценен?

Многие коммерческие приложения имеют значительное конкурентное преимущество, потому что никто, кроме авторов, точно не знает, как эти приложения работают. Они могут использовать уникальные алгоритмы или программные трюки, которые делают их точнее, быстрее или лучше конкурентных. Эти секреты скрыты в исходном коде.

Понимание, почему исходный код так ценен, также требует понимания процесса создания компьютерных программ. В почти всех современных архитектурах программист пишет программу на высокоуровневом языке программирования, таком как Java, Python, Ruby или C++ — это и есть то, что называют исходным кодом. Люди без проблем понимают такие языки, поэтому им легко с ними работать. В то же время эти же языки гораздо сложнее обработать процессорам компьютеров, которые нуждаются в очень базовых наборах инструкций.

Каждый раз, когда разработчики создают новую версию исходного кода, его нужно конвертировать в инструкции для компьютера. В прошлом многие архитектуры делали это во время выполнения кода с помощью специальных приложений, называемых интерпретаторами, но этот подход не очень эффективен. Сейчас почти все языки требуют специального приложения, называемого компилятором, которое берет исходный код и превращает его в настоящее приложение, которое можно выполнять на компьютере, публиковать в Интернете или загружать и устанавливать пользователями.

Но можно подумать, что если приложение загружено или опубликовано в Интернете, кто угодно может понять, как оно работает, и получить доступ к исходному коду? Это не так, нельзя просто преобразовать приложение обратно в исходный код. Вот почему бизнесы чувствуют себя в безопасности, публикуя приложения, но никогда не сделают то же самое со своим исходным кодом.

Кто может быть заинтересован в краже исходного кода?

Хотя очевидным виновником попыток кражи исходного кода будет конкурент, еще многие другие стороны могут быть заинтересованы в уникальных алгоритмах:

  • Дилеры на даркнете: Возможно, самая большая угроза для исходного кода исходит от профессионалов, которые зарабатывают на жизнь кражей у других, а затем либо продают это покупателю, предложившему самую высокую цену, либо требуют выкуп, чтобы не публиковать код. Большинство воров исходного кода совсем не интересует его содержание. Они ищут легкую жертву, получают исходный код и выставляют его на продажу в даркнете или шантажируют жертву, требуя значительные деньги.
  • Псевдо-хакеры и псевдо-активисты: Еще одна группа, которая часто не интересуется алгоритмами, а самим фактом кражи, — это так называемые “скрипткиди” (script kiddies). Это, как правило, проблемные молодые люди, которые пытаются поднять свою самооценку, участвуя в незаконных хакерских сообществах, где они получают наибольшее уважение, если им удается взломать защиту и публично выставить свои находки. Подобная ситуация может возникнуть и с людьми, которые считают, что секреты фирмы должны быть известны общественности, чтобы каждый мог воспользоваться исследованиями “на благо мира”. Вред в этих случаях может быть намного больше, чем от профессиональных воров, поскольку ценная информация становится доступной для загрузки кому угодно.
  • Государственные злонамеренные хакеры: Не только сомнительные конкуренты с другой стороны мира могут быть заинтересованы в уникальных алгоритмах, но и правительства, стоящие за ними. Их целью может быть не использование изобретений, а ослабление позиций бизнеса, страны или ее союзников. Сам факт кражи помогает им подпитывать свою пропагандистскую машину, предоставляя доказательства того, насколько легкой мишенью могут быть их враги.

Три угрозы, приведенные выше, являются лишь примерами, и могут быть другие, которые получат выгоду либо от украденного контента, либо от его разоблачения, либо от самого факта кражи. И, наконец, злоумышленники могут тихо использовать украденный исходный код, чтобы исследовать уязвимости в программном обеспечении. Это делает исходный код одной из самых ценных целей в современном информационно-ориентированном мире.

Как можно украсть исходный код?

Современные приложения разрабатываются командами, которые включают многочисленные роли, и все эти роли нуждаются в определенном доступе к исходному коду. Это означает, что злоумышленники имеют несколько потенциальных точек входа для кражи ценной информации, и придется защищать каждую из этих точек. В итоге, кража исходного кода гораздо легче, чем кража секретной формулы.

Чтобы понять, почему незащищенный исходный код очень легко украсть, нужно понять, как сегодня создается программное обеспечение. В почти каждом бизнесе, который создает приложения, весь исходный код их приложений хранится с помощью специального программного обеспечения, которое называется системой управления версиями, а место, где хранится исходный код, обычно просто называется репозиторием. Это специальное программное обеспечение облегчает отслеживание любых изменений, внесенных любыми командами, участвующими в создании и изменении исходного кода, откат их в случае необходимости или даже создание нескольких версий программного обеспечения одновременно.

Наиболее популярной системой управления версиями сегодня является Git, и основные репозитории могут храниться либо на выделенном сервере компании, либо, например, управляться с помощью облачных решений, таких как GitHub и GitLab. Хотя эти репозитории обычно очень хорошо защищены, и единственное, о чем бизнесу нужно беспокоиться, это использование надежных паролей и многофакторной аутентификации для доступа к ним, к сожалению, каждый человек, работающий над программным обеспечением, такой как разработчик/программист или тестировщик, обеспечивающий контроль качества, должен скопировать весь исходный код на свой локальный компьютер. Это означает, что код находится на десятках или даже сотнях ноутбуков, часто по всему миру.

Этот факт сам по себе означает, что исходный код очень легко украсть, если вместо того, чтобы целиться в хорошо защищенный центральный репозиторий, злоумышленник целится в слабое место: этих разработчиков или тестировщиков и их ноутбуки. Намного легче обмануть человека с помощью социальной инженерии или даже получить физический доступ к такому ноутбуку, чем пытаться прорваться через защиту облачных гигантов или получить доступ к специальным серверам компании.

Известные случаи кражи исходного кода

Кража исходного кода — это не просто теория, а ежедневная реальность. Хотя такие случаи не так часто освещаются популярными медиа, как кража личной информации, и мы не слышим о них так часто, они происходят почти каждый год и даже с крупнейшими игроками на рынке. Вот некоторые известные случаи и их последствия.

2018 рік — Apple:

Интерн, который покинул компанию, взял с собой копию исходного кода iOS и передал его сообществу, специализирующемуся на взломе защитных механизмов операционной системы (“jailbreaking”). Впоследствии это сообщество опубликовало часть исходного кода, что показало, как Apple реализует механизмы защищенной загрузки.

2020 рік — Mercedes:

Автогигант случайно открыл свой полный репозиторий исходного кода, опубликовав токен безопасности (аналогичный паролю), который можно было найти с помощью Google Search. К счастью, эту уязвимость обнаружил инженер по безопасности (Шубхам Миттал из RedHunt Labs), но трудно сказать, смог ли кто-то еще получить доступ к этой чувствительной информации ранее.

2022 рік — Microsoft:

Компания стала жертвой атаки хакерской группы Lapsus$, которая получила доступ к коду для Bing и Cortana, среди прочего. Злоумышленники смогли украсть этот исходный код через незащищенный сервер Azure, который мог быть доступен любому без пароля в течение месяца.

2023 рік — Riot Games:

Этот издатель игр подвергся краже кода одной из самых известных игр: League of Legends. Злоумышленники требовали выкуп, и, вероятно, атака была организована с помощью социальной инженерии.

Березень 2024 року — Microsoft:

На этот раз гигант подвергся краже исходного кода одним из самых известных российских государственных злонамеренных хакеров, Midnight Blizzard, который ранее был известен взломом SolarWinds. Атака была осуществлена с помощью “password spraying” – использования одного и того же украденного пароля для доступа к многим целям, предполагая, что большинство людей используют один и тот же пароль для многих систем. В результате были украдены исходный код ряда приложений, инструменты внутренней IT-поддержки и персональные данные сотрудников, имеющих доступ к исходному коду.

Эти примеры показывают, что угроза реальна, и даже крупнейшие компании, которые делают все, чтобы защитить свои активы, могут стать жертвами. Однако большинству компаний не нужно беспокоиться о государственных хакерах. Их угрозы часто исходят от бывших сотрудников, недовольных работников или профессионалов, торгующих украденными данными на черном рынке.

Предотвращение кражи исходного кода с помощью DLP

Как уже упоминали ранее, самой простой точкой доступа для кражи исходного кода являются конечные точки – в первую очередь ноутбуки, используемые разработчиками и тестировщиками программного обеспечения, которые почти в любое время могут иметь полную копию исходного кода программы в совершенно незащищенном локальном Git-репозитории, который является просто каталогом на локальном диске. DLP работает, позволяя владельцу устройства получить доступ к защищенному ресурсу, но не позволяя копировать и вставлять этот чувствительный контент в другие приложения, такие как окно браузера, мессенджер или электронная почта. Но первой проблемой является выявление ресурсов, которые нуждаются в защите, в данном случае – исходного кода.

Несмотря на то, что программам безопасности относительно легко сканировать все файлы на локальном диске, обнаружение исходного кода в этих файлах не так просто, как может показаться. Современные высокоуровневые языки программирования созданы для того, чтобы быть легкими для понимания человеком, поэтому они используют слова, которые звучат как естественный язык. Хотя некоторые из них полны конструкций, которые не так распространены в другом контенте, таких как точки с запятыми и скобки, многие отходят от этого. В итоге, DLP должно быть способно распознавать не только наиболее распространенные и легкие для распознавания языки программирования, такие как Java, но и более сложные, такие как Python, Ruby или SQL. Здесь программное обеспечение Endpoint Protector DLP выделяется своим уникальным алгоритмом категоризации текста на основе N-грамм, который достигает 98% точности в обнаружении языков программирования.

Важность эффективности при защите исходного кода

Точность в обнаружении исходного кода, за которую Endpoint Protector уже хорошо известен, является лишь одной из причин, почему это программное обеспечение особенно подходит для защиты исходного кода. Однако нет способа для DLP различить собственный исходный код и другой исходный код на локальном диске, такой как открытые библиотеки или исходный код операционной системы (например, в системах macOS). Поэтому эффективность в обработке очень важна из-за потенциальной необходимости охвата не только наиболее чувствительных фрагментов исходного кода.

Исходный код – это не такой актив, который загружается только на мгновение и затем больше не используется, как многие типы личной информации. Исходный код постоянно хранится на диске разработчика и находится в постоянном состоянии изменений. Каждый день разработчик модифицирует файлы, копирует их фрагменты, создает новые файлы, открывает их в среде разработки и синхронизирует все с облачным или серверным репозиторием, потенциально загружая много новой информации, созданной другими разработчиками. Поэтому любой тип деятельности DLP должен быть очень эффективным, чтобы не замедлять ни один из этих интенсивных процессов доступа.

С точки зрения эффективной профилактики кражи исходного кода из конечных точек, Endpoint Protector отвечает всем требованиям. И, в качестве бонуса, владельцы Endpoint Protector защищают исходный код Endpoint Protector с помощью собственного DLP.

Подписаться на новости