Рейтинг:
7
Randor
Привет,
Вы абсолютно можете это сделать, но это большая работа и потребует очень высокий уровень экспертизы.
1. ) вам нужно будет создать подписанный Водитель Элама[^]. Вы можете поместить свою рабочую станцию в тестовый режим[^] и сгенерируйте самозаверяющий сертификат EKU.
2.) Вам нужно будет создать системную службу, которая работает как защищенный сервис[^].
3. ) из службы защищенной системы вы можете запускать дочерние процессы, которые будут работать как защищенный процесс. Обратите внимание,что защищенные процессы не могут иметь никаких графических потоков.
Все библиотеки DLL и исполняемые файлы должны быть подписаны одним и тем же сертификатом. Вам нужно будет сгенерировать специальные сертификаты с экю 1.3.6.1.5.5.7.3.3 (кодовое проектирование) и 1.3.6.1.4.1.311.61.4.1 (ранний запуск).
Что-то вроде этого:
makecert.exe -a SHA256 -r -pe -ss YourCertStore -n "CN=YourTestElam" -eku 1.3.6.1.4.1.311.61.4.1,1.3.6.1.5.5.7.3.3 -sr localmachine YourTestElam.cer
Удачи. В этом кратком резюме много недостающих шагов.
с наилучшими пожеланиями,
- Дэвид Делон
T.s. Arun
Но защищен службы Windows из Windows 8.1. Но нас в первую очередь разработка для XP и Vista. Почитайте что-нибудь о его обратной совместимости с vista. Но как насчет XP?
Randor
Во-первых, есть два способа убить процесс в Microsoft Windows.
1.) красиво с сообщением WM_CLOSE.
2.) принудительно с помощью TerminateProcess, который убивает и разрушает процесс, потенциально оставляя большую часть дескрипторов процессов и объектов, оставшихся в ядре. Другими словами, это может привести к утечке ресурсов.
Чтобы справиться с хорошим методом: для Windows XP вам просто нужно обработать / перехватить сообщение окна WM_CLOSE в графическом приложении GUI или CTRL_CLOSE_EVENT в консольном приложении, чтобы предотвратить "завершение задачи" из Диспетчера задач Windows XP.
Диспетчер задач в Windows XP вызывает функцию EndTask, чтобы убить процесс.
https://msdn.microsoft.com/en-us/library/windows/desktop/ms633492(v=против 85). aspx
Принудительный метод уничтожения процесса: чтобы предотвратить принудительное завершение процесса в Windows XP, вы можете подключить NtTerminateProcess к драйверу устройства в режиме ядра и отфильтровать его по идентификатору процесса (PID).
Вас призывают не делать этого... метод, который я дал в своем первоначальном ответе, заключается в том, как антивирусные продукты и продукты безопасности защищают свой процесс usermode. Мой первоначальный ответ - это единственный санкционированный Microsoft метод защиты процесса от завершения пользовательского режима.
с наилучшими пожеланиями,
- Дэвид Делон
T.s. Arun
Извините за мое невежество.
Вы предлагаете разработать разные реализации продукта для разных ОС?
Это законно, чтобы пойти с Windows Protected Service. Но что мы будем делать с компьютерами XP?
И окна защищены служба совместима даже с Windows 7 и перспективы?
Следует ли нам разработать отдельный EXE-файл для XP, который подключается к NtTerminateProcess?
Randor
Нет такой вещи, как глупый вопрос. Каждый должен с чего-то начать.
Да, если вы планируете поддерживать устаревшие операционные системы, такие как Windows XP и современная ОС, то вам, скорее всего, потребуется реализовать несколько методов.
Я считаю, что защищенные процессы поддерживаются только в Vista и выше. Существуют дополнительные требования к Windows 10... это движущаяся цель.
В старые времена XP почти все коммерческие поставщики безопасности использовали SSDT-крючок NtTerminateProcess и NtCreateProcess через драйвер устройства как для защиты процесса защиты от вредоносных программ, так и для фильтрации процесса создания/завершения. Сегодня эти методы осуждаются и совершенно не поддерживаются. Вы не можете сделать это в операционных системах Vista+ из-за KPP/PatchGuard.
Опять же, единственным санкционированным Microsoft методом защиты процесса является программа Microsoft ELAM, описанная в моем решении выше.
T.s. Arun
Спасибо за ваше терпение.
Поскольку Microsoft отказалась от поддержки Windows XP, я понимаю, что именно поэтому они не распространяют защищенный сервис на XP.
Не могли бы вы немного подробнее рассказать о том, как зарегистрировать один продукт в качестве защищенной службы windows? Доступен ли он только для защиты от вредоносных программ? Как насчет пакета безопасности, который обеспечивает управление USB, защиту данных и тому подобное? Делает окна, защищенные службы может быть продлен до люксов такая охрана?
Randor
Вы должны обратиться к документации Microsoft для раннего запуска антивируса и взглянуть на образец кода:
https://github.com/Microsoft/Windows-driver-samples/tree/master/security/elam
Инструкции по установке в качестве системной службы есть.
У меня нет ответа на вторую часть вашего вопроса; Вы просите меня определить, что такое "защита от вредоносных программ".
Имейте в виду, что существует разница между "университетскими исследовательскими проектами" и разработкой коммерческих продуктов. Если ваша команда намерена выпустить коммерческий продукт есть много предпосылок:
https://docs.microsoft.com/en-us/windows-hardware/drivers/install/elam-prerequisites
с наилучшими пожеланиями,
- Дэвид Делон
[no name]
Интересный и полезный ответ о чем-то новом для меня. Что касается голосования??