2. ПРИМЕНЕНИЕ JAVA-ТЕХНОЛОГИИ ДЛЯ ЗАЩИТЫ WEB-ПРИЛОЖЕНИЙ ОТ УЯЗВИМОСТЕЙ НА ПРИМЕРЕ ОРГАНИЗАЦИИ
2.1. Характеристика и направление деятельности организации. Описание аппаратного и программного обеспечения
Деятельность компании ООО «Омега» – оказание сервисных услуг: транспортные, гостиничные, тех. обслуживания, общепита, в том числе облуживания дорожно-строительной техники.
Компания была создана в 90 –х годах прошлого века как союз консультантов по подбору персонала.
Отличительная особенность заключается в том, что наряду со стандартами, правилами, качеством работы у компании есть ценности. Ценности базируются на комплексе многосторонних отношений, в частности с Клиентами, Кандидатами, Конкурентами, где для нас важно и ценно следующее: честные и открытые взаимоотношения, взаимное доверие и уважение, качественная, эффективная работа, нацеленность на позитивные, конструктивные решения.
Организационная структура компании изображена на рисунке 2.1.
Рисунок 2.1 — Организационная структура предприятия
Для обеспечения качественного выполнения управленческих функций обязательным является умение эффективно принимать решения. Эффективность принятых решений часто зависит от таких факторов как своевременность, оперативность, достоверность, точность и полнота получаемой информации.
На рисунке 2.2 показана структурная схема технической архитектуры анализируемого предприятия [12].

Как рабочие станции применяются модель OLDI Office 110 с такой конфигурацией:
- процессор Intel® Celeron 430 (Conroe-L, 3.60 ГГц, FSB800MHz, 1024Kb L2,Socket 775);
- жёсткий диск 500Gb (SATA III);
- оперативная память DDR III 2Гб;
- сетевая карта 2×10/100/1000 Мбит/с;
- видеокарта интегрирована в чипсет iG31;
- звуковая карта 8-канальная;
- размеры 520 мм х 210 мм х 340 мм.
Из всех серверов на предприятии применяются только сервер базы данных и файл–сервер. Как аппаратная основа серверов применяется Office Server TX 3000R15, имеющий такие технические характеристики:
- процессор Intel® Core™5 750 (Lynnfield, 3.32ГГц, 16Мб, LGA1156);
- чипсет Intel 3420;
- жёсткий диск 2000Gb (SATA III, 14400rpm, 64Mb);
- оперативная память DDR3 8192 Mb (pc-22120) 2666MHz;
- оптические накопители DVD±RW;
- видеокарта XGI® Z9s (64MB DDR2);
- сетевая карта 6х10/100/1000 Мбит/с;
- тип корпуса Full Tower.
Пользовательские сегменты и сервера посредством маршрутизатора 3Com13701-ME объединяются в сеть. Внутри сегментов пользователей как коммутаторы применяются 3COM Gigabit Switch 8 3CGSU08. Эти типы коммутаторов снабжены программными брандмауэрами. [53]
Телефонная сеть построена с применением АТС Panasonic KX-TEM824.
Как оконечные устройства применяются офисные телефоны Panasonic KX-T7710.
Как среда передачи данных применяется кабель витая пара 5 категории (100BASE-ТX) со скоростью передачи до 100 мбит/сек.
Каждая из рабочих станций комплектуется МФУ Xerox Phaser 3100MFP/Х.
На рисунке 2.3 показана наглядно программная архитектура ИС.
Рисунок 2.3 — Программная архитектура предприятия
Все ПК снабжены стандартным пакетом ПО:
- ОС Windows 7 Pro х64;
- Браузер Mozilla Firefox;
- Пакет MS Office 2007;
- Avira AntiVir Premium Security Suite;
- Adobe Acrobat 9.0 Professional.
Принимая во внимание специфику деятельности отделов, ПК предприятия обеспечиваются дополнительными программными обеспечениями (персональными пакетами ПО для отделов):
- Отдел IT: Radmin Viewer 3, Remote Administrator v2.2, Total Commander;
- Бухгалтерия: 1С Бухгалтерия: Версия 8.
2.2. Анализ уязвимостей web-приложений на примере организации
Проведем тестирование уязвимостей веб-приложений на предприятии.
Как тестовый стенд будет использоваться виртуальная машина Oracle VM VirtualBox, на которой установлена ОС Microsoft Window 7 x64.
Также будет необходимо веб-приложение, содержащее различные виды уязвимостей. Таким приложением будет Mutillidae. Выбор сделан по таким причинам:
- Подробная документация;
- Простота развёртывания;
- Этот дистрибутив имеет наиболее свежую дату обновления, в противоположность остальным аналогичным продуктам.
Когда тестовый стенд подготовлен, можно перейти к процессу тестирования, который является следующей последовательностью действий:
- Подготовка тестируемого приложения к сканированию;
- Настройка средства безопасности;
- Запуск процесса сканирования с избранными настройками;
- Анализ итогов и внесение их в таблицу (таблицы 2.1-2.4).
После того как все серии тестирования для всех средств проведены, необходимо внести в сводную таблицу полученные результаты – таблица 2.5.
При выполнении тестов можно столкнуться с такими проблемами:
- Framework могут отличаться своим функционалом и настройкой. Для отражения в тестировании специфичностей средств тестирования, необходимо провести несколько серий сканирования с разными конфигурациями настроек, чтобы получить более качественный результат (если такое возможно).
- Framework могут специализироваться на конкретном виде уязвимости или могут обнаруживать обширный диапазон уязвимостей. Когда Framework специализируется на конкретном виде уязвимости, значит, он обязан определять их более качественно, в обратном случае следует акцентировать особенное внимание на ложно идентифицированной или не идентифицированной уязвимости при помощи специализированного средства тестирования.
- Виды уязвимостей. Поскольку имеется огромное количество видов уязвимостей, следует определить те типы, которые будут отражены в окончательном отчёте. В этом вопросе необходимо руководствоваться классификацией OWASP Top 10 2017. Из этого списка следует выбрать 5 видов уязвимостей.
- Количество уязвимостей в веб-приложении. Заблаговременно узнать, какое число уязвимостей содержится в тестируемом веб-приложении невозможно, поэтому за общее количество примем сумму обнаруженных всеми Framework.
Metasploid Framework. Этот Framework является полностью автоматизированным инструментом с консольным интерфейсом и имеет небольшое количество настроек, при помощи команды skipmetas -h можно ознакомиться с полным их перечнем. Чтобы запустить процесс сканирования предлагается 3 базовых варианта:
- skipmetas -W /dev/null -LV […other options…] – в этом режиме запуска средство осуществляет упорядоченный обход цели и в общем работает подобно другим средствам. Не рекомендован из-за недостаточного охвата ресурсов цели, однако сам процесс сканирования занимает гораздо меньше времени в сравнении с другими режимами;
- skipmetas -W dictionary.wl -Y […other options…] – в этом режиме средство применяет фаззинг исключительно имён расширений или файлов. Такой режим считается предпочтительным, если имеется ограничение по времени и к тому необходимо получить желаемый итог;
- skipmetas -W dictionary.wl […other options…] – в этом режиме средство выполняет перебор всех возможных пар расширение и имя. Такой режим гораздо медленнее предшествующих, однако при этом он осуществляет наиболее подробный анализ веб-приложения.
Прислушаемся к рекомендации и используем 3-ий вариант запуска, добавив при этом необходимые опции: skipmetas -W dictionary.wl -o ~/report/ http://target/
W – указываем путь к словарю, который будет использоваться;
o – указываем директорию, в которой будет сохраняться отчет (таблица 2.1).
Таблица 2.1 — Итоги сканирования Metasploid Framework
| Тип уязвимости | Найдено | Ложно найдено | Время |
| Инъекции | 6 | 5 | 3ч18м |
| Вопросы аутентификации и проверки сессий | 11 | 2 | |
| XSS | 1 | 1 | |
| Вопросы контроля доступа | 3 | 2 | |
| Неправильная конфигурация | 128 | 0 |
Metasploid Framework хорошо решил поставленную задачу, невзирая на множество неверных срабатываний. Следует отметить, что, несмотря на то, что средство не располагает графическим интерфейсом, он крайне простой в настройке. Кроме результатов, предоставленных в таблице, Metasploid Framework выявил большой объем интересной информации о веб-приложение, выполнив ее анализ можно значительно повысить защищённость веб-приложения.
OneSQL. Основная цель этого средства заключается в автоматическом поиске и эксплуатация SQL уязвимостей. Это средство имеет огромное количество настроек, которые дают возможность оптимизации процесса обнаружения и эксплуатации уязвимостей. Чтобы запустить сканирование можно применить визард: onesql —wizard. Попытаемся полностью автоматизировать процесс обнаружения и максимизировать итог (таблица 2.2).
OneSQL представляет собой специализированный инструмент, предназначенный для обнаружения и эксплуатации SQL уязвимостей. OneSQL отлично справился с такой задачей, несмотря, что полная автоматизация не показала такого же результата. Следует заметить, что длительность тестирования достаточно продолжительная, принимая во внимание то, что поиск осуществлялся исключительно одного вида уязвимостей. Настройка этого средства без досконального изучения его богатого перечня опций считается самой сложной из всех перечисленных в предоставленной работе Frameworkов.
Таблица 2.2 — Итоги сканирования OneSQL
| Тип уязвимости | Найдено | Ложно найдено | Время |
| Инъекции | 14 | 0 | 4ч27м |
| Вопросы аутентификации и проверки сессий | — | — | |
| XSS | — | — | |
| Вопросы контроля доступа | — | — | |
| Неправильная конфигурация | — | — |
BDD-Security. Framework располагает консольным и графическими интерфейсами. Чтобы запустить сканирование необходимо использовать визард, где будет предложение применить специально сконфигурированные и стандартные настройки.
Начнём настраивать средство тестирования:
- Сначала будет предложено ввести адрес цели, или выбрать файл, содержащий структуру веб-сайта, следует выбрать первый вариант
- Второй шаг состоит в выборе профиля сканирования; их довольно много, остановим выбор на профиле «Default», поскольку в нем содержатся тесты для обнаружения всех доступных видов уязвимостей и настройки сканирования, которые будут оставаться дефолтными.
- На последующем шаге Framework стремится определить технологии, используемые целью, и отражает приобретённые значения, которые можно выбрать самостоятельно либо проставить значение «Unknown». В данном случае все без исключения значения были определены правильно, и они остаются без изменения
- На четвёртом шаге предлагается сделать выбор способа аутентификации, поскольку она не понадобится, следует этот шаг пропустить.
- Последний шаг предлагает все настройки сохранить и после нажатия «Finish» начинается сканирование (таблица 2.3).
Таблица 2.3 — Итоги сканирования BDD-Security
| Тип уязвимости | Найдено | Ложно найдено | Время |
| Инъекции | 1 | 0 | 2ч 13м |
| Вопросы аутентификации и проверки сессий | 31 | 0 | |
| XSS | 19 | 0 | |
| Вопросы контроля доступа | 4 | 3 | |
| Неправильная конфигурация | 231 | 0 |
Минимум ошибочных срабатываний и простота в настройке — так можно охарактеризовать данный инструмент. Кроме результатов, внесённых в таблицу, BDD-Security собрал большой объем информации, которая относится к структуре приложения и пользовательских конфиденциальных данных. Применяя одну из небесполезных фич предоставляется возможность выделения предоставления детальной информации о уязвимости и способах её ликвидации, а также ссылок на ресурсы, которые содержат исчерпывающую информацию.
Web Application Attack and Audit Framework (w3af). Фреймворк с консольным и графическим интерфейсом, предоставляющий возможность обнаружения и эксплуатации уязвимостей в приложении. Располагая широким спектром плагинов, позволяет довольно тонко осуществить настройку процесса сканирования. К тому же w3af располагает готовыми шаблонами для сканирования, пользователь должен ввести лишь адрес цели.
Настраивая средство тестирования, будем опираться на шаблоны «full_audit_spider_man» и «full_audit», они отличаются тем, что первый шаблон как плагин краулер использует spider_man – локальный прокси, а второй web_spider – классический веб-паук. Для целей предоставленной работы плагины из группы «bruteforce» не понадобятся. Они включены по умолчанию в данных шаблонах, поэтому их следует отключить. Остаётся выполнить настройку плагинов из группы «output». Выводится собранная информация по умолчанию исключительно в консоль, что в целях анализа итогов считается не очень удобным, поэтому следует включить плагин «html_file», позволяющий сохранять в HTML-файл всю полученную информацию.
Теперь следует ввести адрес цели и приступить к сканированию (таблица 2.4).
Таблица 2.4 — Итоги сканирования w3af
| Тип уязвимости | Найдено | Ложно найдено | Время |
| Инъекции | 4 | 2 | 2ч57м |
| Вопросы аутентификации и проверки сессий | 3 | 1 | |
| XSS | 25 | 0 | |
| Вопросы контроля доступа | 4 | 3 | |
| Неправильная конфигурация | 17 | 0 |
Данный инструмент не зря считается фреймворком, при соответствующих навыках настройки он может осуществлять сбор исчерпывающей информации о цели за оптимальное время. Однако и он имеет недостатки, при тестировании выявлена проблема со стабильностью работы средства, что доставило огорчение.
Таблица 2.5 — Итоговая таблица результатов
| Средства | Инъекции | Вопросы аутентификации и проверки сессий | XSS | Вопросы контроля доступа | Неправильная конфигурация | Затраченное время | |||||
| Обнару- жено | Ложно обнару- жено | Обнару- жено | Ложно обнару- жено | Обнару- жено | Ложно обнару- жено | Обнару- жено | Ложно обнару- жено | Обнару- жено | Ложно обнару- жено | ||
| Metasploid Framework | 6 | 5 | 11 | 2 | 1 | 1 | 3 | 2 | 128 | 0 | 3ч 18м |
| OneSQL | 14 | 0 | — | — | — | — | — | — | — | — | 4ч 27м |
| BDD-Security | 1 | 0 | 31 | 0 | 19 | 0 | 4 | 3 | 231 | 0 | 2ч 13м |
| W3AF | 4 | 2 | 3 | 1 | 25 | 0 | 4 | 3 | 17 | 0 | 2ч 57м |
| Всего | 14 | 32 | 25 | 3 | 231 | ||||||
Рассмотрим далее сравнение данных интегрированных средств тестирования по критериям, предложенным в первой главе работы – таблица 2.6.
Таблица 2.6 – Сравнение по критериям
| № | Средство тестирования \ Критерий сравнения | Metasploid Framework | OneSQL | BDD-Security | W3AF |
| 1. | Сопоставление стоимости продукта относительно оценкам критериев. | 1 | 1 | 0 | 1 |
| 2. | Универсальность использования средств тестирования уязвимостей. | 1 | 0 | 0 | 1 |
| 3. | Число поддерживаемых векторов атаки: тип и число активных плагинов средства тестирования уязвимостей. | 1 | 0 | 0 | 1 |
| 4. | Точность выявления CSS. | 0 | 1 | 0 | 1 |
| 5. | Точность выявления SQL-инъекций. | 0 | 1 | 1 | 1 |
| 6. | Точность обхода структуры веб-приложения и выявления локальных файлов. | 1 | 0 | 1 | 0 |
| 7. | Удаленное применение файлов, XSS, фишинг посредством RFI. | 1 | 0 | 1 | 0 |
| 8. | WIVET-сравнение. | 1 | 0 | 0 | 1 |
| 9. | Адаптивность технологии. | 0 | 1 | 0 | 1 |
| 10. | Сопоставление особенностей аутентификации. | 1 | 0 | 0 | 1 |
| 11. | Число дополнительных возможностей сканирования и интегрированных механизмов. | 1 | 0 | 0 | 1 |
| 12. | Общее представление о работе ключевой функции сканирования. | 0 | 1 | 0 | 1 |
| Итого | 8 | 5 | 3 | 10 | |
Когда появляются задачи, касающиеся проведения аудита безопасности приложения, необходимо запастись временем и терпением. Из таблицы, которая представлена ниже можно увидеть время, занимающие процессом сканирования каждым инструментом. Время считается не весьма большим, причина состоит в следующем: первое, средства безопасности и тестовое приложение находились на одной и той же физической машине, второе, это время в себя не включает процесс анализа приобретённых результатов, в настоящих условиях время, затраченное на тестирование будет значительно больше. Можно заметить, что итоги, предоставленные рассмотренными средствами, отличаются: какой-то из средств лучше справился с обнаружением той либо другой уязвимости, какой-то смог предоставить более доскональную информацию о веб-приложении в общем. Вследствие этого в процессе аудита безопасности не надо полагаться исключительно на один инструмент, необходимо применять комплекс всевозможных средств, включая и анализ веб-приложения в ручном режиме. Стоит также отметить, что развитие веб-технологий происходит крайне стремительно, поэтому интегрированные средства безопасности за их развитием не поспевают, вследствие этого перед тем, как проводить аудит необходимо досконально изучить технологии, применяемыми в тестируемом приложении для более точного подбора комплекса методик и инструментов.
По результатам анализа таблицы видно, что лучшими framework для тестирования web-уязвимостей являются более универсальные средства, такие как W3AF, но менее универсальные средства хоть и показали низкую общую оценку гораздо лучше тестируют определенные веб-уязвимости, поэтому, как говорилось ранее, для оптимального тестирования веб-приложений лучше всего использовать совмещение нескольких средств тестирования что доказывает актуальность работы в направлении расширения работу одного из вышеописанных framework.
