Как я вычислил жулика, который продавал персональные данные спамерам
Лет 5 назад ко мне обратился мой приятель, который работал директором крупной компании, у которой были офисы по всей стране.
С просьбой:
— Я не знаю что делать, но все данные моих клиентов продаются в закрытом Интернете. Притом раз в неделю анонимный продавец выкладывает данные новых клиентов. Это портит репутацию моей компании и непонятно что с данными клиентов делают те, кто покупает эти базы. Помоги вычислить того, кто это делает.
Я начал собственное расследование, ибо опыт в этом у меня был. Компания большая, в каждом крупном городе офис. Всего больше 30 менеджеров имело доступ к программе, через которую можно было эти данные слить.
Также изучил то, что продавал этот жулик — это были данные в csv файлах и выглядели они так:
Также была сумма заказа, № заказа ну и все данные о клиенте. Картинка дана для примера и понимания ситуации.
Сама же система не позволяла выгружать в такой формат данных, да и вообще никакой возможности выгрузки не было для простых пользователей, но доступ ко всем клиентам был если ввести данные, которые известны: номер заказа (он шел не подряд и подобрать его было невозможно), имя, фамилию и т.п.
Вот такая была форма поиска клиента у менеджеров. Конечно она была намного расширенной, это я уже сделал для примера и понимания.
То есть список клиентов получить было можно, но нужно было вводить имена, а откуда же рядовому сотруднику знать имена всех, кто зарегистрирован в программе как клиент?...
Узнать это помогла моя привычка проверять формы на сайте на уязвимости.
Оказывается форма поиска была не защищена от SQL инъекций и можно было с легкостью получить доступ ко всей базе.
Запрос к базе был примерно таким:
SELECT * FROM `test` WHERE `name` LIKE '%Иван%' AND date=... (тут много всяких других данных).
А я что... ввел в поле имя % (символ процента) и получил LIKE '%%%'. Запрос мне выдал всех пользователей, которые зарегистрировались в системе за определенный период времени. Но это еще не все.
С этими данными я пришел к директору и сказал, мол дырку нашел, могу закрыть. На что мне было дано добро и казалось бы инцидент исчерпан и больше вряд ли получится сливать базу данных. Но я подумал, подумал...
Я лишь только закрыл дырку, с помощью которой было удобно брать данные, а жулик же так и остается в компании. Нужно его найти. Но как?... Ежедневно 30 менеджеров имеют доступ в разных городах. Всех не проследить.
И мне в голову пришло, я считаю до сих пор — гениальное решение. В неделю у компании появлялось больше 1000 клиентов и обрабатывали заявки 30 менеджеров: все кто имел доступ.
Что я сделал? Я подменил буквы. Русские на английские и ассоциировал с временем заказа и сделал подмену букв.
Допустим, менеджер Иванова хочет слить базу данных и продать её спамерам. Она заходит в админку сайта, выгружает всех пользователей и копирует данные. Только вот русские имена и фамилии уже будут с подмененные буквами — русские я заменял на английские согласно заранее подготовленной таблицы. Внешне не отличить, зато можно вычислить того, кто это сделал.
Также в признаках был адрес и другие данные, чтобы успешно ассоциировать с менеджером.
Что было дальше? Дальше мы дождались, пока новая база данных появится в закрытом Интернете и под видом покупателя купили у жулика эту базу данных.
А по измененным буквам (легко было узнать код символа) и времени заказа, посмотрев в заранее заготовленную таблицу, мы поняли кто этим занимался: достаточно посмотреть время в таблице (а выгружал он все, как копировалось) и ассоциировать его с признаками в таблице.
Оказался молодой парень. Хотел подзаработать. Дальше вроде как был суд и ему что-то «впаяли», какой-то штраф. Точно я не знаю, по слухам все.
Вину он сразу признал, чуть ли не явку с повинной написал. Подробностей я уже не знаю, так как честно не следил. Сделал свою работу и вышел из игры.
Источник: мой блог Записки Айтишника (ссылку даю не ради трафика (своего хватает), а для того, чтобы Дзен не счел заимствование отсюда (ибо у него бывает)).


