В 7 из 10 проверок серверов компаний обнаруживаются уязвимые приложения
Сегодня установить антивирус, межсетевой экран и средства защиты периметра уже недостаточно. Даже если внешне инфраструктура компании выглядит защищённой, точка входа для злоумышленника может находиться внутри веб-приложения, серверного компонента или программного кода, который используется годами.
По данным RTM Group, как минимум одно уязвимое приложение обнаруживается примерно в 70% проведённых проверок серверного контура организаций.
Рассказываем, где чаще всего находятся опасные уязвимости, к каким последствиям они могут привести и почему проверка безопасности должна охватывать не только внешний периметр.
Где обнаруживаются наиболее опасные уязвимости
Критические недостатки специалисты чаще всего выявляют во внутреннем периметре компаний и в веб-приложениях.
Эксплуатация таких уязвимостей может позволить злоумышленнику:
- получить доступ к корпоративным или персональным данным;
- повысить свои привилегии в системе;
- перемещаться между узлами инфраструктуры;
- получить контроль над несколькими связанными системами;
- нарушить работу критичных для бизнеса сервисов.
Особую опасность представляет сочетание нескольких проблем безопасности. Отдельно каждая из них может выглядеть незначительной, но вместе они способны сформировать полноценную цепочку атаки — от первоначального доступа до компрометации внутренних ресурсов компании.
Более 2100 уязвимостей на сто проектов
За последние 12 месяцев RTM Group выполнила более 100 проектов по анализу защищённости и тестированию на проникновение. В рамках этих работ специалисты выявили около 2100 уязвимостей.
Из общего количества обнаруженных недостатков:
- 360 получили критический уровень опасности;
- 920 – высокий уровень;
- остальные были отнесены к среднему и низкому уровням риска.
Таким образом, около 61% найденных уязвимостей относились к критическому или высокому уровню опасности и могли представлять существенный риск для инфраструктуры и бизнес-процессов заказчиков.
При этом количество уязвимостей само по себе не всегда отражает реальный уровень риска. Одна критическая ошибка в системе удалённого доступа или веб-приложении может оказаться опаснее десятков менее серьёзных недостатков.
Почему уязвимости в программном коде особенно опасны
Отдельное направление проверок – анализ безопасности программного кода.
За последние 12 месяцев специалисты RTM Group выявили более 600 подтверждённых уязвимостей.
Среди них:
- 127 уязвимостей получили критический уровень опасности;
- 305 – высокий;
- остальные были отнесены к среднему и низкому уровням при наличии подтверждённого влияния на безопасность системы.
Около 72% недостатков, обнаруженных при анализе кода, относились к критическому или высокому уровню риска.
Такие уязвимости особенно опасны, поскольку они закладываются непосредственно в архитектуру и бизнес-логику приложения. После запуска продукта они могут сохраняться годами, переходить из одной версии системы в другую и оставаться незамеченными стандартными средствами защиты.
Например, ошибка в разграничении прав доступа может позволить обычному пользователю получить административные функции. Недостаточная проверка входящих данных – выполнить нежелательные команды или получить доступ к базе данных. А небезопасная логика работы с сессиями – захватить учётную запись другого пользователя.
Почему защиты внешнего периметра недостаточно
Многие компании по-прежнему концентрируются на системах, доступных из интернета. Это важная, но не единственная область риска.
Даже если внешний периметр защищён, злоумышленник может проникнуть во внутреннюю сеть через:
- скомпрометированную учётную запись сотрудника;
- фишинговое письмо;
- уязвимое рабочее устройство;
- неправильно настроенный VPN;
- подрядчика или интеграционный сервис;
- старое приложение, которое не обновлялось несколько лет.
После первоначального проникновения атакующий начинает изучать внутреннюю инфраструктуру, искать дополнительные уязвимости и повышать свои привилегии. Поэтому внутренний пентест часто выявляет риски, которые невозможно обнаружить при проверке только внешних адресов компании.
Сегодня недостаточно установить средства защиты по периметру и рассчитывать, что корпоративная инфраструктура в безопасности. Уязвимость может находиться внутри веб-приложения, серверного компонента или программного кода, который используется годами. При этом одна критическая ошибка способна открыть злоумышленнику путь сразу к нескольким системам. Поэтому бизнесу важно регулярно проводить тестирование на проникновение, анализировать внутренний периметр и включать проверку кода в процесс разработки.
Какие системы необходимо проверять в первую очередь
При планировании аудита безопасности приоритет стоит отдавать системам, компрометация которых может привести к утечке данных, финансовым потерям или остановке бизнес-процессов.
Что проверять в первую очередь:
- веб-приложения и сервисы, доступные из интернета;
- корпоративные порталы и личные кабинеты;
- системы удалённого доступа;
- приложения, обрабатывающие персональные и финансовые данные;
- внутренние административные панели;
- интеграции с внешними сервисами;
- устаревшие и редко обновляемые системы;
- объекты критической информационной инфраструктуры.
Проверка должна включать не только поиск технических ошибок, но и анализ бизнес-логики, настроек доступа, используемых компонентов и возможных цепочек атак.
Как встроить безопасность в процессы компании
Разовая проверка позволяет обнаружить проблемы в конкретный момент времени, однако инфраструктура и программные продукты постоянно меняются. Появляются новые функции, сотрудники, интеграции, серверы и зависимости.
Поэтому работа с уязвимостями должна быть регулярным процессом:
- Инвентаризация систем и приложений
- Выделение наиболее критичных активов
- Регулярное тестирование внешнего и внутреннего периметра
- Анализ защищённости веб-приложений
- Проверка программного кода до выхода продукта в эксплуатацию
- Контроль устранения обнаруженных недостатков
- Повторная проверка после внесения изменений
Для новых продуктов анализ кода и тестирование безопасности желательно проводить ещё на этапе разработки. Исправить архитектурную ошибку до запуска обычно проще и дешевле, чем после внедрения системы и появления реальных пользователей.