Обнаружение и предотвращение атак с проверкой ввода в веб-приложениях с использованием детерминированных автоматов с магазинной памятью

В данной статье показано, как поверхность атаки идентичности, которая является горячей точкой для атаки с проверкой ввода, может указать разработчикам приложений и тестировщикам, какая часть исходного кода должна быть проанализирована в ходе тестирования веб-приложения для выявления и предотвращения...

Повний опис

Збережено в:
Бібліографічні деталі
Дата:2019
Автори: Нитья, В., Сентилкумар, С.
Формат: Стаття
Мова:Russian
Опубліковано: Інститут кібернетики ім. В.М. Глушкова НАН України 2019
Назва видання:Проблемы управления и информатики
Теми:
Онлайн доступ:http://dspace.nbuv.gov.ua/handle/123456789/180835
Теги: Додати тег
Немає тегів, Будьте першим, хто поставить тег для цього запису!
Назва журналу:Digital Library of Periodicals of National Academy of Sciences of Ukraine
Цитувати:Обнаружение и предотвращение атак с проверкой ввода в веб-приложениях с использованием детерминированных автоматов с магазинной памятью / В. Нитья, С. Сентилкумар // Проблемы управления и информатики. — 2019. — № 5. — С. 73-91. — Бібліогр.: 22 назв. — рос.

Репозитарії

Digital Library of Periodicals of National Academy of Sciences of Ukraine
id irk-123456789-180835
record_format dspace
spelling irk-123456789-1808352021-10-21T01:26:46Z Обнаружение и предотвращение атак с проверкой ввода в веб-приложениях с использованием детерминированных автоматов с магазинной памятью Нитья, В. Сентилкумар, С. Методы обработки и защиты информации В данной статье показано, как поверхность атаки идентичности, которая является горячей точкой для атаки с проверкой ввода, может указать разработчикам приложений и тестировщикам, какая часть исходного кода должна быть проанализирована в ходе тестирования веб-приложения для выявления и предотвращения IVAs. Отсутствие этой достоверной информация приводит к потере времени и ресурсов для проверки уязвимостей в приложении, однако не является проблемой для небольших приложений, и наоборот, их увеличение порождает проблему. Существующие подходы к обеспечению безопасности традиционных приложений не всегда достаточны при рассмотрении веб-парадигмы и часто ltkf.n конечных пользователей ответственны за защиту ключевых аспектов обслуживания. Эта ситуация должна быть предотвращена, так как при не очень хорошем управлении она может допустить ненадлежащее использование веб-приложения и привести к нарушению требований его безопасности. Належна перевірка вводу та дезинфекції є критичною проблемою при разробці веб-додатків. Помилки та недоліки в операціях перевірки спричиняють зловмисну поведінку у веб-додатку, злочинцям неважко буде їх використати. Оскільки зловмисники стрімко набувають навиків та здібностей, вони зосереджені на вивченні вразливостей у веб-додатках та намагаються наразити на небезпеку конфіденційність, цілісність та доступність інформаційної системи. Атаки з перевіркою вводу (Input Validation Attacks — IVA) — це коли хакер відправляє шкідливі дані (чіт-коди), щоб заплутати веб-додатки та отримати доступ або знищити кінець додатка без відома користувача. Перевірка вводу — це перша лінія захисту для таких атак. Приклади атак з перевіркою вводу включають в себе міжсайтовий скриптинг (Cross Site Scripting — XSS), атаку SQL-інєкцій (SQL Injection Attack — SQLIA), переповнення буфера та зворотний шлях у каталогах. Використовуючи атаки з перевіркою коду, хакери можуть викрасти конфіденційні дані, що знижують ринкову вартість організації. У цьому проекті досліджено проблему виявлення та усунення похибок перевірки як клієнтського, так і серверного коду з використанням даного підходу. Запропоновано нову ідею, що сприяє виявленню та усуванню атаки з перевіркою коду з використанням статичного та динамічного аналізу. The proper validation of input and sanitization is critical issue in developing web applications. Errors and flaws in validation operations resulting in malicious behavior in web application can be easily exploited by attackers. Since attackers are rapidly developing their skills and abilities they focus on exploring vulnerabilities in the web applications and try to compromise confidentiality, integrity and availability of information system. Input Validation Attacks (IVAs) are the attacks where a hacker sends malicious inputs (cheat codes) to confuse a web application in order to have access or destroy back end of application without knowledge of users. Input validation serves as the first line of defense for such attacks. Examples of input validation attacks include Cross Site Scripting (XSS), SQL Injection Attack (SQLIA), buffer overflow and directory traversal. Using Input validation attacks hackers can steal the sensitive data which decrease organization market value. In this project, we investigate the problem of detection and removal of validation bugs both at the client-side and the server-side code by using our approach. In this paper we proposed new idea that makes it possible to able detect and prevent input validation attack using Static and Dynamic Analysis. 2019 Article Обнаружение и предотвращение атак с проверкой ввода в веб-приложениях с использованием детерминированных автоматов с магазинной памятью / В. Нитья, С. Сентилкумар // Проблемы управления и информатики. — 2019. — № 5. — С. 73-91. — Бібліогр.: 22 назв. — рос. 0572-2691 http://dspace.nbuv.gov.ua/handle/123456789/180835 004.056.53 ru Проблемы управления и информатики Інститут кібернетики ім. В.М. Глушкова НАН України
institution Digital Library of Periodicals of National Academy of Sciences of Ukraine
collection DSpace DC
language Russian
topic Методы обработки и защиты информации
Методы обработки и защиты информации
spellingShingle Методы обработки и защиты информации
Методы обработки и защиты информации
Нитья, В.
Сентилкумар, С.
Обнаружение и предотвращение атак с проверкой ввода в веб-приложениях с использованием детерминированных автоматов с магазинной памятью
Проблемы управления и информатики
description В данной статье показано, как поверхность атаки идентичности, которая является горячей точкой для атаки с проверкой ввода, может указать разработчикам приложений и тестировщикам, какая часть исходного кода должна быть проанализирована в ходе тестирования веб-приложения для выявления и предотвращения IVAs. Отсутствие этой достоверной информация приводит к потере времени и ресурсов для проверки уязвимостей в приложении, однако не является проблемой для небольших приложений, и наоборот, их увеличение порождает проблему. Существующие подходы к обеспечению безопасности традиционных приложений не всегда достаточны при рассмотрении веб-парадигмы и часто ltkf.n конечных пользователей ответственны за защиту ключевых аспектов обслуживания. Эта ситуация должна быть предотвращена, так как при не очень хорошем управлении она может допустить ненадлежащее использование веб-приложения и привести к нарушению требований его безопасности.
format Article
author Нитья, В.
Сентилкумар, С.
author_facet Нитья, В.
Сентилкумар, С.
author_sort Нитья, В.
title Обнаружение и предотвращение атак с проверкой ввода в веб-приложениях с использованием детерминированных автоматов с магазинной памятью
title_short Обнаружение и предотвращение атак с проверкой ввода в веб-приложениях с использованием детерминированных автоматов с магазинной памятью
title_full Обнаружение и предотвращение атак с проверкой ввода в веб-приложениях с использованием детерминированных автоматов с магазинной памятью
title_fullStr Обнаружение и предотвращение атак с проверкой ввода в веб-приложениях с использованием детерминированных автоматов с магазинной памятью
title_full_unstemmed Обнаружение и предотвращение атак с проверкой ввода в веб-приложениях с использованием детерминированных автоматов с магазинной памятью
title_sort обнаружение и предотвращение атак с проверкой ввода в веб-приложениях с использованием детерминированных автоматов с магазинной памятью
publisher Інститут кібернетики ім. В.М. Глушкова НАН України
publishDate 2019
topic_facet Методы обработки и защиты информации
url http://dspace.nbuv.gov.ua/handle/123456789/180835
citation_txt Обнаружение и предотвращение атак с проверкой ввода в веб-приложениях с использованием детерминированных автоматов с магазинной памятью / В. Нитья, С. Сентилкумар // Проблемы управления и информатики. — 2019. — № 5. — С. 73-91. — Бібліогр.: 22 назв. — рос.
series Проблемы управления и информатики
work_keys_str_mv AT nitʹâv obnaruženieipredotvraŝenieataksproverkojvvodavvebpriloženiâhsispolʹzovaniemdeterminirovannyhavtomatovsmagazinnojpamâtʹû
AT sentilkumars obnaruženieipredotvraŝenieataksproverkojvvodavvebpriloženiâhsispolʹzovaniemdeterminirovannyhavtomatovsmagazinnojpamâtʹû
first_indexed 2025-07-15T21:10:31Z
last_indexed 2025-07-15T21:10:31Z
_version_ 1837748801817804800
fulltext © В. НИТЬЯ, С. СЕНТИЛКУМАР, 2019 Международный научно-технический журнал «Проблемы управления и информатики», 2019, № 5 73 УДК 004.056.53 В. Нитья, С. Сентилкумар ОБНАРУЖЕНИЕ И ПРЕДОТВРАЩЕНИЕ АТАК С ПРОВЕРКОЙ ВВОДА В ВЕБ-ПРИЛОЖЕНИЯХ С ИСПОЛЬЗОВАНИЕМ ДЕТЕРМИНИРОВАННЫХ АВТОМАТОВ С МАГАЗИННОЙ ПАМЯТЬЮ Ключевые слова: атака с проверкой кода, статический и динамический анализ, обнаружение, предотвращение, детерминированные автоматы с магазинной памятью. Введение С расширением рамок использования Интернета был разработан новый класс функционирующих в сети систем информационных технологий — веб-прило- жения, которые обеспечивают связь, доступ к информации и онлайн-услуги, что позволяет компаниям реализовать свои возможности. Следовательно, многие из них начали использовать веб-приложения, подключив свои системы к сети. С появлением веб-приложений появились новые возможности ведения бизнеса — бронирование как железнодорожных, так и авиабилетов, приобретение любого продукта, кроме того, телефонные счета можно оплатить всего одним щелчком мыши, без посещения соответствующего офиса, что экономит время и усилия. Каждая организация старается представить свой бизнес на мировом уровене с по- мощью веб-приложений. Со времен отображения простой страницы и появления современных мно- гофункциональных сайтов веб-приложения претерпели изменения — они обраба- тывают двусторонний поток данных между клиентом и сервером так эффективно, что заменяют многие настольные приложения. Это важная часть коммерческого, развлекательного и социального взаимодействия. Ранее разработки веб-приложе- ний были реализованы на сервере. Клиентская часть состояла только из веб-страницы HTML, которая отобра- жалась на веб-браузере. Если приложению требовались некоторые данные от пользователя, обращались к HTML-форме, и данные сразу отправлялись на сервер без какой-либо обработки или проверки. Сервер веб-приложений получает входные данные от других уровней: поль- зовательский ввод от веб-браузера и наборы результатов с сервера базы данных. Неспособность надлежащим образом обезвредить входные данные может поста- вить под угрозу безопасность веб-приложения. В то же время зачастую уязви- мость обнаруживается из-за ошибок программирования и отсутствия информации об известных эксплойтах и сценариях атак. Наличие чего-то похожего на без- обидную модификацию объектной модели документа (Document Object Model — DOM) может быть достаточно для установления вредоносных программ, что мо- жет привести к прямому доступу к системе жертвы. Пока злоумышленники ис- пользуют все возможные недостатки (дыры) в безопасности, эксперты по безо- пасности и поставщики услуг постепенно осознают, что крайне важна осведом- ленность о таких атаках. Например, проект Open Web Application Security Project (OWASP) предоставляет список из десяти наиболее распространенных угроз безо- пасности в веб-приложениях. Он используется во многих исследованиях по клас- 74 ISSN 0572-2691 сификации уязвимостей веб-приложений, и исследователи пришли к консенсусу относительно его обоснованности и эффективности. Поскольку веб-приложение широко используется во всем мире, ошибки в нем могут легко использоваться злоумышленниками. Основная причина взлома веб-приложения — неправильная проверка в приложении при таких ведущих атаках, как SQL-инъекция и межсай- товый скриптинг. Предлагаемый в работе метод основан на контекстно-свободных языках (context-free languages — CFL) и детерминированных автоматах с магазинной па- мятью (Deterministic push down automata — DPDA). Класс CFL играет важную роль в нескольких областях информатики. Помимо его определения с использо- ванием контекстно-свободных грамматик, он имеет другие характеристики: наиболее известна та, которая связана с использованием DPDA. Автоматы с мага- зинной памятью (Pushdown automata — PDA) — это конечные автоматы, допол- ненные магазинным стеком. PDA может только читать вершину стека и не знать, насколько он большой. Кроме того, он может добавлять или удалять элементы с вершины стека. Автоматы с магазинной памятью естественно моделируют управ- ление потоком последовательных вычислений в типичных языках программиро- вания со вложенными и потенциально рекурсивными вызовами программных мо- дулей, таких как процедуры и обращение к программе методов. Следовательно, разнообразие вопросов анализа программы, оптимизации компилятора и проверки модели можно сформулировать как решение проблем для PDA. Детерминирован- ный автомат с магазинной памятью — это вариант автомата с магазинной памя- тью. Класс DPDA допускает детерминированный CFL как подходящее подмноже- ство CFL. В данной работе в разд. 1 даны общие сведения о проверке входных данных и описана связанная с этим работа, сосредоточенная на анализе атак веб- приложений, обнаружений и предотвращений, используемых несколькими из- вестными сканерами уязвимостей, инструментами, и представлены некоторые не- достатки этих методов. В разд. 2 предлагаемая модель рассмотрена на базе атак с проверкой кода (Input validation attacks — IVA). В подразделе 2.1 поверхностно представлена атака и чит-код веб-страницы. Детали статического анализа, основан- ного на детерминированных автоматах с магазинной памятью, изложены в подраз- деле 2.2. Детали динамического анализа на основе детерминированных автоматов с магазинной памятью описаны в подразделе 2.3. В 2.4 представлен валидационный процесс, выполняемый между статической и динамической недетерминированными структурами автоматов. Этап классификации, цель которого — классификация вре- доносных веб-страниц, представлен в 2.5. В разд. 3 предложены эксперименты, выполненные для проверки рассматриваемого подхода и оценки эффективности предложенного метода. 1. Предпосылки и связанные с ними работы Межсайтовый скриптинг (Cross Site Scripting — XSS) и атака SQL-инъекций (SQL Injection Attack — SQLIA ) — два основных вида атак с проверкой ввода (IVA), используемые злоумышленниками для взлома веб-приложения. Основное различие между этими атаками заключается в том, что XSS-атаки используются для перенаправления пользователей на веб-сайты, где злоумышленники могут украсть данные из SQLIA, используемые для кражи информации. Напротив, атака межсайтового скриптинга (XSS) с помощью вредоносного кода перенаправляет пользователей на вредоносные веб-сайты, воровство куки-файлов и порчи веб- сайтов. Международный научно-технический журнал «Проблемы управления и информатики», 2019, № 5 75 Йонг Джун Парк (YongJoon Park), Дже Чул Парк (JaeChul Park ) предложили систему обнаружения вторжений веб-приложений (Web Application Intrusion Detection System — WAIDS), которая эффективно обнаруживает атаки с проверкой кода (2008) [21]. Уильям Дж. Дж. Халфонд (William G.J. Halfond) и Алессандро Орсо (Alessandro Orso) (2008) [5] представили веб-приложение предотвращения SQL-инъекций (SQL Injection Preventer) для исключения внедрения SQL во время выполнения программы. Биштеталь (Bishtetal) предложил метод динамической оценки кандидатов (Dynamic Candidate Evaluations method) для автоматического предотвращения атак SQL-инъекций (CANDID) (2010) [3]. Иньонг Ли (Inyong Lee), Сунки Чжон (Soonki Jeong), Сангсо Йео (Sangsoo Yeo), Джонсаб Мун (Jongsub Moon,) (2011) представили простой метод обнаружения SQL-инъекций путем удаления значений атрибутов SQL-запросов во время выполнения про- граммы и проверки на SQL-запросы во время компиляции [7]. Такеши Мацуда (Takeshi Matsuda) разработал новый алгоритм обнаружения атак межсайтового скриптинга путем извлечения особенностей атаки межсайто- вых скриптов с учетом внешнего вида и частоты символов (2012) [15]. A. Razzaq, K. Latif, H.F. Ahmad, A. Hur, Z. Anwar, P.C. Bloods предоставили онтологию на базе подхода, определяющего семантические правила для атак веб- приложений. Этот подход обнаруживает и классифицирует атаки веб-приложений (2013) [1]. Лвин Кхин Шар (Lwin Khin Shar), Хи Бенг Куан (Hee Beng Kuan) ра- зработали метод, основанный на статических атрибутах кода для прогнозирова- ния атак SQLIA и XSS. Успех предложенной системы основан на исторических данных, которые отражают статические атрибуты (2013) [16]. Андерс Моллер (Anders Moller) и Матиас Шварц (Mathias Schwarz) разработали метод мониторин- га манипуляций со стороны клиента и предоставления инструментов предупре- ждения, которые помогают разработчику приложения определить уязвимости пе- ред развертыванием веб-приложения (2014). Исату Гидара (Isatou Hydara), Абу Бакар Мд Султан (Abu Bakar Md Sultan), Хазура Зулзалил (Hazura Zulzalil), Новия Адмодисастро (Novia Admodisastro) предложили метод на основе OWASP ESAPI Security Guidelines (Руководства по безопасности OWASP ESAPI) для устранения уязвимостей межсайтового скрип- тинга в веб-приложении (2015) [17]. Сангвук Чо (Sangwook Cho), Гесик Ким (Gyo- osik Kim), Сон Чжэ (Seong-je Cho), Жонгму Чой (Jongmoo Choi), Минкю Парк (Minkyu Park), Сангчул Хан (Sangchul Han) предложили метод с использованием статического инструментария байт-кода и ввода во время выполнения проверки для контроля входных значений приложений на основе Java (2016) [18]. Иберия Медейрос (Ibéria Medeiros), Нуно Невес (Nuno Neves), Мигель Кор- рейа (Miguel Correia) предложили WAP-инструмент (2016) на основе анализа ста- тического кода источника и интеллектуального анализа данных для выявления уязвимостей веб-приложений [6]. Сунг Су Ким (Sung Soo Kim) и другие авторы исследовали и усовершенствовали инструменты обнаружения уязвимостей (Vulnerability Detection Tools — VDT) на основе открытого API, используемого Open VAS, для запрета проблем, связанных с безопасностью (2016) [13]. Васегипана Мехрноуш (Vaseghipanah Mehrnoush), Модири Насер (Modiri Nasser) и Джаббедар Сэм (Jabbehdar Sam) предложил метод обнаружения атак с проверкой кода, используя искусственную нейронную сеть и многослойный персептрон (Multi- Layer Perceptron — MLP network) (2017) [19]. К. Бакаре (K. Bakare), Айени (Ayeni), Б. Джунайду (B. Junaidu), Сахалу (Sahalu), Р. Колаволе (R. Kolawole), Адеянджу (Adeyanju) предложили интеллектуальный инструмент нечеткого вывода для об- наружения XSS-атак в веб-приложении, в предложенных рамках используется не- четкая логика для классификации слабых мест XSS (2018) [20]. 76 ISSN 0572-2691 1.1. Обзор ограничений подходов. Имеющиеся методы эффективно обраба- тывали несколько атак веб-приложений. Но одни обеспечивают решение только для SQL-инъекций атак, другие — только для межсайтовый скриптинг атаки. Су- ществующий подход в основном сосредоточен на предсказании атаки, а не на обеспечении полного и простого экономически эффективного решения для обна- ружения и устранения атак с проверкой кода, особенно в промышленности и ака- демической науке. Для этого были реализованы автоматические инструменты и системы безопасности, но ни одно из этих средств не является полным или доста- точно точным, чтобы гарантировать абсолютный уровень безопасности веб- приложения. Важен механизм, который легко развертывается и обеспечивает хо- рошую производительность для обнаружения и предотвращения атаки с провер- кой кода IVA. Таким образом, предложен новый подход, использующий детерми- нированные магазинные автоматы, основанные на статическом и динамическом анализе. 2. Обзор предлагаемой конструкции Представим среду обнаружения и предотвращения IVA для исправления недостатков проверки входных данных в приложении с использованием де- терминированных автоматов с магазинной памятью. Чтобы разработать реше- ние для уменьшения недостатков, которые анализируются в существующих методах, предложили новую конструкцию, способную обнаруживать и предот- вращать атаки с проверкой кода, используя статический и динамический ана- лиз на основе детерминированных автоматов с магазинной памятью. Сначала проиллюстрируем работу конструкции обнаружения и предотвращения IVA, показанную на рис. 1, с помощью последовательности операций и действий, связанных со статическим и динамическим анализом, — на рис. 2. Затем опи- шем, как конструкция обнаруживает и предотвращает атаки с проверкой кода IVA: с использованием SQL-инъекций (SQLIA), с использованием межсайто- вых сценариев XSS, и снижает затраты и время тестирования, а также эффек- тивно направляет разработчика/тестера на ту часть исходного кода, на которой следует сосредоточить усилия при выявлении и предотвращении атаки с про- веркой кода IVA в веб-приложении. Данная конструкция иллюстрируется с помощью мотивирующего примера выборки веб-приложения. Воздействие конструкции в создании детерминированных автоматов с магазинной памятью и распознавании ввода с помощью контекстно-свободной грамматики демон- стрируются на примере. Атаки с проверкой кода происходят из-за неправиль- ной проверки со стороны клиента и сервера в веб-приложении. Эта проблема решается в рамках статического и динамического анализа (рис. 1). Важность статического и динамического анализа можно продемонстриро- вать с помощью следующего примера. Рассмотрим веб-приложение с ошибкой или введем неверные утверждения в логику веб-страницы. Первоначально ис- ходный код веб-приложения, который может быть представлен на любом язы- ке, извлекается путем анализа веб-приложения, как показано на шаге 1 рис. 2. Анализ строк выполняется для определения всех возможных значений для каж- дой точки доступа в исходном коде, статическая строка анализа языков полез- на для проверки ошибок в динамически SQL-запросах и вредоносного ввода, как показано на шаге 2 рис. 2. Статический анализ включает анализ исходного кода, возможный ввод в приложение. Грамматика генерирует конечный набор правил для структурирования в строку. Контекстно-свободная грамматика Международный научно-технический журнал «Проблемы управления и информатики», 2019, № 5 77 (Context free grammar — CFG) полезна для распознавания образов для ценного сценария. CFG генерируется на основе процесса анализа строк и правил; их синтаксис и описание идентифицированы, как показано на шаге 3 рис. 2. Рис. 1 Соответствующий детерминированный PDA (DPDА) генерируется на основе контекстно-свободной грамматики статически, как показано на шаге 4 рис. 2. DPDA — автомат с магазинной памятью, его действие — это полностью опреде- ленная ситуация, а не выбор между несколькими альтернативными действиями. DPDА не могут использовать язык с неоднозначностью грамматики. Детермини- рованные автоматы c магазинной памятью между каждой операцией должны найти уязвимости XSS и SQL-инъекции. Теперь при вводе данных на веб-стра- нице во время выполнения извлекается DPDА и выполняется проверка между ста- тическим и динамическим PDA для идентификации любого вредоносного ввода, добавляется при вводе входных данных в веб-форму, как показано на шагах 5, 6 (см. рис. 2). Во время процесса проверки, если динамический запрос содержит вредоносный код, он не будет соответствовать статическому PDA-автомату, и за- прос будет считаться вредоносным, и выполнение запроса не разрешается, в про- тивном случае, если запрос соответствует статическому PDA-автомату, выполне- ние запроса разрешается, как показано на шагах 7a, 7b рис. 2. Наконец выполня- ется шаг классификации, направленный на классифицикацию вредоносных запросов веб-страниц, таких как SQLIA, XSS или другие атаки и генерирование отчета об атаке с проверкой ввода (IVA) на шаге 8 рис. 2 для веб-приложения. 78 ISSN 0572-2691 Рис. 2 Методика состоит из следующих этапов. 2.1. Нахождение поверхности атаки (Attack Surface — AS) и чит-код (Cheat Code — CC) поверхности атаки (Attack Surface — AS) веб-приложе- ния. Определение поверхности атаки веб-приложения подразумевает все точки входа (Entry Points — EP), через которые осуществляется внешний ввод данных в приложение. Упрощенное определение поверхности атаки относится к объему кода, функциональности и интерфейсам системы, доступной злоумышленникам. Идея этого понятия заключается в том, что злоумышленники могут использо- вать уязвимости только в тех частях системы, которые система выставляет про- тивникам. Поверхность атаки описывает все различные точки, где злоумышленник мо- жет попасть в систему, и где он мог бы получить данные. Поверхностью атаки приложения являются: Международный научно-технический журнал «Проблемы управления и информатики», 2019, № 5 79 1) сумма всех путей для данных в приложение и из него (точки входа и выхода); 2) код, который защищает эти пути, включает в себя соединение с ресурсом и аутентификацию, авторизацию, регистрацию активности, проверку данных и ко- дирование; 3) все ценные данные, используемые в приложении, в том числе секреты и ключи, интеллектуальная собственность, важные бизнес-данные, личные данные. Проанализировав точки входа и выхода, создадим список чит-кодов атаки с проверкой ввода после сбора кодов от хакерских приемов и разных сайтов. Здесь список чит-кодов атаки с проверкой ввода поможет протестировать уязвимости SQLI и XSS, полезные для обхода фильтров. Таблица 1 Номер Тип IVA Поверхность атаки (AS) Чит-код (CC) 1 SQLIA Пользовательский интерфейс (UI) формы и поля Базы данных Точка входа в систе- му/аутентификация Интерфейсы администратора Запросы и функции поиска Формы ввода данных (CRUD) or 1=1— admin' or '1'='1 1234 ' AND 1=0 UNION ALL SE- LECT 'admin', ') or '1'='1— '; drop table xyz – ';SHUTDOWN; -- 2 XSS URL s Праметры HTTP заголовки и куки API s Файлы Форма обратной связи Поле комментариев “><script>alert(23);</script> “};alert(23);a={“a”: <img src="javascript:alert('XSS');"> <link rel="import" href="test.svg" /> <input onfocus=write(1) autofocus> <iframe src=http://hacers.org/scriptlet.htm > <BODY ONLOAD=alert(‘XSS’)> '';!--"<XSS>=&{()} Здесь AS и CC — веб-приложения, опишем чит-код и поверхность атаки на следующем примере веб-страницы. Рис. 3 В приведенном примере, где чит-код вставлен в поле поиска веб-формы на рис. 3, просмотрев исходный код, можно найти точку входа для атаки с проверкой ввода на рис. 4. 80 ISSN 0572-2691 Рис. 4 2.2. Статический анализ на основе DPDA. Статический анализ выпол- няется в неисполняемой среде. Как правило, статический анализ будет прове- рять исходный код на предмет всех возможных вариантов поведения во время выполнения и наличия уязвимого кода. Статический подход использует CFG для представления точек входа и выхода приложения. CFG — наиболее под- ходящие и наиболее широко используемые методы описания синтаксиса язы- ков программирования. Их можно использовать для генерации синтаксических анализаторов (parsers), которые преобразуют кусок исходного кода в древо- видное представление синтаксической структуры кода. Эти деревья парсера можно использовать для дальнейшей обработки или анализа исходного текста. В этом смысле грамматики составляют основу многих инженерных и обрат- ных инженерных приложений, таких как компиляторы, интерпретаторы и ин- струменты для анализа и преобразования программного обеспечения. Детерминированный автомат с магазинной памятью построен как син- таксический анализатор предсказания/совпадения. Каждый шаг либо предска- зывает, какую продукцию использовать, либо сравнивает некоторые символы ввода, и детерминированный автомат с магазинной памятью — это PDA с до- полнительным свойством, которое состоит в том, что для каждого состояния автомата с PDA и для любой комбинации текущего входного символа и те- кущего символа стека, определен не более чем один переход. Например, из рис. 4 фрагмент кода CFG генерируется для строки поиска (точка входа для ввода) строка 14, 7. DPDA представляет статический запрос и грамматическую модель и все возможные значения ввода, которые могут быть введены. Преимущество использования DPDA для статического анализа состоит в следующем, если можно найти DPDA для CFG, то можно эффективно распо- знавать строки на этом языке. Ниже на рис. 5 описан статический анализ про- цесса для веб-программы и определен DPDA из CFG. Международный научно-технический журнал «Проблемы управления и информатики», 2019, № 5 81 Рис. 5 На рис. 3 CFG генерируется для строки поиска (точка входа для ввода). Рас- смотрим допустимый ввод в виде d, который является терминалом, и хакер может добавить чит-код наряду с действительным кодом «d». Итак, рассмотрим случай, когда E — не терминал, т.е. он может или не может быть действительным или не- верным кодом, зависит от типа пользователя. Таблица 2 Начальный символ: S S → EdE | Ed | dE E → “} | > | < |, | ɛ Правило Приложение Результат Start → S Start S S → EdE S EdE E → ɛ EdE dE E → ɛ dE d С помощью инструмента JFLAP конвертируем CFG в статический DPDA из CFG. JFLAP является инструментом для автоматизации, но для этого требуются опытные ученики, которые знают основы автоматов, чтобы полнее использовать его возможности. Рис. 6 Из приведенной выше диаграммы (рис. 6) можно описать статический DPDA, где в JFLAP  представлен . Статический DPDA фиксирован, неизменен и ис- пользуется для проверки входных данных. 2.3. Динамический анализ на основе DPDA. Динамический анализ ис- пользует противоположный подход и выполняется во время работы програм- 82 ISSN 0572-2691 мы (по некоторым входам). Динамический анализ контролирует функциональное поведение, время отклика и общую производительность системы. В данной статье используется динамический анализ загрязнений для отслеживания потока каждо- го входного символа, информация используется для восстановления входной грамматики. Динамический анализ основан на трансформации поведенческих ас- пектов программного детерминированного автомата с магазинной памятью, мо- ниторинге запросов во время выполнения и сопоставление их со статическим DPDA. Динамический анализ принимает входные данные или запрос, сформиро- ванные во время выполнения, и динамический запрос или грамматическую мо- дель для него. Для строк запроса токенизация в виде SQL-токенов является дина- мической моделью запроса. Динамический анализ — это захват модели, а мони- торинг времени выполнения автоматизирован, но преобразование поведенческих аспектов программы в DPDA в основном ручные или автоматизированные с по- мощью инструмента JFLAP. Образец формы поиска вредоносного ввода вставлен как <font size="4" color="red">AJAX<img src="https://bloggingglobal.files.wordpress.com/2014/07/hacking. jpg" width="300" height="300"> (см. рис. 3). Рассмотрим d как действительный ввод d=AJAX, где добавлен скрипт к нормальному вводу d, который вызывает атаку с проверкой ввода из-за неправильной проверки, рассматриваемый как E, который не- терминальный. Анализируя табл. 1 образца чит-кода веб-приложения, находим что вредоносный код может начинаться со специальных символов “ ,> , }, ; ,<, > etc…. Вход < font size="4" color="red"> AJAX <img src="https://bloggingglobal.files.wordpress.com/2014/07/hacking.jpg" width="300" height="300"> Ввод, вставленный, как показано на рис. 3, представлен < d < (< — началь- ный символ, добавленный до и после действительный ввода d). Таблица 3 Правило Приложение Результат Start → S Start S S → EdE S EdE E → < EdE <dE E → < <dE <d< Рис. 7 Международный научно-технический журнал «Проблемы управления и информатики», 2019, № 5 83 Рис. 8 Рис. 9 Из рис. 7–9 следует, что <font size="4" color="red">AJAX<img src=" https://bloggingglobal.files.wordpress.com/2014/07/hacking.jpg"width = "300" height="300"> (поисковое слово используется на веб-странице) является не- допустимым вводом, поскольку вводится с вредоносным чит-кодом вместе с действительным вводом AJAX, который представлен как <d<, поскольку ввод вставлен с вредоносным кодом, не принятым конечным состоянием q2 в DPDA, этот тип вредоносного запроса отклоняется DPDA, как показано на рис. 8. Рассмотрим еще один пример, как действительный ввод анализируется с по- мощью предлагаемой конструкции. 84 ISSN 0572-2691 Рис. 10 Вход вставлен, как показано на рис. 10, с входом AJAX, представляет d, не добавлен с вредоносным кодом в форму поиска на веб-странице. Таблица 4 Правило Приложение Результат Start → S Start S S → EdE S EdE E → ɛ EdE dE E → ɛ dE d Рис. 11 Из рис. 11–13 видно, что AJAX (поисковое слово, используемое на веб-стра- нице) является допустимым вводом, который не вставляется с каким-либо вредо- носным, так как ввод свободен от вредоносного кода, принятого конечным состо- янием q2 в DPDA. Международный научно-технический журнал «Проблемы управления и информатики», 2019, № 5 85 Рис. 12 Рис. 13 2.4. Валидация. Предлагается метод проверки для обнаружения атак с проверкой ввода на основе статического и динамического анализа. Этот метод генерирует структуру динамических детерминированных автоматов (DDPDA) для выполнения ввода во время выполнения и сравнивает их с грамматикой статического детерминированного автомата (SDPDA), структура которого про- анализирована заранее. Затем программисту предоставляется сводка результа- тов статического и динамического сопоставления. Символы, используемые в предлагаемом алгоритме, приведены в табл. 5. 86 ISSN 0572-2691 Таблица 5 Номер Символы Описание 1 Iu Пользовательские данные 2 fs Функция для генерации статической DPDA модели 3 fd Функция для генерации динамической модели DPDA 4 CS Фрагмент статического кода 5 CD Фрагмент динамического кода 6 Sm Статическая модель DPDA (фиксированная) 7 Dm Динамическая модель DPDA Предложенный метод обнаружения использует функцию fs, которая генерирует статическую DPDA и динамическую модель DPDA. Функция показана в форму- лах (1) и (2), фиксированный DPDA и DPDA во время выполнения в веб-при- ложении и сгенерированы: Sm = fs (CS) (1) Dm = fd (CD) (2) Sm⊕Dm нормальный ненормальный.    (3) Формула (3) применяется независимо от того, является пользовательский ввод (Iu) нормальным или ненормальным. Здесь символ ⊕ представляет исключаю- щий оператор ИЛИ. Таким образом, (1), (2) логически исключают один другого логическим оператором OR. Если эту формулу применить к приведенному выше примеру, получим Sm⊕Dm=0 = нормальный (принимается), (3ʹ) Sm⊕Dm=0  ненормальный (отклоняется). (3ʹʹ) Если найден результат (3ʹ), то процесс проверки считают нормальным и выполне- ние запроса пользователя разрешается. Если обнаружен результат (3ʹʹ), то процесс проверки считается ненормальным, запрещающим выполнение вредоносного за- проса, содержащим уязвимый код (чит-код). N: Общее число элементов поверхности атаки (точки входа и выхода) в веб- приложении Iu: Пользовательские данные fs: Функция для генерации статической модели DPDA fd: Функция для генерации динамической модели DPDA CS: Фрагмент статического кода CD: Фрагмент динамического кода Smi: Статическая модель DPDA (фиксированная) Dmi: Динамическая модель DPDA, сгенерированная из Smi Smi = {Sm1. . . Smn}, Dmi = {Dm1, . . . , Dmn}, // Static analyss 1. For i=1 to N 2. Get CS 3. Smi = fs (CSi) 4. End {For} 5. // Dynamic analysis (running time) 6. While (Normal & ∀ k N) Международный научно-технический журнал «Проблемы управления и информатики», 2019, № 5 87 7. Get CDk from the web with I{t, f} 8. Dmk = fd (CDk) 9. If (Smk ⊕ Dmk) = 0 then 10. Result = Normal (Accept) 11. Else 12. Result = Abnormal (Reject) 13. End {If} 14. End {While} Алгоритм 1. Алгоритм обнаружения IVAs (рис. 14). Рис. 14 Из результатов сопоставления статического (SDPDA) и динамическо- го (DDPDA) типов принимает только действительный ввод d, где другой возмож- ный вредоносный код вместе с действительным вводом DPDA отклоняет. Вход, ко- торый DPDA отклоняет, обнаруживается как ненормальный пример (см. рис. 3) и запрос не выполняется. Рассмотрим отчет об атаке с проверкой ввода (IVA). Если обнаружен вредо- носный запрос из-за уязвимого ввода, то он считается атакой с проверкой ввода. Основанная история набора данных IVA классифицируется как атака SQL- инъекций (SQLIA), межсайтовый скриптинг атака и любые другие виды атак. Этот последний этап, на котором обнаружена атака с проверкой ввода, заблоки- рован для обработки вредоноснго запроса и выводится сообщение о типе попытки ПВА атаковать веб-приложение. 3. Результаты и обсуждения Предлагаемый метод предоставляет надежную информацию, чтобы направ- лять тестировщика/разработчиков, или предоставляет инструменты/методы обна- ружения IVA в сценарии, описанном выше. Предлагаемая методика — неотъем- лемая часть общего метода. Экспериментальная оценка метода продолжается. Тем не менее предварительные результаты показывают, что данная методика эффектив- на и осуществима в любом веб-приложении, использующем JSP, PHP, Java и т.д. Предлагаемая система моделируется путем реализации онлайн-приложений, та- ких как онлайн-банкинг, книжный магазин, образовательный сайт, которые, как известно, уязвимы к атакам с проверкой ввода. Приложение развернуто на серве- ре Glass Fish с MySQL 5.5 как база данных в NetBeans8.1. 88 ISSN 0572-2691 Таблица 6 Предотвращение и метод обнаружения Атаки SQL Межсайтовый скриптинг атаки Т ав то л о ги и К о м б и н и р о в ан н ы й зап р о с Л о ги ч еск и н ев ер н о С о ю зн ы й зап р о с Х р ан и м ая п р о ц ед у р а О тр аж ен н ы й M C П о сто я н н ы й M C M C н а о сн о в е О М Д Метод удаление атрибута Входные шаблоны санации Семантическая безопасность PHP структура надзора Классификация и анализ Санации на основе размера запроса Конструкция предсказания уязвимости Статический анализ и сбор данных Инструменты обнаружения уязвимости Контекстные отпечатки script Предложенный метод Символы: — возможно, — частично возможно, — невозможно. В табл. 6 приведен сравнительный анализ предотвращения атаки с проверкой ввода и методов обнаружения и типов атак. Символ используется для метода, который может успешно остановить все атаки этого типа. Символ использует- ся для техники, которая не может прекратить атаки такого типа. Символ отно- сится к методу, который останавливает только тип атаки частично из-за ограни- чений основного подхода. Хотя многие подходы определены как методы обнару- жения или предотвращения, лишь немногие из них были внедрены практически. Следовательно, это сравнение основано не на эмпирическом опыте, а на аналити- ческой оценке. Из приведенных выше результатов, улучшая метод статического и динамического анализа, можно обнаружить все типы атак с проверкой ввода. Рис. 15 9 8 7 6 5 4 3 2 0 Международный научно-технический журнал «Проблемы управления и информатики», 2019, № 5 89 На рис. 15 описан график количества атак с проверкой ввода и различными подходами предложенного метода. Существующие методы только обнаруживают и предотвращают несколько типов атак. Предлагаемый метод, основанный на DPDA, может предотвратить и обнаружить все различные типы атак с проверкой ввода. Заключение В данной статье показано, как поверхность атаки идентичности, которая яв- ляется горячей точкой для атаки с проверкой ввода, может указать разработчикам приложений и тестировщикам, какая часть исходного кода должна быть проана- лизирована в ходе тестирования веб-приложения для выявления и предотвраще- ния IVAs. Отсутствие этой достоверной информация приводит к потере времени и ресурсов для проверки уязвимостей в приложении, однако не является проблемой для небольших приложений, и наоборот, их увеличение порождает проблему. Существующие подходы к обеспечению безопасности традиционных приложений не всегда достаточны при рассмотрении веб-парадигмы и часто ltkf.n конечных пользователей ответственны за защиту ключевых аспектов обслуживания. Эта си- туация должна быть предотвращена, так как при не очень хорошем управлении она может допустить ненадлежащее использование веб-приложения и привести к нарушению требований его безопасности. Предлагается статический и динамический анализ на основе детерминиро- ванного автомата с магазинной памятью DPDA для обнаружения и предотвраще- ния IVAs в веб-приложении. DPDA основаны на CFG, статический и динамиче- ский анализ взят из приложения и DPDA создаются и сравниваются для иденти- фикации любого нового внедрения уязвимого кода. Экспериментальная оценка предлагаемого метода утверждает, что статический и динамический анализ может эффективно обнаруживать и удалять атаки с проверкой ввода. Предварительные результаты показывают, что предложенный подход эффективен и выполним для прикладной среды. В следующей публикации будет рассмотрена классификация атак с проверкой ввода и степени их серьезности в веб-приложении. В. Нитья, С. Сентилкумар ВИЯВЛЕННЯ ТА ЗАПОБІГАННЯ АТАК З ПЕРЕВІРКОЮ ВВОДУ У ВЕБ-ДОДАТКИ ПРИ ВИКОРИСТАННІ ДЕТЕРМІНОВАНИХ АВТОМАТІВ ІЗ МАГАЗИННОЮ ПАМʼЯТТЮ Належна перевірка вводу та дезинфекції є критичною проблемою при разробці веб-додатків. Помилки та недоліки в операціях перевірки спричиняють зловми- сну поведінку у веб-додатку, злочинцям неважко буде їх використати. Оскільки зловмисники стрімко набувають навиків та здібностей, вони зосереджені на ви- вченні вразливостей у веб-додатках та намагаються наразити на небезпеку конфіденційність, цілісність та доступність інформаційної системи. Атаки з пе- ревіркою вводу (Input Validation Attacks — IVA) — це коли хакер відправляє шкідливі дані (чіт-коди), щоб заплутати веб-додатки та отримати доступ або знищити кінець додатка без відома користувача. Перевірка вводу — це перша лінія захисту для таких атак. Приклади атак з перевіркою вводу включають в себе міжсайтовий скриптинг (Cross Site Scripting — XSS), атаку SQL-інʼєкцій (SQL Injection Attack — SQLIA), переповнення буфера та зворотний шлях у катало- гах. Використовуючи атаки з перевіркою коду, хакери можуть викрасти конфі- денційні дані, що знижують ринкову вартість організації. У цьому проекті до- сліджено проблему виявлення та усунення похибок перевірки як клієнтського, так і 90 ISSN 0572-2691 серверного коду з використанням даного підходу. Запропоновано нову ідею, що сприяє виявленню та усуванню атаки з перевіркою коду з використанням статичного та динамічного аналізу. Ключові слова: атака з перевіркою коду, статичний і динамічний аналіз, виявлення, запобігання, детерміновані автомати з магазинною памʼяттю. V. Nithya, S. Senthilkumar DETECTION AND AVOIDANCE OF INPUT VALIDATION ATTACKS IN WEB APPLICATION USING DETERMINISTIC PUSH DOWN AUTOMATA The proper validation of input and sanitization is critical issue in developing web ap- plications. Errors and flaws in validation operations resulting in malicious behavior in web application can be easily exploited by attackers. Since attackers are rapidly developing their skills and abilities they focus on exploring vulnerabilities in the web applications and try to compromise confidentiality, integrity and availability of in- formation system. Input Validation Attacks (IVAs) are the attacks where a hacker sends malicious inputs (cheat codes) to confuse a web application in order to have access or destroy back end of application without knowledge of users. Input valida- tion serves as the first line of defense for such attacks. Examples of input validation attacks include Cross Site Scripting (XSS), SQL Injection Attack (SQLIA), buffer overflow and directory traversal. Using Input validation attacks hackers can steal the sensitive data which decrease organization market value. In this project, we investi- gate the problem of detection and removal of validation bugs both at the client-side and the server-side code by using our approach. In this paper we proposed new idea that makes it possible to able detect and prevent input validation attack using Static and Dynamic Analysis. Keywords: Input validations attack, static, dynamic, detection, prevention, determin- istic push down automata. 1. Razzaq Abdul, Latif Khalid, Ahmad H. Farooq, Hur Ali, Zahid Anwar, Bloodsworth Peter Charles, Semantic Security against Web Application Attacks, Information Sciences. 2013. P. 19–38. 2. Moller A., Schwarz M. Automated detection of client-state manipulation vulnerabilities. ACM Trans. Softw. Eng. Methodol. 2014. 23, N 4. 3. Bisht P., Madhusudan P., Venkatakrishnan V.N. CANDID: Dynamic Candidate Evaluations for Automatic Prevention of SQL Injection Attacks. ACM Transactions on Information and System Security. 2010. 13, N 2. DOI: 10.1145/1698750. 1698754 4. Diomidis Spinellis, and Angelos D. Keromytis, How to train your browser: Preventing XSS attacks using contextual script fingerprints. ACM Trans. Priv. Secur. 2016. 19, N 1. Article 2. 5. Halfond W.G.J., Orso A. Member and Panagiotis Manolios, "WASP: Protecting Web Applica- tions Using Positive Tainting and Syntax-Aware Evaluation. IEEE Transactions on Software En- gineering. 2008. 34, N 1. P. 65–81. 6. Medeiros I., Neves N., Correia M. Detecting and Removing Web Application Vulnerabilities with Static Analysis and Data Mining. IEEE Transactions on Reliability. 2016. 65, N 1. P. 54–69. 7. Inyong Lee, Soonki Jeong, Sangsoo Yeo, Jongsub Moon, A novel method for SQL injec tion attack detection based on removing SQL query attribute values. Mathematical and Computer Modelling. 2012. 55. P. 58–68. 8. Jang Y.S., Choi J.Y. Detecting SQL injection attacks using query result size. Computers & Secu- rity. 2014. 44. P. 104–118. 9. Lwin Khin Shar, Lionel C. Briand, Hee Beng Kuan Tan. Web application vulnerability prediction using hybrid program analysis and machine learning. IEEE Trans. Dependable Sec. Comput. 2015. 12, N 6. P. 688–707. 10. NithyaV., Lakshmana Pandian S. and Regan R. The SQL injection attack and prevention by classification and analysis. Asian Journal of Information Detection Technology. 2013. 12. P. 131–139. Международный научно-технический журнал «Проблемы управления и информатики», 2019, № 5 91 11. Nithya V., Regan R. & Vijayaraghavan J. A survey on SQL injection attacks, their detection and prevention techniques. International Journal of Engineering and Computer Science. 2013. 2. N 4. P. 886–90. 12. Rim Akrout, Eric Alata, Mohamed Kaaniche and Vincent Nicomette. An automated black box approach for web vulnerability identification and attack scenario generation. Journal of the Bra- zilian Computer Society. 2014. 13. Sung Soo Kim et. al, Vulnerability detection mechanism based on open API for multi-user's con- venience. IEEE. 2016. 14. Takeshi Matsuda, Daiki Koizumi and Michio Sonoda. Cross site scripting attacks detection algo- rithm based on the appearance position of characters. The 5th International. Conference on Com- munications, Computers and Applications. Istanbul. Turkey. 2012. P. 65–70. 15. Prokhorenko V., Kim-Kwang Raymond Choo, Helen Ashman. Intent-Based Extensible Real- Time PHP Supervision Framework, Institute of Electrical and Electronics Engineers. IEEE Transactions on Information Forensics and Security. 2012. 10, N 11. P. 2215–2226. 16. Lwin Khin Shar, Hee Beng Kuan Tan. Predicting SQL injection and cross site scripting vulnera- bilities through mining input sanitization patterns. Information and Software Technology. 2013. 55. P. 1767–1780. 17. Isatou Hydara , Abu Bakar Md Sultan , Hazura Zulzalil. Novia Admodisastro Removing "Cross- Site Scripting Vulnerabilities from Web Applications using the OWASP ESAP I Security Guide- lines, Hydara, 2015. 8, N 30. 18. Sangwook Cho, Gyoosik Kim, Seong-je Cho, Jongmoo Choi, Minkyu Park, Sangchul Han. Runtime Input Validation for Java Web Applications using Static Bytecode Instrumentation Pro- ceeding, RACS '16. Proceedings of the International Conference on Research in Adaptive and Convergent Systems. 2016. P. 148–152. 19. Mehrnoush Vaseghipanah, Nasser Modiri and Sam Jabbehdari, Detecting Input Validation At- tacks of Web Apps and Developing Metrics for Their Ranks, IJCSNS International Journal of Computer Science and Network Security. 2017. 17, N 6. 20. Bakare K. Ayeni , Junaidu B. Sahalu, and Kolawole R. Adeyanju. Detecting Cross-Site Scripting in Web Applications Using Fuzzy Inference System. Journal of Computer Networks and Com- munications. 2018. Article ID 8159548. 21. Park Y.J., Park J. Web Application Intrusion Detection System for Input Validation Attack. IEEE 2008. located on : http://portal.acm.org/citation.cfm?id= 1472086 22. Nithya V., S. Lakshmana Pandian, C. Malarvizhi. A survey on detection and prevention of cross-site scripting attack. International Journal of Security and Its Applications. 2017. 3, N 3. P. l39–152. Получено 29.05.2019