Yaroslav Zolotarev

Зарегистрирован с 14.01.2022
Комментарии
15 января 2022

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

Моя задача

Трек от Group-IB. Business Email Compromise Detection

10.12.2021 20:30 - 12.12.2021 14:00

В последнее годы особенной популярностью у хакеров начали пользоваться атаки с использованием компрометации деловой переписки (Business Email Compromise). Такие атаки не требуют технических знаний, просты в реализации и имеют высокую эффективность, а защититься от них традиционными средствами практически невозможно. По данным ФБР ущерб от таких атак в 2020 году составил более 1,8 млрд долларов США. В рамках данного кейса Вам предстоит разобраться в различных техниках проведения BEC-атак и разработать подходы, позволяющие обнаруживать их на ранних стадиях.

Эксперты:

Анастасия Барейша

Эксперт, член жюри

Ульяна Антонова

Трекер, член жюри

Антон Афонин

Трекер, член жюри

Алина Степченкова

Эксперт, член жюри

Алгоритм выявления компрометации корпоративной эл

Описание

Если проанализировать ежегодные отчеты компании Group-IB о трендах компьютерной преступности, можно сделать вывод, что на протяжении уже долгих лет электронная почта является одним из основных векторов атак. На данный момент это, пожалуй,  самый простой способ доставки вредоносных программ и попадания впоследствии в корпоративные сети жертв.

Выделим несколько основных разновидностей почтовых атак по типу содержимого писем:

рассылка вредоносного ПО (письмо может содержать сам файл во вложении, ссылку на скачивание файла, ссылку на скачивание загрузчика вредоносного ПО и т.д.);

фишинг (массовые рассылки, с которыми скорее всего сталкивался любой человек, имеющий ящик электронной почты, или таргетированные, рассчитанные на конкретного получателя)

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

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

Злоумышленник подменил адрес отправителя при отправке сообщения. Конечно же протоколы передачи почты содержат защиту от данной фальсификации, и письмо не пройдет проверку SPF (Sender Policy Framework). Но в ряде случаев оно по-прежнему будет доставлено, а информация о проваленной проверке подписи нигде не отобразится.

Злоумышленник взломал почту отправителя сообщения. В таком случае сообщение спокойно пройдет все проверки подлинности.

Техника, описанная в последнем пункте, называется BEC (Business Email Compromise), а все описанные ситуации, когда злоумышленник пытается выдать себя за кого-то другого, объединяются общим понятием Email Impersonation. Такие атаки являются считаются сложными для обнаружения, традиционные способы защиты, как уже было сказано, в борьбе с ними бессильны.

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

Данные

Почта относится к очень чувствительному типу данных, поэтому на данный момент практически все исследования в области анализа писем проводятся на корпусе переписки американской компании Enron. Он был изъят в 2001 году организацией FERC (федеральная комиссия по регулированию энергетики), а впоследствии обнародован университетом MIT. Последняя версия датасета содержит порядка 500000 писем от 148 сотрудников. Все эти письма не являются вредоносными. На основе этого датасета был отобран набор легитимных писем.

Дополнительно был собран датасет, содержащий подозрительные и вредоносные письма, авторами которых не являются сотрудники компании Enron.

Структура данных

Для работы у вас будет два корпуса писем, представляющие из себя обучающую и тестовую выборки. Это .mbox файлы, которые можно без труда распарсить, например, при помощи библиотеки mailbox для языка python. Обучающая выборка целиком будет состоять только из подлинных писем.

Каждое письмо, как и полагается, содержит блок заголовков и тело. Заголовки писем следующие: X-UID -- уникальный идентификатор письма, From -- отправитель письма (обратите внимание, что это не просто почтовый адрес, Subject -- тема письма, Date -- дата отправки и Content-Type устанавливающий тип содержимого.

Задание кейса

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

ДАТАСЕТ:

train

test

Требования к решению

Как уже было сказано, Enron является единственным подобным корпусом, в открытом виде распространяемым в интернете, поэтому можно было бы просто найти исходный вариант и на 100% точно разметить тестовую выборку. Ваша же задача -- создать универсальное решение, дающее хорошие прогнозы для любого обучающего датасета. Решения, не обладающие подобной универсальностью, будут дисквалифицированы. Если вы сомневаетесь в корректности реализации того или иного подхода, уточните это у экспертов.

На этапе обучения разрешается использование других датасетов, кроме, как уже было сказано, оригинальных писем из корпуса Enron.

Результатом обработки вашей программой тестовой выборки должен быть файл result.csv, содержащий две колонки: ‘UID’ и ‘VERDICT’, где UID - уникальный идентификатор письма тестовой выборки, VERDICT -- 1, если письмо можно считать подлинным, иначе 0.

Решение, содержащее файл result.csv, исходные коды программы, презентацию решения и фотографию вашей команды, должно быть опубликовано на github.com для прохождения Code Review.

Критерии оценки

Будет оценена точность решения  и измерена по метрике Accuracy, т.е. количество правильно размеченных писем будет разделено на общее количество писем тестовой выборки. Таким образом, команда, решение которой имеет точность, равную 100%, наберет maх по данному критерию.

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

Чистота кода.

Проверьте, что код вашей программы проходит проверку правил оформления кода (в случае языка python это pep8).

Старайтесь, чтобы код был читаемым, например, избегайте названий переменных вроде a или b, не забывайте про принцип DRY.

Дополнительные баллы может получить команда за реализацию пользовательского интерфейса для своего решения. При наличии пользовательского интерфейса файл result.csv все равно должен создаваться. Что важно в интерфейсе?

Он должен работать. Т.е. если в нем есть кнопка, она должна нажиматься и что-то делать.

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

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

В случае, если несколько команд наберут одинаковое количество баллов, победителем станет команда с наиболее высокой точностью прогноза.

Ответить