Вы уверены, что ваши программисты вас не подставляют?

На GitHub обнаружены сотни тысяч токенов и криптоключей. Объясняем, чем это плохо.

Недавно исследователи из Университета штата Северная Каролина обнаружили на GitHub более 100 тысяч проектов, в которых в открытом виде хранятся токены, криптографические ключи и другие секретные данные. Всего в общем доступе оказалось более полумиллиона таких объектов, из них более 200 тысяч — уникальные. Причем периодически там попадаются токены сгенерированные крупными компаниями, такими как Google, Amazon MWS, Twitter, Facebook, MailChimp, MailGun, Stripe, Twilio, Square, Braintree и Picatic.

GitHub — это самый популярный ресурс для совместной разработки. Он позволяет хранить программный код в репозиториях с открытым или ограниченным доступом, советоваться с коллегами, привлекать их к тестированию программ и пользоваться готовыми наработками. Это значительно упрощает и ускоряет создание приложений и сервисов, поэтому многие программисты охотно прибегают к нему. Компании, создающие продукты на базе open-source кода активно используют его в работе. Кроме того, он часто используется компаниями из соображений «прозрачности».

Однако при загрузке кода в GitHub следует соблюдать особую осторожность — о чем разработчики, к сожалению, помнят не всегда.

Какие данные попали в общий доступ?

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

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

Чем грозит утечка токенов и криптоключей?

Несанкционированный доступ к вашим аккаунтам, даже ограниченный, — серьезная угроза для бизнеса. Вот несколько примеров.

Один из возможных сценариев преступного применения опубликованных на GitHub токенов — рассылки и посты от имени опубликовавшей их компании. Злоумышленник может, например, получить доступ к корпоративному сайту или  аккаунту в Facebook или Twitter и разместить там вредоносное объявление или фишинговую ссылку. Поскольку официальные сайты и аккаунты традиционно считаются надежными источниками информации, велик риск, что многие читатели будут уверены в безопасности такой публикации.

Кроме того, преступники могут распространить по вашему листу рассылки фишинговую рассылку (например, если вы пользуетесь MailChimp). Как и в предыдущем сценарии, расчет здесь на доверие пользователей к рассылке серьезной компании, на которую они к тому же добровольно подписались. Подобного рода атаки могут серьезно повредить репутации компании, привести к потере клиентов и затратам на восстановление нормального режима работы.

Наконец, злоумышленники могут просто воспользоваться платными возможностями сервиса — например, мощностями Amazon AWS — за ваш счет. Так, блогер Люк Чадвик однажды получил письмо от Amazon о том, что его ключ находится в открытом доступе на GitHub. Поиск привел его к старому проекту, который он по какой-то причине забыл закрыть. Когда же Чадвик зашел в свой аккаунт на Amazon, он обнаружил там счет в $3493. Впоследствии выяснилось, что злоумышленники воспользовались общедоступным ключом и майнили криптовалюту от имени блогера. Эта история кончилась хорошо — Amazon возместил Чадвику ущерб. Но надо понимать, что так происходит не всегда.

Как секретные данные попали на GitHub?

Как показал анализ результатов исследования, не только молодые и неопытные программисты оставляют в открытом доступе конфиденциальную информацию. Например, данные, дающие доступ к сайту крупного правительственного учреждения, разместил на GitHub разработчик с 10-летним стажем.

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

Так, аналитик и CEO компании Securosis Рич Могулл разместил на GitHub приложение, которое разрабатывал для доклада на конференции. Программа обращалась к Amazon AWS, все необходимые для авторизации данные специалист хранил локально. Однако для отладки отдельных блоков кода он создал тестовый файл, в котором содержались некоторые ключи доступа. После отладки Могулл попросту забыл удалить их. В результате их нашли злоумышленники и успели воспользоваться услугами Amazon на $500.

Кроме того, разработчики могут просто не задумываться о том, что оставлять токены в хранилищах GitHub рискованно и нужно прицельно искать и удалять (или заменять) их перед размещением там кода.

Как защитить свои ресурсы?

Чтобы вашими токенами или ключами не воспользовались злоумышленники, мы рекомендуем вам:

  • Обратить внимание ваших разработчиков на то, что загружать в открытые хранилища действительные токены и ключи — вредно и опасно. Программисты должны понимать, что перед отправкой кода нужно отдельно проследить, чтобы секретных данных в нем не было.
  • Поручить ответственному за разработку сотруднику проверить, нет ли в проектах вашей компании на GitHub конфиденциальной информации, и если есть — удалить ее. Тут важно отметить, что удалить ее надо правильно, чтобы информация не осталась в «истории изменений».
  • Если ключи или токены были обнаружены — сменить их. Неизвестно, кто успел посмотреть код и сохранить его у себя.
  • Постоянно повышать осведомленность сотрудников в области информационной безопасности, чтобы первый пункт этого списка был им очевиден. У нас есть специальная платформа, которая поможет делать это эффективно и практически без отрыва от производства.
Советы

Как отключить слежку в iOS?

У вас есть iPhone, iPad или iPod? Потратьте несколько минут на настройку служб геолокации, чтобы сэкономить заряд батареи и сохранить конфиденциальность перемещений.