Защита веб-приложений (WAP) - это инструмент статического анализа исходного кода и интеллектуального анализа данных для обнаружения и исправления уязвимостей проверки ввода в веб-приложениях, написанных на PHP (версия 4.0 или выше) с низким уровнем ложных срабатываний.
WAP обнаруживает и исправляет следующие уязвимости:
SQL-инъекция (SQLI)
Межсайтовый скриптинг (XSS)
Включение удаленного файла (RFI)
Включение локального файла (LFI)
Обход каталога или обход пути (DT / PT)
Раскрытие исходного кода (SCD)
Внедрение команд ОС (OSCI)
Внедрение кода PHP
Этот инструмент семантически анализирует исходный код. Точнее, он выполняет анализ помеченных данных (анализ потока данных) для обнаружения уязвимостей проверки входных данных. Целью анализа заражения является отслеживание вредоносных входных данных, вставленных точками входа (массивы $ _GET, $ _POST), и проверка того, достигают ли они какого-либо чувствительного приемника (функции PHP, которые могут быть использованы злонамеренным вводом). После обнаружения инструмент использует интеллектуальный анализ данных, чтобы подтвердить, являются ли уязвимости реальными или ложными. В конце настоящие уязвимости исправляются путем вставки исправлений (небольших фрагментов кода) в исходный код.
WAP написан на Java и состоит из трех модулей:
Анализатор кода: состоит из генератора дерева и анализатора помеченных данных. Инструмент интегрировал лексический анализатор и синтаксический анализатор, созданный ANTLR и основанный на грамматике и древовидной грамматике, написанной на языке PHP. Генератор дерева использует лексический анализатор и анализатор для построения AST (абстрактного синтаксического дерева) для каждого файла PHP. Анализатор заражения выполняет анализ заражения, перемещаясь по AST, чтобы обнаружить потенциальные уязвимости.
Предиктор ложных срабатываний: состоит из контролируемого обученного набора данных с экземплярами, классифицированными как уязвимости и ложные срабатывания, а также алгоритмом машинного обучения логистической регрессии. Для каждой потенциальной уязвимости, обнаруженной анализатором кода, этот модуль собирает наличие атрибутов, определяющих ложное срабатывание. Затем алгоритм логистической регрессии получает их и классифицирует экземпляр как ложноположительный или нет (реальная уязвимость).
Корректор кода: каждая реальная уязвимость устраняется путем исправления ее исходного кода. Этот модуль для типа уязвимости выбирает исправление, которое устраняет уязвимость, и указывает места в исходном коде, куда будет вставлено исправление. Затем код исправляется с добавлением исправлений и создаются новые файлы.
Вложения
-
215,9 КБ Просмотры: 0