👥 Whids — система обнаружения и менеджмента инцидентов с открытым исходным кодом для Windows — Information Security Squad
👥 Whids — система обнаружения и менеджмента инцидентов с открытым исходным кодом для Windows
Это гибридное решение, объединяющее гибкий ID хоста с возможностями обнаружения инцидентов на основе обнаружения.
Механизм обнаружения построен на основе ранее разработанного механизма правил Gene, специально разработанного для сопоставления событий Windows с пользовательскими правилами.

Преимущества

  • Инструмент с открытым исходным кодом EDR
  • Гибкое обнаружение
  • Простая интеграция с другими инструментами с открытым исходным кодом (MISP, The Hive…)

Как работает

Обнаружение

  • На хосте обнаружение в реальном времени
  • Прослушивает каналы журнала событий Windows и применяет правила обнаружения
  • Пользовательские правила (мы знаем, почему мы что-то обнаруживаем)
  • Предназначен для использования с MS Sysmon
  • Обогащает события Windows для создания мощных примитивов обнаружения
  • Центральный агент распространяет правила и собирает оповещения

Менеджмент

  • Реагирует на обнаружение (при обнаружении события выше заданной критичности собираются артефакты )
  • Сбор доказательств в реальном времени (файлы, память процесса и реестры)
  • Центральный агент по сбору доказательств

Демонстрация

Пример правила

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

{
  "Name": "MaliciousLsassAccess",
  "Tags": ["Mimikatz", "Credentials", "Lsass"],
  "Meta": {
    "EventIDs": [10],
    "Channels": ["Microsoft-Windows-Sysmon/Operational"],
    "Computers": [],
    "Traces": [],
    "Criticality": 10,
    "Author": "0xrawsec"
  },
  "Matches": [
    "$ct: CallTrace ~= 'UNKNOWN'",
    "$lsass: TargetImage ~= '(?i:\\\\lsass\\.exe$)'"
  ],
  "Condition": "$lsass and $ct"
}

Вы можете найти множество других правил, а также краткое введение в синтаксис правил в репозитории Gene.

В действии

Запуск WHIDS с уже запущенным агентом Powershell Empire, который вызывает модуль Mimikatz.

WHIDS Mimikatz Demo

Herafter — это вид результата, возвращаемый WHIDS.
Дополнительный раздел добавляется к событию JSON, где сообщается о важности оповещения вместе с различными сигнатурами, которые соответствуют событию.
{
  "Event": {
    "EventData": {
      "CallTrace": "C:\\Windows\\SYSTEM32\\ntdll.dll+4bf9a|C:\\Windows\\system32\\KERNELBASE.dll+189b7|UNKNOWN(00000000259123BC)",
      "GrantedAccess": "0x1410",
      "SourceImage": "C:\\Windows\\system32\\WindowsPowerShell\\v1.0\\powershell.exe",
      "SourceProcessGUID": "{49F1AF32-DD18-5A72-0000-0010042C0A00}",
      "SourceProcessId": "2248",
      "SourceThreadId": "3308",
      "TargetImage": "C:\\Windows\\system32\\lsass.exe",
      "TargetProcessGUID": "{49F1AF32-DB3B-5A72-0000-001013690000}",
      "TargetProcessId": "492",
      "UtcTime": "2018-02-01 11:24:53.331"
    },
    "GeneInfo": {
      "Criticality": 10,
      "Signature": [
        "MaliciousLsassAccess"
      ]
    },
    "System": {
        "Classical Windows Event System Section": "..."
    }
  }
}

Установка WHIDS

  1. Скачайте и распакуйте последнюю версию WHIDS https://github.com/0xrawsec/whids/releases
  2. Если вы хотите, чтобы WHIDS запускался вместе с Sysmon (настоятельно рекомендуется), сначала установите его. Файл оптимальной конфигурации поставляется вместе с выпуском, чтобы вы могли максимально использовать возможности WHIDS. При установке служба Sysmon будет зависеть от службы WHIDS, поэтому мы уверены, что IDS запустится до того, как Sysmon начнет генерировать некоторые события.
  3. Запустите manage.bat от имени администратора
  4. Запустите установку, выбрав соответствующую опцию
  5. Убедитесь, что файлы были созданы в каталоге установки
  6. С помощью текстового редактора, открытого от имени администратора (чтобы предотвратить изменение прав установочного каталога WHIDS), откройте config.json и измените его по своему усмотрению. Это также можно сделать из manage.bat
  7. Пропустите это, если вы работаете с подключением к менеджеру, потому что правила будут обновляться автоматически. Если в каталоге правил ничего нет, инструмент будет бесполезен, поэтому убедитесь, что там есть некоторые генные правила. Некоторые правила поставляются вместе с WHIDS, и вам будет предложено установить их или нет. Если вам нужны последние обновленные правила, вы можете получить их здесь (возьмите скомпилированные)
  8.  Запустите службы из соответствующей опции в manage.bat или просто перезагрузите компьютер (предпочтительная опция, иначе некоторые поля обогащения будут неполными, что приведет к ложным оповещениям)
  9.  Если вы настроили менеджер, не забудьте запустить его, чтобы получать оповещения и дампы

Примечание: всякий раз, когда вы заходите в каталог установки с помощью Explorer.exe и, если вы являетесь администратором, проводник спросит вас, хотите ли вы изменить разрешение каталога. НЕ НАЖИМАЙТЕ ДА, иначе это нарушит права доступа к папкам, установленные во время установки. Всегда обращайтесь к каталогу установки из приложений, запущенных с правами администратора (т. Е. Текстового редактора).

Настройка

WHIDS

Пример файла конфигурации WHIDS:

{
    // Path to the rules directory used for detection
    "rules-db": "C:\\Program Files\\Whids\\Database\\Rules",
    // Path to the containers used in some of the rules
    // containers must be GZIP compressed and have .cont.gz extension
    // basename without extension is taken as container name
    // Example: blacklist.cont.gz will create blacklist container
    "containers-db": "C:\\Program Files\\Whids\\Database\\Containers",
    // Forwarder related configuration
    "forwarder": {
        "manager-client": {
            // Hostname or IP address of remote manager
            "host": "",
            // Port used by remote manager
            "port": 0,
            // Protocol used http or https
            "proto": "",
            // Key used to authenticate the client
            "key": "",
            // Server key used to authenticate remote server
            "server-key": "",
            // Whether or not the TLS certificate should be verified
            "unsafe": false,
            // Maximum upload side for dump forwarding
            "max-upload-size": 104857600
        },
        // Alert logging settings
        "logging": {
            // Path where to store the alerts
            "dir": "C:\\Program Files\\Whids\\Logs\\Alerts",
            // Rotation interval
            "rotation-interval": "24h"
        },
        // If local=true the forwarder won't communicate with manager
        "local": true
    },
    // Windows event log channels to monitor
    // run "whids -h" to get the list of aliases
    // otherwise any Windows channel can be used here 
    "channels": [
        "all"
    ],
    // Dump related settings
    "dump": {
        // Dump mode: file, memory or all (can be empty)
        // file: dumps anything identified as a file in the event
        // memory: dumps (guilty) process memory in Windows minidump format
        // registry: dumps registry in case alert concerns a registry
        "mode": "file|registry",
        // Dumps when criticality of the events is above or equal to treshold
        "treshold": 8,
        // Where to store dumps
        "dir": "C:\\Program Files\\Whids\\Dumps",
        // Whether or not to enable dump compression
        "compression": true
    },
    // Log events with criticality above or equal to treshold
    "criticality-treshold": 5,
    // Sleep time in seconds between two rules updates (negative number means no update)
    "update-interval": 60,
    // Whether on not hooks should be enabled
    "en-hooks": true,
    // Logfile used to store WHIDS stderr
    "logfile": "C:\\Program Files\\Whids\\Logs\\whids.log",
    // Log all the events passing through the engine (usefull for event dumping or debugging)
    "log-all": false,
    // Tells WHIDS that it is running on an endpoint. If false any kind 
    // of dump is disabled to avoid dump things if installed on a WEC
    "endpoint": true
}

Manager

Пример конфигурации:
{
    // Hostname / IP on which to run the manager
    "host": "192.168.56.1",
    // Port used by the manager
    "port": 1519,
    // Logfile (automatically rotated) where to store alerts received
    "logfile": "alerts.log",
    // Server authentication key (see server-key in WHIDS config)
    "key": "someserverkey",
    // List of authorized client keys (see key in WHIDS config)
    // If the client is not authorized in this list, all the connections 
    // to the manager will abort
    "authorized": [
      "clientapikey"
    ],
    // TLS settings
    "tls": {
        // Server certificate to use
        "cert": "cert.pem",
        // Server key to use
        "key": "key.pem"
    },
    "misp": {
        // Protocol to use for MISP connection
        "protocol" :"https",
        // MISP host
        "host" : "misp.host",
        // API key to use
        "api-key" :"your misp api key"
    },
    // Rules directory used to serve rules to the clients
    "rules-dir": "",
    // Rules of containers used in rules (served to the clients)
    // a container name is the basename of the file without extension
    // Example: /some/container/dir/blacklist.txt will take the content
    // of the file and use it as being a Gene container named blacklist
    "containers-dir": ""
    // Directory used to store dumps sent by the client
    "dump-dir": "",
}

Скачайте Whid здесь — https://github.com/0xrawsec/whids

 

Добавить комментарий

Ваш e-mail не будет опубликован. Обязательные поля помечены *

5e7fa976b0640d40