Блокирование попыток эксплуатации 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