Статья опубликована в рамках: CXXVI Международной научно-практической конференции «Экспериментальные и теоретические исследования в современной науке» (Россия, г. Новосибирск, 29 июня 2026 г.)
Наука: Информационные технологии
Скачать книгу(-и): Сборник статей конференции
дипломов
ПРИМЕНЕНИЕ SSA В ОЦЕНКЕ КАЧЕСТВА WEB-ПРИЛОЖЕНИЙ В КОНТЕКСТЕ УЯЗВИМОСТИ К SQL-ИНЪЕКЦИЯМ
USAGE OF SSA FOR WEB-APPLICATION QUALITY ASSESSMENT IN THE CONTEXT OF SQL-INJECTION VULNERABILITIES
Onoshko Dmitry Evgenievich
Master of Engineering sciences, senior lecturer of Software for Information Technologies department, Belarusian State University of Informatics and Radioelectronics,
Belarus, Minsk
АННОТАЦИЯ
В качестве одного из способов повышения точности автоматизированной оценки качества web-приложений в контексте обнаружения уязвимостей к SQL-инъекциям предложено применение промежуточного представления SSA (static single-assignment form). На основе полученных при этом данных предложена мера качества web-приложений для модели качества ISO/IEC 25010.
ABSTRACT
As a means of increasing the accuracy of automated assessment of web-application quality in the context of SQL-injection vulnerability detection usage of SSA (static single-assignment form) intermediate representation is suggested. Based on the data collected, a web-application quality metric is suggested for the quality model of ISO/IEC 25010 standard.
Ключевые слова: web-приложение; оценка качества; SQL-инъекция.
Keywords: web-application; quality assessment; SQL-injection.
По состоянию на 2025 год по данным Открытого проекта безопасности web-приложений (OWASP) инъекции остаются в числе наиболее значимых угроз безопасности для web-приложений [1]. При этом, как отмечалось ранее [2], в силу внесённых с 2021 года в используемый для классификации подход изменений часть таких уязвимостей может по формальным критериям быть отнесена к другим категориям, например, «A06 Insecure Design» (в редакции 2025 года), что позволяет говорить о сохранении актуальности данного вида угроз по настоящее время.
С учётом особенностей организации большинства web-приложений наиболее значимой разновидностью инъекций являются SQL-инъекции. Технические решения, применяемые для полного или частичного предотвращения уязвимости к этому виду инъекций, такие как, например, подготовленные выражения (prepared statements), хранимые процедуры (stored procedures) или объектно-реляционное отображение (ORM), на практике эффективны только при правильном применении.
Соответствующий контроль исходных кодов нередко оказывается трудоёмким даже для относительно небольших проектов, что может дополнительно осложняться трудоёмкостью устранения выявленных проблем при их позднем обнаружении.
Предложенный в [3] метод оценки качества web-приложений позволяет обеспечить автоматизацию такого контроля на протяжении всего жизненного цикла web-приложения начиная с момента появления исходных кодов и, на основе полученных при этом данных, осуществлять мониторинг состояния проекта в целом.
В основе контроля, осуществляемого данным методом, лежит модель обнаружения уязвимостей. Верхний уровень этой модели представляет web-приложение в виде ориентированного графа вызовов
, где
— множество вершин, соответствующих обобщённым процедурам, а
— множество дуг, отражающих направления вызова обобщёнными процедурами друг друга. При этом для каждой процедуры определён набор формальных параметров, которые в зависимости от направления передачи данных делятся на in- и out-параметры, и каждому такому параметру назначается группа оценок
. Данный уровень модели предназначен для планирования работы анализатора, а также обнаружения недостижимого кода и случаев взаимной рекурсии.
Назначение оценок выполняется на нижнем уровне модели и может быть реализовано различными способами без нарушения общности метода.
В простейшем случае оценки могут быть получены без полного анализа потоков данных, путём сопоставления для каждого элемента данных анализируемой обобщённой процедуры оценок, которые имеют формальные параметры вызываемых из неё процедур. Преимуществами такого подхода являются простота реализации, малое потребление памяти и скорость работы, однако на практике количество ложноположительных срабатываний оказывается достаточно высоким.
Распространённым приёмом организации внутреннего представления программ в трансляторах является SSA (static single-assignment form) — форма представления программы, основанная на её преобразовании в набор присваиваний с отслеживанием версий значений для каждой из переменных.
Неотъемлемой частью SSA являются так называемые
-функции, позволяющие корректно обработать случаи ветвлений и циклических конструкций. При трансляции программ эти функции зачастую носят характер математической абстракции для обозначения факта наличия нескольких источников значений одной и той же переменной в данной точке программы и непосредственно не реализуются, однако в статическом анализе исходного кода предложенным методом представляется возможным описать их аналитически.
Так, например, при использовании бинарной шкалы (S — safe, U — unsafe) оценки являются логическими значениями. Пусть в некоторой точке процедуры
-функция применяется к версиям значения переменной, имеющим оценки
. Тогда
-функция может быть определена как побитовая конъюнкция соответствующих групп оценок:
(1)
С точки зрения риска внесения в исходный код процедуры уязвимости, которая будет связана с такой переменной, особый интерес представляют случаи изменения оценок с S на U.
Пусть
— событие, соответствующее изменению оценки некоторой переменной
по некоторому критерию при модификации участка кода программы, в котором вычисляется значение этой переменной,
— событие, соответствующее изменению значения
-функции для переменной
в некоторой точке процедуры. Введём также функцию
, равную 1, если оцениваемое
-функцией значение переменной
в дальнейшем передаётся в качестве фактического для in-параметра с оценкой S, и 0 в противном случае. Тогда в первом приближении можно утверждать, что
. (2)
События
необязательно независимы, однако установление характера зависимости между ними представляет собой трудоёмкую задачу. Поэтому на практике целесообразно считать эти события независимыми и рассматривать полученное значение в качестве нижней границы вероятности изменения оценки переменной.
Оценка значений
является самостоятельной задачей обеспечения качества web-приложений. Для её решения можно предложить три подхода:
- статистический;
- аналитический;
- эмпирический.
Статистический подход предполагает наличие у команды разработчиков сведений, позволяющих определить такое значение вероятности на основе предыдущих случаев модификации исходных кодов с учётом особенностей участка кода, для которого производится оценка. На практике применение этого подхода представляется затруднительным, т.к. он плохо поддаётся автоматизации в части сопоставления участков кода и статистических данных, а также требует предварительного накопления достаточного объёма таких данных.
Аналитический подход основан на анализе свойств участка кода. Преимуществом данного подхода является возможность применения различных моделей и методов для анализа таких свойств, однако он может оказываться непрактичным, если получение точной оценки требует значительных вычислительных затрат.
Эмпирический способ в простейшем случае предполагает применение единого значения
для всех точек программы и переменных. Предполагается, что ценность представляет не абсолютное значение вероятности
, а направление и величина её изменения при модификации исходных кодов web-приложения.
На основе вычисления вероятностей внесения уязвимости по всем
-функциям, имеющимся в SSA-представлении анализируемого web-приложения, для переменных, получающих оценку S, можно вывести меру качества web-приложения в контексте обнаружения уязвимостей.
Пусть
— множество всех переменных, соответствующих вышеописанным критериям,
— множество всех
-функций. Тогда значение предлагаемой меры качества может быть вычислено как
(3).
Рассчитанная указанным образом мера качества удовлетворяет критериям обоснованности — трассируемости и непротиворечивости [4, с. 265–266], поскольку соблюдается условие
, а большему значению меры соответствует более высокий уровень качества.
Значение меры
на практике недостижимо, поскольку возникает при
, что соответствует обязательному изменению оценки переменной при любой модификации кода программы. Вместе с тем, близкие к 0 значения меры
отражают высокий риск внесения уязвимости в web-приложение, обусловленный его архитектурой и стилем написания кода, опирающимися на повсеместное использование обобщённых процедур, требующих передачи в качестве in-параметров только данных с оценкой S.
Значение меры
может быть достигнуто при условии отсутствия ветвлений и циклов в структуре web-приложения, что на практике встречается крайне редко, однако соответствует невозможности внесения уязвимостей при модификации кода одной из ветвей алгоритма.
Следует учитывать, что подобные изменения могут быть обусловлены не только непосредственно модификацией участка кода, соответствующего одной из ветвей алгоритма, но и изменением реализации одной из используемых в таком участке кода обобщённых процедур. Таким образом, отслеживание значения данной меры на протяжении всего жизненного цикла web-приложения с момента появления исходных кодов позволяет обнаруживать не только снижение общего качества написания кода командой, но и заблаговременно идентифицировать риски, связанные с использованием в проекте модулей и библиотек.
В рамках модели качества программных средства ISO/IEC 25010 данную меру предлагается с учётом специфики отражаемых ею свойств web-приложения отнести:
- к подхарактеристике «Модифицируемость» характеристики «Сопровождаемость» в редакции ГОСТ Р ИСО/МЭК 25010–2015;
- к подхарактеристике «Modifiability» характеристики «Maintainability» в редакции ISO/IEC 25010:2023.
Список литературы:
- OWASP Top 10:2025 [Электронный ресурс]. – 2025. – URL: https://owasp.org/Top10/2025/ (дата обращения: 16.06.2026).
- Оношко Д.Е., Леванцевич В.А. Обнаружение уязвимостей к SQL-инъекциям на основе абстрактной интерпретации с целью оценки качества web-приложений // Компьютерные системы и сети: Материалы 60-й научной конференции аспирантов, магистрантов и студентов БГУИР, Минск, 22 – 26 апреля 2024 г. – С. 82–83.
- Оношко Д.Е., Бахтизин В.В. Метод оценки качества web-приложений, основанный на обнаружении уязвимостей // Цифровая трансформация. 2018. №1(2). – С. 58–65.
- Бахтизин В.В. Метрология, стандартизация и сертификация в информационных технологиях: учеб. пособие: в 2 ч. / В.В. Бахтизин, Л.А. Глухова. – Минск: БГУИР, 2016. – Ч. 2. – 343 с.
дипломов

