Может ли Pilot-ICE спасти данные от вирусов-шифровальщиков? Чтобы ответить на этот вопрос, мы провели экспериментальное заражение нашумевшим вирусом Wana Decrypt0r 2.0 изолированной тестовой системы, на которой запущен сервер Pilot-Server и клиент Pilot-ICE. Другие криптовирусы действуют по схожему принципу, отличается только способ заражения. Рассматриваем самый экстремальный случай, когда резервной копии нет.



Рассказывает Дмитрий Поскребышев — руководитель отдела разработки систем управления инженерными данными.

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)


  1. rd_nino
    17.05.2017 19:37
    +3

    Что мешает криптовирусу зашифровать сами файлы баз данных?


    1. caduser
      17.05.2017 19:50

      Файлы баз Pilot не известны для криптовирусов


    1. caduser
      18.05.2017 00:03

      Файлы вида «8352986c-a3e8-44bd-a8d0-0ab002553362» криптовирусы, скорее всего, шифровать не будут, т.к. это может повредить систему жертвы. Но даже если он поймет какой именно файл является базой, ему помешает еще один фактор. В системе Pilot сервер приложений и СУБД объединены в один процесс PilotServer.exe, а криптовирусы убивают процессы перебирая конечный список СУБД командами типа 'taskkill.exe /f /im sqlserver.exe'.


      1. Goodkat
        18.05.2017 09:38
        +1

        криптовирусы, скорее всего, шифровать не будут


        Т.е. вся эта защита по типу Неуловимого Джо?


        1. kompas_3d
          18.05.2017 10:56

          Файл без расширения.
          1) Как он его найдёт, чтобы зашифровать?
          2) Как он определит, что это не файл, отвечающий за работу самой операционной системы? Выкуп никто не заплатит, если не увидит сообщение с требованием выкупа.


          1. Goodkat
            18.05.2017 11:26

            1) FindFirstFile, FindNextFile
            2) GetWindowsDirectory, GetSystemDirectory, SHGetSpecialFolderPath


            1. caduser
              18.05.2017 12:50
              +1

              Это просто WinAPI методы. Как выглядит предполагаемый вами алгоритм их вызова в криптовирусах?


              1. Goodkat
                18.05.2017 13:49
                +1

                Найти и зашифровать все доступные на запись пользовательские папки и файлы, кроме папки с операционной системой и, может быть, папки Program Files. Или вы храните свои архивы в C:\Windows\System32?


                1. kompas_3d
                  18.05.2017 15:57

                  Найти и зашифровать все доступные на запись пользовательские папки и файлы

                  Ладно допустим, а что он сделает, если сервер всё-таки на линуксе будет?
                  Серверную часть можно установить и на Linux


                  1. Goodkat
                    18.05.2017 17:05
                    +1

                    caduser,kompas_3d
                    Ребят, вы сперва договоритесь между собой, у вас серверная часть на Linux или криптовирус не может зашифровать файлы, потому что у них нет расширения :)

                    В своём изначальном комментарии я исходил из вот этого высказывания caduser.


                    1. kompas_3d
                      18.05.2017 17:09
                      +1

                      у вас серверная часть на Linux или криптовирус не может зашифровать файлы, потому что у них нет расширения :)

                      Так одно другому не мешает, у нас эшелонированная оборона) Как только вирус научится шифровать файлы без расширений, ему придётся учится работать под линуксом)


                      1. Goodkat
                        18.05.2017 18:22

                        По какому протоколу клиент общается с сервером?


                        1. caduser
                          18.05.2017 19:29
                          +1

                          HTTPS или HTTP


                        1. caduser
                          18.05.2017 19:29

                          HTTPS или HTTP


                1. caduser
                  18.05.2017 19:33

                  Вы правы, теоретически так может сработать. Но почему криптовирусы так не делают?


                  1. Goodkat
                    19.05.2017 00:11

                    Недоработка, исправим.


                    1. caduser
                      19.05.2017 09:44

                      Я готов протестировать ваше исправление. Дайте знать когда исправите


  1. pnetmon
    17.05.2017 19:43
    +1

    Как решается с размером диска — а то получается увеличивается размер хранимых данных, а свободного места обычно меньше 20% от общего размера диска.


    1. caduser
      17.05.2017 20:02
      +1

      В клиенте есть команда для очистки кеша и его переноса на другие диски. Но в будущем хотелось бы добавить авто-очистку по квоте.


      1. caduser
        17.05.2017 20:07

        image


      1. caduser
        17.05.2017 20:25
        +1


  1. Machine79
    17.05.2017 19:51

    Интересно столько написано статей о WannaCry А как они получают информацию кто заплатил? Столько зараженных машин и надо контроль вести учета кого разблокировать. Скорее всего они каким то образом связываются с клиентом скажем так? Или в вирусе прописано с какого кошелька отправлено? Как происходит вся система оплаты?


    1. kompas_3d
      17.05.2017 19:54

      Это не к нам вопрос наверно) Это лучше у представителей антивирусных компаний узнать.


    1. dartraiden
      17.05.2017 20:06

      Где-то в комментариях видел, что суммы выкупа якобы разные, видимо, по ним и определяют. Но не факт, что это правда.


    1. evehicks
      17.05.2017 20:44
      +2

      В многочисленных статьях о WannaCry на хабре была информация о том, что данный зловред не дешифрует файлы после получения требуемой суммы. Думаю данная информация отвечает на ваш вопрос.


      1. Machine79
        18.05.2017 16:00

        Я где то читал что дешифрует? Хорошо Взять Vault они в принципе схожи чем то? Как понимают что отправил деньги именно тот пользователь?


        1. dartraiden
          18.05.2017 21:32

          Проблему в коде малвари заметили специалисты Symantec Security Response. По их словам, в код WannaCry закрался баг, который провоцирует состояние гонки (race condition) и не дает шифровальщику генерировать уникальный биткоин-адрес для каждой отдельной жертвы. Из-за этого вымогатель оперирует только тремя известными специалистам кошельками и не имеет возможности проследить платежи, поступившие от конкретных пользователей.

          Скорее всего, именно этим объясняется тот факт, что пока никто не сообщал о пользователях, которые благополучно расшифровали бы свои файлы после выплаты выкупа. Эксперты полагают, операторы WannaCry попросту не могут восстановить файлы некоторых жертв.
          источник


          1. Machine79
            19.05.2017 01:21

            Простите дезинформировали меня На каком то сайте или комментарий не помню был! Спасибо интересная статья на источник. Парень рассказывает как он все проделывал в течении дня изучая WannaCry! Такой вопрос возможно не по теме но все таки Где скачать оригинал WannaCry для теста и изучения ????


            1. dartraiden
              19.05.2017 11:18

              https://geektimes.ru/post/289153/#comment_10065183

              Но там сам Dropbox уже заблокировал доступ к файлу. Может, пользователь перезальёт.


            1. caduser
              19.05.2017 11:24

              Например здесь http://www.opennet.ru/openforum/vsluhforumID3/111229.html#14


  1. AllexIn
    17.05.2017 20:00
    +3

    Статья не интересная.
    О боже мой Система контроля версий защищена от порчи данных на стороне клиента! КТо бы мог подумать!


    1. caduser
      17.05.2017 20:14
      +1

      Скорее о том, как пользователям Pilot-ICE восстановить данные если заражение произошло на сервере и/или на клиенте.


      1. Tishka17
        17.05.2017 20:19

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


        1. caduser
          17.05.2017 20:29
          +1

          Так называемые «коммерческие криптовирусы», как правило, шифруют только определённые типы файлов, иначе операционная система станет неработоспособной и с пользователя не взять денег.


        1. kompas_3d
          18.05.2017 16:42

          Сервер может на линуксе быть:

          Серверную часть можно установить и на Linux


    1. kompas_3d
      17.05.2017 20:18

      В данном случае статья о том, как PDM-система защищена от порчи данных на стороне клиента. Система контроля версий — это способ реализации этой защиты. Наши пользователи не всегда знают, что такое система контроля версий, но они заинтересованы в сохранении собственных данных. Эта статья может быть дополнительным аргументом для IT-специалистов предприятий, чтобы убедить руководство и инженеров установить PDM-систему.


  1. zenn
    17.05.2017 20:08
    +2

    Извините, но такое чувство что автор этого ПО пытается «сорвать покровы» — наличие резервной копии любых данных в удаленном хранилище сводит опасность криптера к минимуму (и это в современном ИТ мире является стандартной практикой, как говорится админы делятся на 2 типа — те, кто делает бэкапы, и те, кто уже делает бэкапы). Кроме того, достаточно сомнительно выставлять преимуществом низкую популярность ПО (целью криптера оно не было и его авторы едва ли знали о существовании вашей системы).


    1. caduser
      17.05.2017 20:17

      Пользователи Pilot хранят в системе весьма популярные для криптовымогателей типы файлов (PDF, DWG, DOCX и т.д. Но данные на сервере хранятся без признака типа. Это не было самоцелью при разработке, но такой побочный эффект при встрече с криптовирусами.


      1. caduser
        17.05.2017 20:22

        Для вирусов это файлы вида «8352986c-a3e8-44bd-a8d0-0ab002553362». Шифрование подобных файлов может приводить к неработоспособности ОС, поэтому они их не трогают.


    1. kompas_3d
      17.05.2017 20:30

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

      В самом начале стать:
      Рассматриваем самый экстремальный случай, когда резервной копии нет.


      1. AllexIn
        17.05.2017 23:06
        +2

        А разве файлы на вашем сервере — это не аналог резервной копии?


        1. kompas_3d
          18.05.2017 18:52

          Аналогом можно конечно считать, но для пользователя это просто корзина. Для пользователя резервная копия — это когда всю базу куда-то целенаправленно сохраняют.


      1. zenn
        17.05.2017 23:07

        Ага, а потом автор берет и восстанавливает файлы с бэкапа (и не важно как он его называет, PDM/архив/копия/etc по сути это и есть бэкап, формат/местохранения которого просто не занесены в сигнатуры вируса из-за непопулярности данного ПО).


        1. caduser
          18.05.2017 00:15

          «по сути это и есть бэкап, формат/местохранения которого просто не занесены в сигнатуры вируса»
          >
          Какую сигнатуру можно применить для файлов и папок вида
          de736101-7c5b-4a90-ace9-a23a7f4e10a9
          010d397a-cf8b-4c0a-87c1-604b1cd010a1
          7888f5ac-e357-4898-8ee6-93d760f1109f

          ?


          1. mickvav
            18.05.2017 06:31

            Что мешает криптотрояну посмотреть в реестре, в какую директорию вы установились, и зарубить там всё не глядя?


            1. caduser
              18.05.2017 09:22

              Вы правы, криптовирус может посмотреть в реестре директорию установки (по умилению это C:\Program Files...). Там он найдет исполняемые файлы уничтожение которых приведёт к неработоспосбности Pilot-Server, но данных там нет. Данные хранятся отдельно, в директориях, известных только службе PilotServer.exe


              1. yukon39
                18.05.2017 10:55

                Откуда известных? Не в астрале же Pilot-Server хранит расположение каталога с данными, а где-то куда он по умолчанию обращается — в реестре, конфигурационном файле, командной строке.

                Почему бы шифровальщику не заглянуть по указанному пути и не узнать каталог?


                1. caduser
                  18.05.2017 12:46

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


          1. Cenzo
            18.05.2017 08:48

            А если криптовирусы всё-таки начнут определять тип содержимого не по расширению а по начальной сигнатуре, как делают даже простые просмотрщики картинок?


            1. kompas_3d
              18.05.2017 10:51

              Так самый простой просмотрщик картинок весит в разы больше, чем самый сложный вирус. Такой вирус может и во вложение к письму не влезть)


              1. zirix
                18.05.2017 14:40

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


                2. В начало файла почти всегда добавляют метку, указывающую на тип файла. Чтобы ее считать достаточно пары функций и сотня лишних байт в бинарнике.

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


                1. caduser
                  18.05.2017 19:43

                  Согласен, это может произойти. Над быть к этому готовым.


              1. Cenzo
                18.05.2017 22:19

                Библиотека libmagic.so у меня в линуксе весит аж целых 146KB, причем она умеет определять огромное количество форматов. Уверен что для целевых файлов вируса такой libmagic будет занимать на порядок меньше.


                1. caduser
                  19.05.2017 10:09

                  Посмотрим применят ли разработчики вирусов предложенное вами решение. Если применят, то как вариант — опциональное шифрование тел файлов в файловом архиве сервера. Возможно, с небольшим ущербом скорости доступа.


                1. kompas_3d
                  19.05.2017 11:14

                  А сколько всего библиотек нужно установить на линукс, чтобы WannaCry заработал?)


                  1. Cenzo
                    19.05.2017 21:38

                    Понятно, что WannaCry не работает под Linux, зато libmagic вполне себе кроссплатформенная штука. Я это всё к тому, что очевидно единственный способ надежно спасти файлы это держать бэкапы на удалённой системе, версионирование которой не даст вирусу возможности удалить файлы, даже если произойдет бэкап после шифрования. Спасение файлов на локальной системе это security by obscurity в любом случае.


                    1. caduser
                      19.05.2017 21:58

                      Согласен, security by obscurity здесь присутствует. Ни в коем случае не пытаюсь представить описанный эксперимент как пример надежной защиты. Скорее побочный эффект от технического решения в конкретной системе и принципа работы известных на данный момент криптовирусов. Надеюсь кому-то пригодится с точки зрения понимания работы как первого так и второго, а кому-то и данные спасти.


  1. Demon14589
    17.05.2017 20:20
    +1

    Резервные копии хранятся на той же системе, но в файлах с расширением не знакомым для вируса?
    Странное решение, возьмут и добавят это расширение в код вируса. По сути это аналог других программ для бэкапа только с меньшими возможностями.


    1. kompas_3d
      17.05.2017 20:21

      Это не бэкап. Это PDM-система.


    1. caduser
      17.05.2017 20:24
      +1

      «но в файлах с расширением не знакомым для вируса?»
      >
      В файлах без расширений. Для вирусов это файлы вида «8352986c-a3e8-44bd-a8d0-0ab002553362»


    1. kompas_3d
      17.05.2017 20:27

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


  1. Pycz
    17.05.2017 20:23
    +1

    Передавайте привет Седову Вячеславу Ивановичу! (Честно говоря, это «замазывание» своей функции не выполняет)


    1. kompas_3d
      17.05.2017 20:44

      Да просто всё лишнее слегка замазано)


  1. xforce
    17.05.2017 20:28

    А зачем на скринах такой странный блюр? Через него всё читается успешно даже глазами без особого напряга, это какие-то секретные данные?


    1. caduser
      17.05.2017 20:31
      +1

      Данные не секретные, в эксперименте заражалась тестовая база. Но при публикации скрины прошли стандартный процесс подготовки :)


  1. SirEdvin
    17.05.2017 22:21

    В целом, можно характеризовать как "храните свои данные в облаке с "корзиной" для удаленных файлов",


    1. caduser
      18.05.2017 00:25
      +1

      В статье описаны результаты реального эксперимента, с заражением как клиентской системы, так и серверной. Это не облачный случай :)


      1. SirEdvin
        18.05.2017 16:52

        Чем описанное решение в статье отличается, от, например приватного облака с шифрованным разделом? (Например, seafile).


        1. kompas_3d
          18.05.2017 16:58

          Это PDM-система. Её основная функция — это хранение и согласование документов. Задания можно выдавать, планы составлять и т.п.


        1. caduser
          18.05.2017 17:07

          Я не тестировал Seafile совместно с шифрованным разделом. На что нужно обратить внимание?


  1. lcat
    18.05.2017 08:48

    Скажите пожалуйста, это у меня одного проблема с неподписанными драйверами подключаемого хранилища на вин 10? Тикет вроде давно заводил, но никаких исправлений не видно. А потестировать ваш пдм хотелось бы


    1. khindikaynen
      18.05.2017 10:58
      +1

      Добрый день! Мы в курсе проблемы, ждем фикса от разработчика драйвера, использующегося в нашей системе. Обойти проблему на данный момент можно отключив опцию Secure Boot в BIOS.