Злоумышленники все чаще атакуют API. Добиваться успеха им позволяют уязвимости и слабая защита таких интерфейсов. На что же следует обращать внимание и какие меры предпринимать, чтобы повысить безопасность API?
API под прицелом хакеров
Рынок API сегодня активно развивается. По данным ИТ-компании Rapid API, количество разработчиков, использующих такие интерфейсы, за последние годы увеличилось на 61%.
"Написание кода веб-страниц, к примеру, как это было 20 лет назад, уже давно неактуально. Сейчас страницы формируются динамически и, разумеется, с использованием методов API", - замечает эксперт группы практического анализа защищенности компании "Инфосистемы Джет" Дмитрий Курамин.
Возможности хакеров успешно атаковать API также растут. Согласно исследованию ИБ-компании Salt Security, с инцидентами, в которых фигурировал API, столкнулись 94 % организаций. Не застрахованы от них даже крупные компании и госучреждения.
Об этом свидетельствует, к примеру, тот факт, что в системах автомобилей Honda была найдена уязвимость API, позволяющая удаленно открывать двери и запускать двигатель. Также это подтверждают атаки на системы обмена информацией между странами Евросоюза и кража персональных данных 37 млн клиентов T-Mobile, осуществить которые хакеры смогли благодаря уязвимости в API.
По данным ИТ-компании Jitterbit, наиболее часто API подвергаются DDoS-атакам и MITM. Также хакеры активно пользуются неправильным управлением токенами и ключами API, и незашифрованными учетными данными. Кроме того, по мнению ведущего инженера CorpSoft24, при помощи АPI часто проводятся SQL-инъекции и межсайтовый скриптинг. На взгляд директора департамента по информационной безопасности и специальным проектам IVA Technologies Евгения Родыгина, хакеры часто совершают атаки на модель данных API и платформы реализации API.
"API, как правило, дают доступ в базы данных программным способом. То есть, получив доступ к API, злоумышленник может похитить много конфиденциальных данных. Причём для этого ему будет достаточно запустить самый простой софт", - поясняет руководитель направления WAF и Anti-DDoS компании "РТК-Солар" Алексей Пашков.
Где скрыта опасность?
Многие API сегодня представляют собой самописные продукты. Качество их разработки не всегда достаточно высокое. При создании API было сформировано большое количество ошибок, полностью отладить модель взаимодействия, которое обеспечивает API не удалось. Именно поэтому "странные данные" иногда приводят сегодня к непредсказуемым и неожиданным последствиям.
Документирование API, которое осуществляют производители, открывает хакерам возможность для их анализа. В ходе него злоумышленники выявляют недостатки архитектуры API и настроек применения API на объектах эксплуатации. Сказываются также недостатки проектирования, реализации и настроек фильтров, реакции на нештатные ситуации и в модели данных. На руку хакерам играет и то, что вопросам безопасности API сегодня уделяется недостаточно внимания.
"Российские разработчики часто не проводят моделирование и тестирование полного цикла всех возможных ситуаций при работе с API, что ведет к наличию массы уязвимостей. Они ориентируются на готовые кейсы и платформы API и в результате сталкиваются с избыточным для конкретным систем функционалом, который и используется злоумышленниками. В таких случаях при внедрении систем все функции защиты зачастую возлагаются на WAF, которые настраиваются только в базовом режиме работы и не могут в таком случае быть эффективными", - рассказывает Евгений Родыгин.
Значительно осложняет ситуацию тот факт, что специалисты по ИБ сегодня расходятся во мнениях относительно оптимальной схемы защиты API.
"Это примерно, как процесс DevSecOps, который так же все понимают по-своему. Однако уже предпринимаются попытки структурировать информацию. Как, к примеру, список OWASP API Security Top 10, который собрал потенциальные риски в небезопасных API и предлагает меры снижения таких рисков. При этом он тоже не идеален. Именно поэтому проблемы с защитой API есть у всех, просто не все об этом знают", - говорит руководитель направления AppSec Innostage Михаил Черкашин.
Как защищаться?
Успешно противостоять атакам хакеров на API может помочь анализ уязвимостей API-интерфейсов, позволяющих организации обмениваться данными с клиентами, и внутрикорпоративных API, считают в Jitterbit.
"Самое главное здесь — создать вместе со службами безопасности полный набор политик и стандартов в сотрудничестве в соответствии внутрикорпоративными требованиями. Некоторые организация также должны выполнять обязательства, налагаемые на них рядом нормативно-правовых актов, например, GDPR, CCPA и HIPAA, и вносить при необходимости соответствующие изменения в методы обеспечения безопасности", — поясняет вице-президент по инженерным услугам и безопасности Jitterbit Уилл Ау.
Также в Jitterbit рекомендуют уделять повышенное внимание вопросам безопасного хранения в облаке, управлению правами доступа и обязательно использовать многофакторную или безопасную аутентификацию.
"Важно внедрять протоколы авторизации и аутентификации, такие как OAuth и OpenID Connect. Также следует ограничивать доступ к API, предоставляя его отдельным пользователям и приложениям", - отмечает ведущий инженер CorpSoft24 Михаил Сергеев.
Еще одна рекомендация Jitterbit - делать так, чтобы все ключи организации находились в надежном хранилище.
"При установке программного обеспечения убедитесь, что используете надежное хранилище ключей с сертификатами, необходимыми для защищенной связи по протоколу HTTPS. Вы можете, например, столкнуться с необходимостью добавить новый сертификат хранилище ключей Java. Это позволит вам обеспечить безопасную связь между локальным клиентом и прокси-сервером", - обращает внимание Уилл Ау.
По мнению Михаила Сергеева, не менее важная роль принадлежит средствам мониторинга и обнаружения атак на API. Кроме того, организациям следует определять и автоматически блокировать необычные запросы к API - такие, которые, например, явно указывают на то, что производится атака. На взгляд Алексея Пашкова, к мерам, обозначенным Jitterbit, нужно добавить использование межсетевых экранов уровня приложений, обеспечивающих защиту от DDoS уровня L7 и угроз из списка OWASP TOP10.
"Без качественного моделирования взаимодействия невозможно построить прозрачные API. Чтобы избежать уязвимостей, требуется отработка модели данных, их форматов, исключений. Для устранения недостатков следует проводить масштабное тестирование и внедрять фильтры и логирование в базовых функций. На всем жизненном цикле важно применять средства автоматизации управления процессами и артефактами. Только так можно добиться прозрачности API ", - отмечает Евгений Родыгин.
Быть полностью уверенными в безопасном функционировании приложений можно только ориентируясь на стандарт OWASP ASVS. Этот документ, в частности, подразумевает выполнение тех мер защиты, которые рекомендуют в Jitterbit. Его можно назвать чек-листом по безопасной разработке приложений.