Перейти к содержанию

Другое

ОС Windows. Утилита Sysmon

Об утилите

Sysmon (System Monitor) - утилита, которая позволяет получить более полные сведения о событиях Windows.

Ссылка на ресурс Microsoft для подробного изучения.

Для запуска утилиты необходимо, чтобы на машине, на которой планируется сбор событий, было расположено два файла: файл-установщик с расширением .bat или .exe и файл конфигурации с расширением .xml. Для удобства работы рекомендуется расположить эти файлы в одной папке.

Актуальную версию утилиты можно скачать с официального ресурса Microsoft

Настройка источника

  1. Установите и настройте утилиту Sysmon:

    • создать папку C:\ProgramData\sysmon\

    • скачать дистрибутив Sysmon и скопировать его в папку C:\ProgramData\sysmon\

    • скачать конфигурационный файл Sysmon - sysmonconfig.xml в ту же папку C:\ProgramData\sysmon\

    • открыть cmd от имени администратора.

    • перейти в каталог sysmon - cd C:\ProgramData\sysmon\

    • установить Sysmon командой sysmon64.exe -accepteula -i sysmonconfig.xml

    • готово, установлена в систему служба и драйвер Sysmon, события будут храниться в журнале Microsoft-Windows-Sysmon/Operational

  2. После успешной установки в Просмотре событий Windows (Event Viewer) появится новый журнал (Channel) Microsoft-Windows-Sysmon/Operational.

Настройка коллектора событий

Процесс настройки лог-коллектора отличается от настройки коллектора событий для Microsoft Windows только настройкой журналов для сбора событий.

Для отправки событий журнала Sysmon в Платформу Радар необходимо внести изменение в файл конфигурации лог-коллектора. В разделе eventlog_collector необходимо указать в строке channel имена всех журналов, события которых нужно отправить в Платформу Радар, через запятую.

Пример: channel: ['Security','Microsoft-Windows-Sysmon/Operational']
# = Sysmon-Windows =
sysmon-windows: &sysmon-windows
  id: "sysmon-windows" 
  channel: ['Microsoft-Windows-Sysmon/Operational']
  query: "*"
  file: ""
  batch_size: 31
  timeout: 3
  poll_interval: 1
  read_from_last: true
  resolve_sid: false
  format: "json"

tcp_output_1513: &tcp_output_1513
  id: "tcp_output_1513"
  target_host: "192.168.1.200"
  port: 1513

senders:
  port: 48002
  log_level: "INFO"
  tcp:
    - <<: *tcp_output_1513 

collectors:
  log_level: "INFO"
  event_log:
    - <<: *sysmon-windows  

route_4: &route_4
  collector_id:
    - "sysmon-windows"
  sender_id:
    - "tcp_output_1513"   

Инструкция по настройке VipNet для отправки событий в Платформу Радар

Отправка событий в формате syslog + CEF

Чтобы настроить передачу данных в Платформу Радар в формате CEF, выполните следующие действия:

  1. Подключитесь к консоли VipNet Coordinator и пройдите авторизацию с полномочиями администратора.

    user: user 
    password: 11111111
    
    Вход в режим администратора
    enabled (или en)
    password: 11111111
    
  2. Определите идентификатор МСЭ, который содержится в приглашении командной строки в составе имени узла (например, xF1000-270E033A, где 270E033A — идентификатор МСЭ).

  3. Данная настройка работает только в демоне iplircfg.

    • Остановите работу демона iplircfg командой: iplir stop (или ip sto)

    • Откройте файл конфигурации iplir.conf для редактирования командой: iplir config (или ip co)

    • Задайте параметры экспорта журнала в секции [misc]:

      cef_enabled=  yes.
      cef_ip = ip-адрес лог-коллектора.
      cef_port = 514 (или любой другой, который будет использоваться в источнике).
      

      Дополнительный параметр:

      cef_format  = ips, или xf
      
    • Задайте параметры debug в секции [debug]

      [debug]:
      debuglevel = 3
      debuglogfile = syslog:daemon.debug  
      

      Секция debuglevel может иметь параметры от -1 до 4 (в старых системах VipNet Coordinator версии 3.х до 5-го). Чем выше уровень детализации, тем более подробная информация выводится в журнал. Значение параметра -1 выключает ведение журнала (при этом некоторые важные системные события по-прежнему будут выводиться в журнал).

      Секция debuglogfile — источник информации, выводимой в журнал, в формате: syslog:<facility.level>, где: facility — процесс, формирующий информацию.
      Возможные значения: auth, authpriv, cron, daemon, ftp, kern, lpr, mail, mark, news, security, syslog, user, uucp, local0, local1, local2, local3, local4, local5, local6, local7.
      level — уровень важности информации.
      Возможные значения: emerg, panic, alert, crit, err, error, warn, warning, notice, info, debug, none.

      Значение параметра debuglogfile по умолчанию — syslog:daemon.debug

      Значение параметра debuglogfile = syslog:syslog.debug при запуске перезаписывает все другие добавленные параметры debuglogfile

    • Сохраните изменения и закройте конфигурационный файл iplir.conf. Для этого нажмите сочетание клавиш Ctrl+O, далее клавишу Enter и сочетание клавиш Ctrl+X.

    • Должно появиться сообщение:

      Verifying new configuration
      <I_CFG> Command: iplir config – iplir.conf has been edited successfully
      
    • В случае ошибки появится сообщение типа:

      Verifying new configuration
      
      /tmp/vipnet/user/iplir.conf/, line 151: invalid ‘/debuglogfile/’ value error: verification of on configuration has been failed/
      
      <I_CFG> Command:iplir config
      : incorrect configuration, please try again Roll back the changes are restore the previous version file [Yes/No]:
      

      При вводе Yes (или Y) возвращает предыдущий успешно сохраненный конфиг.

      При вводе No (или N) возвращает только что измененный конфиг (с ошибкой).

    • Запустите демон iplircfg командой: iplir start (или ip sta)

    • Проверьте настройки сервиса iplir без его остановки:

      Iplir show config (или ip sh co)

    • Создайте разрешающее исходящее правило лог-коллектора командой:

      firewall local add src @local dst [IP-адрес лог-коллектора] udp dport 514 pass

      например:

      firewall local add src @local dst 192.168.0.2 udp dport 514 pass

    • Задайте параметр отправки событий на адрес лог-коллектора командой:

      machine set loghost [IP-адрес лог-коллектора]

      Синтаксис – machine set loghost {<IP-адрес> | local | null}

      — IP-адрес удаленного сетевого узла, на который должен отправляться системный журнал (удаленное протоколирование).

      local — системный журнал хранится на самом ViPNet Coordinator HW (локальное протоколирование).

      null — выключение протоколирования.

    • Перезапустите службу лог-коллектора.

    • Включите источник VipNet в "Источники" -> "Управлении Источниками" и нажмите кнопку "Синхронизировать".

    • Проверьте результат в Платформе Радар / Просмотр событий. Должны появиться события.

Настройка для лог-коллектора на получение и отправку событий от VipNet Coordinator

udp_input_vipnet: &udp_input_vipnet
  id: "udp_input_vipnet"
  host: "0.0.0.0"
    port: 514
    sock_buf_size: 0
    format: "JSON"
    log_level: "INFO"

udp_output_vipnet: &udp_output_vipnet
  id: "udp_output_vipnet"
    target_host: "<ip-адрес Платформы Радар>"
  port: 2211
    batch_mode_enable: false
    batch_flush_interval: 5
    batch_flush_limit: 200
    ssl_compression: false
    require_cert: false
    ssl_enable: false
    cert_file: "client-cert.pem"
    key_file: "client-key.pem"
    cert_key_pass: ""
    ca_file: "ca.pem"
    log_level: "INFO"

senders:
  port: 48002
    udp:
    - <<: *udp_output_vipnet

collectors:
    log_level: "INFO"
    udp_receiver:
   - <<: *udp_input_vipnet

route_1_vipnet: &route_1_vipnet
    collector_id:
   - "udp_input_vipnet"
    sender_id:
   - "udp_output_vipnet"

routers:
    - <<: *route_1_vipnet

Подключение новых источников, не поддерживаемых Платформой Радар

  1. Необходимо кликнуть на раздел “Источники”, “Управление источниками”,
  2. В поле “Добавить новый источник” настроить новый источник:
    • В поля “Название”, “Тип”, “Вендор” необходимо указать соответствующие значения для добавляемой системы.
    • В поле “Порт” необходимо указать один из свободных портов, куда будут отправляться события с нового источника (+- диапазон 6000-8000).
    • В поле “input_type” необходимо указать протокол, по которому будут отправляться события.
    • В поле “template_format” необходимо выбрать один из шаблонов форматов, в которых будут приходить события.
    • В поле “message_type” необходимо указать идентификатор сообщений новой системы.
    • В поле “parsers” обязательно необходимо указать “common”.
    • В поле “normalizer” обязательно необходимо указать “passthrough”
  3. После добавления нового источника его необходимо включить, после чего нажать на кнопку “Синхронизировать”.

Если все настроено правильно, то в индексе errors должны начать появляться события с добавленного источника.

Добавление UFW в качестве источника

  1. Проверить статус UFW:

    $ sudo ufw status
    Status: active
    
  2. В случае его неактивности включить:

    $ sudo ufw enable

  3. Включить логирование и выбрать его уровень (можно также править в /etc/ufw/ufw.conf):

    $ sudo ufw logging on
    $ sudo ufw logging low | medium | high | full
    
  4. Добавить в конфигурационный файл rsyslog’a строку:

    :msg,contains,"[UFW " @<ip-адрес коллектора>:<порт>

  5. Перезапустить службу rsyslog.

    $ sudo systemctl restart rsyslog.service

Linux Auditd

Подключение Linux Auditd в качестве источника событий Платформы Радар. В качестве примера используется виртуальная машина на Debian 12.

  1. Для установки auditd в «Командной строке Linux» (далее – Терминал) выполните следующую команду:

    apt-get install auditd audispd-plugins

  2. Далее нужно настроить конфигурационный файл auditd. Для этого необходимо:

    • Открыть файл auditd.conf, выполнив команду:

      nano /etc/audit/auditd.conf

    • В открывшемся файле заменить все содержимое на содержимое:

      local_events = yes
      write_logs = yes
      log_file = /var/log/audit/audit.log
      log_group = adm
      log_format = ENRICHED
      flush = INCREMENTAL_ASYNC
      freq = 50
      max_log_file = 8
      num_logs = 5
      priority_boost = 4
      disp_qos = lossy
      dispatcher = /sbin/audispd
      name_format = NUMERIC
      ##name = mydomain
      max_log_file_action = ROTATE
      space_left = 75
      space_left_action = SYSLOG
      verify_email = yes
      action_mail_acct = root
      admin_space_left = 50
      admin_space_left_action = SUSPEND
      disk_full_action = SUSPEND
      disk_error_action = SUSPEND
      use_libwrap = yes
      ##tcp_listen_port = 60
      tcp_listen_queue = 5
      tcp_max_per_addr = 1
      ##tcp_client_ports = 1024-65535
      tcp_client_max_idle = 0
      enable_krb5 = no
      krb5_principal = auditd
      ##krb5_key_file = /etc/audit/audit.key
      distribute_network = no
      
  3. Далее создайте «файл с правилами расширенного аудита» extended.rules и добавьте туда следующие правила:

    • Создание файла с правилами расширенного аудита

      nano /etc/audit/rules.d/extended.rules

    • Содержимое файла с правилами расширенного аудита:

      -i
      --reset-lost
      -a never,exit -F arch=b64 -S execve -F exe=/usr/sbin/crond
      -a never,exit -F arch=b64 -S execve -F exe=/lib/systemd/systemd-logind
      -a never,filesystem -F fstype=tracefs
      -a never,filesystem -F fstype=debugfs
      -a exclude,never -F msgtype=BPRM_FCAPS
      
      ## kernel modules
      -a always,exit -F arch=b64 -S finit_module,init_module,delete_module -F auid!=unset
      -a always,exit -F arch=b64 -S finit_module,init_module,delete_module -F auid!=unset
      -a always,exit -F arch=b64 -S socket -F a0=2
      -a always,exit -F arch=b32 -S socket -F a0=2
      -a always,exit -F arch=b64 -S socket -F a0=0xa
      -a always,exit -F arch=b32 -S socket -F a0=0xa
      -a always,exit -F arch=b64 -S socket -F a0=0x11
      -a always,exit -F arch=b32 -S socket -F a0=0x11
      -a always,exit -F arch=b64 -S execve,execveat -F auid=unset -F euid>=0 -F euid<1000
      -a always,exit -F arch=b32 -S execve,execveat -F auid=unset -F euid>=0 -F euid<1000
      
      ## listen
      -a always,exit -F arch=b64 -S listen
      -a always,exit -F arch=b32 -S listen
      
      ## process UID/GID
      -a always,exit -F arch=b64 -S setuid,setgid,setreuid,setregid
      -a always,exit -F arch=b32 -S setuid,setgid,setreuid,setregid
      
      ## process tracing
      -a always,exit -F arch=b64 -S ptrace
      -a always,exit -F arch=b32 -S ptrace
      
      ## capabilities
      #-a always,exit -F arch=b64 -S capset
      #-a always,exit -F arch=b32 -S capset
      
      
      ## ACLs and file attributes
      
      -a always,exit -F arch=b64 -S setxattr,fsetxattr,lsetxattr
      -a always,exit -F arch=b32 -S setxattr,fsetxattr,lsetxattr
      
      ## time
      -a exit,always -F arch=b64 -S adjtimex,settimeofday,clock_settime
      -a exit,always -F arch=b32 -S adjtimex,settimeofday,clock_settime
      
      ## hostname
      -a always,exit -F arch=b64 -S sethostname,setdomainname
      -a always,exit -F arch=b32 -S sethostname,setdomainname
      
      ## pam
      -a always,exit -F dir=/etc/pam.d -F perm=wa -F
      -a always,exit -F dir=/etc/security -F perm=wa -F
      
      ## passwd
      -a always,exit -F path=/etc/passwd -F auid!=unset -F auid>=1000 -F perm=r
      -a always,exit -F path=/etc/group -F auid!=unset -F auid>=1000 -F perm=r
      -a always,exit -F path=/etc/shadow -F perm=r -F auid!=unset
      -a always,exit -F path=/etc/passwd -F perm=wa
      -a always,exit -F path=/etc/group -F perm=wa
      -a always,exit -F path=/etc/shadow -F perm=wa
      -a always,exit -F path=/etc/gshadow -F perm=wa
      
      ## COD
      -a always,exit -F path=/etc/sssd/sssd.conf -F perm=wa
      -a always,exit -F path=/etc/nsswitch.conf -F perm=wa
      -a always,exit -F path=/etc/krb5.conf -F perm=wa
      -a always,exit -F path=/etc/krb5.conf.d -F perm=wa
      -a always,exit -F path=/etc/krb5.keytab -F perm=wa
      
      ## pki
      -a always,exit -F path=/etc/pki/ca-trust -F perm=wa
      
      ## audit
      -a always,exit -F path=/etc/libaudit.conf -F perm=wa
      -a always,exit -F dir=/etc/audit -F perm=wa
      
      ## init
      -a always,exit -F path=/etc/fstab -F perm=wa
      -a always,exit -F dir=/etc/sysconfig -F perm=wa
      ## network
      -a always,exit -F path=/etc/issue -F perm=wa
      -a always,exit -F path=/etc/issue.net -F perm=wa
      -a always,exit -F path=/etc/hosts -F perm=wa
      -a always,exit -F path=/etc/hostname -F perm=wa
      -a always,exit -F path=/etc/resolv.conf -F perm=wa
      -a always,exit -F dir=/etc/NetworkManager -F perm=wa
      
      ## login defaults
      -a always,exit -F path=/etc/login.defs -F perm=wa
      -a always,exit -F path=/etc/securetty -F perm=wa
      
      ## profiles
      -a always,exit -F path=/etc/bashrc -F perm=wa
      -a always,exit -F path=/etc/profile -F perm=wa
      -a always,exit -F path=/etc/profile.d -F perm=wa
      -a always,exit -F path=/etc/skel -F perm=wa
      
      ## package management
      -a always,exit -F path=/etc/yum.conf -F perm=wa
      -a always,exit -F dir=/etc/yum -F perm=wa
      -a always,exit -F dir=/etc/yum.repos.d -F perm=wa
      
      ## mail
      -a always,exit -F path=/etc/postfix -F perm=wa
      -a always,exit -F path=/etc/aliases -F perm=wa
      
      ## ntp
      -a always,exit -F path=/etc/ntp.conf -F perm=wa
      
      ## syslog
      -a always,exit -F path=/etc/rsyslog.conf -F perm=wa
      -a always,exit -F path=/etc/rsyslog.d -F perm=wa
      
      ## kernel
      -a always,exit -F path=/etc/sysctl.conf -F perm=wa
      -a always,exit -F path=/etc/sysctl.d -F perm=wa
      -a always,exit -F path=/etc/modprobe.d -F perm=wa
      
      ## logrotate
      -a always,exit -F path=/etc/logrotate.conf -F perm=wa
      -a always,exit -F path=/etc/logrotate.d -F perm=wa
      
      ## mandatory access control
      -a always,exit -F path=/etc/selinux/config -F perm=wa
      
      ## ssh
      -a always,exit -F path=/etc/ssh -F perm=wa
      
      ## ld.so
      -a always,exit -F path=/etc/ld.so.conf -F perm=wa
      -a always,exit -F path=/etc/ld.so.conf.d -F perm=wa
      
      ## sudo
      -a always,exit -F path=/etc/sudoers.d -F perm=r
      -a always,exit -F path=/etc/sudoers -F perm=r
      -a always,exit -F path=/etc/sudoers.d -F perm=wa
      -a always,exit -F path=/etc/sudoers -F perm=wa
      -a always,exit -F path=/etc/sudo.conf -F perm=wa
      -a always,exit -F path=/etc/sudo-ldap.conf -F perm=wa
      
      ## scheduler
      -a always,exit -F path=/etc/cron.allow -F perm=wa
      -a always,exit -F path=/etc/cron.deny -F perm=wa
      -a always,exit -F path=/etc/cron.d -F perm=wa
      -a always,exit -F path=/etc/cron.daily -F perm=wa
      -a always,exit -F path=/etc/cron.hourly -F perm=wa
      -a always,exit -F path=/etc/cron.monthly -F perm=wa
      
      ## boot
      -a always,exit -F dir=/boot -F perm=wa
      
      ## bin
      -a always,exit -F dir=/bin -F perm=wa
      -a always,exit -F dir=/usr/bin -F perm=wa
      -a always,exit -F dir=/sbin -F perm=wa
      -a always,exit -F dir=/usr/sbin -F perm=wa
      -a always,exit -F dir=/usr/local/bin -F perm=wa
      -a always,exit -F dir=/usr/local/sbin -F perm=wa
      -a always,exit -F dir=/usr/libexec -F perm=wa
      
      ## lib
      -a always,exit -F dir=/lib64 -F perm=wa
      -a always,exit -F dir=/usr/lib64 -F perm=wa
      -a always,exit -F dir=/lib -F perm=wa
      -a always,exit -F dir=/usr/lib -F perm=wa
      
      ## log
      -a always,exit -F dir=/var/log -F perm=r -F euid>=1000
      -a always,exit -F dir=/var/log -F perm=wa -F auid!=unset
      
      ## spool
      -a always,exit -F path=/var/spool/cron -F perm=wa
      -a always,exit -F path=/var/spool/anacron -F perm=wa
      
      ## www
      -a always,exit -F path=/var/www -F perm=wa
      
      ## home
      -a always,exit -F dir=/home -F perm=r -F auid!=unset
      -a always,exit -F dir=/home -F perm=wa -F auid!=unset
      
      ## root
      -a always,exit -F dir=/root -F perm=r -F auid!=unset
      -a always,exit -F dir=/root -F perm=wa -F auid!=unset
      
      ## Finalize rules
      -e 1
      
  4. Далее настройте плагин syslog для записи логов auditd в syslog.

    • Откройте файл syslog.conf

      nano /etc/audisp/plugins.d/syslog.conf

    • Замените содержимое файла содержимым:

      # This file controls the configuration of the syslog plugin.
      # It simply takes events and writes them to syslog. The
      # arguments provided can be the default priority that you
      # want the events written with. And optionally, you can give
      # a second argument indicating the facility that you want events
      # logged to. Valid options are LOG_LOCAL0 through 7, LOG_AUTH,
      # LOG_AUTHPRIV, LOG_DAEMON, LOG_SYSLOG, and LOG_USER.
      
      active = yes
      direction = out
      path = builtin_syslog
      type = builtin
      args = LOG_LOCAL6
      format = string
      
  5. Перезапустите сервис auditd командой:

    service auditd restart

  6. Далее добавьте настройку в конфигурационный файл rsyslog.conf для экспорта событий с системы на лог-коллектор:

    • Откройте файл rsyslog.conf

      nano /etc/rsyslog.conf

    • Вставьте следующую строку в конце файла, указывая ip-адрес и порт

      local6.* @<ip-адрес_лог-коллектора>:<выделенный_порт>

    Для отправки по UDP-соединению необходимо указывать 1 символ «commercial at»/ «собачки» @ перед Ip-адресом, для TCP-соединения необходимо указывать 2 символа @@/Пример:

    ```
    Для - UDP   #local6.*        @192.168.100.101:2674
    Для - TCP   #local6.*        @@192.168.100.101:2674
    ```
    
  7. После выполнения всех вышеуказанных пунктов перезапустите сервис rsyslog, командой:

    service rsyslog restart

  8. Проверьте наличие поступающих событий в Web-интерфейсе Платформы Радар в разделе «Просмотр событий».

Confident Dallaslock

Настройка получения событий от DallasLock в Платформу Радар.

Включение аудита DallasLock:

  1. В оболочке администратора DallasLock перейдите на вкладку Параметры безопасности → Аудит.

  2. Найдите пункт Выгрузка журналов, кликните правой кнопкой мыши выбрав пункт Свойства (см. рисунок 7).

    Аудит

    Рисунок 7 -- Аудит.

  3. В свойствах отметьте галочкой пункт Экспорт журналов в SIEM систему. Укажите адрес сервера с лог-коллектором и выберите порт для подключения. Задайте формат и кодировку выгрузки (см. рисунок 8). Перечень журналов для логирования выберите в соответствии с требованиями информационной безопасности.

    Выбор журналов

    Рисунок 8 -- Выбор журналов.

Добавление новой конфигурации в коллектор:

Приведенные настройки с описанием для добавления в config.yaml ниже:

tcp_input_2: &tcp_input_2
  id: "tcp_input_2"
  host: "172.30.254.69"
  port: 2672
  sock_buf_size: 0
  format: "json"
  encoding:
    change_to_utf8: true
    original_encoding: "cp1251"

В качестве порта для подключения укажите выбранный ранее в свойствах выгрузки журналов.