Блокирование попыток эксплуатации heartbeat-уязвимости в OpenSSL средствами iptables

Материал из support.qbpro.ru

Пример блокирования критической уязвимости CVE-2014-0160 в OpenSSL 1.0.1, позволяющей получить содержимое памяти удалённых серверных и клиентских приложений.


Отражаем в логе все heartbeat-запросы при помощи iptables и модуля u32:

  iptables -t filter -A INPUT -p tcp --dport 443 -m u32 --u32 "52=0x18030000:0x1803FFFF" -j LOG --log-prefix "BLOCKED: HEARTBEAT"

Блокируем heartbeat-запросы:

  iptables -t filter -A INPUT -p tcp --dport 443 -m u32 --u32 "52=0x18030000:0x1803FFFF" -j DROP

Отслеживаем возможные атаки при помощи Wireshark:

  tshark -i interface port 443 -R 'frame[68:1] == 18'
  tshark -i interface port 443 -R 'ssl.record.content_type == 24'


Пример из правил iptables:

-A INPUT -p tcp -m multiport --dports 22,25,465,993,1194 -m u32 --u32 "52=0x18030000:0x1803FFFF" -j LOG --log-prefix "BLOCKED: HEARTBEAT"
-A INPUT -p tcp -m multiport --dports 22,25,465,993,1194 -m u32 --u32 "52=0x18030000:0x1803FFFF" -j DROP
-A INPUT -p udp -m multiport --dports 22,25,465,993,1194 -m u32 --u32 "52=0x18030000:0x1803FFFF" -j LOG --log-prefix "BLOCKED: HEARTBEAT"
-A INPUT -p udp -m multiport --dports 22,25,465,993,1194 -m u32 --u32 "52=0x18030000:0x1803FFFF" -j DROP
-A INPUT -p tcp -m multiport --dports 22,25,465,993,1194 -m u32 --u32 "0>>22&0x3C@ 12>>26&0x3C@12=0x18030000:0x1803FFFF" -j LOG --log-prefix "BLOCKED: HEARTBEAT"
-A INPUT -p udp -m multiport --dports 22,25,465,993,1194 -m u32 --u32 "0>>22&0x3C@ 12>>26&0x3C@12=0x18030000:0x1803FFFF" -j LOG --log-prefix "BLOCKED: HEARTBEAT"
-A INPUT -p tcp -m multiport --dports 22,25,465,993,1194 -m u32 --u32 "0>>22&0x3C@ 12>>26&0x3C@12=0x18030000:0x1803FFFF" -j DROP 
-A INPUT -p udp -m multiport --dports 22,25,465,993,1194 -m u32 --u32 "0>>22&0x3C@ 12>>26&0x3C@12=0x18030000:0x1803FFFF" -j DROP


взято тут...