Невыразимо привлекателен: как мы создали ханипот, который нельзя разоблачить
Антивирусные компании, ИБ-эксперты и просто энтузиасты выставляют в интернет системы-приманки — ханипоты, чтобы «поймать на живца» свежую разновидность вируса или выявить необычную хакерскую тактику. Ханипоты встречаются так часто, что у киберпреступников выработался своеобразный иммунитет: они быстро выявляют, что перед ними ловушка и просто игнорируют её. Чтобы исследовать тактику современных хакеров, мы создали реалистичный ханипот, который в течение семи месяцев жил в интернете, привлекая самые разные атаки. О том, как это было, мы рассказали в нашем исследовании «Caught in the Act: Running a Realistic Factory Honeypot to Capture Real Threats». Некоторые факты из исследования — в этом посте.
Разработка ханипота: чек-лист
Главной задачей при создании нашей суперловушки было не допустить, чтобы нас разоблачили хакеры, проявившие к ней интерес. Для этого пришлось провести большую работу:
1. Создать реалистичную легенду о компании, включающую в себя ФИО и фото сотрудников, номера телефонов и е-мейлы.
2. Придумать и реализовать модель промышленной инфраструктуры, соответствующую легенде о деятельности нашей компании.
3. Решить, какие сетевые сервисы будут доступны снаружи, но при этом не увлекаться открытием уязвимых портов, чтобы это не выглядело ловушкой для простофиль.
4. Организовать видимость утечки информации об уязвимой системе и распространить эти сведения среди потенциальных атакующих.
5. Реализовать незаметное наблюдение за действиями хакеров в инфраструктуре ловушки.
А теперь обо всём по порядку
Создаём легенду
Киберпреступники уже привыкли к тому, что им встречается множество ханипотов, поэтому самая продвинутая их часть проводит углублённое исследование каждой уязвимой системы, чтобы убедиться, что это не ловушка. По той же причине мы стремились добиться не только реалистичности ханипота с точки зрения дизайна и технических аспектов, но и создать видимость реальной компании.
Поставив себя на место гипотетического кулхакера, мы разработали алгоритм проверки, который позволил бы отличить реальную систему от ловушки. Он включал поиск IP-адресов компании в репутационных системах, реверсивное исследование истории IP-адресов, поиск имён и ключевых слов, относящихся к компании, а также её контрагентов и многих других вещей. В итоге легенда получилась вполне убедительной и привлекательной.
Мы решили позиционировать фабрику-ловушку как небольшой бутик промышленного прототипирования, работающий для очень крупных анонимных клиентов из военного и авиационного сегмента. Это избавляло нас от юридических сложностей, связанных с использованием существующего бренда.
Далее нам нужно было придумать видение, миссию и название организации. Мы решили, что наша компания будет стартапом с небольшим количеством сотрудников, каждый из которых является учредителем. Это добавляло убедительности легенде о специализированности нашего бизнеса, которая позволяет ему работать с деликатными проектами для крупных и важных заказчиков. Мы хотели, чтобы наша компания выглядела слабой с точки зрения кибербезопасности, но в то же время было очевидно, что мы работаем с важными активами в целевых системах.
Скриншот сайта ханипота MeTech. Источник: Trend Micro
В качестве названия компании мы выбрали слово MeTech. Сайт сделали на базе бесплатного шаблона. Изображения взяли из фотобанков, используя самые непопулярные и доработав, чтобы сделать их менее узнаваемыми.
Мы хотели, чтобы компания выглядела реальной, поэтому нужно было добавить в неё сотрудников с профессиональными навыками, соответствующими профилю деятельности. Мы придумали для них имена и личности, а затем попытались выбрать изображения из фотобанков в соответствии с этнической принадлежностью.
Скриншот сайта ханипота MeTech. Источник: Trend Micro
Чтобы нас не раскрыли, мы искали групповые фото хорошего качества, из которых можно было выбрать нужные нам лица. Однако затем мы отказались от этого варианта, поскольку потенциальный взломщик мог воспользоваться реверс-поиском изображений и обнаружить, что наши «сотрудники» живут в только фотобанках. В конце концов, мы воспользовались фотографиями несуществующих людей, созданными с помощью нейросетей.
Опубликованные на сайте профили сотрудников содержали важную информацию об их технических навыках, однако мы избегали указаний конкретных учебных заведений и городов.
Для создания почтовых ящиков мы воспользовались сервером хостинг-провайдера, а затем арендовали несколько телефонных номеров в США и объединили их в виртуальную АТС с голосовым меню и автоответчиком.
Инфраструктура ханипота
Чтобы избежать разоблачения, мы решили использовать комбинацию из настоящего промышленного оборудования, физических компьютеров и защищённых виртуальных машин. Забегая вперёд, скажем, что результат наших усилий мы проверили с помощью поисковика Shodan, и он показал, что ханипот выглядит как настоящая промышленная система.
Результат сканирования ханипота с помощью Shodan. Источник: Trend Micro
В качестве «железа» для нашей ловушки мы использовали четыре ПЛК:
• Siemens S7–1200,
• два AllenBradley MicroLogix 1100,
• Omron CP1L.
Эти ПЛК были выбраны за их популярность на мировом рынке систем управления. А ещё каждый из этих контроллеров использует свой протокол, что позволяло нам проверить, какой из ПЛК будут атаковать чаще и заинтересуют ли они кого-то в принципе.
Оборудование нашей «фабрики»-ловушки. Источник: Trend Micro
Мы не просто поставили железки и подключили их к интернету. Каждый контроллер мы запрограммировали на выполнение задач, среди которых были
• перемешивание,
• управление горелкой и конвейерной лентой,
• паллетирование с использованием роботизированного манипулятора.
А чтобы производственный процесс был реалистичным, мы запрограммировали логику для случайного изменения параметров обратной связи, имитации запуска и остановки двигателей, включения и выключения горелки.
На нашей фабрике было три виртуальных компьютера и один физический. Виртуалки использовались для управления заводом, роботом-паллетайзером и в качестве АРМ инженера-программиста ПЛК. Физический компьютер работал файловым сервером.
Помимо наблюдения за атаками на ПЛК, мы хотели следить за состоянием программ, загруженных на наши устройства. Для этого мы создали интерфейс, который позволял быстро определить, каким образом были модифицированы состояния наших виртуальных исполнительных механизмов и установок. Уже на этапе планирования мы обнаружили, что гораздо проще реализовать это с помощью управляющей программы, чем через непосредственное программирование логики контроллера. К интерфейсу управления устройствами нашего ханипота мы открыли доступ через VNC без пароля.
Промышленные роботы — ключевой компонент современного умного производства. В связи с этим мы решили добавить робота и АРМ для управления им в состав оборудования нашей фабрики-ловушки. Чтобы сделать «фабрику» более реалистичной, на АРМ управления мы установили настоящий софт, который инженеры используют для графического программирования логики робота. Ну, а поскольку обычно промышленные роботы находятся в изолированной внутренней сети, мы решили оставить незащищённый доступ по VNC только к АРМ управления.
Среда RobotStudio с 3D-моделью нашего робота. Источник: Trend Micro
На виртуалке с АРМ управления роботом мы установили среду программирования RobotStudio от ABB Robotics. Настроив RobotStudio, мы открыли в нём файл симуляции с нашим роботом так, чтобы его 3D-изображение было видно на экране. В результате Shodan и другие поисковые системы, обнаружив незащищённый VNC-сервер, получат это изображение с экрана и покажут его тем, кто ищет промышленные роботы с открытым доступом к управлению.
Смысл такого внимания к деталям заключался в том, чтобы создать привлекательную и максимально реалистичную цель для злоумышленников, которые обнаружив её, возвращались бы к ней снова и снова.
АРМ инженера
Для программирования логики ПЛК мы добавили в инфраструктуру инженерный компьютер. На него установили промышленное ПО для программирования ПЛК:
• TIA Portal для Siemens,
• MicroLogix для контроллера Allen-Bradley,
• CX-One для Omron.
Мы решили, что инженерное рабочее место не будет доступно за пределами сети. Вместо этого мы установили на ней такой же пароль для учётной записи администратора, как и на доступных из интернета АРМ управления роботом и АРМ управления фабрикой. Такая конфигурация является достаточно распространённой во многих компаниях.
К сожалению, несмотря на все наши усилия, до АРМ инженера не добрался ни один атакующий.
Файловый сервер
Он был нужен нам как приманка для злоумышленников и как средство для резервного копирования наших собственных «работ» в фабрике-ловушке. Это позволило нам обмениваться файлами с нашим ханипотом с помощью USB-устройств, не оставляя следов в сети ловушки. В качестве ОС для файлового сервера мы установили Windows 7 Pro, в которой сделали общую папку, доступную на чтение и запись кому угодно.
Сначала мы не делали никакой иерархии папок и документов на файловом сервере. Однако потом обнаружилось, что атакующие активно изучают эту папку, так что мы решили наполнить её различными файлами. Для этого мы написали python-скрипт, который создавал файл случайного размера с одним из заданных расширений, формируя имя на базе словаря.
Скрипт для генерации привлекательных имён файлов. Источник: Trend Micro
После запуска скрипта мы получили нужный результат в виде папки, наполненной файлами с очень интересными именами.
Результат работы скрипта. Источник: Trend Micro
Окружение для мониторинга
Потратив столько усилий на создание реалистичной компании, мы просто не могли позволить себе проколоться на среде для мониторинга наших «посетителей». Нам нужно было получать все данные в режиме реального времени таким образом, чтобы атакующие не заметили, что за ними наблюдают.
Мы реализовали это с использованием четырёх USB-Ethernet-адаптеров, четырёх Ethernet-ответвителей SharkTap, Raspberry Pi 3 и большого внешнего диска. Схема нашей сети выглядела так:
Схема сети ханипота с оборудованием для мониторинга. Источник: Trend Micro
Три ответвителя SharkTap мы расположили так, чтобы мониторить весь внешний трафик к ПЛС, доступным только из внутренней сети. Четвёртый SharkTap отслеживал трафик гостей уязвимой виртуалки.
Ethernet-ответвитель SharkTap и маршрутизатор Sierra Wireless AirLink RV50. Источник: Trend Micro
Raspberry Pi выполнял посуточный захват трафика. Подключение к интернету мы организовали с помощью сотового маршрутизатора Sierra Wireless AirLink RV50, часто используемого в промышленных предприятиях.
К сожалению, этот маршрутизатор не позволял выборочно блокировать атаки, которые не соответствовали нашим планам, поэтому мы добавили в сеть файрволл Cisco ASA 5505 в прозрачном режиме, чтобы выполнять блокировки с минимальным влиянием на сеть.
Анализ трафика
Tshark и tcpdump уместны для быстрого решения текущих вопросов, но в нашем случае их возможностей было недостаточно, поскольку у нас было много гигабайт трафика, анализом которых занимались несколько человек. Мы воспользовались open-source-анализатором Moloch, разработанным AOL. По функциональности он сопоставим с Wireshark, однако имеет больше возможностей для совместной работы, описания и тегирования пакетов, экспорта и других задач.
Поскольку мы не хотели обрабатывать собранные данные на компьютерах ханипота, PCAP-дампы каждый день экспортировались в хранилище AWS, откуда мы уже импортировали их на машину с Moloch.
Запись экрана
Чтобы задокументировать действия взломщиков в нашем ханипоте, мы написали скрипт, который с заданным интервалом делал скриншоты виртуальной машины и, сравнивая с предыдущим скриншотом, определял, происходит там что-то или нет. При выявлении активности скрипт включал запись экрана. Такой подход оказался наиболее эффективным. Мы также пытались анализировать VNC-трафик из PCAP-дампа, чтобы понять, какие изменения произошли в системе, но в итоге реализованная нами запись экрана оказалась проще и нагляднее.
Мониторинг VNC-сессий
Для этого мы использовали Chaosreader и VNCLogger. Обе утилиты извлекают из PCAP-дампа нажатия клавиш, но VNCLogger более корректно обращается с клавишами типа Backspace, Enter, Ctrl.
У VNCLogger есть два недостатка. Первый: она может извлекать клавиши только «слушая» трафик на интерфейсе, поэтому нам пришлось имитировать для неё VNC-сессию с помощью tcpreplay. Второй недостаток VNCLogger общий с Chaosreader: они обе не показывают содержимое буфера обмена. Для этого пришлось воспользоваться Wireshark.
Приманиваем хакеров
Мы создавали ханипот, чтобы его атаковали. Чтобы добиться этого, мы инсценировали утечку информации, призванную привлечь внимание потенциальных взломщиков. На ханипоте были открыты следующие порты:
Порт RDP пришлось закрыть вскоре после начала работы, потому что из-за огромного количества сканирующего трафика в нашей сети возникли проблемы с производительностью.
VNC-терминалы сначала работали в режиме «только просмотр» без пароля, а затем мы «по ошибке» переключили их в режим полного доступа.
Чтобы привлечь атакующих, мы разместили два поста с «утекшей» информацией о доступной промышленной системе на PasteBin.
Один из постов, размещённых на PasteBin для привлечения атак. Источник: Trend Micro
Атаки
Ханипот прожил в онлайне около семи месяцев. Первая атака произошла через месяц после выхода ханипота в онлайн.
Сканеры
Было много трафика от сканеров известных компаний — ip-ip, Rapid, Shadow Server, Shodan, ZoomEye и других. Их было так много, что нам пришлось исключить их IP-адреса из анализа: 610 из 9452 или 6,45% от всех уникальных ip-адресов принадлежали вполне легитимным сканерам.
Мошенники
Один из самых больших рисков, с которым нам пришлось столкнуться, — это использование нашей системы в преступных целях: для покупки смартфонов через счёт абонента, обналичивания миль авиакомпаний с помощью подарочных карт и других видом мошенничества
Майнеры
Один из первых посетителей нашей системы оказался майнером. Он загрузил на неё софт для майнинга Monero. Много заработать на нашей конкретной системе ему бы не удалось из-за низкой производительности. Однако если объединить усилия нескольких десятков или даже сотен таких систем, могло бы получиться вполне неплохо.
Вымогатели
За время работы ханипота мы дважды столкнулись с настоящими вирусами-вымогателями. В первом случае это был Crysis. Его операторы зашли на систему через VNC, но затем установили TeamViewer и с его помощью уже выполняли дальнейшие действия. Дождавшись вымогательского сообщения с требованием выкупа в размере 10 тыс. долларов в BTC, мы вступили в переписку с преступниками, попросив их расшифровать нам один из файлов. Они выполнили просьбу и повторили требование выкупа. Нам удалось сторговаться до 6 тыс. долларов, после чего мы просто перезалили систему на виртуалку, поскольку получили всю необходимую информацию.
Вторым вымогателем оказался Phobos. Установивший его хакер в течение часа просматривал файловую систему ханипота и сканировал сеть, а затем всё-таки установил вымогателя.
Третья атака вымогателя оказалась фейковой. Неизвестный «хакер» скачал на нашу систему файл haha.bat, после чего некоторое время мы наблюдали за тем, как он пытается заставить его работать. Одной из попыток стало переименование haha.bat в haha.rnsmwr.
«Хакер» увеличивает вредоносность bat-файла, меняя его расширение на .rnsmwr. Источник: Trend Micro
Когда батник наконец стал запускаться, «хакер» отредактировал его, увеличив выкуп с 200 до 750 долларов. После этого он «зашифровал» все файлы, оставил на рабочем столе вымогательское сообщение и улетучился, поменяв пароли на нашем VNC.
Через пару дней хакер вернулся и чтобы напомнить о себе, запустил батник, который открывал множество окон с порносайтом. Видимо, таким образом он пытался привлечь внимание к своему требованию.
Итоги
За время исследования выяснилось, что как только сведения об уязвимости были опубликованы, ханипот привлёк внимание, причём активность росла изо дня в день. Чтобы ловушка привлекла к себе внимание, пришлось допустить множество нарушений безопасности нашей вымышленной компании. К сожалению, такая ситуация далеко не редкость среди многих реальных компаний, не имеющих штатных ИТ- и ИБ-сотрудников.
В общем случае организации должны использовать принцип наименьших привилегий, в то время как мы реализовали полную ему противоположность для привлечения злоумышленников. И чем дольше мы наблюдали за атаками, тем более изощрёнными они становились по сравнению со стандартными методами тестирования на проникновение.
И самое главное: все эти атаки провалились бы, если бы при настройке сети были реализованы адекватные меры безопасности. Организации должны следить, чтобы их оборудование и компоненты промышленной инфраструктуры не были доступны из интернета, как мы специально делали в нашей ловушке.
Хотя мы не зафиксировали ни одной атаки на АРМ инженера, несмотря на использование одинакового пароля локального администратора на всех компьютерах, стоит избегать такой практики, чтобы свести к минимуму возможность вторжений. Ведь слабая безопасность служит дополнительным приглашением для атаки на промышленные системы, которые уже давно вызывают интерес киберпреступников.