Purtroppo ‘di serie’ non esiste un decoder per il log di HAProxy, quindi, a parte fare in modo che HAProxy scriva un log via rsyslog e puntarlo con il file di configurazione ossec.conf bisogna scrivere un decoder, cosa molto facile dopo averlo scritto:
Decoder
<decoder name=”haproxy”>
<program_name>^haproxy</program_name>
</decoder>
<decoder name=”haproxy”>
<parent>haproxy</parent>
<regex>(\d+.\d+.\d+.\d+)</regex>
<order>srcip</order>
</decoder>
Rule
<rule id=”100011″ level=”3″>
<program_name>haproxy</program_name>
<match>wp-login</match>
<description>srcip</description>
</rule>
<rule id=”100012″ level=”8″ frequency=”4″ timeframe=”30″>
<if_matched_sid>100011</if_matched_sid>
<same_source_ip />
<description>CMS (WordPress or Joomla) brute force attempt.</description>
<group>pci_dss_6.5,pci_dss_11.4,pci_dss_6.5.10,pci_dss_10.2.4,pci_dss_10.2.5,gdpr_IV_35.7.d,gdpr_IV_32.2,hipaa_164.312.b,nist_800_53_SA.11,nist_800_53_SI.4,nist_800_53_AU.14,nist_800_53_AC.7,</group>
</rule>
Questo decoder e regola fa si che se in 30 secondi rileva piu’ di 4 ‘wp-login’ banna l’ip semplicemente triggerando una regola di livello 8: nel mio sistema una regola triggera un “Active Response” se il livello è uguale o maggiore di 6.