Рассказывает Дмитрий Поскребышев — руководитель отдела разработки систем управления инженерными данными.
Pilot-ICE – это корпоративная система, но лёгкость самостоятельного развертывания (займет не более 10 минут на сервер, модуль администрирования и клиент) плюс наличие бесплатного режима позволяют использовать её в том числе для организации персонального сетевого хранилища любых файлов. Устанавливаем Pilot-Server и подключаем базу данных, содержащую документы, которые являются потенциальной мишенью для большинства криптовымогателей: DWG, DOCX, PDF и др. Подключаем клиент Pilot-ICE к базе данных от пользовательской учётной записи. В Pilot-ICE работа с файлами выполняется на специальном виртуальном диске Pilot-Storage, который контролирует все операции с файловой системой. Для каждого файла, который появляется на диске, есть объект в базе данных. Он хранит информацию о файле, атрибуты, связи, права доступа. Данные диска кэшируются в профиле пользователя. Наличие кэша снижает нагрузку на сервер и обеспечивает автономную работу, при отсутствии соединения.
Тела файлов хранятся по технологии NTFS Sparse Files (разреженных файлов). По мере чтения содержимого файла выполняется его потоковая загрузка с сервера, и нули Sparse Files постепенно заменяются данными с сервера. Это позволяет мгновенно открывать на Pilot-Storage огромные структуры проектов, с большими файлами, без их полной загрузки на клиентские системы. Таким образом экономится дисковое пространство пользователей и снижается нагрузка на сетевую инфраструктуру. Технология аналогична Smart Files OneDrive и DropBox Smart Sync.
В базе данных могут быть тысячи проектов, но пользователь монтирует на Pilot-Storage только те, которые необходимы ему для текущей работы. Windows Explorer отобразит структуру смонтированных проектов, и вот тут файлы проектов становятся доступны криптовирусам.
Заражаем вирусом Wana Decrypt0r серверную и клиентскую системы. Дожидаемся сообщения вируса о том, что шифрование завершено.
В результате зашифровались файлы смонтированных проектов, к которым у текущей учётной записи пользователя есть доступ на редактирование, оригиналы файлов удалены. Криптовирус записывает свои exe-файлы в каждую папку зашифрованных им документов, Pilot-Storage синхронизирует эти файлы с сервером, и таким образом тело вируса попадает в базу данных Pilot.
Система Pilоt спроектирована так, что никакие данные не удаляются физически, а лишь получают состояние «Удалено», попадая таким образом в системную корзину Pilot, и вирус не может это обойти. На сервере для хранения тел файлов у каждой базы Pilot есть файловый архив, но в файловом архиве нет информации о типах файлов, поэтому криптовирусы их не шифруют, предполагая, что эти файлы могут быть частью ОС. А вывод из строя систем — не то, что нужно криптовымогателям.
Вылечиваем серверную и клиентскую системы от вируса, при необходимости переносим базу данных Pilot с зараженной на чистую систему. Подключаем клиент Pilot-ICE к базе от учётной записи администратора. Заходим в корзину Pilot-Storage, администратор видит удалённые файлы всех пользователей системы. Восстанавливаем их командой «Восстановить в исходное расположение».
Данные восстановлены.
Осталось удалить тела вирусов из базы. Вызываем окно поиска по всем файлам базы и выполняем запросы вида WanaDecryptor, @Please_Read_Me@.txt и WNCRY. Удаляем найденные файлы, теперь они находятся в системной корзине Pilot.
Заходим в корзину. Мы подключены от учётной записи администратора, поэтому имеем права на безвозвратное удаление следов вируса. Теперь база Pilot-ICE приведена в исходное состояние.
Тем, кто захочет использовать Pilot для коллективной работы с файлами, рекомендую также обратить внимание на лёгкую редакцию клиента — 3D-Storage (можно найти в центре загрузок Pilot). Серверную часть можно установить и на Linux, сразу после установки будет доступно до 5 одновременных подключений.
Дмитрий Поскребышев, руководитель отдела разработки PDM-систем.
Комментарии (72)
pnetmon
17.05.2017 19:43+1Как решается с размером диска — а то получается увеличивается размер хранимых данных, а свободного места обычно меньше 20% от общего размера диска.
Machine79
17.05.2017 19:51Интересно столько написано статей о WannaCry А как они получают информацию кто заплатил? Столько зараженных машин и надо контроль вести учета кого разблокировать. Скорее всего они каким то образом связываются с клиентом скажем так? Или в вирусе прописано с какого кошелька отправлено? Как происходит вся система оплаты?
kompas_3d
17.05.2017 19:54Это не к нам вопрос наверно) Это лучше у представителей антивирусных компаний узнать.
dartraiden
17.05.2017 20:06Где-то в комментариях видел, что суммы выкупа якобы разные, видимо, по ним и определяют. Но не факт, что это правда.
evehicks
17.05.2017 20:44+2В многочисленных статьях о WannaCry на хабре была информация о том, что данный зловред не дешифрует файлы после получения требуемой суммы. Думаю данная информация отвечает на ваш вопрос.
Machine79
18.05.2017 16:00Я где то читал что дешифрует? Хорошо Взять Vault они в принципе схожи чем то? Как понимают что отправил деньги именно тот пользователь?
dartraiden
18.05.2017 21:32Проблему в коде малвари заметили специалисты Symantec Security Response. По их словам, в код WannaCry закрался баг, который провоцирует состояние гонки (race condition) и не дает шифровальщику генерировать уникальный биткоин-адрес для каждой отдельной жертвы. Из-за этого вымогатель оперирует только тремя известными специалистам кошельками и не имеет возможности проследить платежи, поступившие от конкретных пользователей.
источник
Скорее всего, именно этим объясняется тот факт, что пока никто не сообщал о пользователях, которые благополучно расшифровали бы свои файлы после выплаты выкупа. Эксперты полагают, операторы WannaCry попросту не могут восстановить файлы некоторых жертв.Machine79
19.05.2017 01:21Простите дезинформировали меня На каком то сайте или комментарий не помню был! Спасибо интересная статья на источник. Парень рассказывает как он все проделывал в течении дня изучая WannaCry! Такой вопрос возможно не по теме но все таки Где скачать оригинал WannaCry для теста и изучения ????
dartraiden
19.05.2017 11:18https://geektimes.ru/post/289153/#comment_10065183
Но там сам Dropbox уже заблокировал доступ к файлу. Может, пользователь перезальёт.
AllexIn
17.05.2017 20:00+3Статья не интересная.
О боже мой Система контроля версий защищена от порчи данных на стороне клиента! КТо бы мог подумать!caduser
17.05.2017 20:14+1Скорее о том, как пользователям Pilot-ICE восстановить данные если заражение произошло на сервере и/или на клиенте.
Tishka17
17.05.2017 20:19Ая вот так и не понял, что делать при заражении сервера? Вирус просто возьмет и зашифрует весь образ виртуального диска не разбирая или весь файл базы данных
caduser
17.05.2017 20:29+1Так называемые «коммерческие криптовирусы», как правило, шифруют только определённые типы файлов, иначе операционная система станет неработоспособной и с пользователя не взять денег.
kompas_3d
17.05.2017 20:18В данном случае статья о том, как PDM-система защищена от порчи данных на стороне клиента. Система контроля версий — это способ реализации этой защиты. Наши пользователи не всегда знают, что такое система контроля версий, но они заинтересованы в сохранении собственных данных. Эта статья может быть дополнительным аргументом для IT-специалистов предприятий, чтобы убедить руководство и инженеров установить PDM-систему.
zenn
17.05.2017 20:08+2Извините, но такое чувство что автор этого ПО пытается «сорвать покровы» — наличие резервной копии любых данных в удаленном хранилище сводит опасность криптера к минимуму (и это в современном ИТ мире является стандартной практикой, как говорится админы делятся на 2 типа — те, кто делает бэкапы, и те, кто уже делает бэкапы). Кроме того, достаточно сомнительно выставлять преимуществом низкую популярность ПО (целью криптера оно не было и его авторы едва ли знали о существовании вашей системы).
caduser
17.05.2017 20:17Пользователи Pilot хранят в системе весьма популярные для криптовымогателей типы файлов (PDF, DWG, DOCX и т.д. Но данные на сервере хранятся без признака типа. Это не было самоцелью при разработке, но такой побочный эффект при встрече с криптовирусами.
caduser
17.05.2017 20:22Для вирусов это файлы вида «8352986c-a3e8-44bd-a8d0-0ab002553362». Шифрование подобных файлов может приводить к неработоспособности ОС, поэтому они их не трогают.
kompas_3d
17.05.2017 20:30наличие резервной копии любых данных в удаленном хранилище сводит опасность криптера к минимуму
В самом начале стать:
Рассматриваем самый экстремальный случай, когда резервной копии нет.
zenn
17.05.2017 23:07Ага, а потом автор берет и восстанавливает файлы с бэкапа (и не важно как он его называет, PDM/архив/копия/etc по сути это и есть бэкап, формат/местохранения которого просто не занесены в сигнатуры вируса из-за непопулярности данного ПО).
caduser
18.05.2017 00:15«по сути это и есть бэкап, формат/местохранения которого просто не занесены в сигнатуры вируса»
>
Какую сигнатуру можно применить для файлов и папок вида
de736101-7c5b-4a90-ace9-a23a7f4e10a9
010d397a-cf8b-4c0a-87c1-604b1cd010a1
7888f5ac-e357-4898-8ee6-93d760f1109f
…
?mickvav
18.05.2017 06:31Что мешает криптотрояну посмотреть в реестре, в какую директорию вы установились, и зарубить там всё не глядя?
caduser
18.05.2017 09:22Вы правы, криптовирус может посмотреть в реестре директорию установки (по умилению это C:\Program Files...). Там он найдет исполняемые файлы уничтожение которых приведёт к неработоспосбности Pilot-Server, но данных там нет. Данные хранятся отдельно, в директориях, известных только службе PilotServer.exe
yukon39
18.05.2017 10:55Откуда известных? Не в астрале же Pilot-Server хранит расположение каталога с данными, а где-то куда он по умолчанию обращается — в реестре, конфигурационном файле, командной строке.
Почему бы шифровальщику не заглянуть по указанному пути и не узнать каталог?caduser
18.05.2017 12:46Расположение баз указывает администратор при её подключении, путь хранится где-то в XML. Конечно, можно пути к базам в зашифрованном виде хранить, хоть в реестре, хоть в XML, но это уже попытка защита от специфической, целенаправленной атаки. От таких атак совершенно другие мероприятия нужны.
Cenzo
18.05.2017 08:48А если криптовирусы всё-таки начнут определять тип содержимого не по расширению а по начальной сигнатуре, как делают даже простые просмотрщики картинок?
kompas_3d
18.05.2017 10:51Так самый простой просмотрщик картинок весит в разы больше, чем самый сложный вирус. Такой вирус может и во вложение к письму не влезть)
zirix
18.05.2017 14:40Вирусы стараются зашифровать как можно больше важных файлов и за минимальное время. Именно поэтому они шифруют не все, а только определенный набор расширений.
Чтобы не испортить систему достаточно исключить системные пути.
- В начало файла почти всегда добавляют метку, указывающую на тип файла. Чтобы ее считать достаточно пары функций и сотня лишних байт в бинарнике.
В любой момент может появиться шифровальщик, который будет шифровать все. В том числе файлы вашей системы.
Cenzo
18.05.2017 22:19Библиотека libmagic.so у меня в линуксе весит аж целых 146KB, причем она умеет определять огромное количество форматов. Уверен что для целевых файлов вируса такой libmagic будет занимать на порядок меньше.
caduser
19.05.2017 10:09Посмотрим применят ли разработчики вирусов предложенное вами решение. Если применят, то как вариант — опциональное шифрование тел файлов в файловом архиве сервера. Возможно, с небольшим ущербом скорости доступа.
kompas_3d
19.05.2017 11:14А сколько всего библиотек нужно установить на линукс, чтобы WannaCry заработал?)
Cenzo
19.05.2017 21:38Понятно, что WannaCry не работает под Linux, зато libmagic вполне себе кроссплатформенная штука. Я это всё к тому, что очевидно единственный способ надежно спасти файлы это держать бэкапы на удалённой системе, версионирование которой не даст вирусу возможности удалить файлы, даже если произойдет бэкап после шифрования. Спасение файлов на локальной системе это security by obscurity в любом случае.
caduser
19.05.2017 21:58Согласен, security by obscurity здесь присутствует. Ни в коем случае не пытаюсь представить описанный эксперимент как пример надежной защиты. Скорее побочный эффект от технического решения в конкретной системе и принципа работы известных на данный момент криптовирусов. Надеюсь кому-то пригодится с точки зрения понимания работы как первого так и второго, а кому-то и данные спасти.
Demon14589
17.05.2017 20:20+1Резервные копии хранятся на той же системе, но в файлах с расширением не знакомым для вируса?
Странное решение, возьмут и добавят это расширение в код вируса. По сути это аналог других программ для бэкапа только с меньшими возможностями.caduser
17.05.2017 20:24+1«но в файлах с расширением не знакомым для вируса?»
>
В файлах без расширений. Для вирусов это файлы вида «8352986c-a3e8-44bd-a8d0-0ab002553362»
kompas_3d
17.05.2017 20:27Функция бэкапа в данном случае не более чем приятная возможность. Основная функция программы — это согласование документов и их последующее хранение.
xforce
17.05.2017 20:28А зачем на скринах такой странный блюр? Через него всё читается успешно даже глазами без особого напряга, это какие-то секретные данные?
caduser
17.05.2017 20:31+1Данные не секретные, в эксперименте заражалась тестовая база. Но при публикации скрины прошли стандартный процесс подготовки :)
SirEdvin
17.05.2017 22:21В целом, можно характеризовать как "храните свои данные в облаке с "корзиной" для удаленных файлов",
caduser
18.05.2017 00:25+1В статье описаны результаты реального эксперимента, с заражением как клиентской системы, так и серверной. Это не облачный случай :)
SirEdvin
18.05.2017 16:52Чем описанное решение в статье отличается, от, например приватного облака с шифрованным разделом? (Например, seafile).
kompas_3d
18.05.2017 16:58Это PDM-система. Её основная функция — это хранение и согласование документов. Задания можно выдавать, планы составлять и т.п.
caduser
18.05.2017 17:07Я не тестировал Seafile совместно с шифрованным разделом. На что нужно обратить внимание?
lcat
18.05.2017 08:48Скажите пожалуйста, это у меня одного проблема с неподписанными драйверами подключаемого хранилища на вин 10? Тикет вроде давно заводил, но никаких исправлений не видно. А потестировать ваш пдм хотелось бы
khindikaynen
18.05.2017 10:58+1Добрый день! Мы в курсе проблемы, ждем фикса от разработчика драйвера, использующегося в нашей системе. Обойти проблему на данный момент можно отключив опцию Secure Boot в BIOS.
rd_nino
Что мешает криптовирусу зашифровать сами файлы баз данных?
caduser
Файлы баз Pilot не известны для криптовирусов
caduser
Файлы вида «8352986c-a3e8-44bd-a8d0-0ab002553362» криптовирусы, скорее всего, шифровать не будут, т.к. это может повредить систему жертвы. Но даже если он поймет какой именно файл является базой, ему помешает еще один фактор. В системе Pilot сервер приложений и СУБД объединены в один процесс PilotServer.exe, а криптовирусы убивают процессы перебирая конечный список СУБД командами типа 'taskkill.exe /f /im sqlserver.exe'.
Goodkat
Т.е. вся эта защита по типу Неуловимого Джо?
kompas_3d
Файл без расширения.
1) Как он его найдёт, чтобы зашифровать?
2) Как он определит, что это не файл, отвечающий за работу самой операционной системы? Выкуп никто не заплатит, если не увидит сообщение с требованием выкупа.
Goodkat
1) FindFirstFile, FindNextFile
2) GetWindowsDirectory, GetSystemDirectory, SHGetSpecialFolderPath
caduser
Это просто WinAPI методы. Как выглядит предполагаемый вами алгоритм их вызова в криптовирусах?
Goodkat
Найти и зашифровать все доступные на запись пользовательские папки и файлы, кроме папки с операционной системой и, может быть, папки Program Files. Или вы храните свои архивы в C:\Windows\System32?
kompas_3d
Ладно допустим, а что он сделает, если сервер всё-таки на линуксе будет?
Goodkat
caduser,kompas_3d
Ребят, вы сперва договоритесь между собой, у вас серверная часть на Linux или криптовирус не может зашифровать файлы, потому что у них нет расширения :)
В своём изначальном комментарии я исходил из вот этого высказывания caduser.
kompas_3d
Так одно другому не мешает, у нас эшелонированная оборона) Как только вирус научится шифровать файлы без расширений, ему придётся учится работать под линуксом)
Goodkat
По какому протоколу клиент общается с сервером?
caduser
HTTPS или HTTP
caduser
HTTPS или HTTP
caduser
Вы правы, теоретически так может сработать. Но почему криптовирусы так не делают?
Goodkat
Недоработка, исправим.
caduser
Я готов протестировать ваше исправление. Дайте знать когда исправите