Введение…………………………………………………………………………...3
Глава 1 Теоретические аспекты использования систем машинного обучения для поиска уязвимостей компьютерных сетей5
1.1 Классификации уязвимостей компьютерных систем………………….……5
1.2 Обнаружение веб-атак с использованием машинного обучения…………..9
Глава 2 Практические аспекты систем машинного обучения для поиска уязвимостей компьютерных сетей……………………………………………...13
2.1 Применение машинного обучения для обнаружения сетевых аномалий..13
2.2 Автоматизированный поиск уязвимостей веб-приложения на основе машинного обучения.18
Заключение……………………………………………………………………….24
Список использованных источников………25
Актуальность темы исследования. Безопасность современных телекоммуникационных систем определяется, в том числе, уязвимостями в программном обеспечении входящих в их состав телекоммуникационных устройств. Согласно открытым базам (таким, как NVD, CVE, OSVDB и др.) ежегодно наблюдается рост обнаруживаемых уязвимостей. При этом сфера применяемых в России телекоммуникационных устройств является на 90% «импортозависимой», вынуждая использовать заведомо небезопасное программное обеспечение зарубежного производства.
Существующее же множество способов поиска уязвимостей в исходном коде программного обеспечения в данном случае не подходит, поскольку преобладающее количество телекоммуникационных устройств поставляется с машинным кодом, способы поиска по которому существенно ограничены и в разы более трудоемки. При этом их целью, в основном, являются достаточно формализуемые низкоуровневые уязвимости - ошибки в реализации вычислений и доступе к данным. Средне- и высокоуровневые уязвимости - ошибки в логике работы алгоритмов и общей архитектуре, обнаруживаемые по субъективным признакам и с привлечением экспертов информационной безопасности, на сегодня не имеют развитых способов поиска.
Таким образом, основное противоречие рассматриваемой предметной области заключается в росте количества и разнообразия средне- и высокоуровневых уязвимостей при ограниченном количестве и возможностях экспертов информационной безопасности. Одной из существенных причин, порождающих указанное противоречие, является низкая производительность работы экспертов, обусловленная использованием для поиска средне- и высокоуровневых уязвимостей представлений кода, продуцируемых традиционными средствами реверс-инжиниринга.
В этих условиях требуется принципиально новый вид представления машинного кода, специализированный для поиска средне- и высокоуровневых уязвимостей - так называемое алгоритмизированное представление. Это предполагает разработку соответствующего метода алгоритмизации и реализующего его средства, что и обуславливает актуальность темы настоящего исследования.
Несмотря на достаточное освещение указанных областей, тем не менее, проблемные вопросы алгоритмизации машинного кода в интересах поиска средне- и высокоуровневых уязвимостей оставлены практически без внимания.
Целью курсовой работы является выявление способов использования систем машинного обучения для поиска уязвимостей компьютерных сетей.
Исходя из поставленной цели определим ряд задач:
- привести классификацию уязвимостей компьютерных систем;
- выявить обнаружение веб-атак с использованием машинного обучения;
- определить применение машинного обучения для обнаружения сетевых аномалий;
- выполнить автоматизированный поиск уязвимостей веб-приложения на основе машинного обучения с подкреплением.
Обнаружение сетевых атак является в данный момент одной из наиболее острых проблем безопасного применения корпоративных сетей. Масштабные эпидемии сетевых червей, DDoS атаки с бот-сетей, автоматизированные средства поиска уязвимостей в сетях – все это делает обеспечение безопасности локальных сетей весьма трудоемким делом. Сейчас трудно найти сеть, в которой отсутствуют такие активные средства предупреждения атак как антивирус, брандмауэр, системы предупреждения вторжений. К сожалению, одних активных средств отражения атак недостаточно. Поэтому, в дополнение к ним применяют пассивные средства борьбы с атаками – сетевые системы обнаружения вторжений.
Сетевые системы обнаружения вторжений (ССОВ) просматривают весь сетевой трафик (или трафик определенного участка сети) и при обнаружении каких-либо отклонений в нем сигнализируют об этом. Формальные ССОВ используют сигнатурные правила – пакеты, попадающие на сенсоры, сравниваются с БД сигнатур и, в случае обнаружения совпадения, объявляется тревога.
Таким образом, актуальной является задача быстрой классификации сетевого трафика для обнаружения сетевых атак.
Задача может быть поставлена либо как задача бинарной классификации (нормальный или аномальный трафик), либо как более сложная задача многоклассовой классификации, когда аномальный трафик в свою очередь классифицируется по заранее выделенным типам атак
Однако для известных атак сигнатурные методы могут быть полезны для их точной идентификации. В целом для корпоративных сетей рекомендуется использовать сочетание сигнатурных методов анализа и методов машинного обучения.