1. Если вы только начинаете программировать на ассемблере и не знаете с чего начать, тогда попробуйте среду разработки ASM Visual IDE
    (c) на правах рекламы
    Скрыть объявление

Методы системной защиты

Тема в разделе "WASM.RESEARCH", создана пользователем Rel, 31 дек 2020.

  1. piligmindo

    piligmindo Member

    Публикаций:
    0
    Регистрация:
    31 дек 2018
    Сообщения:
    57
    Зачем писать 32-х битную малварь, когда 99% ОС - 64-х битные? Зачем преодолевать сложности с HG и прочими костылями из за разницы разрядности, когда можно этого не делать?
     
  2. M0rg0t

    M0rg0t Well-Known Member

    Публикаций:
    0
    Регистрация:
    18 окт 2010
    Сообщения:
    1.171
    понятия не имею, спросите у тех кто пишет. Просто что есть то есть.
     
  3. piligmindo

    piligmindo Member

    Публикаций:
    0
    Регистрация:
    31 дек 2018
    Сообщения:
    57
    Почему? Ведь если приложение 64-х битное, использует прямые вызовы сервисов по номерам через sysenter, это снимает все юзер хуки антивирусов. Кроме того, как я понял из постов Rel, антивирусы не могут перехватить sysenter, потому что работает защита KPP. Из этого следует, что это достаточно значимая техника, нет?
     
  4. HoShiMin

    HoShiMin Active Member

    Публикаций:
    5
    Регистрация:
    17 дек 2016
    Сообщения:
    912
    Адрес:
    Россия, Нижний Новгород
    Нет, не следует.
    Крупные антивирусы начинают вводить аппаратную виртуализацию, позволяющую обходить KPP.
    Кроме того, существует технология Instrumentation Callbacks, позволяющая логгировать все системные вызовы процесса из юзермода, что может быть полезно для поведенческого анализа.
    Вкупе с файловыми, сетевыми и процессными фильтрами в ядре антивирус получает достаточно информации о программе.
     
    MaKaKa, hiddy, piligmindo и ещё 1-му нравится это.
  5. M0rg0t

    M0rg0t Well-Known Member

    Публикаций:
    0
    Регистрация:
    18 окт 2010
    Сообщения:
    1.171
    piligmindo, нет; потому что аверы мониторят еще и в ядре; а любой вызов сискола - само по себе палево, т.к. легитимные проги не юзают такое.
     
    piligmindo нравится это.
  6. piligmindo

    piligmindo Member

    Публикаций:
    0
    Регистрация:
    31 дек 2018
    Сообщения:
    57
    HoShiMin, M0rg0t, спасибо, столько интересной информации! Буду читать обо всем об этом!
    --- Сообщение объединено, 8 янв 2021 ---
    А это вообще не возможно обойти?
     
  7. HoShiMin

    HoShiMin Active Member

    Публикаций:
    5
    Регистрация:
    17 дек 2016
    Сообщения:
    912
    Адрес:
    Россия, Нижний Новгород
    И да, и нет.
    Виртуализация позволяет антивирусу скрытно перехватывать функции (так, что ни ты, ни система эти перехваты не увидишь), изолировать память, создавая анклавы, мониторить доступ к системным регистрам и привилегированным инструкциям.

    Но сам по себе гипервизор - не защита. Это инструмент аппаратного мониторинга.

    Если в ядре или в драйвере есть уязвимость, юзермодный код сможет её эксплуатировать и попасть в ядро - независимо от того, под виртуализацией система или нет.
    Но, попав в ядро, код может столкнуться с ограничениями, вводимыми гипервизором.
    Например, как делает HVCI, в ядре невозможно будет динамически выделить исполняемую память или сделать исполняемые секции модулей записываемыми.
    И никакие трюки с VAD'ами, с PTE или с CR0.WriteProtect не помогут.

    И, возвращаясь к твоему вопросу про системные вызовы, - на каждый sysenter/syscall/int2e в гипервизоре будет вызван обработчик, где он сможет узнать, кто что и с какими параметрами вызывает.
     
  8. hiddy

    hiddy Member

    Публикаций:
    0
    Регистрация:
    10 мар 2019
    Сообщения:
    81
    А еще ETW и WMI, нарпимер Threat-Intelligence провайдер мониторит самые важные сервисы и по-сути позволяет детектить любой классический инжект. Да и легетимный интерфейс для перехвата сисколов возможно уже скоро появится: https://github.com/0xcpu/WinAltSyscallHandler. И еще куча всякого андока, который M$ себе припасли для защитника.

    Эмулятор как только увидит выборку к ntdll, а после вызов сервиса из иного модуля, сразу закричит тревогу.
     
    eshmereum нравится это.