ПАРНАС и ситуация с компрометацией данных — экстраординарные утверждения требуют экстраординарных доказательств.

Произошел инцидент, связанный с утечкой персональных данных голосователей с сайта ПАРНАС. В открытом доступе появились имена, фамилии, номера телефонов, даты рождения, IP адреса, E-Mail’ы и даже пароли.

Я решил произвести “разбор полётов”, разобраться в ситуации и понять, что же действительно произошло.

В моём распоряжении оказался файл со всей утекшей информацией, и первое, что удивило и взбесило меня и моих коллег —пароли были представлены в открытом виде. Для справки: все нормальные разработчики, все адекватные интернет-сервисы не хранят ваши пароли ни в открытом, ни в зашифрованном виде. Пароли должны хранится в хэшированном виде. Разница между шифрованием и хэшированием следующая: первая процедура имеет обратный процесс, т.е. данные могут быть расшифрованы. Хэширование же не имеет обратного процесса, и хэшированный пароль не может быть обратно преобразован в оригинальный пароль.

Незамедлительно мной был подготовлен сервис, позволяющий проверить, были ли скомпрометированы ваши данные. Кстати, вот он: parnas.avalank.com

Сервис проверки утечки данных parnas.avalank.com

Затем последовали первые объяснения от ПАРНАС. Первым был (или первым я увидел) Михаил Касьянов со своим постом в Facebook.

Безумный пост Касьянова в Facebook

Человеку, который хотя бы немного знает что-то об IT, сложно дочитать до конца и не разразиться смехом. Михаил утверждает, что злоумылшленники взломали “кодовую защиту доступа”. Упоминать, что понятий “кодовая защита доступа” в природе не существует (только в сознании Михаила Касьянова и, возможно, в фильмах про секретных агентов). Касьянов продолжает: “Технологический уровень проникновения к уже зашифрованной информации очень высокий”.

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

Как мы все знаем персональные данные нельзя хранить заграницей, в противном случае будет нарушен федеральный закон. Зачем был принят этот закон, я думаю, всем понятно теперь наглядно. Не нужны никакие хакеры, когда можно просто прийти к хостеру/провайдеру и просто получить физический доступ к серверу. Пароли не хранились в открытом виде и никуда не записывались (хранится только хеш по требованиям информационной безопасности, но даже имея хеш нельзя получить оригинал пароля).
Следовательно, даже имея доступ к базе данных нельзя получить пароли в открытом виде, но тем не менее мы их видим.

Окей. Пароли, по утверждению Хрусталева ПАРНАС не хранит в открытом виде. Но как же тогда пароли в виде обычного текста попали в общий доступ? Кирилл продолжает:

Это значит, что они были перехвачены до момента записи в БД на промежуточном сервере, где балансируется нагрузка. Там они вынужденно хранятся короткое время в открытом виде в памяти сервера. Это можно сделать только имея физический доступ к памяти сервера (так как на диск это информация не попадает).

Тут уже возникают серьезнейшие сомнения.

Во-первых, каким образом был получен доступ к памяти? Какой может быть доступ к памяти? Если бы это был выделенный сервер, такой ситуации не могло бы произойти без ведома ПАРНАСа. Да даже при физическом доступе, информацию с оперативной памяти получить невозможно, современные операционные системы обеспечивают защиту должным образом. Я склоняюсь к тому, что либо ПАРНАС лжёт, либо ПАРНАС некомпетентен.

Во-вторых, что это за промежуточный сервера, где балансируют нагрузку? Почему ПАРНАС изобретает велосипед, если подобные сервисы (CDN) уже существуют, и есть даже бесплатные варианты, например CloudFlare. Да вообще непонятно абсолютно, зачем им балансировщик?

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

В четвертых, HTTPS. Протокол шифрования HTTPS защищает от перехвата данных и атаки Man-In-The-Middle. Перехват данных при использовании HTTPS невозможен.

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

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

Лично у меня подобные утверждения вызывают вопросы. Я предлагаю следующее:

Необходимо опубликовать исходный код системы голосования или предоставить его независимым специалистам для анализа и подтверждения/опровержения заявлений ПАРНАС.

Публикация дополняется.