Журнал "Information Security/ Информационная безопасность" #4, 2020
том для организации форума на основе системы MyBB, использующей типовые инстру- менты – PHP, MySQL, Apache2. В версии MyBB 1.8.6 в 2016 г. была обнаружена уязвимость SQL-injection. Уязвимость поз- воляет ввести в числовое поле фрагмент SQL-кода, который будет выполнен СУБД из-за недостаточного контроля за вводимыми значениями. При осуществлении "инъекции кода" видимой реакции веб-сайта не наблюдается, но при выполне- нии операции доступа к форуму в окне веб-браузера выдается результат выполнения внедрен- ного кода, а также сообщение об ошибке работы MySQL (см. рис. 2). Таким образом, данная уязви- мость позволяет внедренному коду быть запущенным через неопределенное время, что потенциально может быть очень опасно. Для разработки системы защиты сайта на основе MyBB был составлен перечень функ- ций (включая настройки), определены типовые шаблоны общения на форуме (короткое сообщение, картинка, пара- граф, несколько параграфов), а также выявлены места, где некорректные действия поль- зователя приводят к сообще- ниям об ошибке. Далее по этому сценарию имитирова- лись несколько сессий работы с форумом. При этом с помо- щью сетевого сниффера tshark записывался весь вхо- дящий и исходящий трафик веб-сервера. Полученные данные о ком- муникациях между клиентом и сервером по протоколу HTTP были преобразованы во вре- менные ряды интенсивности передачи данных, обезличен- ные до числа байт в единицу времени. Шаг дискретизации по времени был равен 0,1 с. Два синхронных временных ряда с интенсивностью входя- щего и исходящего трафика использовались для расчета функции взаимной корреляции с шириной окна 11 отсчетов времени. Таким образом, име- лась возможность регистриро- вать динамический отклик сер- вера на запрос в течение 1 с каждую 0,1 с. Значительное число корреляционных функций должно было вычисляться для интервалов с нулевой интен- сивностью трафика. Такие интервалы исключались из рас- четов. Полученные взаимные корреляционные функции обра- зовали профиль нормальной работы сервера. Структура нейросети для классификации ФВК выбира- лась исходя из ширины окна корреляции и экспертных пред- ставлений о возможностях ней- ронных сетей типа "автокоди- ровщик" (см. рис. 3). На вход нейросети подавался вектор значений ФВК. Нейронная сеть обучалась для того, чтобы на выходах формировался вектор значений, максимально близкий к вектору входных значений ФВК. При обучении использо- вался критерий минимизации средней квадратичной ошибки (MSE, Mean Squared Error). Значение мгновенной ошибки реконструкции (IRE, Immediate Reconstruction Error) для задан- ного входного вектора опреде- ляет точность, с которой ней- ронная сеть опознает входной вектор значений ФВК длины как известный, и вычисляется по формуле. Нейросеть обучалась в пакете MATLAB методом Левенберга – Марквардта по подготовленно- му профилю нормальной рабо- ты, из которого формировалась обучающая выборка. После обучения ошибка реконструк- ции на профиле нормальной работы не превышала значения 0,0024 (см. рис. 4). Для выявления аномалий был задан порог мгновенной ошибки реконструкции в качестве наи- большего значения среди ошибок реконструкции, рассчи- танных для ФВК обучающей выборки, – 0,0024. Для апробации обученного классификатора был проведен сеанс работы с сайтом MyBB, содержащий, кроме нормаль- ных запросов, SQL-injection, и осуществлены дальнейшие действия по вызову результата внедренного кода. По графикам интенсивности измеренного входящего и исходящего тра- фика были рассчитаны ФВК, представляющие тестовую выборку. На рис. 5 приведен полученный график мгновенной • 43 АВТОМАТИЗАЦИЯ www.itsec.ru Рис. 2. Результат SQL-инъекции с произведенным выводом (выделен красным прямоугольником) и введенным кодом (подчеркнуто красным) Рис. 3. Структура автокодировщика Рис. 4. Мгновенная ошибка реконструкции для обучающей выборки
Made with FlippingBook
RkJQdWJsaXNoZXIy Mzk4NzYw