T.s. Arun Ответов: 1

Как предотвратить уничтожение процесса в диспетчере задач?


Мы пытаемся создать приложение безопасности в рамках нашего проекта в колледже.

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

Например, попробуйте убить процесс AVP Касперского. Вы всегда будете получать "невозможно завершить процесс" и "операция не может быть выполнена".

Что я уже пробовал:

Я искал в интернете в течение нескольких дней и всегда заканчивался такими результатами, как "нет, вы не можете этого сделать", " Нет, вы не должны этого делать"

И продолжайте заканчивать здесь Нескончаемый процесс

Чего бы мы хотели

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

Afzaal Ahmad Zeeshan

Вы не можете этого сделать. Почему бы вы даже хотите сделать это?

Если вы хотите, чтобы Windows автоматически запускала процесс, почему бы не рассмотреть службы Windows?

T.s. Arun

планирую разработать комплекс мер безопасности. что хорошего в этом будет, если он будет легко убит любым вредоносным ПО-новичку?

1 Ответов

Рейтинг:
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]

Интересный и полезный ответ о чем-то новом для меня. Что касается голосования??