774

Как я вычислил жулика, который продавал персональные данные спамерам

Лет 5 назад ко мне обратился мой приятель, который работал директором крупной компании, у которой были офисы по всей стране.


С просьбой:

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


Я начал собственное расследование, ибо опыт в этом у меня был. Компания большая, в каждом крупном городе офис. Всего больше 30 менеджеров имело доступ к программе, через которую можно было эти данные слить.

Также изучил то, что продавал этот жулик — это были данные в csv файлах и выглядели они так:

Также была сумма заказа, № заказа ну и все данные о клиенте. Картинка дана для примера и понимания ситуации.


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


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

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


Узнать это помогла моя привычка проверять формы на сайте на уязвимости.


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


Запрос к базе был примерно таким:


SELECT * FROM `test` WHERE `name` LIKE '%Иван%' AND date=... (тут много всяких других данных).

А я что... ввел в поле имя % (символ процента) и получил LIKE '%%%'. Запрос мне выдал всех пользователей, которые зарегистрировались в системе за определенный период времени. Но это еще не все.


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


Я лишь только закрыл дырку, с помощью которой было удобно брать данные, а жулик же так и остается в компании. Нужно его найти. Но как?... Ежедневно 30 менеджеров имеют доступ в разных городах. Всех не проследить.


И мне в голову пришло, я считаю до сих пор — гениальное решение. В неделю у компании появлялось больше 1000 клиентов и обрабатывали заявки 30 менеджеров: все кто имел доступ.

Что я сделал? Я подменил буквы. Русские на английские и ассоциировал с временем заказа и сделал подмену букв.


Допустим, менеджер Иванова хочет слить базу данных и продать её спамерам. Она заходит в админку сайта, выгружает всех пользователей и копирует данные. Только вот русские имена и фамилии уже будут с подмененные буквами — русские я заменял на английские согласно заранее подготовленной таблицы. Внешне не отличить, зато можно вычислить того, кто это сделал.

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


Что было дальше? Дальше мы дождались, пока новая база данных появится в закрытом Интернете и под видом покупателя купили у жулика эту базу данных.


А по измененным буквам (легко было узнать код символа) и времени заказа, посмотрев в заранее заготовленную таблицу, мы поняли кто этим занимался: достаточно посмотреть время в таблице (а выгружал он все, как копировалось) и ассоциировать его с признаками в таблице.


Оказался молодой парень. Хотел подзаработать. Дальше вроде как был суд и ему что-то «впаяли», какой-то штраф.  Точно я не знаю, по слухам все.


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

Источник: мой блог Записки Айтишника (ссылку даю не ради трафика (своего хватает), а для того, чтобы Дзен не счел заимствование отсюда (ибо у него бывает)).