facebook

16.3.4 Пример связанных правил корреляции и агрегации

Предлагается рассмотреть пример связанных правил классификации, которые выявляют успешную попытку аутентификации после множества неуспешных попыток аутентификации (Bruteforce). Правило будет рассматриваться на основе событий sshd.

Будет использоваться 3 группы правил:

  1. Выявление множественных неуспешных попыток аутентификации «group name="sshd_test,"».
  2. Успешная попытка аутентификация «group name="pam_test,"».
  3. Успешный подбор пароля после множественных неудачных попыток входа «group name="logincrack_test,"» (при условии, что сработают правила из группы 1 и 2).

Текст правил:

Block of code

<group name="sshd_test,">

   <rule id="111100" level="0" noalert="1">

     <decoded_as>sshd_test</decoded_as>

    <description>SSHD test.</description>

  </rule>

   

<rule id="111116" level="1">

   <description>sshd: неудачная попытка входа0.</description>

   <if_sid>111100</if_sid>

   <match>^Failed|^error: PAM: Authentication</match>

</rule>

   

<rule id="111160" level="5">

   <description>sshd: неудачная попытка входа.</description>

   <group>authentication_failed_test,</group>

   <if_sid>111100,111116</if_sid>

<mitre>

   <id>T1110.001</id>

   <id>T1021.004</id>

</mitre>

</rule>

      

<rule id="111163" frequency="3" ignore="30" level="10" timeframe="30">

   <description>sshd: Множественные неудачные попытки входа.</description>

   <group>authentication_failures_test,</group>

   <if_matched_sid>111160</if_matched_sid>

   <mitre>

   <id>T1110</id>

   </mitre>

</rule>

</group>

Правило с «id="111100"» должно срабатывать, если события от sshd, следовательно, в поле «decoded_as» указывается название парсера «sshd_test».

Правило с «id="111116"» ссылается на правило «id="111100"», следовательно, анализируются только события от sshd. Затем указывается регулярное выражение в параметре «match» для фильтрации событий на вхождение строк «Failed» или «error» для «PAM: Authentication».

Правило с «id="111160"» ссылается на правило «id="111100"» и «id="111116"», следовательно, когда проходят эти два правила, событию присваивается уровень 5 и другие параметры («mitre» и «group»).

Правило с «id="111163"» имеет атрибут «frequency», в котором указывается количество срабатываний правила для того, чтобы правило агрегации сработало. Идентификатор указывается в поле «if_matched_sid». В атрибуте «timeframe» указывается временной промежуток (в секундах), за который правило, указанное в поле «if_matched_sid», должно сработать «frequency» раз, чтобы запустилось правило агрегации. В атрибуте «ignore» указывается временной промежуток (в секундах), который должны пройти, прежде чем правило снова может сработать.

Событию присваивается уровень 10, а также создается инцидент со средним уровнем (рис.5).

Block of code

<group name="pam_test,">

   <rule id="112200" level="0" noalert="1">

   <description>Grouping of the pam_unix rules_test.</description>

   <if_sid>5500</if_sid>

   </rule>

   

   <rule id="112201" level="3">

      <description>PAM: успешный вход.</description>

      <group>authentication_success_test,</group>

      <if_sid>112200</if_sid>

      <match>session opened for user</match>

      <mitre>

         <id>T1078</id>

     </mitre>

   </rule>

</group>

Правило с «id="112200"» ссылается на системное правило «id="5500"», которое указывается в поле «if_sid», и срабатывает, если события PAM.

Правило с «id="112201"» ссылается на правило «id="112200"», следовательно, анализируются только события PAM. Затем указывается в параметре «match» регулярное выражение фильтрации событий «session opened for user». Если событие прошло фильтрацию, присваивает уровень 3 и другие параметры («mitre» и «group»).

Block of code

<group name="logincrack_test,">

   <rule id="123123" ignore="60" level="14" timeframe="60">

      <description>Успешный подбор пароля после множественных неудачных попыток входа.</description>

      <if_matched_sid>111163</if_matched_sid>

      <if_sid>112201</if_sid>

      <mitre>

          <id>T1078</id>

          <id>T1110</id>

      </mitre>

   </rule>

</group>

Правило с «id="123123"» ссылается на правило, указанное в поле «if_sid» и сработает, если за 60 секунд правило указанное в поле «if_matched_sid» также сработало. Присваивается уровень 14 и другие параметры («mitre», «description»), а также создается инцидент с высоким уровнем (рис.5).

Результат выполнения: