FixRun (FixSecurity) - защита от шифровальщиков

FixRun (FixSecurity) - защита от шифровальщиков 3.0.0

Vitokhv

Разработчик
Сообщения
86
Реакции
107
Если параметры реестра совпали, они останутся:
[HKEY_LOCAL_MACHINE\SOFTWARE\Policies\Microsoft\Windows\Safer\CodeIdentifiers]
Но удаляются правила, при удалении фикса:
[HKEY_LOCAL_MACHINE\SOFTWARE\Policies\Microsoft\Windows\Safer\CodeIdentifiers\0\Paths]

Я проверял через 7zip архиватор, расширение .exe - блокирует.
Может ты создаешь пустой файл и переименовываешь в .exe (из за этого может писать ошибку, что файл не является приложением Win32)?
Попробуй любую программу установочную запустить в архиве.
В твоем файле все правила прописались и должны работать.
-------------------------
Можно попробовать на файле NOTEPAD.EXE он в папке Windows
Или создай текстовой документ с текстом внутри, и переименуй в .exe
 
Последнее редактирование:

andrew75

Пользователь
Сообщения
27
Реакции
6
Я вообще-то понимаю, что такое .exe файл :)
И разумеется это был реальный файл.
Там стоял winrar (но его собственную защиту я не включал).

В том-то и дело, что до установки фикса здесь
[HKEY_LOCAL_MACHINE\SOFTWARE\Policies\Microsoft\Windows\Safer\CodeIdentifiers]
никаких ключей не было. Я даже перестраховался - после удаления фикса вручную удалил там все ключи, установил и удалил фикс - ключи после удаления остались.
И если я не ошибаюсь, в предыдущей версии фикса эти ключи удалялись.

А здесь:
[HKEY_LOCAL_MACHINE\SOFTWARE\Policies\Microsoft\Windows\Safer\CodeIdentifiers\0\Paths]
все удаляется.
----------------

Сейчас еще раз попробовал у себя на компьютере.
Win7 x64 HP
Предварительно удалил здесь все ключи:
[HKEY_LOCAL_MACHINE\SOFTWARE\Policies\Microsoft\Windows\Safer\CodeIdentifiers]

Та же самая история - .exe файл из архива запускается.
Создавал zip архив. Стоит Winrar, но поставил еще и 7zip - тоже самое.
И после удаления фикса ключи в этой ветке не удалились.

Есть идеи, что у меня не так?
Я сам понял, что не так.
У меня переменная %Temp% переопределена на "c:\temp"
А у вас в путях прописывается "%LocalAppData%\Temp"

Я конечно понимаю, что обычные пользователи туда не полезут.
Но вобщем можно либо прописывать %Temp%\Rar*\ например.
Либо для надежности прописывать две строчки:
%LocalAppData%\Temp
%Temp%
(Потому что я когда экспериментировал с SRP у меня в каких-то случаях просто %Temp% не работало).
У меня создается впечатление, что кроме нас с вами это никому больше неинтересно.
Ну mike1 еще ссылки везде дает.
 
Последнее редактирование:

Dragokas

Angry & Scary Developer
Команда форума
Супер-Модератор
Разработчик
Клуб переводчиков
Сообщения
6,728
Реакции
6,209

Vitokhv

Разработчик
Сообщения
86
Реакции
107
andrew75,
Покажи свою переменную, протестирую на ней.
На Windows 7 x64 по умолчанию такие переменные:
%USERPROFILE%\AppData\Local\Temp
screenshot_15.png

На Windows XP по умолчанию такие переменные:
C:\Documents and Settings\Администратор\Local Settings\Temp
screenshot_17.png

Возможно, когда путь переменной состоит из "C:\" вместо "%USERPROFILE%" то SRP не поймет такой путь, если указывать %TEMP%
 
Последнее редактирование:

andrew75

Пользователь
Сообщения
27
Реакции
6
Вручную поменял в реестре:
%LocalAppData%\Temp\Rar*\
на
%Temp%\Rar*\
и замечательно стал блокироваться запуск .exe файлов из архива. (У меня %Temp% = с:\temp)
 

Кирилл

Команда форума
Администратор
Ассоциация VN
Сообщения
14,306
Реакции
6,310
У меня создается впечатление, что кроме нас с вами это никому больше неинтересно.
Нужны боевые испытания и более детальный просмотр разработки,времени на это еще не было.
 

Vitokhv

Разработчик
Сообщения
86
Реакции
107
Пробовал создать проект в Visual Studio 2015 - остановили вкладки без имен, и пока не определился с типом языка программирования.
Будет удобнее если иметь под рукой инструмент, а не установщик. Чтобы в любое время отменить или применить нужную функцию.
Но нужна помощь в программировании, так что пока никаких идей.

screenshot_19.png


Использование DrawMode - OwnerDrawFixed приводит к стиранию имен вкладок.
Конечно же вкладки это только начало, в остальном, нужно разбираться с привязкой команд к разным версиям Windows.
 

Vitokhv

Разработчик
Сообщения
86
Реакции
107
Релиз установщика: RELEASE

Добавлено:
- условие поиска переменной, если %USERPROFILE%\Local Settings\Temp существует в разделе [HKEY_CURRENT_USER\Environment] то разрешена установка правил для этого пути и Windows XP
- условие поиска переменной, если C:\Temp существует в разделе [HKEY_CURRENT_USER\Environment] то разрешена установка правил для пути %SystemDrive%\Temp и Windows XP
- условие поиска переменной, если %USERPROFILE%\AppData\Local\Temp существует в разделе [HKEY_CURRENT_USER\Environment] то разрешена установка правил для пути %LocalAppData%\Temp + Windows Vista и выше
- условие поиска переменной, если C:\Temp существует в разделе [HKEY_CURRENT_USER\Environment] то разрешена установка правил для пути %SystemDrive%\Temp + Windows Vista и выше

Не задействовано:
- отправка карантина (галка пока не привязана ни к чему)
- серийные номера (пока не актуально)

Не удаляемые параметры:
- не удаляем т.к. при удалении удаляется [HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\Explorer\Advanced] + HideFileExt
- не удаляем т.к. при удалении удаляется [HKEY_LOCAL_MACHINE\SOFTWARE\Policies\Microsoft\Windows\safer\CodeIdentifiers] + значения

Остальное:
- если параметр AuthenticodeEnabled больше значения 0x00000000 (0) то наложение правил отменится как и включение защиты
- если параметр PolicyScope больше значения 0x00000000 (0) то наложение правил отменится как и включение защиты
- если параметр DefaultLevel меньше значения 0x00040000 (262144) то наложение правил отменится как и включение защиты
- если параметр TransparentEnabled меньше значения 0x00000001 (1) или больше значения 0x00000001 (1) то наложение правил отменится как и включение защиты
- закрыты дыры в SRP по умолчанию: ADE ADP BAS BAT CHM CMD COM CPL CRT EXE HLP HTA INF INS ISP JS JSE LNK MDB MDE MSC MSI MSP MST OCX PCD PIF REG SCR SHS URL VB VBE VBS WSC WSF WSH
- расширения в защите WinRAR: *.exe *.msi *.com *.pif *.scr *.bat *.cmd *.lnk *.js *.jse *.vbs *.vbe *.wsf *.wsh *.reg *.cpl *.bin *.hta
 

andrew75

Пользователь
Сообщения
27
Реакции
6
Установил.
Ветка [HKEY_LOCAL_MACHINE\SOFTWARE\Policies\Microsoft\Windows\Safer\CodeIdentifiers\0\Paths]
вообще не прописалась:
fr1-jpg.30518

Да, забыл показать:
pt.jpg

А если у меня Temp = d:\temp то что будет?
А если на компьютере два пользователя и
1. у одного TEMP стандартный, а у другого нестандартный
2. У обоих TEMP нестандартный.
Что будет в этих случаях?
 

Вложения

  • fr1.jpg
    fr1.jpg
    30.6 KB · Просмотры: 150
Последнее редактирование:

Vitokhv

Разработчик
Сообщения
86
Реакции
107
Это из за регистра, пока находит только: C:\Temp
Путь c:\temp не видит.

Думаю создавать собственную переменную.
Через галку в меню при установке.
 

Vitokhv

Разработчик
Сообщения
86
Реакции
107
andrew75
Что если использовать саму переменную %TEMP% как путь ко временной папке, какой бы она не была:
%USERPROFILE%\AppData\Local\Temp
%USERPROFILE%\Local Settings\Temp
C:\Temp или c:\temp
D:\Temp или d:\temp
и т.д.

Придется переделать проект, но в итоге любой пользователь получит привязку к своей временной папке.
 
Последнее редактирование:

Dragokas

Angry & Scary Developer
Команда форума
Супер-Модератор
Разработчик
Клуб переводчиков
Сообщения
6,728
Реакции
6,209
Это из за регистра, пока находит только: C:\Temp
Это проделки SRP ?
Вы рассказать подробно можете, как происходит сравнение? Т.е. вот, вы вносите запись в реестр и т.о. при запуске программы происходит сравнение пути к этой программе с шаблонами в реестре да еще и с учётом регистра? Я правильно пониманию?
А Вы учитываете тот факт, что на XP часто бывает, что путь к программе система может взять не полный, а в формате 8.3. (пока предположим теоретически) ?
По %temp%, если это защита от запуска файлов из архивов, то так и должно быть. Zip, встроенный в ОС и WinRar используют именно эту переменную. Если запуск из браузера, то обычно используется папка "Загрузки" (опять же - брать из реестра:
HKCU\SOFTWARE\Microsoft\Windows\CurrentVersion\Explorer\User Shell Folders
HKCU\SOFTWARE\Microsoft\Windows\CurrentVersion\Explorer\Shell Folders
Скажите, а к Вашей программе где-нибуть есть описание? Я имею в виду именно подробное описание. Т.е. я допустим нею еще не пользовался, но у меня вопрос: как в точности она действует, как, например, организована работа белых списков, если я не хочу блокировать какое-то конкретное приложение (по пути / по хешу ...) ? Чем Ваша программа отличается от CryptoPrevent, какие дополнительные плюсы / минусы?
(я понимаю, что часть ответов Вы уже давали в этой теме, но может, есть уже какое-то обобщенное обновляемое описание где-то отдельно).
 
Последнее редактирование:

Vitokhv

Разработчик
Сообщения
86
Реакции
107
Для сборки установщика используется ПО Advanced Installer
Это ПО может определять поиск значений только по регистру:
screenshot_21.png
Возможно это некая недоработка в ПО, т.к. значение и точное соответствие должны иметь разницу, где значение не должно привязываться к регистру, а точное соответствие должно учитывать регистр. Но суть не в этом, далее следует вопрос, как определять все остальные буквы. Создание большего количества условий приведет к лишним действиям.

andrew75 задает правильные вопросы, на которые я стараюсь искать ответы, перенастраиваю сборку фикса пока все основные вопросы не отпадут.
Если я начну объяснять как работает программа я расскажу лишнего, на данный момент с помощью %TEMP% установщику не придется определять версию операционной системы, не придется использовать условия для поиска переменных, а так же, уменьшился список значений реестра.
Как только решим основные вопросы, начну полное описание фикса.

Вкратце о SRP
Фикс создает правила:
Код:
Windows Registry Editor Version 5.00

[HKEY_LOCAL_MACHINE\SOFTWARE\Policies\Microsoft\Windows\Safer\CodeIdentifiers\0\Paths]

[HKEY_LOCAL_MACHINE\SOFTWARE\Policies\Microsoft\Windows\Safer\CodeIdentifiers\0\Paths\{26f5b005-12e2-4e79-9013-29c7503f8d31}]
"Description"="FixSecurity"
"ItemData"=hex(2):25,00,54,00,45,00,4d,00,50,00,25,00,5c,00,77,00,7a,00,2a,00,\
  5c,00,00,00
"SaferFlags"=dword:00000000

[HKEY_LOCAL_MACHINE\SOFTWARE\Policies\Microsoft\Windows\Safer\CodeIdentifiers\0\Paths\{5600d81f-253b-485d-9312-af33c3881cad}]
"Description"="FixSecurity"
"ItemData"=hex(2):25,00,54,00,45,00,4d,00,50,00,25,00,5c,00,5f,00,74,00,63,00,\
  5c,00,00,00
"SaferFlags"=dword:00000000

[HKEY_LOCAL_MACHINE\SOFTWARE\Policies\Microsoft\Windows\Safer\CodeIdentifiers\0\Paths\{5f61d1ff-69fc-4865-8bfa-20847d53e99c}]
"Description"="FixSecurity"
"ItemData"=hex(2):25,00,54,00,45,00,4d,00,50,00,25,00,5c,00,37,00,7a,00,2a,00,\
  5c,00,00,00
"SaferFlags"=dword:00000000

[HKEY_LOCAL_MACHINE\SOFTWARE\Policies\Microsoft\Windows\Safer\CodeIdentifiers\0\Paths\{7b54220f-495a-4d82-b704-13452bef99ae}]
"Description"="FixSecurity"
"ItemData"=hex(2):25,00,54,00,45,00,4d,00,50,00,25,00,5c,00,52,00,61,00,72,00,\
  2a,00,5c,00,00,00
"SaferFlags"=dword:00000000

[HKEY_LOCAL_MACHINE\SOFTWARE\Policies\Microsoft\Windows\Safer\CodeIdentifiers\0\Paths\{edacf0d9-389a-4405-b722-eb715fabbc65}]
"Description"="FixSecurity"
"ItemData"=hex(2):25,00,54,00,45,00,4d,00,50,00,25,00,5c,00,2a,00,2e,00,7a,00,\
  69,00,70,00,5c,00,00,00
"SaferFlags"=dword:00000000

[HKEY_LOCAL_MACHINE\SOFTWARE\Policies\Microsoft\Windows\Safer\CodeIdentifiers\0\Paths\{ff37b034-47d0-4063-8e1a-0a5f9de6921a}]
"Description"="FixSecurity"
"ItemData"=hex(2):25,00,54,00,45,00,4d,00,50,00,25,00,5c,00,38,00,7a,00,2a,00,\
  5c,00,00,00
"SaferFlags"=dword:00000000

Где "ItemData" содержит:
%TEMP%\wz*\
%TEMP%\_tc\
%TEMP%\7z*\
%TEMP%\Rar*\
%TEMP%\*.zip\
%TEMP%\8z*\

Фикс не устанавливает никаких "своих" настроек в SRP, только те, что по умолчанию.
По умолчанию используется только черный список (т.е. разрешено все, кроме того, что указано в правилах):
screenshot_22.png
На изображении он помечен как "Неограниченный"

Отличие от CryptoPrevent:
- в фиксе правила SRP содержат только защиту архивов
- в CryptoPrevent используется факт заражения, если файл *.exe запустился и пытается зашифровать, то все известные пути, где могут находиться исполняемые файлы шифровальщика, блокируются (но это приводит к проблеме установки программ, которые используют временные папки)
- в фиксе не учитывается факт заражения, так как если файл запустят игнорируя блокировку, пользователя уже никак не убедить этого не делать
- фикс защищает от прямого запуска, 15 расширений (типов файлов), при запуске *.js или *.com и т.д. срабатывает команда на перенос файла в архив:
C:\Program Files\FixSecurity\Quarantine\infected (сама команда встраивается в раздел реестра [HKEY_CLASSES_ROOT\тип-файла\Shell\Zip\Command])

p.s. дополню информацию позже
p.s. перезалит файл релиза с использованием переменной %TEMP%
 
Последнее редактирование модератором:

Dragokas

Angry & Scary Developer
Команда форума
Супер-Модератор
Разработчик
Клуб переводчиков
Сообщения
6,728
Реакции
6,209
Vitokhv, у Вас программа как называется, FixRun или FixSecurity (а то имя установщика - FixRun) ?

То, что Вы написали выше по SRP (экспорты) не нужны в описании, ИМХО, возможно, даже для админов, которые могут воспользоваться Вашей программой. Думаю, это лишнее.
В описании должен быть четкий перечень того, что умеет программа, например, список расширений, который блокируется.

Уверен, что здесь явно что-то не так с карантином, наверное кавычки забыли (ОС - Win XP):
fixsec.JPG


Нынче шифровальщики модные пошли. Дроппер внутри ярлыка. Ваша программа от этого не спасает. Но можно защитится хотя бы от прямой ссылки на lnk при работе в IE.
Лог ProcMon для размышления:
lnk.jpg

Для тестов: http://dragokas.com/temp/encryptor.lnk

Также не спасает, если js, vbs запущен не через shell. Если Вы все равно императивно блокируете эти расширения, почему бы не заблокировать scripthost более глобально ?

Также, популярность в последнее время имеют скрипты ps1 (PowerShell). Если Ваша программа имеет больший рассчет на серкретарш (а для остальных Вы, надеюсь, предусмотрите возможность отключения (может, в будущем - гибкого управления (?) через ПУСК), то думаю, неплохо бы и его (PowerShell) отключить. Правда, могут пострадать некоторые системные фичи. Но секретаршам они не нужны.
 

Dragokas

Angry & Scary Developer
Команда форума
Супер-Модератор
Разработчик
Клуб переводчиков
Сообщения
6,728
Реакции
6,209
Ярлык дропает JS файл в папку %temp%
Всего лишь частный случай.
На виртуалке еще проверю дополнительно RAA Ransomware.
Заблокирует. До тех пор, пока активисты не заменят в ярлыке всего лишь одно слово на другое. Решение уже написал выше.
 
Последнее редактирование:

Vitokhv

Разработчик
Сообщения
86
Реакции
107
На Windows XP не помогают кавычки:
"%TEMP%\*.zip\"
Поможет только изменение переменной на C:\Temp

Глобально блокировать скрипты нет необходимости, защита только от курсора мыши.
 
Последнее редактирование:

Dragokas

Angry & Scary Developer
Команда форума
Супер-Модератор
Разработчик
Клуб переводчиков
Сообщения
6,728
Реакции
6,209
При чём здесь temp. Я о кавычках говорил на счёт карантина.
Вот пример команды запуска из лога:
"C:\Program Files\7-Zip\7za.exe" a -w -pinfected "C:\Program Files\FixSecurity\Quarantine\infected." C:\Documents and Settings\Администратор\Рабочий стол\raa.js
Пропущены кавычки. А вот команда глагола:
"%ProgramFiles%\7-Zip\7za.exe" a -w -pinfected "%ProgramFiles%\FixSecurity\Quarantine\infected." %1
Достаточно написать так:
"%ProgramFiles%\7-Zip\7za.exe" a -w -pinfected "%ProgramFiles%\FixSecurity\Quarantine\infected." "%1"
чтобы исправить ошибку.
Глобально блокировать скрипты нет необходимости, защита только от курсора мыши.
А зря. Можно было бы добавить такую опциональную возможность в установщик.
Получается, что против популярных современных угроз инструмент будет как решето. Ту же RAA уже несколько раз обновили. Злоумышленникам не составит труда обойти, при том используя все те же самые инструменты и форматы данных.
 
Последнее редактирование:
Сверху Снизу