Утечка данных MoneyForward через GitHub: похищен исходный код и 370 записей о картах

Японская финтех-компания MoneyForward Inc. сообщила об инциденте безопасности, связанном с несанкционированным доступом к корпоративному аккаунту GitHub. В результате взлома был похищен исходный код и раскрыты 370 записей, связанных с сервисом управления визитными карточками компании. Первопричина: жёстко заданные секретные данные и производственные данные, которые были случайно добавлены в репозитории с кодом.

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

Что произошло в инциденте с GitHub-аккаунтом MoneyForward

Злоумышленники получили доступ к корпоративному аккаунту MoneyForward на GitHub. Оказавшись внутри, они смогли похитить исходный код из репозиториев компании. Что ещё более критично: поскольку разработчики жёстко прописали конфиденциальные учётные данные непосредственно в коде и хранили реальные производственные данные в репозиториях, злоумышленники также получили 370 записей, связанных с сервисом визитных карточек MoneyForward.

Под жёстко заданными секретами понимаются пароли, ключи API, токены или иные учётные данные, которые вписаны непосредственно в исходный код, а не хранятся в защищённой специализированной системе управления секретами. Когда такие репозитории оказываются скомпрометированы, секреты утекают вместе с ними. Это хорошо известный и широко задокументированный риск безопасности, и тем не менее он по-прежнему остаётся одной из наиболее распространённых причин утечек данных в индустрии программного обеспечения.

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

Почему жёстко заданные секреты так опасны

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

Лучшие отраслевые практики предписывают использование специализированных инструментов управления секретами, которые хранят учётные данные отдельно от кода, регулярно их ротируют и ведут аудит доступа. Переменные окружения, системы хранилищ (vault) и инструменты сканирования секретов, выявляющие учётные данные ещё до попадания в репозиторий, — всё это элементы зрелой системы безопасности.

Если эти практики игнорируются, один скомпрометированный аккаунт может раскрыть не только сам код, но и все системы, с которыми этот код взаимодействует.

Что это значит для вас

Если вы пользуетесь сервисом визитных карточек MoneyForward, ваши данные могут оказаться среди 370 раскрытых записей. Даже если вы не являетесь клиентом MoneyForward, этот инцидент — полезное напоминание о том, как финансовые и продуктивные сервисы могут стать источником утечки данных.

Вот что следует сделать:

  • Проверьте уведомления. MoneyForward должна напрямую связаться с пострадавшими пользователями. Внимательно читайте любые сообщения от компании и следуйте их указаниям.
  • Следите за своими аккаунтами. Обращайте внимание на подозрительную активность на любых финансовых счетах, особенно если вы передавали платёжные или контактные данные в сервис визитных карточек MoneyForward.
  • Рассмотрите подключение сервиса кредитного мониторинга. Если личные или финансовые данные были раскрыты, кредитный мониторинг позволит своевременно предупредить вас о подозрительной активности.
  • Пересмотрите, какими данными вы делитесь с финтех-приложениями. Многие финансовые инструменты запрашивают больше данных, чем им действительно необходимо. Периодический аудит сервисов, которые хранят вашу информацию, снижает вашу уязвимость.
  • Используйте надёжные уникальные пароли и включите двухфакторную аутентификацию на всех финансовых сервисах, которыми вы пользуетесь. Если злоумышленник получит доступ к одному аккаунту, вы хотите ограничить возможность его дальнейшего проникновения.

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

Закономерность, заслуживающая внимания

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

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

Раскрытие информации со стороны MoneyForward — шаг в правильном направлении. Прозрачные отчёты об утечках позволяют пользователям принять меры и привлекают компании к ответственности. Следующий шаг — чтобы более широкое сообщество разработчиков программного обеспечения стало воспринимать управление секретами не как необязательную лучшую практику, а как базовое требование.