![Тадаси Мияваки, основатель компании Garhi Technology](https://xakep.ru/wp-content/uploads/2018/01/149204/1.jpg)
![Масааки Тагути, CTO и проект-менеджер компании Garhi Technology](https://xakep.ru/wp-content/uploads/2018/01/149204/2.jpg)
Web shell — это сценарий, который загружается на сервер и служит для удаленного администрирования. Вредоносным он становится только тогда, когда им управляет злоумышленник. И в этом случае он представляет серьезную угрозу.
Зараженный сервер не обязательно должен быть подключен к интернету — он может располагаться во внутренней сети компании. Тогда веб-шелл применяется для получения доступа к другим хостам с критически важными приложениями или информацией.
Для написания веб-шеллов применяется любой язык, поддерживаемый целевым веб-сервером. На практике чаще всего используются PHP и ASP, поскольку они наиболее популярны. Также распространены вредоносные программы на Perl, Ruby, Python и Unix shell.
Устанавливаются веб-шеллы довольно стандартным для вредоносных приложений способом — используя уязвимости в CMS или программном обеспечении веб-сервера. После этого они функционируют как бэкдоры, что позволяет злоумышленнику выполнять на удаленной машине произвольные команды, в том числе внедрять вымогательский софт или начинать атаки на другие серверы.
Особая опасность веб-шеллов заключается в их относительной простоте. Модификация сценария, в результате которой получается другая программа, — задача, с которой справится даже новичок. Из-за этого качества обнаружение веб-шеллов стандартными антивирусными средствами затруднено.
Подобно другим вредоносным программам, веб-шеллы можно идентифицировать по ряду внешних признаков. Однако значительная их часть может относиться и ко вполне легальным файлам, поэтому любые подозрительные индикаторы необходимо рассматривать в комплексе, анализируя целую картину, а не ее фрагменты.
Возможными показателями наличия веб-шелла на сервере могут быть:
- периоды аномально высокой нагрузки на сервер;
- наличие файлов с подозрительной временной меткой (например, более поздней, чем время последнего обновления ПО);
- наличие подозрительных файлов в доступных из интернета местах;
- наличие файлов, в которых имеются ссылки на
cmd.exe
,eval
и подобное; - наличие подозрительных авторизаций из внутренней сети;
- наличие файлов, генерирующих несвойственный им трафик.
Очевидно, что «ручной» анализ в данном случае если и возможен, то требует слишком много человеческих ресурсов, поэтому его применение лишено всякой практической целесообразности. Программа AntiShell Web Shell Hunter, разработанная компанией Garhi Technology, позволяет автоматизировать эту процедуру, причем ее разработчики утверждают, что она гарантированно распознает все известные веб-шеллы.
В основе приложения лежат следующие технологии:
- поиск по ключевым словам. Все файлы проверяются на наличие слов и команд, которые могут быть связаны с проведением атаки;
- сигнатурный анализ: поиск сигнатур известных веб-шеллов;
- анализ наиболее длинных строк. Зачастую вредоносный код шифруется таким образом, чтобы обойти поиск по ключевым словам. Это делает строки кода особенно длинными, что и позволяет их обнаруживать;
- расчет шенноновской энтропии в исходном коде. Каждой строке кода присваивается рейтинг, на основании которого можно судить о степени угрозы;
- поиск вредоносного кода методом индекса совпадений.
Таким образом решается одна из главных проблем обнаружения веб-шеллов, связанная с разнообразием используемых языков и возможностью простой модификации. На работу AntiShell Web Shell Hunter эти факторы никак не влияют, что делает его универсальным и позволяет использовать для защиты любого сервера.
Поскольку файлы, которые не были изменены после предыдущего сканирования, исключаются из обработки, AntiShell Web Shell Hunter не создает высокой нагрузки на сервер. К тому же такой подход уменьшает время проверки.
При этом администраторы могут самостоятельно установить время проверки, исходя из суточных колебаний нагрузки на сервер. При необходимости ежедневный режим заменяется на еженедельный или даже ежемесячный, что позволяет оптимизировать работу всей системы.
Программа обнаруживает файлы, в которых содержится код веб-шелла, и предоставляет системному администратору полную информацию по объекту: дата и время создания, имя владельца, права и так далее.
Все эти данные (но не сами файлы) также поступают в клиентский центр компании-разработчика, который на их основании может обеспечить поддержку в обработке инцидента и исследовании его последствий. Клиенты, подписанные на платное обслуживание, также могут с помощью специальной утилиты загрузить сами зараженные файлы для дальнейшего анализа.
Сообщения о найденных объектах направляются системному администратору по электронной почте. У него нет никакой необходимости лично следить за процессом.
На сегодняшний день AntiShell Web Shell Hunter — единственный инструмент, ориентированный именно на обнаружение веб-шеллов. Ряд антивирусных приложений включают в себя аналогичную функцию, но только в виде дополнительной опции, которая по умолчанию неактивна. Как правило, они опираются исключительно на сигнатурный анализ, поэтому их эффективность оставляет желать лучшего.
Поскольку использование веб-шеллов для атак на серверы становится все более распространенным явлением, есть смысл защитить систему при помощи специализированного решения. Как говорится, безопасности никогда не бывает слишком много.