Гайнуллина Екатерина, Security Vision
Введение
В последние годы значение безопасности API значительно возросло. С увеличением использования API и резким ростом их трафика, поверхность атаки расширилась, что сделало API одной из главных целей для злоумышленников. Согласно отчету Salt Security за 2024 год, число инцидентов безопасности API удвоилось, причем 37% организаций сообщили об атаках. Это тревожный тренд, который подчеркивает необходимость улучшения стратегий защиты.
Тема безопасности API особенно актуальна в условиях постоянных кибератак, направленных на получение несанкционированного доступа к данным и системам. Злоумышленники используют различные тактики, такие как обход аутентификации, эксплуатация уязвимостей и атаки на старые или неактуальные «зомби» API, что делает API крайне уязвимыми.
Моё исследование позволяет нашим заказчикам получить глубокое понимание текущих угроз и принять своевременные меры для их устранения. Это поможет не только повысить уровень безопасности их систем, но и укрепит доверие клиентов, которые будут знать, что их данные находятся под надежной защитой. В свою очередь, для нашей компании такие исследования безусловно важны, поскольку они позволяют разрабатывать и предлагать более защищённые решения.
Основные угрозы и методы защиты API
В современном мире API играют ключевую роль в обмене данными между различными приложениями и сервисами. Однако с увеличением их использования и резким ростом трафика поверхность атаки расширилась, что сделало API привлекательной мишенью для злоумышленников. Одним из распространенных методов атак является фишинг через код устройства. Microsoft долгое время настаивала на том, что пользователи должны доверять только официальным ссылкам, что злоумышленники успешно используют для проведения фишинговых атак. Они создают поддельные страницы входа, чтобы украсть учетные данные пользователей. Получив доступ к этим данным, злоумышленники могут извлекать токены доступа из памяти процессов Office или декодировать аутентификационные данные MSAL, хранящиеся на диске. Эти токены могут использоваться для доступа к различным ресурсам API без необходимости повторной аутентификации.
Токены обновления (Refresh tokens) представляют собой значительную угрозу, так как позволяют злоумышленникам обновлять свои токены для получения доступа к различным API. Особую опасность представляют токены, входящие в категорию FOCI (Family of Client IDs). Эти токены позволяют менять область действия и получать дополнительные разрешения. Например, один токен из FOCI может получить доступ к ресурсам, к которым имеют доступ другие приложения, что позволяет злоумышленникам перемещаться по системе и получать доступ к более защищенным данным. В результате, злоумышленники могут использовать недокументированные API, такие как Skype API, для получения доступа к Microsoft Teams, обходя стандартные защитные механизмы.
Кроме того, злоумышленники могут добывать токены доступа через процессы браузера, такие как ChromeBrowser.exe или регистрируя новое устройство для получения новых токенов. Эти методы позволяют злоумышленникам получать доступ к конфиденциальным данным в SharePoint и OneDrive, что может привести к утечке данных и другим серьезным последствиям. Для борьбы с этими угрозами необходимо внедрять механизмы непрерывной оценки доступа (Continuous Access Evaluation, CAE). CAE позволяет аннулировать токены доступа, если учетные данные пользователя изменены или он удален. Этот механизм также блокирует токены, используемые из недоверенных локаций, что значительно усложняет злоумышленникам возможность использования украденных токенов. CAE может быть настроена для выявления подозрительной активности, такой как попытки входа с незнакомых IP-адресов или из неожиданных географических локаций.
Еще одним ключевым методом защиты API является проверка всех входящих запросов и их ограничение. Авторизация запросов осуществляется через заголовок Authorization: Bearer <token>, что обеспечивает проверку подлинности каждого запроса. Ограничение скорости запросов (Rate limiting) позволяет предотвратить DDoS-атаки и другие формы злоупотребления API, устанавливая лимиты на количество запросов от одного IP-адреса в определенный промежуток времени. Это помогает защитить серверы от перегрузки и обеспечивает доступность API для легитимных пользователей.
Инструменты для обеспечения безопасности API
Для обеспечения безопасности API существует множество инструментов, каждый из которых имеет свои преимущества. Например, SharpAztoken — это специализированное средство для управления токенами и получения доступа к различным API. Он поддерживает работу с токенами FOCI, что позволяет расширять область действия токенов и получать доступ к защищенным ресурсам. TokenTactics — это инструмент, предназначенный для работы с токенами доступа и их подмены. Он предоставляет широкий набор возможностей для генерации, обновления и подмены токенов, что делает его ценным для тестирования безопасности и проведения атак на API. GraphSpy — это инструмент для анализа MSGraph API и выполнения различных операций через API. Он позволяет проводить разведку и атаки на ресурсы, предоставляя широкий набор функций для тестирования безопасности.
Примеры реальных инцидентов
1. T-Mobile
В январе 2023 года T-Mobile стал жертвой атаки, при которой хакеры получили доступ к данным около 37 миллионов клиентов через уязвимость в API компании. Несмотря на то, что в результате взлома не были раскрыты пароли и номера социальных страховок, мошенники могли использовать украденные данные для фишинга и попыток захвата аккаунтов.
2. JumpCloud
В июне 2023 года компания JumpCloud стала целью атаки хакеров из группы Lazarus. Преступники получили доступ к системе через фишинг, после чего смогли манипулировать API ключами компании. JumpCloud быстро отреагировала, отозвав все API ключи клиентов и запустив процедуру инцидентного реагирования.
3. Ivanti
В июле 2023 года обнаружена уязвимость в продукте Ivanti EPMM, которая позволила злоумышленникам получить несанкционированный доступ к данным 12 норвежских министерств. Уязвимость позволяла удаленно достучаться к API без аутентификации, что привело к утечке персональных данных.
4. Duolingo
В январе 2023 года данные 2.6 миллионов пользователей Duolingo оказались в свободном доступе в даркнете. Уязвимость API позволила мошенникам получить доступ к личной информации пользователей, включая имена и email-адреса, без необходимости аутентификации.
5. Kronos Research
В ноябре 2023 года хакеры украли криптовалюту на сумму $26 миллионов, воспользовавшись украденными API ключами Kronos Research. Злоумышленники использовали эти ключи для манипуляций с API и совершения мошеннических операций на платформе.
Лучшие практики безопасности API
Для обеспечения безопасности API следует применять комплексный подход, включающий:
Использование TLS: все данные, передаваемые через API, должны быть зашифрованы с использованием TLS.
Внедрение политики CORS: ограничение источников, с которых могут поступать запросы к API.
Регулярное обновление и патчинг: обеспечение своевременного обновления всех компонентов системы для устранения известных уязвимостей.
Влияние на бизнес
Компрометация API может иметь серьезные последствия для бизнеса. Финансовые потери, ущерб репутации и юридические последствия — это лишь некоторые из возможных последствий утечек данных через уязвимости API.
Оценка рисков
Оценка рисков включает в себя идентификацию потенциальных угроз, анализ их вероятности и воздействия, а также разработку плана действий для минимизации этих рисков. Организации должны регулярно проводить такие оценки, чтобы поддерживать высокий уровень безопасности своих API.
Заключение
Безопасность API становится все более важной в условиях роста кибератак и увеличения числа уязвимостей. Примеры инцидентов с T-Mobile, JumpCloud, Ivanti, Duolingo и Kronos Research показывают, что уязвимости API могут иметь серьезные последствия для организаций и их клиентов. Для защиты API необходимо применять комплексный подход, включающий использование современных методов аутентификации, внедрение механизмов непрерывной оценки доступа и ограничение скорости запросов. Также важно использовать специализированные инструменты для мониторинга и анализа трафика API, а также регулярно обучать разработчиков и пользователей основам безопасности.
Применение лучших практик и постоянное совершенствование мер безопасности помогут организациям защитить свои данные и снизить риски, связанные с уязвимостями API. В конечном итоге, комплексный подход к безопасности API обеспечит надежную защиту и повысит доверие со стороны пользователей.