Защита от других драйверов

Тема в разделе "WASM.NT.KERNEL", создана пользователем Hippey, 18 янв 2012.

  1. Hippey

    Hippey New Member

    Публикаций:
    0
    Регистрация:
    24 окт 2011
    Сообщения:
    49
    Здравствуйте! Есть программа, которая защищает процесс используя этот метод http://msdn.microsoft.com/en-us/library/windows/hardware/ff558692.aspx , все отлично, диспетчер задач и другие подобные программки не имеют доступа у процессу, но вот программы, которые тоже используют драйвер могут делать все что угодно, не смотря на эту защиту. Подскажите, как можно защититься в этом случае?

    Спасибо!
     
  2. h0t

    h0t Member

    Публикаций:
    0
    Регистрация:
    3 апр 2011
    Сообщения:
    735
    Нужно рассматривать конкретные случаи, так как в ядре есть возможность в принципе сделать все что угодно)
     
  3. Hippey

    Hippey New Member

    Публикаций:
    0
    Регистрация:
    24 окт 2011
    Сообщения:
    49
    Например хукнуть ntpopenprocess и ntduplicateobject так, чтобы другие драйвера тоже не могли открыть хэндл, так можно?
     
  4. x64

    x64 New Member

    Публикаций:
    0
    Регистрация:
    29 июл 2008
    Сообщения:
    1.370
    Адрес:
    Россия
    Конечно!
    Но бесполезно.
     
  5. Hippey

    Hippey New Member

    Публикаций:
    0
    Регистрация:
    24 окт 2011
    Сообщения:
    49
    почему бессмысленно?
     
  6. Hippey

    Hippey New Member

    Публикаций:
    0
    Регистрация:
    24 окт 2011
    Сообщения:
    49
    или как можно защитить процесс от другого драйвера?
     
  7. XshStasX

    XshStasX New Member

    Публикаций:
    0
    Регистрация:
    9 авг 2008
    Сообщения:
    991
    Hippey
    Если в общем случаи то только убить процесс), ни как в общем.
    Самая система обращается часто к процессу, а подделать обращение не особо трудно.
     
  8. XshStasX

    XshStasX New Member

    Публикаций:
    0
    Регистрация:
    9 авг 2008
    Сообщения:
    991
    Потому что можно самому сделать все то что делает ntpopenprocess / ntduplicateobject
     
  9. T800

    T800 Member

    Публикаций:
    0
    Регистрация:
    7 дек 2006
    Сообщения:
    293
    Адрес:
    Moscow
    Hippey
    А ты вообще проверял свою блокировку на Win7 x86 и Win7 x64 ?
    При старте процесса всякие системные процессы пытаются открыть свежеиспечённый процесс. Ну а если этот процесс звук выводит (игрушка какая нибудь), то и audiodg.exe пытается присобачится к процессу. А если у него не получится, то и звук новый процесс не сможет исдать.
    Так что у тебя всё равно должны быть исключения, которым ты доступ разрешаешь. А как раз из под этих разрешений и можно постоить "атаку" на "защищенный" процесс.
    ЗЫ. А из под другого драйвера вообще всё можно ))
    ЗЫ2. Не вздумай хукать функи на x64.
     
  10. TermoSINteZ

    TermoSINteZ Синоби даоса Команда форума

    Публикаций:
    2
    Регистрация:
    11 июн 2004
    Сообщения:
    3.552
    Адрес:
    Russia
    T800
    Вы про защиту ядра от патчинга?

    Hippey
    Лучше всего защищено то, чего нету. Не создавайте процесс - и не нужно будет его защищать.
    Для легального софта, тот вариант который, вы тут написали, вполне годен. Оставьте его и не парьтесь больше.
    Если софт малварный - ваши трудности уже.
     
  11. x64

    x64 New Member

    Публикаций:
    0
    Регистрация:
    29 июл 2008
    Сообщения:
    1.370
    Адрес:
    Россия
    Это вряд ли, т.к. ObRegisterCallbacks() требует, чтобы драйвер был подписан.
     
  12. Hippey

    Hippey New Member

    Публикаций:
    0
    Регистрация:
    24 окт 2011
    Сообщения:
    49
    А как можно запустить программу не создавая процесса?
     
  13. Hippey

    Hippey New Member

    Публикаций:
    0
    Регистрация:
    24 окт 2011
    Сообщения:
    49
    или можно ли вообще узнать, что какая-то программа или драйвер изменила память моего процесса, засунула свою длл например или типа того?
     
  14. Malfoy

    Malfoy New Member

    Публикаций:
    0
    Регистрация:
    2 янв 2012
    Сообщения:
    698
    x64
    Это наверно поможет. Запилить её в свой драйвер и распространите среди своих знакомых :lol:
     
  15. Malfoy

    Malfoy New Member

    Публикаций:
    0
    Регистрация:
    2 янв 2012
    Сообщения:
    698
    TermoSINteZ
    На патчах мир не сошёлся. Я к примеру их вообще не юзаю. Это не мешает мне контролировать ваш аверкий код.
     
  16. Hippey

    Hippey New Member

    Публикаций:
    0
    Регистрация:
    24 окт 2011
    Сообщения:
    49
    но я использую ObRegisterCallbacks(), но все равно чужой драйвер имеет доступ
     
  17. x64

    x64 New Member

    Публикаций:
    0
    Регистрация:
    29 июл 2008
    Сообщения:
    1.370
    Адрес:
    Россия
    Тебе уже сказали - нужна конкретика.
    Каким именно образом чужой драйвер "имеет доступ"?
     
  18. Malfoy

    Malfoy New Member

    Публикаций:
    0
    Регистрация:
    2 янв 2012
    Сообщения:
    698
    x64
    Не имеет, а получает. Когда дров доступ поимеет, то он всех поимеет.. ну вы же понимаете. Лочить его нужно при попытке получить доступ.
     
  19. n2kk

    n2kk New Member

    Публикаций:
    0
    Регистрация:
    28 дек 2011
    Сообщения:
    1
    Hippey
    Противостоять драйверам невозможно. Единственный шанс-не дать загрузить вражеский драйвер: к примеру, похукать NtLoadDriver и спрашивать у юзера что делать. Существует миллион способов свалить процесс из ядра, все дырки не заткнете. В конце-концов, от тупого перебора хендлов процессов/потоков (с их закрытием, дублированием и т.д.) и до затирания памяти/разрушения структур процесса.
    Перехват в ядре даёт гарантию защиты (и то, не всегда) только от юзермода. В ядре, на худой конец, можно хоть планировщик подправить и ваш процесс будет висеть без процессорного времени.
     
  20. shchetinin

    shchetinin Member

    Публикаций:
    0
    Регистрация:
    27 май 2011
    Сообщения:
    715
    Malfoy
    Да это вам не LDE подъюзать, тут графы вас не спасут! Айс умел это делать , да и виндбг может. Логический вывод можно, но потребуется "магия"))