Неудивительно, что кибербезопасность - одна из самых важных проблем для каждой компании, а также для всей организации. Чтобы противостоять хакерским атакам, консалтинговая компания, с которой я работаю, имитирует хакеров, чтобы помочь своим клиентам улучшить кибербезопасность. Сначала они обнаруживают доступные киберактивы с более чем 60 000 ботов для утилизации, которые развернуты по всему миру. Чтобы автоматически идентифицировать поверхности атаки, основным шагом является классификация списанных активов по различным категориям, например, веб-сайты, ориентированные на клиентов, или внутренние веб-сайты. Затем, используя выявленные поверхности для атак, они моделируют атаку для каждого актива, определяют приоритеты рисков и предлагают решения для своих клиентов.

Однако текущий этап классификации киберактивов является трудоемким. Консалтинговая компания хочет найти решение машинного обучения для автоматизации процедуры классификации с высокой точностью. В идеальном случае входными данными является URL-адрес веб-сайта (киберактива), а на выходе - предсказание того, является ли это веб-сайт для клиентов или внутренний сайт.

В соответствии с их требованиями и данными, которыми они поделились со мной, я создал онлайн-интерфейс пользователя для классификации веб-сайтов (киберактивов), а также для визуализации данных.

Ссылка на интерфейс: www.menggezhang.com

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

Механизм Classetfy следующий: с URL-адресом, вводимым пользователем, Classetfy сначала очищает веб-страницу и извлекает два различных типа функций. Один - это частота тегов HTML, а другой - частота слов между двумя закрытыми тегами HTML. Затем в интерфейсе визуализируются лучшие из представленных в обеих различных функциях. Что касается части классификации, Classetfy использует частоту тегов в качестве входной функции, а соответствующий веб-сайт классифицируется встроенным классификатором случайного леса, который был построен на основе ~ 600 помеченных URL-адресов, которыми поделилась консалтинговая компания.

Чтобы удовлетворить требования консалтинговой компании к точности, было выполнено несколько итераций (500 итераций) перекрестной проверки без исключения ~ 600 помеченных данных. Согласно матрице неточностей, а также средним значениям различных измерений, включая точность, оценку Auc, чувствительность и специфичность, как показано ниже, производительность случайного леса весьма впечатляет.

Как было показано, Classetfy извлекает не только частоту HTML-тегов с веб-сайта, но и частоту слов. Причина, по которой частота слов не рассматривается в качестве входных характеристик для классификации, заключается в относительно небольшом размере данных. Имея всего ~ 600 точек данных, было бы сложно применить стандартные методы, такие как CNN (сверточная нейронная сеть), при обработке естественного языка. Но в будущем, если консалтинговая компания захочет поделиться дополнительными данными, частотность слов определенно можно будет учесть в модели классификации.

Помимо классификатора случайного леса, была также опробована логистическая регрессия, но она не превзошла случайный лес, как показано в двух таблицах ниже.

Подводя итог, по запросу консалтинговой компании я разработал простые, но мощные функции и добился хорошей производительности с помощью классификатора случайного леса. Кроме того, я предоставил готовый интерфейс для классификации киберактивов и визуализации данных. Целый трубопровод предлагал решение для нужд консалтинговой компании, которое потенциально могло бы сэкономить им огромное количество затрат на рабочую силу в будущем.