Сотрудники НОШ «Мозг, когнитивные системы, искусственный интеллект» предложили метод повышения полноты обнаружения серверных интерфейсов на основе статического анализа клиентского кода JavaScript с целью поиска в нем функций, которые порождают HTTP-запросы к серверной стороне приложения. Результаты работы опубликованы в журнале «Прикладная дискретная математика».
Работа относится к области кибербезопасности, а конкретнее – к автоматизации поиска уязвимостей в веб-приложениях. В контексте решаемой задачи статический анализ позволяет находить такие функции, в том числе, в недостижимом или мёртвом JavaScript коде, что в ряде случаев позволяет обнаружить серверные интерфейсы, скрытые для динамического анализа.
«В настоящее время, веб-приложения – это основной способ публикации приложений, особенно если отнести к ним серверную составляющую "облачных" мобильных приложений. В этом случае можно сказать, что эта работа про автоматический анализ и выявление уязвимостей в подавляющем большинстве современных приложений в интернете», – прокомментировал кандидат физико-математических наук, заведующий лаборатории интеллектуальных систем кибербезопасности факультета ВМК МГУ Денис Гамаюнов.
Данная работа является важным этапом на пути разработки ИИ-систем и позволяет продвинуться в задаче полной автоматизации поиска уязвимостей в программах методом черного ящика, способной в полностью автоматическом режиме исследовать одновременно большое число приложений, доступных через интернет, и находить в них неизвестные уязвимости. Исправление таких уязвимостей убережёт пользователей приложений от угроз кражи личных данных и других угроз. Своевременное обнаружение уязвимости позволяет разработчику исправить её до того, как это сделает злоумышленник и сможет нанести урон приложению и его пользователям.
В ходе подготовки работы было проведено экспериментальное исследование полноты выявления серверных точек взаимодействия предложенным алгоритмом на синтетическом веб-приложении, уязвимом к SQL-инъекции, и сравнение с популярными сканерами защищенности веб-приложений. Было показано, что использование статического анализа клиентского JavaScript-кода в дополнение к традиционному динамическому краулингу приложений может значительно повысить полноту выявления серверных точек взаимодействия в веб-приложениях.
Денис Гамаюнов также добавил, что сейчас полученные результаты «могут существенно ускорить работу аналитика по поиску уязвимостей в приложениях, а в будущем мы планируем запустить облачный сервис по сканированию и поиску уязвимостей, который будет доступен разработчикам приложений».
Источник: МГУ имени М.В. Ломоносова