
З кожним роком технології стають дедалі доступнішими, що зумовлює зростання попиту на фахівців з кібербезпеки. Ця робота спрямована на дослідження взаємозв’язку між мовами програмування та кібербезпекою. Оскільки залежність від технологій зростає, важливо розуміти, як певні мови програмування можуть сприяти вчиненню кіберзлочинів або допомагати в їх запобіганні. Враховуючи різноманітність мов та типів атак, необхідно систематизувати наявну інформацію для повного розуміння сучасного стану на перетині кібербезпеки та програмування. З цієї причини в роботі розглядається зв’язок між популярними мовами програмування та поширеними типами атак: DDoS, переповнення буфера (Buffer overflow), «людина посередині» (Man-in-the-middle), соціальна інженерія (Social engineering) та SQL-ін’єкція (SQL injection).

З кожним роком технології стають дедалі доступнішими, що зумовлює зростання попиту на фахівців з кібербезпеки. Ця робота спрямована на дослідження взаємозв’язку між мовами програмування та кібербезпекою. Оскільки залежність від технологій зростає, важливо розуміти, як певні мови програмування можуть сприяти вчиненню кіберзлочинів або допомагати в їх запобіганні. Враховуючи різноманітність мов та типів атак, необхідно систематизувати наявну інформацію для повного розуміння сучасного стану на перетині кібербезпеки та програмування. З цієї причини в роботі розглядається зв’язок між популярними мовами програмування та поширеними типами атак: DDoS, переповнення буфера (Buffer overflow), «людина посередині» (Man-in-the-middle), соціальна інженерія (Social engineering) та SQL-ін’єкція (SQL injection).
Про це докладно розповідає у своєму огляді фахівець з питань штучного інтелекту — Башир Джаббаров.
1. Вступ
Через постійний розвиток технологій кібербезпека завжди залишається високозатребуваною галуззю. З кожним технологічним досягненням з’являються як нові способи вчинення кіберзлочинів, так і нові методи захисту від них. У міру того як технології стають дедалі доступнішими, мови програмування все частіше використовуються як для здійснення кібератак, так і для захисту від них.
Цей огляд покликаний надати загальну інформацію про мови програмування та їхній зв’язок із кібербезпекою. Враховуючи, наскільки життєво важливим є цифровий світ, як ніколи важливо залишатися в курсі потенційних загроз кібербезпеці. У міру того як комп’ютерні науки стають масовими, мови програмування будуть застосовуватися ще активніше. Щоб уберегтися від потенційної небезпеки, важливо своєчасно дізнаватися про те, як розпізнавати цифрові загрози та захищатися від них.
Цей огляд має на меті висвітлити поточний стан взаємодії між мовами програмування та їхнім застосуванням у контексті кібербезпеки. У роботі розглянуто низку кібератак:
-
DDoS — атака, спрямована на виведення з ладу цільового сервера шляхом порушення його мережевого трафіку;
-
Переповнення буфера (Buffer overflow) — тип атак, що використовує вразливості, викликані неефективним розподілом пам’яті;
-
«Людина посередині» (Man-in-the-middle) — атака, що передбачає стеження або втручання третьої сторони в онлайн-комунікацію;
-
Соціальна інженерія (Social engineering) — підхід, що характеризується зловмисним переконанням людей розкрити конфіденційну інформацію;
-
SQL-ін’єкція (SQL injection) — атака, що здійснюється шляхом впровадження шкідливого коду в SQL-запит.
У статті також розглядається, як популярні мови програмування часто використовуються як для мінімізації наслідків, так і для проведення вищезазначених атак.
Загалом, захист від кіберзагроз завжди матиме величезне значення. Оскільки технології продовжують удосконалюватися, разом із ними розвиватимуться кібератаки та засоби захисту. Типи атак, перераховані в цьому огляді, зберігають свою актуальність протягом тривалого часу, еволюціонуючи та змінюючи свої форми. Так само розвиваються і заходи захисту.
У минулому в наукових працях та оглядах вже досліджувалися кібербезпека, програмування та їхній перетин. Огляди, такі як [i4] та [i5], розглядали теми, пов’язані з кібербезпекою. Зокрема, у праці [i4] вивчався зв’язок між кібербезпекою та мовами програмування. Дослідження, подібні до [i3], були присвячені перетину програмування та кібербезпеки в контексті захисного програмування та освіти в галузі комп’ютерних наук. Аналогічно, оглядові роботи [i1] та [i2] вивчали технічний бік кібербезпеки та мов програмування. У роботі [i1] досліджувалися вимоги до застосування кібербезпеки, тоді як у [i2] було зроблено огляд вибору мов програмування у прив’язці до кібербезпеки.
Цей огляд зосереджений на фундаментальних взаємодіях між кібербезпекою та мовами програмування, зокрема на тому, як мови програмування можуть сприяти безпеці або шкодити їй.
2. Основна частина
У цьому огляді буде розглянуто низку кібератак: DDoS, переповнення буфера, атаки «людина посередині», соціальну інженерію та SQL-ін’єкції. У роботі буде стисло описано принципи їхньої роботи та передумови виникнення, після чого буде проаналізовано їхній зв’язок і взаємодію з популярними мовами програмування. У статті буде висвітлено як потенційну шкоду, так і користь, яку несуть мови програмування у контексті зазначених кібератак.
2.1 DDoS
DDoS-атака (distributed denial-of-service attack — розподілена атака на відмову в обслуговуванні) — це спроба порушити нормальний трафік цільового сервера з метою зробити сервіс недоступним [10]. Доведено, що кількість DDoS-атак продовжує зростати, створюючи все більше проблем для сучасних систем [2]. Поширений підхід до проведення DDoS полягає у відправці великої кількості пакетів на адресу призначення, що призводить до надмірного споживання ресурсів кінцевих точок і смуги пропускання транзитної мережі. Ці специфічні варіанти DDoS зазвичай називають атаками затоплення пакетами (packet flooding attacks).
Існує багато робіт, присвячених зв’язку між DDoS-атаками та розробкою інструментів на основі мов програмування. Перша категорія стосується прогнозування DDoS-атак [1–5]. Виявлення DDoS-атак за рівнем їхньої активності можна класифікувати як превентивне (профілактичне) або реактивне [1]. Деякі з цих робіт прогнозують DDoS-атаки за допомогою моделей машинного навчання (ML) [2,3]. Наприклад, бібліотека ARIMA використовувалася для виявлення аномалій, пов’язаних із DDoS-атаками [2]. Крім того, існують дослідження щодо виявлення атак іншими методами, окрім ML [4,5]. Наприклад, для виявлення DDoS-атак були розроблені хмарні сервіси [4,5].
Друга категорія присвячена розробці методів захисту від DDoS-атак [2,7–9]. Запобігати та виявляти DDoS-атаки можна безліччю способів. Наприклад, їх можна виявляти за допомогою машинного навчання з використанням мови програмування конвеєра даних P4. P4 працює на комутаторах програмно-конфігурованих мереж (SDN), що дозволяє ефективніше виявляти вхідні атаки. Якщо точніше, мова P4 дозволяє комутаторам запам’ятовувати оброблені пакети, що дає змогу виявляти атаки безпосередньо на рівні площини даних (data plane) [6]. Крім того, розробки в галузі алгоритмів виявлення аномалій спрощують виявлення та мінімізацію наслідків DDoS [2]. За допомогою Frenetic, мови мережевого програмування, аномалії DDoS можна виявляти та усувати шляхом скидання пакетів від ботів-порушників [8].
Остання категорія стосується інструментів та програмного забезпечення для створення DDoS-атак [11]. Утиліти, які слугують джерелами DDoS-атак, часто називають інструментами атак або генераторами трафіку. Нижче наведено приклади мов програмування, які використовуються в таких інструментах [11]. Мова програмування Java використовується для роботи генератора трафіку під назвою SEER [12]. Популярна мова програмування C++ застосовується в D-ITG [13], який відповідає за генерацію трафіку IPv4 та IPv6. Нарешті, дуже поширена мова Python використовується для забезпечення роботи генераторів трафіку Pylot [14] та Ostinato [15].
2.2 Переповнення буфера (BOF)
Атаки типу переповнення буфера (Buffer overflow, BOF) можна охарактеризувати як використання вразливостей, що виникають через неефективний розподіл пам’яті в програмах. Ці вразливості можуть бути використані зловмисниками шляхом перевантаження буфера більшим обсягом інформації, ніж для нього виділено. Це може призвести до перезапису додаткових даних у критичних областях пам’яті. Це часто робиться для отримання доступу до файлів та їх пошкодження без належної автентифікації.
Найпростішою та найпопулярнішою BOF-атакою є руйнування стека (stack smashing) [16]. Ця атака працює шляхом перезапису адреси повернення стека. Стек — це область пам’яті, де зберігається інформація, наприклад, змінні. Нападник переповнює буфер, перезаписуючи адресу повернення функції в стек так, щоб вона вказувала на шкідливий код, впроваджений зловмисником у стек, замість легітимної точки виклику [17].
Насамперед найуразливішими до BOF-атак є мови програмування C та C++. Це пов’язано з тим, що вони надають пріоритет ефективності та продуктивності, а не заходам безпеки, що робить їх схильними до переповнення буфера при використанні недосвідченими програмістами [17,18]. Причиною є надання програмістам можливості безпосередньо маніпулювати пам’яттю програми. Наприклад, у мові C такі функції, як gets(), strcmp(), strcpy(), scanf() та memcpy(), є особливо вразливими до атак переповнення буфера, оскільки вони можуть зачіпати пам’ять за межами змінних, до яких звертаються [18].
Вразливості переповнення буфера можна також зменшити за допомогою статичних або динамічних засобів. Динамічне тестування перевіряє наявність можливих вразливостей під час виконання коду, тоді як статичне тестування перевіряє код до його запуску. У випадку статичного коду для перевірки часто використовуються такі інструменти, як Fortify, Checkmarx та Splint [19]. Що стосується динамічних перевірок, вони працюють шляхом виявлення переповнення буфера до того, як воно станеться, тим самим запобігаючи атакам. Однак динамічні перевірки використовуються значно рідше, оскільки вони не можуть адаптуватися до всіх типів атак, можуть порушувати роботу існуючого коду та створюють значні накладні витрати (overhead). На противагу цьому, статичний аналіз коду також вимагає ресурсів, але оскільки перевірка відбувається до запуску коду, ці накладні витрати є відносно незначними. Завдяки останнім розробкам з’явилися більш просунуті динамічні перевірки, такі як CRED (C Range Error Detector). На відміну від звичайних динамічних перевірок, CRED не порушує роботу коду, оскільки використовує нове рішення, що підтримує маніпулювання програмою з адресами за межами допустимого діапазону [20].
2.3 Атака «людина посередині» (MITM)
Простими словами, атака «людина посередині» (Man-in-the-middle) — це ситуація, коли третя, неуповноважена сторона зловмисно прослуховує розмову між двома іншими користувачами [21]. Шкідливе програмне забезпечення під час MitM-атак також може змінювати вміст інформації, якою обмінюються користувачі. Зловмисники MitM також схильні видавати себе за інших осіб.
Одним із перших методів запобігання атакам «людина посередині» був стандарт бездротового шифрування Wired Equivalent Privacy (WEP). WEP працював шляхом шифрування даних, що передавалися радіохвилями, роблячи атаки марними, оскільки зловмисники не мали способу розшифрувати повідомлення. Слід зазначити, що WEP був вбудованою комп’ютерною системою, тому він був написаний мовами низького рівня, такими як Assembly (Асемблер). Однак системи, які були авторизовані WEP, мали доступ до спільної мережі, отримували статичний ключ і могли розшифровувати повідомлення. WEP шифрує свої ключі за допомогою 64-бітного або 128-бітного ключа в шістнадцятковому форматі [22]. Хоча WEP був сильним для свого часу, його ефективність значно впала зі зростанням обчислювальної потужності комп’ютерів, що полегшило експлуатацію вразливостей. Це зрештою призвело до виведення WEP з експлуатації у 2004 році.
На зміну WEP прийшов WPA (Wi-Fi Protected Access). Представлений у 2003 році як заміна WEP, він покращив початкову архітектуру. Він також був написаний мовою низького рівня, цього разу мовою C. Якщо WEP надавав ключі для шифрування та розшифрування, то WPA реалізував протокол, який динамічно змінював ключі, щоб унеможливити створення власних ключів зловмисниками. Якщо детальніше, ключі WPA були 256-бітними, що стало значним оновленням порівняно з WEP [22].
Однак сьогодні як WEP, так і WPA цілком можуть бути зламані. Онлайн-комунікація має структурні недоліки та експлойти, які дозволяють стороннім особам прослуховувати її зі шкідливими намірами. Прикладом таких інструментів є пакет під назвою wifimitm, який не лише використовує вразливості в таких системах, як WEP та WPA, але й дозволяє автоматизувати атаки [23]. wifimitm та інші MITM-системи досягають цього, маскуючись під мережевий шлюз, через який дані повинні пройти перед тим, як потрапити до місця призначення. wifimitm автоматизовано для виконання атак автономно за допомогою Python 3.5. Завдяки використанню Python 3.5 пакет wifimitm можна інтегрувати в інші програми на базі Python.
З іншого боку, інструменти для мінімізації наслідків атак також сумісні з Python. Наприклад, Mininet функціонує як мережевий пісочниця (sandbox), дозволяючи користувачам зрозуміти, як мережі працюватимуть у реальному світі. Це дозволяє проводити тестування на проникнення (пентести), даючи розробникам можливість розпізнавати потенційні недоліки [24].
2.4 Соціальна інженерія
Незважаючи на численні типи та способи реалізації, визначення соціальної інженерії з роками не змінилося. Соціальна інженерія означає акт зловмисного впливу на людей з метою змусити їх надати конфіденційну інформацію задля власної вигоди [25]. У сучасний час соціальна інженерія може набувати різних форм, наприклад, фішингових електронних листів. Щоб зменшити ризики таких атак, можна впровадити належні засоби захисту.
Мова програмування Python активно використовується у сфері кібербезпеки. Частково це пояснюється її простотою, але насамперед — доступом до інструментів і пакетів у безкоштовному відкритому репозиторії. Аналогічно, Java пропонує такі інструменти, як Vega — відкритий інструмент, що використовується переважно для тестування на міжсайтовий скриптинг (XSS) та тестування на проникнення [26]. Цей інструмент особливо актуальний для соціальної інженерії, оскільки фішингові посилання та електронні листи часто доставляються саме через міжсайтовий скриптинг.
Python також знайшов застосування в алгоритмах машинного навчання для боротьби з фішинговими атаками. За допомогою Python класифікаційний алгоритм машинного навчання можна навчити на шкідливих електронних листах та посиланнях для виявлення спроб фішингу. Цього можна досягти шляхом попередньої обробки текстових даних та застосування алгоритму класифікації. Бібліотеку Python SymSpellpy можна використовувати для перевірки потенційних орфографічних помилок, які були б відсутні на офіційних вебсайтах та в листах.
Цей алгоритм класифікації здатний перевіряти наявність шкідливих посилань і орфографічних помилок, а також визначати намір повідомлення, використовуючи заздалегідь створений чорний список слів. Зрештою, алгоритм дає остаточний висновок, оцінюючи загальну репутацію повідомлення на основі вищезазначених метрик [27].
Подібно до того, як автоматизація перевірки фішингу може приносити користь, вона може завдати і шкоди. Одна з найуспішніших фішингових атак має форму неофіційного вспливаючого вікна, яке закликає користувача оновити програму. Завантаживши нібито оновлену версію програми, користувач, на жаль, інфікує свій пристрій. Цікаво, що ці вспливаючі вікна найчастіше видають себе за оновлення Java. Хоча це не є прямою провиною мови програмування, загроза є достатньо великою, щоб привернути увагу. Проте мови програмування цілком можуть використовуватися для завдання реальної шкоди. За допомогою JavaScript вебсайт можна повторно відкрити та впровадити в нього шкідливий код. Якщо припустити, що користувач шукав щось для завантаження, скрипт спробує завантажити папку, яка ймовірно містить шуканий файл. Насправді ж папка міститиме шкідливе ПЗ [28].
З останніми досягненнями у сфері машинного навчання та великих мовних моделей (LLM) зросла кількість випадків цільового фішингу (spear phishing). Цільовий фішнінг означає персоналізовані методи соціальної інженерії. Завдяки своїй природі такі атаки можуть бути спрямовані навіть на одну конкретну особу. У минулому атаки цільового фішингу траплялися рідко, оскільки вони вимагали великих ресурсів. Однак розвиток LLM зробив цільовий фішнінг значно поширенішим. Агенти LLM дозволяють великим мовним моделям працювати автономно та приймати рішення самостійно. Агент LLM може виконувати такі дії, як завантаження та створення файлів, а також реагувати на зміни, спричинені власними діями. Цей унікальний набір інструментів може бути використаний для цільового фішингу, оскільки чат-боти на основі LLM тепер важко відрізнити від людей, і вони навчилися демонструвати авторитет та впливати на поведінку людей. Небезпека вже існує: GPT-3.5 та GPT-4 вже використовувалися для проведення атак цільового фішингу на британський парламент. Було виявлено, що атаки, керовані GPT, були настільки ж ефективними, як і атаки, проведені фахівцями з комунікацій, але при цьому вимагали менше ресурсів [29].
2.5 SQL-ін’єкція
SQL (Structured Query Language — мова структурованих запитів) є одним із найважливіших і фундаментальних інструментів у сучасній індустрії комп’ютерних наук. Загалом SQL можна охарактеризувати як мову, що використовується для маніпулювання даними в базах даних [30]. Враховуючи критичне значення SQL, неминуче з’являються способи зловмисного використання її слабких місць задля власної вигоди. Одним із найпоширеніших способів експлуатації SQL є SQL-ін’єкція.
SQL-ін’єкція означає процес впровадження шкідливого коду в SQL-запит з метою його модифікації. Такі зміни можуть дозволити зловмиснику витягти цінну інформацію та отримати доступ до бази даних [31]. Нападники можуть здійснювати ці атаки переважно трьома способами:
-
Атака маніпулювання SQL змінює команду SQL у додатку.
-
Атака ін’єкції коду додає шкідливі оператори до існуючого оператора SQL через використання багу.
-
Ін’єкція виклику функції застосовує функцію бази даних або операційної системи, перш за все для маніпулювання даними [32].
Основним способом протидії SQL-ін’єкціям є захисне програмування (defensive coding). SQLIV (SQL injection vulnerabilities — вразливості SQL-ін’єкцій) виникають через недостатню перевірку вхідних даних (input validation). Ці перевірки можуть мати форму простих валідаторів типів даних, які перевіряють числові або рядкові дані. Якщо надсилається непотрібний тип даних, алгоритм може його відхилити. За потреби перевірки можуть бути більш розширеними: певні алгоритми перевіряють наявність потенційно небезпечних символів та перетворюють їх на безпечні для читання вхідні дані [33].
Крім того, багатьом типам SQL-атак можна протидіяти за допомогою використання заздалегідь створених збережених процедур (stored procedures), щоб усунути потребу в динамічних запитах. Уникаючи динамічних запитів, ви запобігаєте SQL-ін’єкціям, оскільки впровадити додатковий код стає неможливо. Нарешті, під час використання динамічних запитів можна застосовувати техніку екранування SQL (SQL escaping). Вона полягає в заміні спеціальних символів на «екрановані символи» під час читання слів або даних користувача. Іншими словами, це призведе до того, що потенційні спроби SQL-ін’єкції зчитуватимуться як звичайні дані або рядок [32].
Окрім цього, інші мови програмування можуть використовуватися для посилення захисту SQL. Багато інструментів доступні для безкоштовного завантаження з метою боротьби з SQL-ін’єкціями. Наприклад, інструмент AMNESIA перебуває у вільному доступі та може запускатися на Java [34]. Java також використовується як мова вибору під час створення динамічних мережевих фільтрів, які виявляють SQL-ін’єкції [31].
3. Висновок
З постійним розвитком технологій вищезазначені методи атак та захисту від них продовжуватимуть вдосконалюватися. Знання про те, як мови програмування можуть потенційно використовуватися для завдання шкоди або для захисту, ставатимуть все більш необхідними в міру прогресу технологій.
Цей огляд надав загальне уявлення про поточний стан кібербезпеки, описавши вплив мов програмування на різні типи загроз безпеці як з точки зору мінімізації наслідків, так і з точки зору захисту. Як було показано, спостерігається закономірність, за якої атаки та засоби захисту еволюціонують з перебігом часу. Незважаючи на зміну багатьох поколінь мов програмування, обачність щодо атак та вміння захищатися завжди залишатимуться першочерговим пріоритетом.
Для подальшого розвитку можна провести дослідження більшої кількості кібератак, розширивши 5 типів, згаданих у цій статті. Майбутні дослідження також можуть зосередитися на окремих мовах програмування, а не на кібератаках, детально вивчаючи кожну мову та інструменти, які вона надає.
Список літератури
[1] Mirkovic, Jelena, and Peter Reiher. “A taxonomy of DDoS attack and DDoS defense mechanisms.” ACM SIGCOMM Computer Communication Review 34.2 (2004): 39-53.
[2] Falowo, Olufunsho I., et al. “Evolving malware and DDoS attacks: Decadal longitudinal study.” IEEE Access 12 (2024): 39221-39237.
[3] O. I. Falowo, I. Okpala, E. Kojo, S. Azumah, and C. Li, ‘‘Exploration of various machine learning techniques for identifying and mitigating DDoS attacks,’’ in Proc. 20th Annu. Int. Conf. Privacy, Secur. Trust (PST), Aug. 2023, pp. 1–7.
[4] M. Darwish, A. Ouda, and L. F. Capretz, ‘‘Cloud-based DDoS attacks and defenses,’’ in Proc. Int. Conf. Inf. Soc., Jun. 2013, pp. 67–71.
[5] T. Vissers, T. S. Somasundaram, L. Pieters, K. Govindarajan, and P. Hellinckx,‘‘DDoS defense system for web services in a cloud environment,’’ Future Gener. Comput. Syst., vol. 37, pp. 37–45, Jul. 2014
[6] Musumeci, Francesco, et al. “Machine-learning-assisted DDoS attack detection with P4 language.” ICC 2020-2020 IEEE International Conference on Communications (ICC). IEEE, 2020.
[7] De Donno, Michele, et al. “Analysis of DDoS-capable IoT malwares.” 2017 Federated Conference on Computer Science and Information Systems (FedCSIS). IEEE, 2017.
[8] Foster, Nate, et al. “Frenetic: A network programming language.” ACM Sigplan Notices 46.9 (2011): 279-291.
[9] Nasr, Mona. “Self-protected mobile agent paradigm for DDoS threats using block chain technology.” International Journal of Advanced Networking and Applications 10.6 (2019): 4070-4075.
[10] Long, Neil, and Rob Thomas. “Trends in denial of service attack technology.” CERT Coordination Center 648.651 (2001): 569.
[11] Behal, Sunny, and Krishan Kumar. “Characterization and Comparison of DDoS Attack Tools and Traffic Generators: A Review.” Int. J. Netw. Secur. 19.3 (2017): 383-393.
[12] DeterLab, SEER: The Security Experimentation Environment, 2012. (http://seer.deterlab.net/trac)
[13] A. Avallone, A. Pescape and G. Ventre, “Distributed Internet Traffic Generator (D-ITG): Analysis and experimentation over heterogeneous networks,” in International Conference on Network Protocols, Atlanta, Georgia, 2003.
[14] Pylot, Pylot — Web Performance Tool, 2007. (http://www.pylot.org/)
[15] Ostinato, Network Traffic Generator and Analyzer, 2010. (http://ostinato.org/)
[16] One, Aleph. “Smashing the stack for fun and profit (1996).” See http://www.phrack.org/show.php (2007).
[17] Ogorkiewicz, Maciej, and Piotr Frej. “Analysis of buffer overflow attacks.” Διαθέσιμο στηνηλεκτρονική έκδοση: http://www. windowsecuritv. com/articles/Analvsis of Buffer Overflow Attacks.htm l [Πρόσβαση 7 Αυγούστου 2011] (2002).
[18] Butt, Muhammad Arif, et al. “An in-depth survey of bypassing buffer overflow mitigation techniques.” Applied Sciences 12.13 (2022): 6702.
[19] Ye, Tao, et al. “An empirical study on detecting and fixing buffer overflow bugs.” 2016 IEEE International Conference on Software Testing, Verification and Validation (ICST). IEEE, 2016.
[20] Ruwase, Olatunji, and Monica S. Lam. “A practical dynamic buffer overflow detector.” NDSS. Vol. 2004. 2004.
[21] Mallik, Avijit. “Man-in-the-middle-attack: Understanding in simple words.” International journal of data and network science (2019).
[22] Loshin, Peter. “Wired Equivalent Privacy (WEP).” Cybersecurity, TechTarget, 27 Aug. 2021, https://www.techtarget.com/cybersecurity/definition/Wired-Equivalent-Privacy-WEP. Accessed 29 Aug. 2026.
[23] Vondráček, Martin, Jan Pluskal, and Ondřej Ryšavý. “Automated Man-in-the-Middle Attack Against Wi‑Fi Networks.” Journal of Digital Forensics, Security and Law 13.1 (2018): 9.
[24] Christensson, Eskil. “Man in the middle attacks on software defined network.” (2023).
[25] Mouton, Francois, Louise Leenen, and Hein S. Venter. “Social engineering attack examples, templates and scenarios.” Computers & Security 59 (2016): 186-209.
[26] Walia, Rubika, et al. “Digital Fingerprint and Security Aspects in Internet of Things Against Social Engineering Using Advanced Digital Forensics.” Test Engineering and Management 83.3 (2020): 4914-20.
[27] Lansley, Merton, et al. “SEADer++: social engineering attack detection in online environments using machine learning.” Journal of Information and Telecommunication 4.3 (2020): 346-362.
[28] Nelms, Terry, et al. “Towards measuring and mitigating social engineering software download attacks.” 25th USENIX Security Symposium (USENIX Security 16). 2016.
[29] Malloy, Tailia, and Bissyande F. Tegawende. “Assessing Spear-Phishing Website Generation in Large Language Model Coding Agents.” International Conference on Human-Computer Interaction. Cham: Springer Nature Switzerland, 2026.
[30] Groff, James R., Paul N. Weinberg, and Andrew J. Oppel. SQL: the complete reference. Vol. 2. McGraw-Hill/Osborne, 2002.
[31] Pattewar, Tareek, et al. “Detection of SQL injection using machine learning: a survey.” Int. Res. J. Eng. Technol. (IRJET) 6.11 (2019): 239-246.
[32] Pan, Xueying, et al. “Analysis of database security.” Open Access Library J 11.4 (2024): 1-19.
[33] Halfond, William GJ, Jeremy Viegas, and Alessandro Orso. “A Classification of SQL Injection Attacks and Countermeasures.” ISSSE. 2006.
[34] Shar, Lwin Khin, and Hee Beng Kuan Tan. “Defeating SQL injection.” Computer 46.3 (2012): 69-77.
