В конце прошлого года специалисты Microsoft зафиксировали серию атак инъекцией кода, проведенных с использованием статических ключей ASP. NET. В одном из случаев злоумышленникам удалось внедрить в IIS-сервер инструмент постэксплуатации Godzilla.
Примечательно, что validationKey и decryptionKey, предназначенные для защиты данных ViewState от подмены и утечки, не были украдены или куплены в даркнете. Их можно найти онлайн, исследователи обнаружили более 3 тыс. таких сливов.
Обычно ключи ASP. NET генерируются по месту и сохраняются в реестре либо задаются вручную в конфигурационных файлах. К сожалению, некоторые разработчики веб-приложений используют готовые, отыскав их в паблике (документация на код, репозитории), притом без изменений.
Злоумышленникам такие находки тоже облегчают жизнь. При наличии верительных грамот для ViewState отправленный на сайт вредоносный POST-запрос будет с успехом обработан, пейлоад загрузится в память рабочего процесса и запустится на исполнение.
Подобная тактика позволяет автору атаки удаленно выполнить вредоносный код на сервере IIS и развернуть дополнительную полезную нагрузку — к примеру, фреймворк Godzilla с плагинами.
«Человеческий фактор нередко приводит к печальным результатам, разработчикам следует понимать, что статические ключи должны быть уникальными и защищёнными, — комментирует эксперт компании «Газинформсервис» Михаил Спицын. — Размещение таких данных в открытых репозиториях или документах эквивалентно предоставлению злоумышленникам несанкционированного доступа к системе».
Похожие атаки были проведены лет пять назад на серверы Microsoft Exchange. Злоумышленники пытались использовать ошибку разработчика, которую тот устранил двумя неделями ранее: все экземпляры Exchange Server использовали одни и те же значения validationKey и decryptionKey, прописанные в web.config.