{"id":180,"date":"2007-06-18T00:24:06","date_gmt":"2007-06-17T22:24:06","guid":{"rendered":"http:\/\/security-planet.de\/2007\/06\/18\/cisco-ios-der-paketfilter-der-control-plane-protection\/"},"modified":"2007-06-18T00:24:06","modified_gmt":"2007-06-17T22:24:06","slug":"cisco-ios-der-paketfilter-der-control-plane-protection","status":"publish","type":"post","link":"https:\/\/cyber-fi.net\/index.php\/2007\/06\/18\/cisco-ios-der-paketfilter-der-control-plane-protection\/","title":{"rendered":"Cisco IOS: Der Paketfilter der Control-Plane-Protection"},"content":{"rendered":"<p>\u00dcber Control Plane Policing (CPP) habe ich vor einiger Zeit schon <a href=\"http:\/\/security-planet.de\/2005\/07\/26\/cisco-control-plane-policing\/\">etwas geschrieben<\/a>. In der IOS-Version 12.4(4)T wurde der Schutz der Control-Plane nochmals erweitert, u.a. mit einem Paketfilter, der auf geschlossene Ports wirkt.<\/p>\n<p>Dieses Beispiel zeigt die Wichtigkeit dieser Funktion auf einem meiner Router.<br \/>\n<!--more--><br \/>\nIch verwende einen Cisco 1802 mit IOS 12.4(11)XJ3<\/p>\n<pre class=\"code\"><code>router#sh ver | i ersion\nCisco IOS Software, C180X Software (C180X-ADVIPSERVICESK9-M), Version 12.4(11)XJ3, RELEASE SOFTWARE (fc1)\nSynched to technology version 12.4(11)T\nROM: System Bootstrap, Version 12.3(8r)YH6, RELEASE SOFTWARE (fc1)<\/code><\/pre>\n<p>Um m\u00f6glichst viele Pakete schnell senden zu k\u00f6nnen habe ich den Portscanner scanrand 1.10 aus dem Paket <a href=\"http:\/\/www.doxpara.com\/read.php\/code\/paketto.html\">Paketto Keiretsu<\/a> benutzt:<\/p>\n<pre class=\"code\"><code>scanrand -S -b0 10.255.255.1:all<\/code><\/pre>\n<p>Das Senden der Pakete dauert ca. eine Sekunde und dieser Router ist danach reproduzierbar nicht mehr erreichbar. Manchmal rebootet er sofort, manchmal mit ein paar Sekunden Verz\u00f6gerung.<br \/>\nMit einer Interface-Geschwindigkeit von nur 10 MBit\/s dauert das Senden zwar ca. f\u00fcnf Sekunden, das Ergebnis ist aber dasselbe.<\/p>\n<p>Nach dem Neustart ist die Fehlermeldung zu erkennen:<\/p>\n<pre class=\"code\"><code>\nrouter#sh ver | i to ROM\nSystem returned to ROM by error - an Illegal Opcode exception, PC 0x83526940 at 15:06:59 MESZ Mon Jun 11 2007<\/code><\/pre>\n<p>Um dieses Problem der DOS-Anf\u00e4lligkeit zu beheben, wird Control-Plane-Protection (CPPr) konfiguriert:<\/p>\n<p>Eine Class-Map, die geschlossene Ports erkennt, wird konfiguriert:<\/p>\n<pre class=\"code\"><code>class-map type port-filter match-all closed-ports\n match closed-ports<\/code><\/pre>\n<p>Eine Policy-Map benutzt die Class-Map, um die Pakete zu verwerfen:<\/p>\n<pre class=\"code\"><code>policy-map type port-filter CP-Filtering\n class closed-ports\n   drop<\/code><\/pre>\n<p>Die Policy-Map wird auf die Control-Plane gebunden:<\/p>\n<pre class=\"code\"><code>control-plane host\n service-policy type port-filter input CP-Filtering\n<\/code><\/pre>\n<p>Nach dieser Konfiguration wird der Router wirklich gestresst:<\/p>\n<pre class=\"code\"><code>while [ 1 ]; do scanrand -S -b0 10.255.255.1:all; done\n<\/code><\/pre>\n<p>Das Paket-Forwarding ist w\u00e4hrend dieses Beschusses mit Paketen deutlich gest\u00f6rt, was auch an der Menge verlorener echo-requests zu erkennen ist:<\/p>\n<pre class=\"code\"><code>...\n64 bytes from www.heise.de (193.99.144.85): icmp_seq=91 ttl=247 time=53.1 ms\n64 bytes from www.heise.de (193.99.144.85): icmp_seq=93 ttl=247 time=50.1 ms\n64 bytes from www.heise.de (193.99.144.85): icmp_seq=94 ttl=247 time=47.4 ms\n64 bytes from www.heise.de (193.99.144.85): icmp_seq=99 ttl=247 time=45.3 ms\n64 bytes from www.heise.de (193.99.144.85): icmp_seq=100 ttl=247 time=34.6 ms\n64 bytes from www.heise.de (193.99.144.85): icmp_seq=101 ttl=247 time=34.3 ms\n64 bytes from www.heise.de (193.99.144.85): icmp_seq=102 ttl=247 time=51.1 ms\n64 bytes from www.heise.de (193.99.144.85): icmp_seq=109 ttl=247 time=46.2 ms\n64 bytes from www.heise.de (193.99.144.85): icmp_seq=111 ttl=247 time=51.0 ms\n64 bytes from www.heise.de (193.99.144.85): icmp_seq=112 ttl=247 time=46.7 ms\n...<\/code><\/pre>\n<p>Der Router bleibt aber stabil und ist nach Beendigung eines gut einmin\u00fctigen &#8220;Angriffs&#8221; sofort wieder erreichbar:<\/p>\n<pre class=\"code\"><code>CPU utilization for five seconds: 46%\/46%; one minute: 68%; five minutes: 30%\n PID Runtime(ms)   Invoked      uSecs   5Sec   1Min   5Min TTY Process\n  53        2528      8680        291  0.27%  0.20%  0.12%   0 COLLECT STAT COU\n  81        1612      3004        536  0.36%  0.20%  0.10%   0 IP Input\n<\/code><\/pre>\n<p>Die &#8220;Wichtigkeit&#8221; dieser Aktion mu\u00df man allerdings doch relativieren. Einen Absturz konnte ich nur bei zwei Routern (diesem 1802 und einem 876) mit sehr neuen IOS-Releases und sehr komplexen Konfigurationen herbeif\u00fchren. Sowohl die Tests mit 12.4-IOS-Releases und einfacherer Konfiguration, als auch auf anderen Plattformen (2621XM, 3640, 2801, 2811) haben nicht zu einem Absturz gef\u00fchrt.<\/p>\n<p>Nach diesem Test habe ich erstmal auf diversen Routern das CPPr aktiviert. Diese Abst\u00fcrze sind zwar sicher IOS-Bugs, aber wenn man sich mit ein paar Zeilen auch dagegen sch\u00fctzen kann, ist es doch auch gut.<\/p>\n<p>Weitere Informationen gibt es in der Dokumentation von Cisco:<\/p>\n<ul>\n<li><a href=\"http:\/\/www.cisco.com\/univercd\/cc\/td\/doc\/product\/software\/ios124\/124newft\/124t\/124t4\/htcpp.htm\">Control Plane Protection<\/a><\/li>\n<\/ul>\n","protected":false},"excerpt":{"rendered":"<p>\u00dcber Control Plane Policing (CPP) habe ich vor einiger Zeit schon etwas geschrieben. In der IOS-Version 12.4(4)T wurde der Schutz der Control-Plane nochmals erweitert, u.a. mit einem Paketfilter, der auf geschlossene Ports wirkt. Dieses Beispiel zeigt die Wichtigkeit dieser Funktion auf einem meiner Router.<\/p>\n","protected":false},"author":3,"featured_media":0,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"twitterCardType":"","cardImageID":0,"cardImage":"","cardTitle":"","cardDesc":"","cardImageAlt":"","cardPlayer":"","cardPlayerWidth":0,"cardPlayerHeight":0,"cardPlayerStream":"","cardPlayerCodec":"","footnotes":""},"categories":[5,7],"tags":[162,164,307,358],"class_list":["post-180","post","type-post","status-publish","format-standard","hentry","category-cisco","category-cisco-security","tag-control-plane","tag-cppr","tag-ios","tag-konfiguration"],"_links":{"self":[{"href":"https:\/\/cyber-fi.net\/index.php\/wp-json\/wp\/v2\/posts\/180","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/cyber-fi.net\/index.php\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/cyber-fi.net\/index.php\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/cyber-fi.net\/index.php\/wp-json\/wp\/v2\/users\/3"}],"replies":[{"embeddable":true,"href":"https:\/\/cyber-fi.net\/index.php\/wp-json\/wp\/v2\/comments?post=180"}],"version-history":[{"count":0,"href":"https:\/\/cyber-fi.net\/index.php\/wp-json\/wp\/v2\/posts\/180\/revisions"}],"wp:attachment":[{"href":"https:\/\/cyber-fi.net\/index.php\/wp-json\/wp\/v2\/media?parent=180"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/cyber-fi.net\/index.php\/wp-json\/wp\/v2\/categories?post=180"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/cyber-fi.net\/index.php\/wp-json\/wp\/v2\/tags?post=180"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}