Исповедь человека в чёрной шляпе - Страница 1


К оглавлению

1


Сегодня бывает модно говорить о криптолокерах, о bug-bounty программах, об открытых конференциях для всех и о том, что очередной школьник купил самый дешёвый 0day и поставил себе в школе все пятёрки. Однако, это — не модная статья. Она не о том, что «самый ненадёжный фактор системы — это xyz». И не о том, что круто использовать сейчас, а что — будет круто использовать завтра. Это не список стандартных правил iptables на непроникновение в среде уверенных пользователей ПК.

Это моя история, и я, генератор случайных чисел, хочу Вам её рассказать.

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


Часть 1. Мыш

«Добро пожаловать» — это, в основном, именно то, что видели всякие юные дарования от цифрового мира, когда пытались подобрать пароль брутфорсом 22 порта на моём сервере. Как минимум несколько часов в неделю каждый из группы серверов, арендованных мною по всему миру, работал почти без сетевой защиты. Я написал задание в cron — случайное количество часов в неделю держать открытыми популярные порты, добавлять на эти часы левые учётные записи в систему и давать им определённые полномочия. Восемь машин попеременно открывали двери в себя для всех желающих. Это была моя удочка на начинающих хакеров — я собирал информацию об их сетях и оборудовании, обо времени их доступности и сна, об их предпочтениях в софте. Каждую ночь я читал и фильтровал логи — отсеивал ботов, всякие Shodan-подобные сервисы и откровенно сильных ребят, которые могли представлять угрозу. Так, к концу недели у меня стабильно образовывался список из двух-пяти начинающих взломщиков, которых я ломал сам, забирая по возможности всё, что находил — от номеров кредиток и биткоин-кошельков до кукисов на малоизвестных почтовых серверах. Я не считаю, что был несправедлив, подстраивая подобные ловушки — ведь процесс всегда инициировали именно жертвы. Тем более, взломанный хакер очень вряд ли обратится за помощью в правоохранительные органы, так что я не боялся расправы и мог себе позволить спокойно работать. Бывали, конечно, и неудачи, но в основном денег, заработанных таким путём хватало на жизнеобеспечение уровня чуть ниже среднего класса.

Однажды на выходных, в очередной раз вычисляя, кого из повадившихся на моё добро взломать будет легче и безопасней, на одном из своих серверов я увидел свежий файл в /etc/ssl, именованный приватным RSA-ключом. Меня смутил размер файла — ровно 20 байт, что никак не может быть рабочим RSA-ключом (разве что 128-битный с 0x00 по бокам). Редактор показал мне, что, скорей всего, это — какой-то хеш. Хеширующих функций, дающих такие маленькие объёмы на выходе, немного, так что я загуглил для уверенности и точно понял, что предо мною — SHA1-хеш. Без новомодных перца и сдвигов, только какой-то приболевший: в файле отсутствовал ведущий 0x00, с коего обычно начинаются валидные SHA1-хеши. Получалась какая-то нелепица — один из моих виртуальных гостей сознательно взял хеш с каких-то данных и оставил его на моём сервере, назвав файл, как приватный RSA-ключ. Пару дней я не мог додуматься, зачем кому-то нужно было делать нечто в таком роде. Спустя примерно неделю я вовсе выбросил сию мысль из головы, ибо разумных ответов на вопрос так и не нашлось. Я решил, что это просто были чьи-то эксперименты с терминалом во время посещения сервера.

Однако, зайдя ещё через несколько дней в Джаббер, я вдруг прям застыл на компьютерном стуле. Перед глазами прокрутились воспоминания о том сранном файле — ведь алгоритм OTR, который во все времена оставался самым надёжным и безопасным решением для опасных переписок, берёт SHA1-хеш с никнейма пользователя и предоставляет его как часть отпечатка личности при обмене ключами. Оставалось лишь проверить догадку, так что я взглянул на отпечаток своего ника — сей тоже не начинался с 0x00, как положено порядочным SHA1-хешам, а значит я всё это время имел дело с оставленным мне в таком странном виде контактом Джаббера! Недолго думая, я добавил его в список доверенных контактов, чтобы можно было шифровать весь поток данных между нами.

Ночью того дня я увидел в сети некий новый контакт. Получив его отпечаток и сравнив с тем, что был найден на сервере, я понял, что, видимо, не сошёл с ума и это действительно настоящий OTR-fingerprint живого человека. Мы обменялись публичными ключами. Так начался мой исход.

Часть 2. Капитализм

Не стоит думать, будто я нуждался в помощи, либо жаждал проникнуться сутью родства душ, например. Отнюдь, я — законченный параноик и в реальной жизни все, кто знают меня, уверены, что запуск косынки — единственная доступная мне компьютерная магия. Однако, какой бы абстрактно толстой ни была моя шапочка из фольги, та доля интереса, которую породил сей человек, неописуема никакими красками. Сумбурная смесь из любопытства и страха, удивления и радости, с толикой гордости за профессию. Естественно, я сразу написал ему. Некто по ту сторону монитора предложил поверх OTR набрасывать ещё и PGP-слой, на всякий случай. Я знал, что в моей (и, предположительно, его тоже) области труда паранойя — скорей профдеформация, чем заболевание, так что против не был. В ту ночь я узнал, что моего виртуального гостя зовут Мыш, он обижается на мягкий знак в конце сего слова и намерен предложить мне работу. Ник его Джаббера в виде фингерпринта у меня на сервере, как оказалось, был частью собеседования. Я осторожно поинтересовался, почему я вообще должен захотеть соглашаться с ним сотрудничать, и получил ответ, коий менее всего ожидал. Оказалось, что всё это время за файлом хеша на сервере постоянно наблюдал демон на обычном sh-скрипте из трёх строк с засыпаниями на случайное количество секунд и маскировкой под rsync worker'а. Его единственная задача заключалась в отслеживании SSH-ключа любого, кто попытается прочесть или модифицировать хеш. Мыш знал, что я не стану использовать пароль для аутентификации на своих серверах, но отдельный файл-ключ — стану. Он знал, что проверяет сей ключ локальный демон, синхронизируя данные о доступе помеж всеми моими машинами. Таким образом, все восемь моих серверов оказались разом скомпрометированы не искусственно, как были постоянно ранее, а вполне себе натурально. Более сильный хакер поймал меня на удочку, точно как я ловил на удочки более слабых. Я ждал, что он станет шантажировать меня сливами информации или шифрованием данных. Но он не стал.

1