УДК 004.056.2
СКАНЕР ВЕБ-УЯЗВИМОСТЕЙ «TECHNOSCAN»
ПУЛКО ТАТЬЯНА АЛЕКСАНДРОВНА
к.т.н., доцент кафедры защиты информации БГУИР, Минск, Беларусь
ДРЖЕВЕЦКИЙ НИКИТА АЛЕКСАНДРОВИЧ
учащийся Национального детского технопарка, Минск, Беларусь
РОМЕЙКО МИХАИЛ ЮРЬЕВИЧ
учащийся Национального детского технопарка, Минск, Беларусь
Аннотация. Рассмотрены вопросы, связанные с уязвимостями и угрозами веб-приложений и средствами их обнаружения. Актуальность данной темы обосновывается не только широким распространением веб-приложений, но и возрастающим числом кибератак и инцидентов по утечке данных, которые представляют серьезную угрозу для конфиденциальности и целостности информации. С развитием средств автоматизации проектирования и разработки программного обеспечения все меньше внимания уделяется вопросам безопасности и качества программного кода разрабатываемого программного обеспечения. Уязвимости веб-сайтов являются слабыми местами, которые могут быть использованы злоумышленниками для несанкционированного доступа, изменения данных или нарушения нормальной работы сайта. Приведена демонстрация функциональности разработанного сканера уязвимостей «TechnoScan» с графическим интерфейсом на языке программирования Python, а также выполнен сравнительный анализ результатов сканирования с двумя другими аналогичными инструментами, такими как OWASP ZAP и W9scan.
Ключевые слова: веб-приложения, веб-уязвимости, сканеры уязвимостей, кибератаки, SQL-инъекции, межсайтовый скриптинг, язык программирования Python.
Уязвимости веб-сайтов являются слабыми местами, которые могут быть использованы злоумышленниками для несанкционированного доступа, изменения данных или нарушения нормальной работы сайта. Автоматизированные средства проектирования и разработки программного обеспечения привели к тому, что безопасности и качеству программного кода в настоящее время уделяется меньше внимания. В результате чего подавляющее большинство веб-сайтов содержит уязвимости различной степени критичности, определить которые поможет проведение пентеста.
Различные виды уязвимостей, такие как инъекции, проблемы с аутентификацией и авторизацией, уязвимости сессий, XSS-атаки, уязвимости контроля доступа, небезопасные прямые ссылки на объекты и CSRF, могут быть использованы злоумышленниками для несанкционированного доступа к данным и системам пользователей [1]. Например, SQL-инъекция или SQLi - уязвимость, которая позволяет атакующему использовать фрагмент вредоносного кода на языке структурированных запросов (SQL) для манипулирования базой данных (далее СУБД) и получения доступа к потенциально ценной информации. Атаки на основе таких уязвимостей - одни из самых распространенных и опасных: они могут быть нацелены на любое веб-приложение или веб-сайт, которые взаимодействуют с базой данных SQL (а подавляющее большинство баз данных реализованы именно на SQL). Межсайтовый скриптинг (XSS) представляет собой уязвимость, которая заключается во внедрении злоумышленником своего Javascript кода в веб-страницу, которая отображается в браузере пользователя. После такого внедрения злоумышленник фактически захватывает веб-страницу и может манипулировать данными пользователя, когда он находится на странице. В случае успеха злоумышленник может внедрять скрипты в веб-страницу, отправлять на свой сервер
ОФ "Международный научно-исследовательский центр "Endless Light in Science"
пользовательские данные, совершать различные действия от имени пользователя. В настоящее время уже существует огромное количество возможных уязвимостей и способов их использования злоумышленниками и одним из самых достоверных источников об обнаруживаемых уязвимостях веб-сайтов и связанных с ними угрозах информационной безопасности, на который ссылаются различные эксперты в области информационной безопасности веб-сайтов, является проект Open Web Application Security Project (OWASP). OWASP тор 10 - это стандартный информационный документ для разработчиков и безопасности веб-приложений, представляющий собой широкий консенсус в отношении наиболее критичных рисков безопасности для веб-приложений. На рисунке 1 представлен топ-10 рисков безопасности веб-приложений на 2021 год (обновляется один раз в четыре года) по сравнению с 2017 годом, где представлены три новые категории рисков, четыре категории с изменениями в названиях и сфере охвата, а также некоторое объединение [2].
2017
A01:2017-lnjection A02:2017-Broken Authentication A03:2017-Sensitive Data Exposure A04:2017-XML External Entities (XXE) A05:2017-Broken Access Control A06:2017-Security Misconfiguration A07:2017-Cross-Site Scripting (XSS) A08:2017-lnsecure Deserialization A09:2017-Using Components with Known Vulnerabilities A10:2017-lnsufficient Logging & Monitoring
Рисунок 1 - OWASP топ
2021
A01:2021-Broken Access Control A02:2021-Cryptographic Failures A03:2021-lnjection (New) A04:2021-lnsecure Design
> A05:2021-Security Misconfiguration "Vjy A06:2021-Vulnerable and Outdated Components
A07:2021-ldentification and Authentication Failures A08:2021-Softwareand Data Integrity Failures A09:2021-Security Logging and Monitoring Failures* (New) A10:2021-Server-Side Request Forgery (SSRF)* • From the Survey
10 рисков безопасности веб-приложений [2]
Среди уязвимостей, не входящих в OWASP Top 10 - 2021, наибольшее распространение получила уязвимость неконтролируемого использования вычислительных ресурсов (CWE-400), позволяющая злоумышленникам проводить DoS-атаки на приложение (рисунок 2). В процессе анализа одного из приложений специалистам удалось эксплуатировать такую уязвимость, отправляя запросы на формирование большого количества объемных отчетов в формате PDF. Это, в свою очередь, вызвало увеличение количества потребляемых ресурсов и задержки в доступе к приложению.
Вторую позицию занимает уязвимость некорректной проверки наличия нестандартных условий (CWE-754), когда веб-приложение принимает параметры, значения которых не являются для него стандартными. В одном из исследованных приложений эта уязвимость привела к продлению пробного периода пользования. Для этого был сформирован запрос к сценарию активации пробного периода с измененным тарифом — подобные действия позволили продлить бесплатный период еще на один месяц. Эта же уязвимость могла быть использована для массовой рассылки электронных писем с вредоносным вложением от имени службы поддержки приложения: в шаблоне HTTP-запроса значение поля полезной нагрузки было заменено на файл с расширением .pdf и были указаны адреса электронной почты.
Уязвимость раскрытия конфиденциальной информации в отладочном коде приложения (CWE-215) вошла в тройку наиболее часто встречающихся уязвимостей не из списка OWASP Top 10. Раскрытие информации в отладочном коде может предоставить злоумышленнику больше сведений о системе, которые могут быть использованы для подбора методов и инструментария планируемых атак [3].
Неконтролируемо* исполыомние ресурсе* (CWE-
400)
Некорректная проаерса наличия нестандартных услоаий или исключен*« 4CWE-754)
включение важной информаиии * код отладки
(CWE-215)
Состояние гонки, свямнизе с оператором выбора
Использование обратного рирешения 0№ для принятия решении, смиммык с бе «опасностью
<С*«-350)
Некорректное обращение с ресурсом иа протяжении его иилненмот о цикла (0№С-664)
Действующий код отладки (С\№£ - 4 Й9)
Лет« решаемая задача САРТСНА <СМ/Е-вС4)
0« 5* 10« 15*. 20« ?5« 10». 35« 40«
Рисунок 2 - OWASP топ 10 рисков безопасности веб-приложений [3]
Предотвращение уязвимостей является важной задачей для организаций, которые стремятся обеспечить безопасность своих веб-приложений. Для достижения надежной защиты от уязвимостей, организации должны сотрудничать с опытными специалистами по информационной безопасности и применять современные инструменты для обнаружения и решения уязвимостей. Только через систематический анализ и устранение уязвимостей веб -сайтов можно обеспечить безопасность данных и сохранить доверие пользователей к функциональности и защите их персональной информации.
Сканеры уязвимостей представляют собой инструменты, которые используются для выявления уязвимостей в сетевых системах, приложениях и устройствах. Они являются важной частью процесса обеспечения безопасности информационных систем. Такие сканеры работают путем сканирования (анализа) сетей, портов и других элементов с целью обнаружить потенциальные уязвимости, которые могут быть использованы злоумышленниками для несанкционированного доступа, атак или других видов злоупотребления.
Общий пример работы сканера уязвимостей включает следующие шаги (рисунок 3):
1. Пользователь определяет систему или сеть, которую необходимо проверить на наличие уязвимостей.
2. Сканер активно исследует целевую систему, собирая информацию о ее компонентах, открытых портах, сервисах и других характеристиках.
3. На основе собранной информации сканер проводит тщательное сканирование на предмет известных уязвимостей, используя базу данных уязвимостей и паттернов.
4. После завершения сканирования сканер анализирует результаты и генерирует отчет, который содержит информацию о выявленных уязвимостях и, возможно, рекомендации по их устранению.
5. Администратор или ответственное лицо принимает необходимые меры для исправления обнаруженных уязвимостей и повышения уровня безопасности системы.
National Vulnerability Database (NVD)
Рисунок 3 - Системная схема сканера уязвимостей [4]
На рынке существует множество сканеров уязвимостей, как коммерческих, так и свободно распространяемых. Примерами наиболее известных зарубежных сканеров могут являться: Nessus (один из наиболее популярных и мощных сканеров с богатым функционалом и обширной базой данных уязвимостей); OpenVAS. (бесплатный и открытый сканер уязвимостей, который является альтернативой Nessus); Acunetix (коммерческий сканер уязвимостей, сфокусированный на обнаружении уязвимостей в веб-приложениях и сетях); Qualys (облачный сервис для сканирования уязвимостей и анализа безопасности сетей). Среди наиболее известных российских сканеров уязвимостей можно выделить: XSpider, ScanOVAL; RedCheck, таблица сравнения которых представлена ниже. У каждого из трех инструментов имеются свои преимущества. ScanOVAL - бесплатный и простой базовый вариант. XSpider — максимально гибкий инструмент со складывавшейся десятилетиями репутацией. RedCheck имеет специальные опции для интеграции с Docker и Cubernetes, что дает дополнительные плюсы при использовании этого сканера в сфере логистики [5].
Исходя из проведенного анализа актуальных веб-уязвимостей и доступных инструментов для их выявления в сетевых системах, был разработан сканер уязвимостей вебсайтов "TechnoScan", который использует такие инструменты как Nmap, SQLmap и XSStrike. Для решения поставленных задач использовался язык программирования Python.
Отличиями разработанного приложения является простой и интуитивно понятный интерфейс, объединение трех различных инструментов для проведения сканирования, а также полная автоматизация данного процесса (рисунок 4). Тем самым использование сканера "TechnoScan" представляется удобным даже для тех, кто не является экспертом в области информационной безопасности. Также благодаря использованию инструментов Nmap, SQLmap и XSStrike приложение имеет обширный охват уязвимостей различных типов.
Для работы и использования сканера требуется запустить "TechnoScan.exe" из его исходной директории, после чего откроется окно с меню загрузки на нем. Для проверки сайта на уязвимости требуется ввести его адрес, нажать кнопку "Подтвердить", выбрать инструменты для сканирования и нажать кнопку "Сканировать".
( XSStnka
Садкрях! XSS ywwwocie*
■ Nxmp
Слытрслште oOuiewwciwi jwewMcrrt при пмюыи 6e> даниь»х
Свв»Лв«
Onpwwiww
Рисунок 4 - Меню ввода, выбор цели и инструментов сканера «TechnoScan»
После окончания сканирования откроется вкладка "Результат", в которой будут показаны все обнаруженные уязвимости, а также дополнительная информация. Весь результат будет сохранен в log-файл формата .txt в папке "logs". Для повторного выбора цели и инструментов потребуется нажать кнопку "Следующее сканирование" (рисунок 5).
TechnoScan
Pesyjtorsr cumpmnw lestptc v\4n#eto com
HoMepa nopro«, «u cratycM cnf*Cmt« mtpcmi «xmrncmewo fttt^p open Nip ftgtfoc 1 19 0 I I CGujrm*Bf*tr>+* ynMWMocm *e m*O0** HOCwtewnionpiiiwnn
-----SQLmap----
W HatoMNM SQL ywe#wwe rupaue-jx. From ffw» UftL hitp '.Seslpfip vufrwveb com^eertrt php^M!? query Pwmmctor \emzrfot iPOST) Type tene-bMCd bind
fit« MySQL >«50 »2 AND t*rw-e**od t*ad ique/y SLEEP)
Pe>to*d ♦eeKftFoMtoPA' AND «SELECT 5S24 FROM (SELECT(SLEEPf5l!*»WX» AND Wo^V*otgo6unon-oo MOCuCySAuMt
the beet-end 0©M5 « MySQL
•eb »erver operating *y»lem Unmltorfe
•eb appteacor lechnotogy Ngeric 1 t9.0 PMP5S40
back-end OEMS MySQL >» 5 0 12
Bawu««M XSS ynwyocTw n«p«Merp "«eercAFcy" hi etatnM M)p /.tritfp vMramb eoPV%e»»cft nnp^teWMjuefy .....<XtH»i
!•) HmtatXSS ywrnn» nepeweipw IMKlf«
i S [Xipowerpw to XSS yioe»«#ocrB»<
О приложен** U^iu обнаружена XSS уммимпь
Рисунок 5 - Результат сканирования уязвимостей веб-сайта приложением
«TechnoScan»
Для оценки работоспособности и эффективности сканера "TechnoScan" проводился сравнительный анализ эффективности разработанного приложения посредством сканирования трех открытых для тестирования веб-сайтов: testphp.vulnweb.com, rest.vulnweb.com и altoromutual.com, с результатами сканирования двух других сканеров уязвимостей, таких как OWASP ZAP и W9scan.
Первым веб-сайтом для сканирования являлся testphp.vulnweb.com. При сканировании данной цели сканером уязвимостей "TechnoScan" были обнаружены XSS и SQL уязвимости.
ОФ "Международный научно-исследовательский центр "Endless Light in Science"
При сканировании сканером OWASP ZAP также были обнаружены XSS и SQL уязвимости. Сканер W9scan нашел 3 уязвимости и 12 угроз. Второй целью для сканирования являлся веб -сайт rest.vulnweb.com. Благодаря инструменту Nmap, приложение "TechnoScan" нашел множество уязвимостей из списка CVE, CNVD и т.п. (рисунок 6), тогда как при сканировании сканером OWASP ZAP никаких серьезных уязвимостей не было найдено (рисунок 7) [6]. Сканер W9scan также никаких уязвимостей и угроз не выявил.
ш
Воод Симиромим* Результат
TechnoScan
Pejyn»raie
• i«lv\«iimbco(n
|*| Heutpa nofnoa iu статусы. слрявм " мремм соотяатстаото КИср «ял «ер Apaeha hltpd 2 4 35 uOaoen]) ЮКЛсщчмп м» Лмсм »и 24 »издай» |*{Псрт»ш -^на*"» * у»>а«*«хг» npw гтамоцубц ддшя Порт 80 Уюомыости
сое « шрлсЫ 2 4 23.
CVE-20I9-9317 М N*»jn»imi««veCVE-20lM41T
РАСКЕТЗТОЯМ 171СЦ1 7 3 Мр» comt»»*<Uomvi>ACKEISTOftU 171631 -ЕХЯ.01Т-
ED6J054S3 7 5 м«яЛММП <С»г>«Ч«КИй1Св« 51193 -EXPIOIT-
CVE-2023-236W 7 5«*» н*Мг cmcCVE 202>256»C
CVE-2022 Jt«1 J731ЯИ"»*»»«mi»»CVt-2432 5ЧЧ
CVE-2022-2J94S 7 3 1Л»««« <«-vc»»CVii»2 23»«
CVE 2022-227» 7 3 Mlp> 4<inen ccmtwCVf-2в22-22720
CVE 2021 -«4 790 7 3 МЧ» (Milan COWCV»CVS-2021-44790
CVE-202t-3e2737 3 МП» <Лл4мп contWCVE-2021-3a27S
CVE-2021 26691 75M«» WncimtwCVE»21 26681
CVE 2017 767» 7 J Mlpi .'Man eoWcyeCVEMI 7-7679
CVE-20'7-31697 5мцг» ¡omCvwCVE Г017-31«»
CVE-2017-3W7 7 5 Nipt. «Ли» «»I«v»CVE-2017 3167
CNVD-2022-71123 7 3 чаи .«**rt com-trwSCWD-2022 73123
CKVD-2022-03225 7 3 4S>t',V>Jr«™com>tmeCNVI> 2022-03223
СН\Ю-2в21-1023в6 7 3 WW viMs.comWveCWD-2021 M23S6
3C1BB960-90C1-3ESF 9BEf r36BFfOFEED9 7 5
Ив» ivam tome»ub«lo«'5CieeMO«lC1-3Eef-9eEf-F56ai:FOrEE09 •ЕХИ.ОГГ
Рисунок 6 - Результат сканирования rest.vulnweb.com сканером «TechnoScan»
Output
Лег« I8I
па
п.-
шшшшшш
SB
fb №103 £nu-tilchi«cttr9 Header 3) fv Setv«r L*afcs игогттшиог via ,.. s«iv«r LMfca '.'»'inn Ыотяшг via "Server r^X-Gcrient-Type-GpCkms Hetdar Hwhq 1« Information Оы1а«*е - Suwc<c*l« Conmenl ^ f^dsrn Л« *epfc«run MUter МеЧ Гиле» (481
rtu Vector
D»iunmi«i
Content Securty Pcicy ICSP) « an added lay« of je-curty tiat r-elpi to detect and rr*lgate certar types of attacki rchKlng Cross Sie (XSS) ard data ryecTlon attacks The»e attacks are used tcc everytttng fem data theft to »lie
defacerrert or dsirturjon o( meiware. CSP proudes a set of standard HTTP headers that alow v»e&s*e owners to declare
От
f Wo
» t M*n Pro я у <u:et*rtf 8060
сипят
>•0
Рисунок 7 - Результат сканирования rest.vulnweb.com сканером OWASP ZAP
Третьим и последним веб-сайтом для сканирования являлся altoromutual.com. Сканер «TechnoScan» нашел 2 уязвимости из CVE и 2 XSS уязвимости. Сканирование при использовании сканера OWASP ZAP показывает, что были найдены XSS и SQL уязвимости. В результате сканирования инструмента W9scan было выявлено 2 угрозы в виде XSS уязвимостей. Все результаты сравнительного анализа эффективности функционирования разработанного сканера уязвимостей представлены в таблице 1.
Таблица 1 - Сравнительный анализ сканирования веб-уязвимостей приложением "TechnoScan"
Используемые сканеры уязвимостей Цели и найденные в них уязвимости
testphp.vulnweb.com rest.vulnweb.com altoromutual.com
«TechnoScan» SQLi, XSS уязвимости из CVE, CNVB и т.п. XSS, уязвимости из CVE
OWASP ZAP SQLi, XSS не было найдено SQLi, XSS
W9scan SQLi, XSS не было найдено XSS
После проведенного сравнительного анализа результатов сканирования сканера «TechnoScan» с результатами известных сканеров OWASP ZAP и W9scan, следует отметить, что «TechnoScan» продемонстрировал конкурентоспособное и сравнительно высокое качество сканирования. Таким образом его можно считать полноценным и эффективным инструментом для нахождения веб-уязвимостей.
ЛИТЕРАТУРА
1. Сирсен, Р., Хаббард, Д.У. Как оценить риски в кибербезопасности. Лучшие инструменты и практики / Ричард Сирсен, Дуглас У. Хаббард. - М. : «Бомбора», 2023 - 464 с.
2. Top 10 Web Application Security Risks [Электронный ресурс]. - Режим доступа: https://owasp.org/www-project-top-ten/ Дата доступа 21.09.2023.
3. Уязвимости и угрозы веб-приложений в 2020-2021 гг. [Электронный ресурс]. - Режим доступа: https://www.ptsecurity.com/ru-ru/research/analytics/web-vulnerabilities-2020-2021/ -19.08.2023.
4. Vulnerability Scanner System Diagram [Электронный ресурс]. - Режим доступа: https://www.researchgate.net/figure/Vulnerability-Scanner-System-Diagram_fig1_329958789/ -25.07.2023.
5. Пулко Т.А., Држевецкий Н.А., Ромейко М.Ю. Обнаружение уязвимостей веб-сайтов // Fundamental science and technology - promising developments XXXII: Proceedings of the Conference. Bengaluru, India, 21-22.08.2023, Bengaluru, Karnataka, India: Pothi.com, 2023 p. 207, 137-141 p.
6. CVEdetails База данных уязвимостей CVE [Электронный ресурс]. - Режим доступа: https://www.cvedetails.com/ Дата доступа 01.08.2023.