Home

CROCODILE Benutzerhandbuch

image

Contents

1.
2. CROCODILE Benutzerhandbuch Der Cisco Router Configuration Diligent Evaluator Autoren Holger Peine Thomas Schwenkler Reinhard Schwarz Kai Simon IESE Report Nr 119 03 D Version 3 0 November 2003 Eine Publikation des Fraunhofer IESE Das Fraunhofer IESE ist ein Institut der Fraunhofer Gesellschaft Es Ubertragt innovative Software Entwicklungstechniken Methoden und Werkzeuge in die industrielle Praxis Es hilft Unternehmen bedarfsgerechte Software Kompetenzen aufzubauen und eine wettbewerbsf hige Marktposition zu erlangen Das Fraunhofer IESE steht unter der Leitung von Prof Dr Dieter Rombach Sauerwiesen 6 67661 Kaiserslautern Vorwort Copyright Fraunhofer IESE 2003 Im folgenden beschreiben wir das Pr fwerkzeug CROCODILE Das Werkzeug analysiert Routerkonfigurationen und identifiziert darin enthaltene potentielle Sicherheitsschwachstellen Damit unterst tzt CROCODILE den Anwender darin Rechnernetze einer Sicherheitsrevision zu unterziehen Zielsetzung und Leserkreis des Handbuchs Das vorliegende Handbuch richtet sich vornehmlich an den Anwender Es gibt einen Uberblick ber die Handhabung des Werkzeugs und dessen Pr f und Unterst tzungsfunktionen Dar ber hinaus soll es den CROCODILE Nutzer mit der Werkzeugstruktur und den grundlegenden Programmabl ufen so weit vertraut machen daB dieser kleinere Anwendungsprobleme selbstandig meistern kann Das Handbuch richtet sich auch an die Noch nicht Anw
3. eine URL zur Befehlsbeschreibung zuzuordnen Copyright Fraunhofer IESE 2003 1 2 1 Erstellen eigener Pr fmodule Abbildung 30 122 sub logging_ source logging source interface INTERFAC my self match _ Gl ws self gt _dump_hashref match logging_source self gt add_logical_ context match gt LINE_NO Logging self gt add_logical_ context Smatch gt LINE_NO SYSLOG Sself gt attach_ciscolinks match gt LINE_NO logging source interface if defined match gt NEGATION Ssource_interface undef if defined match gt 2 self gt add_annotation match gt LINE NO no params expected WARN elsif defined match gt 2 Ssource_interface match gt 2 Sself gt change_criticality match gt LINE_NO OKAY else Ssource_interface undef self gt add_annotation match gt LINE NO parameter expected ALERT Beispiel f r eine Handler zum Pattern logging source interface INTERFACE Als n chstes wird in der Regel eine Fallunterscheidung getroffen ob der Konfi gurationsbefehl in negierter oder nicht negierter Form vorliegt In beiden F llen erfolgt danach blicherweise eine Korrektheits und Plausibilit tspr fung der Befehlsparameter Ungereimtheiten werden in der Ergebnisdatenbank notiert Dazu stehen verschiedene Ausgabemethoden zur Verf gung die das Pr fmodul
4. Browser spezifisch Copyright Fraunhofer IESE 2003 Anwendung des Pr fwerkzeugs im Uberblick Achtung Bei falscher Browser Einstellung ergibt sich ein unbefriedigendes in der Regel jedoch noch verwendbares Ausgabeformat Um wohlproportionierte Fenstergr en gut erkennbare Farbzuordnungen und ansprechende Schrift gr en zu erhalten mu der Anwender die Browser Einstellungen geeignet w hlen damit das vorgesehene Style Sheet korrekt ausgewertet wird Beim Microsoft Internet Explorer 6 0 finden sich entsprechende Optionen zum Beispiel unter Tools Internet Options und dort unter General gt Accessibility Wichtige Parameter des HTML Formats zum Beispiel Schriftgr en und Farbzuordnungen k nnen in der Datei Output HTML_output conf den eigenen W nschen angepa t werden Dies ist sinnvoll denn unterschiedliche Browser interpretieren Farbcodes oder Angaben zur Schriftgr e zum Teil recht unterschiedlich Der Anwender kann die Darstellungsparameter entsprechend der verwendeten Systemplattform geeignet nachjustieren und bei Bedarf ein bereits vorhandenes Analyseergebnis mit Hilfe der Utility Utils make_html pl neu aufbereiten ohne dazu den Pr flauf wiederholen zu m ssen siehe dazu Kapitel 7 2 2 6 Laufzeitoptionen und Help Funktion Die Ausf hrung des Hauptprogramms crocodile kann durch verschiedene Aufrufparameter beeinflu t werden So ist es zum Beispiel m glich den Detail lierungsgrad d
5. Clock des Routers Das Pr fmodul erstellt f r jede Schnittstelle eine bersicht der m glichen Hosts die eine Zeitanfrage stellen k nnen Dies ist durch die Access Listen der Interfaces bzw die globale NTP ACL festgelegt Unter dem Bookmark NTP accepted ist f r jedes Interface getrennt aufgelistet welchen Hosts es m glich ist unter Einbeziehung der aktuellen Konfiguration den Router als NTP Server zu nutzen Nat rlich werden auch hier alle Router Access Listen in Betracht gezogen allerdings mu der Systemadministrator nachtr glich berpr fen ob bei den Interfaces der beteiligten Netzkomponenten Port 123 TCP oder UDP freigeschaltet ist da die NTP Antwortnachrichten den Router sonst nicht verlassen k nnen Hierf r ist allerdings die Kenntnis der Netzwerkumgebung erforderlich die Pr fung kann daher nicht vollautomatisch erfolgen F r eine erfolgreiche Nutzung des Routers als NTP Server ist im brigen ein Abgleich der Authentisierungsschl ssel notwendig da der Server den Schl ssel kennen mu den der Client verlangt Auch dies erfordert Kontextinformationen die aus der lokalen Konfigurationsbeschreibung nicht ableitbar sind Logische Kontexte zur Erh hung der bersicht Das NTP Modul legt zus tzlich einen separaten Kontext an dem alle Anwei sungen zugeordnet werden die sich auf den Zeitdienst beziehen Die Kontextan Copyright Fraunhofer IESE 2003 Pr fmodule sicht zeigt ausschlieBlich diese Zeilen una
6. Das Spezifikationsformat daf r lautet hnlich wie oben allerdings mu zus tzlich angegeben werden ob sich die Vorgaben auf ankommende in abgehende Copyright Fraunhofer IESE 2003 6 1 Pr fmodule Abbildung 15 62 RFC1918 inbound address filtering interface Ethernet Serial in deny ip 10 0 0 0 0 255 255 255 any deny ip 127 0 0 0 0 255 255 255 any deny ip 172 16 0 0 0 15 255 255 any deny ip 192 168 0 0 0 0 255 255 any RFC1918 outbound address filtering interface Ethernet Serial out deny ip any 10 0 0 0 0 255 255 255 deny ip any 127 0 0 0 0 255 255 255 deny ip any 172 16 0 0 0 15 255 255 deny ip any 192 168 0 0 0 0 255 255 Beispiel f r eine IngressEgress Pr fvorgabe f r Interfaces out oder auf alle Nachrichten in beiden Kommunikationsrichtungen inout beziehen sollen interface lt Pattern gt in out inout lt Liste von permit und deny Filterklauseln gt Abbildung 15 zeigt ein Beispiel f r eine Interface Vorgabe die sich an den Empfehlungen zur Filterung nicht ffentlicher IP Adre bereiche laut RFC1918 orientiert Die Vorgabe soll im Beispiel f r alle Interfaces vom Typ Serial und Ethernet gelten Zeilen der Filterspezifikation die mit bzw beginnen gelten wie traditionell unter IOS bzw Unix als Kommentare und werden vom Pr fwerkzeug ignoriert Pr fvorgaben f r Line Interfaces Line Interfaces k nnen gena
7. NTP automatisch nachgeladen Pr fvorgaben Die Pr fschritte des NTP Moduls sind nicht parametrisierbar sondern im Quellcode des Moduls festgelegt Eine Einflu nahme auf die Pr fkriterien ist also nur durch das Umprogrammieren des Moduls m glich Copyright Fraunhofer IESE 2003 Pr fmodule Das Pr fmodul identifiziert zum einen m gliche Schw chen und Fehler in der NTP Konfiguration Es weist auf widerspr chliche NTP Konfigurationsklauseln und auf das Fehlen gewisser Standardvorgaben hin Zum anderen erstellt es eine Liste anhand derer man leicht erkennen kann von welchem Host der Router seine Systemzeit bezieht und an welche er diese weiter geben kann Dabei wird auch die M glichkeit ber cksichtigt NTP Nachrichten mittels Broadcast zu verschicken Widerspr che und logische Fehler W hrend der berpr fung der einzelnen Zeilen der Konfigurationsbeschreibung beurteilt das Modul die Konsistenz der Anweisungen Es wird berpr ft ob alle Schl ssel und Access Listen auf die zugegriffen wird auch definiert sind Umgekehrt wird gepr ft ob auf alle deklarierten Schl ssel und Access Listen auch bezug genommen wird Das Redefinieren oder L schen eines zuvor dekla rierten Schl ssels ist bei einem vorgefertigten Skript nicht notwendig es deutet auf eine unbedachte lokale nderung der Konfigurationsbeschreibung hin ein potentieller Konfigurationsfehler Zudem wird w hrend dieser Phase auch auf fehlende Konfigura
8. Source SampleConfigs acsac txt Last Modified 2003 04 28 09 08 39 IOS Version 12 0 Router Name sample router 105 Router Configuration Checker 19 username routeradain password 7 15145F1C547B 20 clock timezone HEZ 1 21 ip subnet zero 22 no ip source route 23 no ip finger 24 ip tftp source interface Ethernet0 25 no ip domain lookup 26 27 interface Ethernet0 28 description Perimeternetz 10 1 1 0 24 29 ip address 10 1 1 1 255 255 255 0 30 ip broadcast address 10 1 1 255 31 ip access group 110 in 32 no ip redirects 33 no ip directed broadcast 34 no ip proxy arp JS HB counting output packets ip ounting violations no ip route cache Evaluation Profile Module Findings OKAY CHECK RATemulation 44 3 Passwords 9 12 Connectivity 15 h 3 CompoundPatterns EEE 10 AAA CEE 1 IngressEgress SNMP Logging 5 NTP 12 Total 27 Eile Edit View Favorites Tools Help CROCODILE An IOS Router Configuration Checker Evaluation Profile Evaluation Report Accesslists Authentication amp Authorization CompoundPatterns Ingress Egress Lines and Interfaces Logging NTP Nodes and Subnets RAT Emulation User Manual Contact Passwords Findings at Level ALERT Lines and their Annotations Contexts and their Annotations Router Configuration 2 version 12 0 3 service nagle 4 no service pad 5 service tcp keepalives in 6 service timestamps debug datetime localtine shov timezone
9. erdem auch alle checks protokolliert jedes PASS und jedes FAIL Das CROCODILE Pr fprotokoll ist somit vollst ndiger und der CROCODILE Score ist im allgemeinen etwas h her als sein CIS Pendant 5 5 Pr freports Das Emulationsmodul liefert die einschl gigen Pr fberichte in RAT konformem Format so da der Umstieg von RAT auf CROCODILE dem Anwender keine Probleme bereiten sollte Abbildung 23 zeigt das typische Format eines solchen RAT Reports Zeilen die sich auf bestimmte Pr fregeln beziehen sind per Hypertext Link mit der zugeh rigen Regelbeschreibung einschlie lich zugeord Copyright Fraunhofer IESE 2003 9 1 Emulation des Router Audit Tools RAT Abbildung 23 92 105 Router Configuration Checker Microsoft Internet Explorer Oo x Ele Edt View Favorites Tools Help a RAT Evaluation Report Evaluation Target demoiese txt 10S Version 12 0 Router Name iese router Evaluation Date Fri May 23 15 29 45 2003 Rules Applied home rat etc configs cisco ios common conf home rat etc configs cisco ios cis level 1 conf Importance Pass Fail Rule Name Instance pass IOS forbid SNMP community private FAIL IOS forbid SNMP community public pass IOS 12 no directed broadcast Ethernet1 FAIL IOS exec timeout aux 0 pass IOS line password quality aux 0 FAIL IOS service timestamps pass IOS logging trap info or higher FAIL 198 logging console critical Summary Scoring Categ
10. lautet der Aufruf unter einem Unix Betriebssystem user host CROCODILE perl batchcroco SampleConfigs txt CROCODILE batch processing started Processing 20 batch jobs 2003 09 25 14 16 08 Job 1 of 20 SampleConfigs acsac txt Job 2 of 20 SampleConfigs brianl txt Job 3 of 20 SampleConfigs brian2 txt ob 19 of 20 SampleConfigs sft txt ob 20 of 20 SampleConfigs somel txt Cy Cy Writing summary to tmp batchresults summary html FILENAME FINDINGS OKAYS INFOS CHCKS WARNS ALRTS PROBMS ERRS ibmt txt 165 40 31 31 51 12 acsac txt 168 65 30 27 30 16 ict txt 167 49 28 29 50 11 ciosc txt 168 70 29 26 30 13 ise pix txt 161 23 69 18 41 10 6 somel txt 156 54 24 29 39 10 brianl txt 189 70 36 33 41 9 brian2 txt 185 63 42 30 41 9 sft txt 103 16 22 2 34 4 Writing all findings to tmp batchresults allfindings txt Batch process terminated Batch jobs with PROBLEMS 1 ERRORS 0 ABORTS 0 INTERRUPTS 0 Overall user time 13 35 min system time 0 12 min Copyright Fraunhofer IESE 2003 Stapelverarbeitung Batch Processing Das Programm schreibt die Ergebnisdateien in ein vom Benutzer konfigurierbares Verzeichnis im Beispiel oben ist dies tmp batchresults Das Ergebnis der Stapel verarbeitung umfa t e ein Protokoll des gesamten Stapelverarbeitungslaufs batchpr
11. nschten Filterwirkung entspricht Das Pr fmodul ermittelt daraus ein Whiteset Menge aller zul ssigen Nachrichten Copyright Fraunhofer IESE 2003 5 7 Pr fmodule und ein Blackset Menge aller unzul ssigen Nachrichten Sp ter im Pr flauf wird dann ermittelt ob alle Elemente des Whitesets von der angegebenen Access Liste oder dem Interface bzw Line Interface akzeptiert werden und ob alle Elemente des Blacksets tats chlich zur ckgewiesen werden Nicht akzeptierte Whiteset Anteile oder f lschlich akzeptierte Blackset Anteile werden jeweils in Form einer Warnung aufgelistet mehr dazu in Abbildung 14 auf Seite 60 Abbildung 13 zeigt eine Beispielspezifikation und das Prinzip nach dem daraus Whiteset und Blackset ermittelt werden Eine Spezifikation besteht aus einer Folge von deny und permit Klauseln Sie kommen der Reihe nach von oben nach unten zur Anwendung Handelt es sich um eine deny Klausel so wird aus der Menge aller m glichen Nachrichten ip any any die Teilmenge mit den spezifizierten Attributen abgezweigt und dem Blackset zugeordnet Gem Abbildung 13 werden zum Beispiel alle ICMP Nachrichten dem Blackset zugeordnet Auf die Menge der verbleibenden Nachrichten wird die jeweils n chste Klausel angewendet in Abbildung 13 ein permit Jede permit Klausel zweigt die entsprechende Teilmenge an Nachrichten in das Whiteset ab Im Beispiel sind dies alle TCP Nachrichten an die IP Adresse 135 234 10
12. tacacs server host l eyaluation Ruleset home schwarz tmp CROCODILE Configuration recommended but mis experted but missing no cdp run rule IOS no cdp run Quick Evaluation Mode Level 3 no ip directed broadc module Findings OKAY CHECK WARN ALERT no ip redirects amp no if Pi cdp run partial match 1 RATemulation 44 23 3 no cdp run NOT cdp Passwords 9 l Connectivity aay a 3 line con 0 c dPatt 69 D ETE rule IOS require lint mann ree u rule IOS line passw AAA 4 l 1 rule IOS login pass IngressEgress 3 CLAUSE CONTEXT tr snmp 5 3 EEA CLAUSE CONTEXT cal CLAUSE CONTEXT e Logging ah 5 ERa NTP 3 1 2 Total 168 65 30 27 30 16 Annotated Configuration Text 2 version 12 0 rule IOS logging buffered passed version PROPER_VERSION okay 53 3 service nagle service nagle okay 276 no service vad Typische Ergebnis bersicht Copyright Fraunhofer IESE 2003 Abbildung 8 Ele Edit View Favorites Tools Help Architektur und Funktionsprinzip rosoft Internet Explorer CROCODILE An IOS Router Configuration Checker Evaluation Profile Evaluation Report Accesslists Authentication amp Authorization CompoundPatterns Ingress Egress Lines and Interfaces Logging NTP Nodes and Subnets RAT Emulation User Manual Contact Evaluation Target Evaluated 2003 09 18 11 08 11
13. von seiner Basisklasse Plugin Module erbt siehe Anhang A Sind alle Pr fungen abgeschlossen und der Konfigurationsbefehl erweist sich als zul ssig so aktualisiert der Handler die Zustandsvariablen des Pr fmoduls entsprechend der Wirkungsweise des Konfigurationsbefehls Abbildung 30 zeigt einen typischen Handler des Logging Prufmoduls Je nach Befehlsparameter k nnen die notwendigen Korrektheits und Plausibilit tspr fungen wesentlich komplexer ausfallen als in diesem Beispiel Copyright Fraunhofer IESE 2003 Abbildung 31 Erstellen eigener Pr fmodule sub summary my self if defined linecard_log Sself gt add_context_annotation Logging Unclear whether linecard logging is enabled WARN elsif linecard_ log 0 Sself gt add_context_annotation Logging Linecard logging is disabled INFO Create Bookmark label Logging and assign context refs self gt add_bookmark Logging Logging General Logging toContext self gt add_bookmark Logging Log Buffer Log Buffer toContext self gt add_bookmark Logging SYSLOG SYSLOG toContext self gt add_bookmark Logging SNMP Logging SNMP Logging toContext Ausschnitt aus der Logging Nachverarbeitungsroutine Erstellen der Pr flogik f r die Befund Zusammenfassung Erst nachdem alle Zeilen der Routerkonfiguration analysiert worden sind steht fest in welch
14. 7 my S Smonitor_log 1 Logging to monitor lines my Smonitor_level 7 SNMP logging my Shistory_level 4 Minimum level sent to SNMP as trap my history_size 1 History buffer size my traps_enabled 0 Are SNMP traps sent at all Copyright Fraunhofer IESE 2003 Erstellen eigener Pr fmodule package Plugin lt Module Name gt use strict use Plugin Module use vars qw ISA ISA Plugin Module use Auxiliary Logging qw user my macroref my Spatternref Local state variables for bookkeeping sub new my S proto data _ my class ref proto proto Idempotency At most one instance is created of this class my Sself class gt SUPER does_exist if defined self self class gt SUPER new data Sself gt MACROS macroref self gt PATTERNS Spatternref Sself gt POSTPROCEDURE amp summary return Sself sub generic_handler my self match _ Sself gt _dump_hashref match _generic_handler Sself gt add_logical_ context match gt LINE_NO lt Some Context gt Sself gt attach_ciscolinks match gt LINE_NO match gt MATCH sub summary my self Abbildung 29 Vorlage zur Erstellung eines neuen Pr fmoduls Copyright Fraunhofer IESE 2003 119 Erstellen eigener Pr fmodule Auswahl und Test der Patterns Al
15. 7 service timestamps log datetime localtime shov timezone 8 service password encryption 91 10 hostnane sanple router x a 12 logging buffered 16384 critical 13 aaa new nodel 14 aaa authentication login LOGIN tacacs local 15 aaa authentication enable default radius enable 16 enable secret level 15 5 1 iNeB tr JFRAI ckzPIX8v9g8c1 17 enable secret level 10 5 1 abced DRkuvJyT57dhGjTHXF749 Lines and their Annotations 17 enable secret level 10 5 1 abced DRkuvJyT57dhGjTHXF749 password is f4p01 identical to password line 19 19 username routeradain password 7 15145F1C547B weakly encrypted password reused as strong secret in line 17 Evaluation Profile Ansicht oben und Detailansicht der Befundkategorie ALERT des Pr fmoduls Passwords unten die man durch Anklicken der entsprechenden Farbfl che im Balkendiagramm erh lt Copyright Fraunhofer IESE 2003 39 Architektur und Funktionsprinzip Abbildung 9 40 N heres dazu findet sich in Kapitel 7 2 Eine Beispiel f r eine differentielle Ergeb nisaufbereitung zeigt Abbildung 28 auf Seite 113 Konfigurieren der Darstellungsparameter Das Ausgabemodul f r die HTML Darstellung ist konfigurierbar In der Datei Output HTML_output conf k nnen Hintergrund und Schriftfarbe festgelegt werden au erdem die Zuordnung von Farben zu Kritikalit tsstufen Abbildung 9 zeigt die Konfigurationsdatei mit typischen Eintragungen Die Bedeutung font_colo
16. Atom verwendet werden Wann immer in einer Pattern Spezifikation lt Makroname gt verwendet wird erfolgt an dieser Stelle stillschweigend eine Pattern Substitution durch lt Makro Pattern gt Man beachte da jedes nicht atomare Makro Pattern vor Einf gung mit geschweiften Klammern umgeben wird Dies stellt sicher da die Ersetzung wirklich als atomare Einheit angesehen wird und innerhalb von Komposita keine Verwirrung stiften kann Ein Beispiel f r ein Makro ist etwa SUBNET gt IPADDR IPMASK any host IPADDR Das Makro k nnte in einem umfassenderen Pattern eingesetzt werden um dessen Formulierung zu vereinfachen So entspr che zum Beispiel deny ip SUBNET SUBNET dem ausgeschriebenen Pattern deny ip IPADDR IPMASK any host IPADDR IPADDR IPMASK any host IPADDR Werden in einem Pattern Makros verwendet so richtet sich die Numerierung bei der Pattern Zerlegung vgl Abschnitt Pattern Zerlegung nach der vollst ndig ausgeschriebenen Fassung des Textmusters Dies stellt sicher da jeder Pattern bestandteil ob innerhalb oder au erhalb eines Makros f r Pr fmodule gezielt zugreifbar ist So erh lt im Beispiel oben das erste Schl sselwort host etwa die Nummer 2 3 das zweite Auftreten von host die Nummer 3 3 Die Werte des kompletten SUBNET Makros lassen sich unter den Nummern 2 bzw 3 zugreifen ganz so als sei SUBNET ein vordefiniertes ATOM Makros d rfen auch verschachtelt werd
17. Betriebssystem kann der Benutzer das Kommando zu crocodile lt Eingabedatei gt verk rzen sofern er die Programmdatei crocodile mit dem PERL Programmpfad seines Systems verkn pft Sie dazu die Kopfzeile des crocodile Hauptprogramms 5 Das Programm ist so ausgelegt daB es wahlweise auch die Standardeingabe liest Unter Unix zum Beispiel sind daher auch die folgenden Aufrufe m glich 1 Piping innerhalb einer ProzeB Stes cat lt Eingabedatei gt crocodile 2 Eingabeumlenkung crocodile lt lt Eingabe latei gt Copyright Fraunhofer IESE 2003 7 Anwendung des Priifwerkzeugs im Uberblick Im Beispiel wird vorausgesetzt daB der PERL Interpreter im Suchpfad des Benutzers liegt Andernfalls mu statt perl der absolute Pfadname angegeben werden unter dem PERL installiert ist zum Beispiel usr local bin perl Nach dem Programmstart erscheint auf der Konsole in etwa die folgende Ausgabe CROCODILE started Evaluation Target SampleConfigs acsac cfg Reading tmp CROCODILE Configuration plugin conf done plugin conf Reading tmp CROCODILE Configuration linkdata conf done linkdata conf Reading tmp CROCODILE Configuration designators conf done designators conf Reading tmp CROCODILE Configuration IngressEgress conf done IngressEgress conf Reading tmp CROCODILE Configuration Passwords conf done Passwords conf Reading
18. Dienste und Betriebsmodi ausdr cklich aktiviert und unerw nschte Dienste ausdr cklich abgeschaltet sind e Pr fung ob bestimmten Kommandos das vorgeschriebene Privilege Level zugewiesen ist e Pr fung ob Banner Texte vereinbart sind und bei passender Gelegenheit angezeigt werden e Pr fung ob Pa w rter vereinbart und zugewiesen sind und ob es sich um sicher codierte Pa w rter handelt Trotz seiner Vielseitigkeit ist das Pr fmodul einfach zu bedienen Der Anwender mu keine eigenen Pr fmodule programmieren um Pr fvorgaben nach seinen W nschen zu spezifizieren Das BNF artige Format der Compound Spezifika tionen und die Verkn fungsm glichkeiten mit logischen Operatoren erm glicht sehr vielschichtige Definitionen insbesondere auch bedingte Pr fregeln Das Modul kann aufgrund seiner einfachen Konfigurierbarkeit auch als Trainings m glichkeit f r solche Anwender angesehen werden die eigene Pr fmodule entwerfen m chten zuvor aber Erfahrungen mit der Pattern und Makro Syntax sammeln wollen Pattern Spezifikationen k nnen mittels CompoundPatterns ohne gro en Aufwand ausprobiert werden ehe sie als Trigger f r Pattern Handler in einem neuen Pr fmodul Verwendung finden Copyright Fraunhofer IESE 2003 5 5 Pr fmodule Der Preis f r die Vielseitigkeit des Pr fmoduls ist sein eingeschr nkter Reaktions spielraum beim Erkennen eines Patterns Der Anwender hat keine M glichkeit eigene Meldungstexte vorzugebe
19. IF_NUM Abbildung 5 Typisches Beispiel f r einen match Datensatz wie ihn der Parser an einen Handler bergibt Copyright Fraunhofer IESE 2003 31 Architektur und Funktionsprinzip ber den Verweis match l t sich leicht feststellen welches Pattern den Aufruf ausgel st hat ein Handler kann potentiell mehrere Pattern bedienen Der genaue Inhalt der erkannten Router Konfigurationsanweisung und seine Position in der Konfigurationsbeschreibung sind zugreifbar Der Verweis self erm glicht den R ckgriff auf Kontextwissen bei der Beurteilung des Textfragments Dar ber hinaus bietet er Zugang zu allen von Module ererbten Unterst tzungsfunktionen die das Pr fmodul zur Durch f hrung von Pr fschritten bereith lt Mit den verf gbaren Mechanismen k nnen Pr fschritte in einfacher Weise als PERL Programmcode implementiert werden ohne da der Anwender genauere Kenntnisse ber das Zusammenspiel von Hauptprogramm Parser Pr fmodulen und Ein Ausgabe ben tigt Kapitel 8 illustriert an einem Beispiel wie bei der Erstellung eines neuen Pr fmoduls vorzugehen ist Modulparametrisierung Je nach Pr faufgabe eines Pr fmoduls kann es sinnvoll sein bestimmte Pr fschritte zu parametrisieren Das Pr f Rahmenwerk sieht daher vor einem Pr fmodul bei Bedarf eine oder auch mehrere Konfigurationsdateien zuzuordnen Inhalt und Format solcher Konfigurationsdateien sind nicht vorgegeben Jedem Pr fmodul k nnen individu
20. IP Adressangabe IPMASK ist ein Makro vordefiniert als ein Synonym f r IPADDR Allgemein sind Atome und Makros siehe unten an durchgehender Gro schreibung erkennbar w hrend Schl sselw rter in Kleinschrift wahlweise mit f hrendem Gro buchstaben anzugeben sind Die Bereichsangaben 1 99 und 1300 1999 stehen f r eine beliebige Zahl aus dem angegebenen Bereich Das Pattern oben w rde zum Beispiel folgende Texte selektieren access list 3 permit any access list 1300 deny 143 69 0 0 0 0 255 255 log Die Pattern Beschreibung wurde mit Bedacht so gew hlt da sie der Darstel lungsform einschl giger Cisco Handb cher entspricht Der Anwender sollte wenig M he haben zu einer vorgegebenen Konfigurationsanweisung das passende Pattern anzugeben Mit dem Atom Typ Regular Expression besteht die M glichkeit native PERL Ausdr cke innerhalb eines Patterns zu verwenden PERL Regular Expressions erm glichen mit wenig Aufwand einige sehr m chtige Konstrukte zum Beispiel selektiert das Pattern interface i a z d d d d folgende Textzeilen interface eth 0 interface ATM3 0 1 point to point interface Serial2 1 7 20 Allerdings sollten PERL Ausdr cke nicht ohne Not verwendet werden solange es passende CROCODILE Atome gibt Regul re Ausdr cke sind nur schwer lesbar und bei der Spezifikation unterlaufen dem Anwender leicht Fehler Pattern Zerlegung Wann immer ein vorgegeben
21. Im vorliegenden Falle w re zum Beispiel folgende Umformulierung m glich enable secret level NUM level STRING In dieser Fassung darf der optionale Teil Ievel NUM offensichtlich nur ausge lassen werden wenn das Schl sselwort level im Text fehlt Dies l st das Mehrdeutigkeitsproblem Eine hundertprozentige im vorliegenden Falle aber wohl unn tig aufwendige L sungsvariante w re enable secret level NUM level NUM STRING Diese Version hat den Vorteil da sie auf schematische Weise ohne langes Nachdenken aus dem beanstandeten Pattern abgeleitet werden kann 6 Man beachte da enable secret level NUM level NUM STRING nicht funktionieren w rde Die Negation eines optionalen Patterns hier level NUM kann nie einen Match erzeugen weil der optionale Teil zumindest mit einem Text der Lange O immer einen Match liefert Copyright Fraunhofer IESE 2003 2 5 Architektur und Funktionsprinzip 26 Makros Einige Konfigurationsklauseln des IOS sind u erst komplex und variantenreich Entsprechend l nglich fallt das dazu passende Pattern aus Um Textmuster m glichst bersichtlich spezifizieren zu k nnen ist die Verwendung von Makros vorgesehen Ein Makro ist ein Paar lt Makroname gt lt Makro Pattern gt wobei der Makroname aus Gro buchstaben Ziffern und _ Zeichen zu bilden ist mit f hrendem Zeichen ungleich Ziffer Nach Definition des Makros kann der Makroname fortan wie ein
22. Kontext des eingestellten Modus wirksam wie auf Seite 34 als Klauselkontext eingef hrt Klauselkontexte eines bestimmten Typs k nnen in einer IOS Konfigurationsbe schreibung in der Regel in mehreren Auspr gungen Instanzen auftreten Ein Beispiel ist etwa der Interface Modus zum Konfigurieren von Router Schnittstellen Da ein Router mehrere Schnittstellen hat beziehen sich alle Interface Konfigurationsanweisungen auf die Schnittstelle die zuvor beim Moduswechsel als jeweilige Instanz benannt wurde Die gleiche Anweisung kann sich daher in der Konfigurationsbeschreibung mehrfach wiederholen z B je einmal f r jedes vorhandene Interface Um diesem Umstand Rechnung zu tragen gen gt es bei Pattern Definitionen im allgemeinen nicht ein Textmuster anzugeben Vielmehr mu auch unterschieden werden in welchem Kontext und in welcher Kontextinstanz das Pattern gepr ft werden soll So ist etwa das Auftreten der Klausel shutdown nur dann sinnvoll interpretierbar wenn klar ist auf welche Schnittstelle sich der Befehl bezieht Copyright Fraunhofer IESE 2003 Pr fmodule Compound Term Factor Counted Pattern Term Term if Compound then Compound elsif Compound then Compound else Compound Factor amp Factor NOT Pattern Counted_Pattern Global Compound XOR Compound Compound Count Pattern lt min gt lt max gt
23. Korrekturen auf das Pr fergebnis ausgewirkt haben sichert der Anwender die Pr fergebnisdaten des ersten Pr flaufs Copyright Fraunhofer IESE 2003 1 1 1 Hilfswerkzeuge Utilities 7 3 112 zum Beispiel in das Verzeichnis tmp unter dem Dateinamen firstrun xml cp XML_data results xml tmp firstrun xml 4 Der Anwender wiederholt nun den Pr flauf mit der korrigierten Routerkon figuration routerconfiguration version2 cfg perl crocodile routerconfiguration version2 cfg 5 In der resultierenden HTML Darstellung sieht der Anwender nun wie CROCODILE die neue Konfiguration insgesamt bewertet Es ist allerdings in dieser Standardansicht nur schwer erkennbar inwieweit sich die Bewertung aufgrund der Korrekturen verdndert hat Um auf einen Blick eine Zusam menfassung der Anderungen zu erhalten kann der Anwender mittels make_html pl eine Darstellung der Unterschiede relativ zum zuvor gesicherten urspr nglichen Pr fergebnis erzeugen indem er das Hilfs werkzeug mit dem Namen der Referenzdatei aufruft perl Utils make_html pl tmp firstrun xml Im Browser kann nun unter HTML_results index html das Ergebnis dieser Diffe rentiellen Evaluation begutachtet werden Die Darstellung enth lt alle Pr fer gebnisse aber nur solche Ergebnisse die neu oder ge ndert sind werden optisch hervorgehoben Unver nderte Befunde werden in neutraler F rbung blicher weise in schwarz wiedergegeben Abbildung 28
24. Network Digest MD5 Dieses Package stellt die ben tigte Funktionalit t auf bequeme Weise zur Verf gung In der Regel sollte das Package in einer modernen PERL Standarddistribution enthalten sein Sollte in der lokalen PERL Installation des Anwenders dieses Modul wider Erwarten fehlen so erscheint bei Programmstart folgende Warnmeldung auf der Konsole Auxiliary BSDcrypt Unable to locate CPAN Module Digest MD5 You may either try to install this module see www cpan org or use your Perl unchanged Just ignore this error message Tn the latter case CROCODILE can t perform any No 5 checks Apart from that CROCODILE s functionality remains unchanged Der Benutzer kann in diesem Fall die Programmausf hrung einfach fortsetzen CROCODILE wird sich im wesentlichen unver ndert verhalten Lediglich solche Pr fpunkte des Moduls Passwords die sich auf Nr 5 verschl sselte Passw rter beziehen liefern keinen Befund Alle brigen Module behalten ihren vollen Funktionsumfang Copyright Fraunhofer IESE 2003 83 Pr fmodule 84 Wahlweise kann der Anwender aber auch versuchen das fehlende Modul Digest MD5 von einem CPAN Server kostenlos nachzuinstallieren Eine m gliche URL daf r ist www cpan org Er sichert dadurch den vollen Pr fumfang des Moduls Passwords Copyright Fraunhofer IESE 2003 5 5 1 Emulation des Router Audit Tools RAT Das Router Audit Tool RA
25. Normalanwender auch kaum noch zumutbar 4 3 Modul IngressEgress 56 Router die an der Grenze eines Netzwerks positioniert sind und die Verbindung zu anderen Netzwerken herstellen sogenannte Perimeter Router sollten an der bergangsschnittstelle eingehende und ausgehende Nachrichten auf Plausibilit t pr fen In eingehender Richtung ingress sch tzen sie damit das eigene Netz gegen unliebsame fehlerhafte oder gar manipulierte Datenpakete in ausge hender Richtung egress verhindern sie da vom eigenen Netz St rungen oder Manipulationsversuche in Richtung anderer Netze ausgehen 8 Technisch w re es ohne weiteres m glich die Pattern Definitionen um Meldungstexte anzurei chern Dies br chte aber zunehmende Lasten bei der Erstellung der Konfigurationsdatei CompoundPatterns conf mit sich Daher sind dem Ausdrucksverm gen der Konfigurations syntax recht enge Grenzen gesetzt Copyright Fraunhofer IESE 2003 Pr fmodule IOS Router realisieren die sogenannte Ingress und Egress Filterung blicher weise mit Hilfe geeigneter Access Listen Das Pr fmodul IngressEgress erm g licht es genaue Vorgaben f r die Filterwirkung solcher Access Listen zu machen und deren Einhaltung zu berpr fen Das Pr fmodul IngressEgress baut auf Analysen des Pr fmoduls Connectivity auf siehe Kapitel 4 4 Seite 64 ff und kann daher nur im Verbund mit diesem aktiviert werden Ist Connectivity f r einen Pr flauf nicht akti
26. Pattern Atom Nonatom Macro Nonatom Pattern Pattern Pattern Pattern Atom lt lOS Keyword gt lt numeral gt lt min gt lt max gt lt string gt STRING DSTRINGD WORD NAME NUM IPADDR PATTERN lt Perl regular expression gt Macro lt macro name gt Pattern Tabelle 2 Syntax zur Bildung von Compound Patterns Zeichen in Fettdruck geh ren zur Syntax alle andere Zeichen sind Metazeichen zur Syntaxbeschreibung die selbst nicht zum Pattern geh ren Daher wurde beim Entwurf des Pr fmoduls CompoundPatterns das Konzept der sogenannten Kontext Definition ersonnen um Patterns auf bestimmte Klauselkontexte einzuschr nken Dabei ist das im folgenden beschriebene Kontext Konzept sogar noch allgemeiner da es nicht unbedingt einem IOS Copyright Fraunhofer IESE 2003 51 Pr fmodule 52 Konfigurationsmodus entsprechen mu in der Praxis ist die Darstellung von IOS Modi jedoch der wesentliche Verwendungszweck Das allgemeine Format einer Kontextdefinition lautet wie folgt lt begin basic pattern gt lt end basic pattern gt Man beachte daB lt begin pattern gt und lt end pattern gt je eine eigene Zeile beanspruchen und nicht in eine gemeinsame Zeile geschrieben werden durfen Es muB sich jeweils um elementare Pattern handeln Compounds sind nicht zul ssig und w ren an dieser Stelle auch unsinnig Zwischen den geschweiften Klammern
27. Pr fbereichen am sinnvollsten spezifizieren kann F r die planm ige Erweiterung des Pr fumfangs bietet das CROCODILE Framework hervorragende Voraussetzungen Allerdings ist der erforderliche Realisierungsaufwand nur durch entsprechende Nachfrage zu rechtfertigen Pr fbereiche nur auf Verdacht zu erschlie en ohne da absehbar ein Kunde danach verlangt ist nur in wenigen Kernbereichen vertretbar Andererseits kommt jedes neue Pr fmodul allen CROCODILE Anwendern zugute denn es kann der gesamten Kundschaft verf gbar gemacht werden Zum Vorteil aller Anwender hoffen wir daher auf einen ausreichend gro en Kundenstamm der eine kosteng nstige Weiterentwicklung des Frameworks sichert 9 3 Ausdehnung auf andere Netzwerkkomponenten 130 CROCODILE ist hinreichend flexibel um auch auf andere Konfigurationsformate angewendet zu werden Naheliegend w ren Cisco PIX Firewall Konfigurationen die im Vergleich zu IOS Konfigurationen eine etwas andere jedoch recht hnliche Befehlslogik verwenden Dies w rde zwar eine v llige Neugestaltung der Pattern und Pattern Handler erfordern die Grundz ge der Werkzeugum gebung insbesondere Parser und HTML Ausgabe blieben jedoch unver ndert erhalten und w ren nutzbringend wiederverwendbar Die Bereitstellung von PIX Pr fmodulen ist als ein Weiterentwicklungsschritt fest ins Auge gefa t Grunds tzlich sollten auch Router oder Firewalls anderer Hersteller als Cisco analysierbar sein soweit
28. Werkzeugs zu profitieren Die Durchf hrung geeigneter Ma nahmen in Reaktion auf das Pr fergebnis erfordert in jedem Falle Routing Fachwissen Das Werkzeug verwendet teils feste teils frei konfigurierbare Pr fkriterien Um eigene Pr fkriterien zu formulieren mu der Anwender ber ausreichende Router und Sicherheitskenntnisse verf gen Da Sicherheitsanforderungen je nach dem Einsatzkontext sehr verschieden sind kann CROCODILE keine universell sinnvolle Default Konfiguration vorhalten Die mitgelieferten Konfigurationsein stellungen dienen haupts chlich der Illustration und liefern voraussichtlich einige sinnlose Analyseergebnisse Die benutzerdefinierbaren Pr fregeln bed rfen daher der Anpassung an die lokalen Gegebenheiten Das Handbuch erl utert die notwendigen Schritte an passender Stelle Modifikation und Erweiterung des Werkzeugs CROCODILE wurde als erweiterbares Framework konzipiert Das bedeutet da der Funktionsumfang des Werkzeugs nicht festgelegt ist sondern leicht erg nzt oder Copyright Fraunhofer IESE 2003 ver ndert werden kann Der Anwender kann bei Bedarf selbst als Entwickler tatig werden indem er zus tzliche oder g nzlich andere Pr fmodule konzipiert und in das Framework einsetzt Das Benutzerhandbuch liefert hierzu grundle gende Einsichten einen Startpunkt um die Struktur und Funktionsweise des Werkzeugs zu ergr nden Es kann allerdings ein Entwicklerhandbuch oder eine Entwicklerschulun
29. anderen Referenzen zu handhaben sind Siehe dazu die Erl uterungen zu add_reference oben attach_ciscolinks linenum commandstring context Diese Methode bietet die M glichkeit einer Zeile URL Referenzen auf die Online Dokumentation von Cisco anzuf gen siehe Abbildung 6 Seite 36 links unten Die eingef gten Links verweisen auf Syntax und Funktionsbe Copyright Fraunhofer IESE 2003 Copyright Fraunhofer IESE 2003 schreibungen des Befehls Als Argument commandstring wird in der Regel einfach der Wortlaut der jeweiligen Konfigurationsklausel angegeben Die Methode sucht in einer speziell aufbereiteten Datenbank nach passenden URLs f r diesen Befehl Manchmal ist es allerdings n tig durch die Angabe des Klauselkontexts d h in der Regel des bergeordneten IOS Configuration Modes die Suche einzuschr nken damit durch die Suchheu ristik nicht zu viele unpassende URLs ermittelt werden Die URLs f r die Befehle finden sich in der Textdatei linkdata conf im Unterverzeichnis Configuration N heres dazu findet sich in Kapitel 7 3 135 1 36 Copyright Fraunhofer IESE 2003 Quellenverzeichnis CIS Center for Internet Security CIS http Awww cisecurity org CiscoTech Cisco Systems Inc Improving Security on Cisco Routers 1992 2001 http www cisco com warp public 707 21 html 10S12 0a Cisco Systems Inc Cisco IOS 12 0 Network Security Cisco Press 1999 10S12 0b Cisco Systems Inc Cisco
30. dazu die Optionen lt RulesetDir gt bzw lt Ruleset gt in Tabelle 3 Als Vorlage f r einen Regelsatz kann das Konfigurations lt RulesetDir gt lt Ruleset 1 gt plugin conf Beteiligte Pr fmodule an Regelsatz 1 I CompoundPatterns conf Regelkonfiguration f r CompoundPatterns IngressEgress conf Regelkonfiguration f r IngressEgress lt Ruleset 2 gt I plugin conf Beteiligte Prufmodule an Regelsatz 2 I CompoundPatterns conf Regelkonfiguration f r CompoundPatterns IngressEgress conf Regelkonfiguration f r IngressEgress Strukturierung von Pr fregels tzen in einem Verzeichnisbaum 103 Stapelverarbeitung Batch Processing 6 4 104 verzeichnis Configuration dienen Wird der Pr fregelsatz mittels dieser Optionen festgelegt so gilt er f r alle Batch Jobs gleicherma en Soll aber statt dessen jeder Job mit einem individuellen Pr fregelsatz ausgef hrt werden so ist eine Pr fregelauswahl ber den Namens Pr fix der Eingabedateien m glich Sobald eine IOS Konfigurationsdatei mit Namen lt prefix gt verar beitet werden soll so extrahiert batchcroco aus dem Dateinamen den Pr fix und w hlt im Regelverzeichnis lt RulesetDir gt das Unterverzeichnis lt prefix gt als lt Ruleset gt aus So w rde zum Beispiel der Aufruf user host CROCODILE perl batchcroco MyRules acsac txt s Rules die Datei MyRules acsac txt nach dem Regelsatz Rules MyRules analysieren vo
31. deren Konfiguration in Form von textuellen Beschreibungen mit nachvollziehbaren Syntaxregeln vorliegt Konkrete Pl ne dazu gibt es derzeit jedoch nicht Copyright Fraunhofer IESE 2003 A Schnittstelle zur Befunddatenbank Die folgende Beschreibung der Schnittstelle Pr fmodul Befunddatenbank richtet sich vornehmlich an Benutzer die bestehende Pr fmodule modifizieren oder neue Pr fmodule realisieren wollen Alle Pr fmodule speichern ihre Befunde in der zentralen Befunddatenbank ab Die Datenbank wird durch das PERL Modul Auxiliary ResultData pm realisiert Sie verf gt ber Methoden f r das Speichern der unterschiedlichen Ergebnisda tentypen Anmerkungen Befundkategorien Verbesserungsvorschl ge usw Erl uterungen dazu finden sich in Kapitel 3 4 auf Seite 32 Datenbankschnittstelle der Pr fmodule Alle Zugriffsmethoden der Befunddatenbank sind Schreiboperationen Es ist nicht vorgesehen Anfragen an die Befunddatenbank zu stellen Das vereinfacht die Schnittstelle und erleichtert den Modulen die Interaktion mit der Datenbank Pr fmodule nutzen die Datenbankschnittstelle in der Regel nicht direkt sondern mittels Wrapper Methoden die von der gemeinsamen Basisklasse aller Pr fmodule Plugin Module mit verk rzter Parameterliste bereitgestellt werden Die Methoden im einzelnen sind e set_clause_context linenumber context_name Eine vom Parser erkannte Zeile kann hiermit einem Klauselkontext zugeordnet wer
32. diesen Teil der Analyse in ein eigenst ndiges Hilfswerkzeug auszulagern die Utility plackwhite Anwendung von blackwhite Die Verwendung von blackwhite setzt einen Analyselauf mit dem Pr fmodul Connectivity voraus Ist Connectivity deaktiviert so fehlen die n tigen Rohdaten f r eine nachgeschobene vertiefende Analyse mittels blackwhite Der Anwender wird also zun chst einen Standardanalyselauf durchf hren wobei 14 Ungl cklicherweise handelt es sich hier um eine ung nstige R ckkopplung Je l nger die Berechnung dauert um so wahrscheinlicher ist es da der Anwender mit dem Ergebnis nur noch wenig anfangen kann Copyright Fraunhofer IESE 2003 1 07 Hilfswerkzeuge Utilities 108 Connectivity aktiviert sein mu Daraufhin werden Informationen zu den konfi gurierten ACLs im Unterverzeichnis XML_data als XML Dateien abgelegt Ist der Analyselauf des Programms CROCODILE beendet so kann der Anwender das parameterlose Skript Utils blackwhite pl starten Das Hilfsprogramm findet die unter XML_data abgelegten Daten und bietet dem Anwender ein Men der zur Auswahl stehenden ACLs und Line Interfaces an Der Anwender w hlt inter aktiv eine ACL ein Interface oder ein Line Interface und passende Verarbeitungs optionen Das Hilfswerkzeug berechnet daraufhin das Whiteset und Blackset der ACL bzw das Propagate Set der Schnittstelle entsprechend den Vorgaben Das Ergebnis wird in gew hnl
33. es der Methode bei Pr fschritten auf beliebige private Pr fmoduldaten zur ckzu greifen Die Methode ist so in der Lage Informationen ber mehrere Aufrufe hinweg zu speichern oder mit anderen Handlern des Pr fmoduls Erkennt nisse auszutauschen Der Parameter match verweist auf eine Attribute Werte Tabelle die alle wesentlichen Informationen zum Pattern und dem dazu passenden Textfragment enth lt darunter LINE_NO die Zeilennummer in der das Pattern aufgetreten ist LINE der Wortlaut der Zeile MATCH der Teil des Wortlauts der dem Pattern entspricht PATTERN das Pattern welches die Erkennung ausgel st hat EXPANSION die Langform des Patterns nach Aufl sung aller Makros NEGATION ein Flag f r das Auftreten von no lt PATTERN gt lt Fragmentnr gt die Bestandteile des Textfragments zerlegt nach Fragmentnummern vgl Abschnitt Pattern Zerlegung Seite 22 Mit Hilfe der zwei Parameter hat der Pattern Handler Zugriff auf alle relevanten Informationen die f r eine Pr fung ben tigt werden Abbildung 5 zeigt den Ausschnitt eines typischen Datensatzes wie ihn der Parser mittels match an einen Pattern Handler bergibt 0 interface T LoopbackO 1 0 Loopback 1 1 0 CRITICALITY INFO EXPANSION interface i a z d d d d LINE interface Loopback0 LINE_NO 2224 MATCH interface Loopback0 PATTERN interface IF_TYPE
34. gen umrissen e F r jedes Logging Attribut wird im Pr fmodul eine Variable angelegt die den jeweiligen Attributstatus widerspiegelt der Initialwert wird entspre chend dem Default gesetzt e F r jeden Konfigurationsbefehl definiert der Entwickler ein passendes Pattern und ordnet ihm einen Pattern Handler zu Der Handler wertet die Befehlsparameter aus und f hrt die Belegungen der betroffenen Attribut variablen geeignet nach e Sind alle Konfigurationsbefehle ausgewertet so ermittelt das Pr fmodul den resultierenden Logging Status anhand der finalen Attributbelegungen und erzeugt entsprechende Pr fprotokolleintr ge Die Durchf hrung dieser Punkte ist im Prinzip einfach in der Praxis ergeben sich dabei jedoch einige Schwierigkeiten Dies h ngt vor allem damit zusammen da die Cisco Dokumentation oftmals mehrdeutig ist Nicht immer ist klar welche Attribute genau von einer Konfigurationsoption betroffen sind F hrt das Weglassen eines optionalen Parameters zum R cksetzen des betroffenen Attributs auf den Default Wert Ist der Default f r verschiedene Router Modelle unterschiedlich Sind alle syntaktisch erlaubten Parameter Kombinationen eines Befehls in der Praxis auch zul ssig Solche und hnliche Unsicherheiten erschweren die Analyse Eine Kl rung ist oft nur durch Ausprobieren in einer IOS Sitzung an einem Router m glich Copyright Fraunhofer IESE 2003 1 1 7 Erstellen eigener Pr fmodule 8 3 118 Imple
35. gt analyze Ergebnisdaten in den verschiedenen Formaten schreiben print nWriting Results n my Sdata ResultData gt get Sdata gt save_as_xml xml_output Shtml gt write Shtml_outdir print STDERR nAnalysis finished n n Abbildung 3 Struktur des CROCODILE Hauptprogramms Copyright Fraunhofer IESE 2003 19 Architektur und Funktionsprinzip 3 2 20 Parser Modul Ein Arbeitsschritt der allen Pr fpunkten zugrundeliegt besteht darin in der Router Konfigurationsbeschreibung vorgegebene Textmuster aufzuspUren und in ihre syntaktischen Bestandteile zu zerlegen Das Parser Modul Ubernimmt diese Aufgabe stellvertretend f r alle Pr fmodule Beim Einstecken eines Pr fmoduls mittels plugin bermittelt das Modul dem Parser eine Menge von Musterspezifikationen die der Parser im Auftrag des Pr fmoduls detektieren soll Tritt eines der vorgegebenen Muster auf so wird das Pr fmodul verstandigt und erhalt die auf das Muster passende Textzeile zerlegt in ihre Bestandteile gem B Pattern Spezifikation zur Weiterverarbeitung Patterns Relevante Textmuster sogenannte Patterns werden in Backus Naur Form beschrieben Eine Pattern Beschreibung setzt sich aus einem oder mehreren Grundbestandteilen Atomen zusammen die zu Komposita kombiniert werden k nnen Die Komposition der Bestandteile ist nach folgenden Regeln m glich e Sequenz Die Aneinanderreihung lt pattern 1 gt lt
36. immer der schlech teste durch also ALERT vor WARN usw Es kann aber nun vorkommen da gerade das blinde berschreiben des alten Wertes gew nscht ist so da die neue Kritikalit t auf jeden Fall bernommen wird In diesem Fall kann man das force Flag setzen d h das letzte Argument mit irgendeinem Wert f llen Hierbei ist zu beachten da die somit angegebene Kritikalit t zwar vorerst uneingeschr nkt bernommen wird falls aber im Verlauf der Analyse ein weiteres Mal ein change_criticality ohne force Flag aufge rufen wird wird wieder der schlechteste Wert der beiden Kritikalit ten bernommen F r severity sind die Werte OKAY INFO CHECK WARN oder ALERT zul ssig dies ist die Reihenfolge vom besten zum schlechtesten Wert set_category linenumber category Mit dieser Methode kann man jeder Zeile einer Kategorie zuordnen Welche Begriffe hier als Kategoriename class verwendet werden ist dem Programmierer freigestellt Ist die Kategorie einmal von einem Modul festgelegt worden so kann dieses sie nicht mehr andern add_annotation linenumber text severity Mit dieser Methode k nnen Anmerkungen zu einer Zeile hinterlegt werden Jeder Aufruf dieser Methode f gt in der Befunddatenbank einen neuen Anmerkungssatz zu dieser Zeile hinzu Der Anmerkung wird eine angegebene Kritikalit t zugeordnet Der Aufruf von add_annotation impliziert change_criticality so da sich mit dem Hinzu
37. in der Numerierungsebene Wenn eine passende Textzeile zu diesem Pattern gefunden wird dann ordnet der Parser jedem Pattern Fragment das zugeh rige Textfragment zu und meldet es unter der entsprechenden Fragmentnummer Zum Beispiel erh lt man f r eine access list Klausel nach obigem Syntaxformat folgende Zerlegung access list 1370 deny 143 69 0 0 0 0 255 255 log 0 access list 1370 Al 11370 deny ris deny 143 69 0 0 0 0 255 255 143 69 0 0 0 0 255 255 2607 720 05255 2557 log 20 log BR amp amp amp amp ND ND RB Copyright Fraunhofer IESE 2003 23 Architektur und Funktionsprinzip 24 Die Analysemethode Handler des Pr fmoduls kann sich einfach auf die entspre chende Fragmentnummer des Patterns beziehen um bestimmte Textfragmente anzusprechen Die Numerierung erlaubt den geordneten Zugriff f r jede beliebige Pattern Spezifikation Konflikte Gierige oder minmale Pattern Interpretation Je nach gew hltem Pattern kann es mehrer M glichkeiten geben einen Match mit einem vorgegebenen Text zu bilden Dies h ngt damit zusammen da sich die Pattern Bestandteile gierig oder minimal anwenden lassen Die gierige Strategie Greedy Matching versucht jedem Atom einen m glichst langen Match zuzuordnen ehe versucht wird das nachfolgende Atom auf den verbleibenden Resttext anzuwenden Die minimale Strategie versucht im Gegensatz dazu
38. is the specification of valid rule formats Where are the specifications for RAT Globals RAT Parameters and RAT Evaluation Rules Where is the NSA Router Security Configuration Guide to be hyperlinked to RAT rules Do you prefer the original RAT scoring method which is rather obscure Should we add page labels to PDF hrefs This is convenient but does not work for all browsers Emulation des Router Audit Tools RAT ACTIVE YES RATLIB rat2 0 lib CONTEXTS rat2 0 etc configs cisco ios contexts txt FIELDS rat2 0 etc configs cisco ios fields txt RULES rat2 0 etc configs cisco ios common conf rat2 0 etc configs cisco ios cis level 1 conf rat2 0 etc configs cisco ios cis level 2 conf home schwarz rat my wonderful private _ruleset conf SECURITY _GUIDE rat2 0 doc rscg pdf WEIRD_RAT_SCORING YES PDF_PAGE_ LABELS NO Abbildung 22 Beispiel f r Vorgaben in RATemulation conf Copyright Fraunhofer IESE 2003 gew hnlich im Unterverzeichnis etc configs cisco ios in der Datei fields txt Die Feldformatbeschreibungen legen fest welche Attribute in RAT Regeln vorgeschrieben oder zul ssig sind und welchen Wertebereich diese Attribute annehmen d rfen RULES lt Liste mit Pfaden zu Pr fregeldateien gt In der RAT Standarddistribution finden sich einige Standardregels tze im 89 Emulation des Router Audit Tools RAT 5 4 90 Unterv
39. jedem Atom nur einen k rzest m glichen Match zuzuordnen Zwischen diesen beiden Extremen sind beliebige Mischstrategien denkbar Ein Beispiel soll das Problem verdeutlichen Gegeben sei das Pattern enable secret level NUM STRING sowie der Text enable secret level 15 5 1SiNeBStr JFRdI7ckzIxX8v9g8cl1 gt Dann sind zwei Interpretationen des Patterns denkbar e Der optionale Pattern Bestandteil level NUM ist anwendbar und kann daher einen Match mit dem Teiltext level 15 erzeugen Dem Atom STRING ist dann als Match der Rest 5 1 iNeB tr JFRdI7ckzIXx8v9g8c1 zuzuordnen e Ein Match entsteht aber auch wenn man den optionalen Pattern Bestandteil level NUM berspringt In diesem Falle wird STRING der Match level 15 5 1 iNeB tr JFRdl7ckzIX8v9g8c1 zugeordnet dem optionalen Bestandteil Ievel NUM hingegen der leere Match Keine der beiden Strategien weder die gierige noch die minimale ist der anderen allgemein vorzuziehen beide haben ihre Berechtigung F r CROCODILE ist aber wichtig da ein Patterns immer eindeutig interpretierbar ist Um dies zu gew hrleisten k nnte man willk rlich eine Strategie zur Interpretation aller Patterns festlegen Dies f hrt jedoch leicht zu Anwendungsfehlern denn dem Benutzer f llt oftmals nicht auf da seine Pattern mehrdeutig sind und oft hat er bei der Erstellung eines Patterns gerade nicht die gierige Interpretation im Sinne Um Mi verst ndnissen vorzubeuge
40. ndiges Pr fmodul geb ndelt Konstruktionsprinzip Alle Pr fmodule sind von einem gemeinsamen Basistyp der Objektklasse Module abgeleitet Durch Vererbung sind sie mit allen wesentlichen Mecha nismen ausgestattet die erforderlich sind um in das Werkzeug Rahmenwerk zu passen siehe Abschnitt Schnittstelle zu den Pr fmodulen oben Aufgrund der Vererbung lassen sich neue Pr fmodule mit geringem Aufwand konstruieren und in das Werkzeug integrieren Abbildung 4 zeigt den grundlegenden Aufbau eines Pr fmoduls S mtliche Pr fmodule basieren auf diesem Programmskelett Copyright Fraunhofer IESE 2003 Architektur und Funktionsprinzip package Plugin SomeModule Vererbung Jedes Pr fmodul ist ein is a Plugin Modul Damit ist die Schnittstelle zum Parser automatisch verfiigbar use Plugin Module use vars qw ISA ISA Plugin Module Private Makro Definitionen des Priifmoduls my macroref SUBNET gt IPADDR IPMASK any host IPADDR l Pattern Definitionen an denen das Priifmodul interessiert ist mit Zuordnung der Liste aller lokal zust ndigen Pattern Handler my patternref line aux con console tty vty NUM NUM gt HANDLER gt amp _line_handler 3er Konstruktor f r Instanzen des Pr fmoduls sub new my S proto shift my class ref proto proto my self Sself class gt SUPER does_exist if def
41. sich die vorgegebenen Filterklauseln nicht unbedingt w rtlich in der Router Konfiguration wiederfinden m ssen Es gen gt da die Router Konfigu ration insgesamt den geforderten Effekt erzielt n mlich das Whiteset zu akzep tieren und das Blackset zu verwerfen mit welchen access list Konstrukten auch immer Dies unterscheidet das Pr fmodul IngressEgress deutlich von anderen im Internet kursierenden einfachen Pr fskripten die Vorgabe und Konfigurationsbeschreibung lediglich auf w rtliche bereinstimmung pr fen Verf gbare permit und deny Klauseln Filterklauseln orientieren sich am Format der Standard Access Listen sowie der Erweiterten Access Listen Die Syntax f r g ltige Filterklauseln lautet im Standardformat permit deny any IPADDR WILDCARDMASK oder im erweiterten Format permit deny PROTOCOL SUBNET PORTSPEC SUBNET PORTSPEC ICMPSPEC established Copyright Fraunhofer IESE 2003 Pr fmodule wobei PROTOCOL 0 255 lt Protokollname gt SUBNET IPADDR WILDCARDMASK any host IPADDR PORTSPEC lt gt eq neq lt Port gt range lt Port gt lt Port gt ICMPSPEC 0 255 0 255 lt Typname gt Dies entspricht der Parametrisierung und Wirkung entsprechender IOS Befehle Anders als bei IOS Access Listen k nnen Standardklauseln beliebig mit erwei terten Klauseln gemischt werden Auch k nnen Vorgaben im Standardformat erstellt werden um Erweiter
42. solcher Eintrag in der Router konfiguration so ist dies irrelevant und soll nicht protokolliert werden Der Bindestrich als zweites Zeichen in a darf auch weggelassen werden Die Pattern Definitionen drei und vier besagen zusammen da in der Konfigura tionsbeschreibung die Angabe einer zul ssigen Versionsnummer erwartet wird Ist dies der Fall so wird eine OKAY Meldung protokolliert Fehlt eine entspre chende Direktive in der Routerkonfiguration oder ist sogar eine unerw nschte Versionsnummer nachweisbar so soll eine CHECK bzw ALERT Meldung erfolgen Bei der Einstufung von Pattern gen gt die Angabe von lt crit1 gt Die zweite Einstufung wird als erg nzt sofern nicht explizit etwas anderes angegeben ist Als Patterns k nnen elementare oder zusammengesetzte Patterns verwendet werden Copyright Fraunhofer IESE 2003 Pr fmodule Elementare Patterns Ein elementares Pattern ist eine Textmuster Beschreibung die sich auf eine einzelne Konfigurationsklausel eine isolierte Zeile der IOS Konfigurationsbe schreibung bezieht Patterns werden in Backus Naur Form spezifiziert Das genaue Format und die m glichen Konstruktionselemente z B Sequenz Auswahl Wiederholung Negation sowie die verf gbaren Grundmuster Atoms sind in Kapitel 3 2 im Abschnitt Patterns n her beschrieben Dort finden sich auch Beispiele f r typische Pattern Spezifikationen Achtung Ein ungeschickt fomuliertes Pattern kann mehrdeu
43. t ist k nnen wir grundlegende Fertigkeiten im Umgang mit Computern und Software wohl voraussetzen Das Werkzeug wird per Kommandozeile meist aus einer Benutzer Shell einem Konsolenfenster oder dergleichen gestartet Der Anwender sollte daher mit der Kommandozeilen Schnittstelle seines Betriebssystems vertraut sein Unserer seits sind wir nicht auf eine bestimmte Plattform fixiert Das Werkzeug wurde teils unter Unix Dialekten Solaris Linux teils unter Windows Varianten entwickelt Pr fergebnisse werden f r die Darstellung in einem HTML Browser aufbereitet Da HTML Dokumente von verschiedenen Browser Typen unterschiedlich darge stellt werden ist es mitunter erforderlich einige Browser Einstellungen nachzu justieren Der Anwender sollte wissen wie er zum Beispiel Schriftgr en ver ndern und HTML Frames oder Cascading Style Sheets bei seinem Browser aktivieren kann Im Internet Zeitalter erachten wir dies als zumutbar Weitere Darstellungsparameter vor allem Farbzuordnungen lassen sich aus CROCODILE heraus konfigurieren Das Handbuch beschreibt die dazu erforder lichen Schritte Notwendige Router Kenntnisse CROCODILE analysiert Routerkonfigurationen genauer Konfigurationsbeschrei bungen f r Router die unter dem Internet Operating System IOS der Firma Cisco Systems laufen Es ist daher selbstverst ndlich da der Anwender mit Routing Problemen und mit IOS vertraut sein mu um von den Analysen des
44. tmp CROCODILE Configuration CompoundPatterns conf done CompoundPatterns conf Passwords PLUGGED IN CompoundPatterns PLUGGED IN Connectivity PLUGGED IN NTP PLUGGED IN IngressEgress PLUGGED IN AAA PLUGGED IN SNMP PLUGGED IN Logging PLUGGED IN Starting parse 114 lines of configuration parsed Parsing finished Now analyzing Checking for trivial No 5 passwords Dumping subnet information to result database 8 Copyright Fraunhofer IESE 2003 Anwendung des Pr fwerkzeugs im Uberblick Dumping node information to result database Writing interface info to tmp CROCODILE XML_data Writing line interface info to tmp CROCODILE XML_data Writing access list info to tmp CROCODILE XML data Skipping ACL 110 empty Used but not defined Determine whether interfaces accept NTP requests Serial0 Ethernet0 undefined ACL 110 Ingress Restrictions for Interfaces Egress Restrictions for Interfaces Ingress Restrictions for Lines Egress Restrictions for Lines Restrictions for Accesslists Reading tmp CROCODILE Output HTML_output conf done HTML_output conf Writing Results Analysis finished See tmp CROCODILE HTML_results index html Successful termination No PROBLEMS and no ERRORS user time 0 19 min system time 0 00 min Die Analyse von acsac cfg ben tigt je nach dem Leistungsverm gen des Rechners nur wen
45. umfaBt lediglich URLs also Verweise auf die Befehlsbeschreibungen Aus urheberrechtlichen Gr nden aber auch unter Speicherplatzgesichtspunkten wurde darauf verzichtet Kopien der Command Reference Seiten lokal bereitzuhalten Das bedeutet daB die im Analyselauf generierten Verweise nur dann nutzbar sind wenn das Ergebnis auf einem Rechner mit Internet Zugriff dargestellt wird Ohne Internet Anbindung k nnen die referenzierten IOS Seiten nicht geladen werden Die Aufbereitung einer neuen URL Datenbasis linkdata conf erfordert folgende Schritte 1 Bestimmung der URL unter der sich der Masterindex der gew nschten IOS Version befindet F r IOS 12 3 ist dies augenblicklich der Pfad http www cisco com univercd cc td doc product software ios123 123mindx crgindx htm 2 Herunterladen der Masterindex Datei unter der in 1 ermittelten URL in eine tempor re lokale Datei z B tmp index html mit Hilfe eines Browsers 3 Aufruf des Hilfswerkzeugs linkfilter pl mit den Argumenten lt index Datei gt und lt index URL gt z B Utils linkfilter pl tmp index html http www cisco com Das Hilfsprogramm erzeugt nun automatisch die Datei linkdata conf im Unter verzeichnis Configuration Es handelt sich um eine editierbare gew hnliche Textdatei Jeder Eintrag belegt genau eine Textzeile in folgendem Format lt ios befehl s prefix gt lt kontext gt lt Cisco manual name gt lt URL gt Lieg
46. user host tmp cd CROCODILE Damit ist das Werkzeug einsatzbereit Um die Installation wieder zu entfernen gen gt es das Unterverzeichnis CROCODILE oder wie immer der Installati onspfad lautet zu entfernen CROCODILE greift nicht auf Daten au erhalb seines Installionsverzeichnisses zu sofern der Anwender nicht ausdr cklich andere Eingabe oder Ausgabe Pfade spezifiziert Auswahl der Eingabedaten CROCODILE erwartet als Eingabe eine IOS Routerkonfiguration in gew hnlichem Textformat so wie sie zum Beispiel das IOS Kommando show running config liefert Die running config ist ideal denn e sie zeigt immer den wahren Konfigurationszustand des Routers im laufenden Betrieb Copyright Fraunhofer IESE 2003 Anwendung des Pr fwerkzeugs im Uberblick e alle IOS Schl sselw rter sind in voller L nge ausgeschrieben was bei manueller Konfiguration nicht erforderlich ist Ein gewisser Nachteil der running config besteht darin da Voreinstellungen defaults meist nicht explizit ausgewiesen sind Es spricht auch nichts dagegen eine handgeschriebene IOS Konfiguration in CROCODILE einzuspeisen denn das Werkzeug setzt weder die spezifische Ausgabereihenfolge von show running config noch dessen charakteristische Konfigurationsmodus abh ngige Einr ckung des Konfigurationstexts voraus Verwendet der Nutzer als Datenquelle eine extern hinterlegte Konfigurationsbe schreibung z B von einem TFTP Server stamme
47. zeigt ein typisches Beispiel eines Pr flaufs in Volldarstellung und in Vergleichsdarstellung Ein Klick auf Source oder Reference Source im Evaluation Target Fenster Abbildung 28 links unten liefert bei Bedarf eine vergleichende Gegen berstellung der beiden zugrunde liegenden Konfigurationsbeschreibungen Ruft der Benutzer make_html pl danach noch einmal ohne Datei Parameter auf so erzeugt das Hilfswerkzeug wieder die bliche Volldarstellung ohne daB der Pr flauf wiederholt werden mu Generierung von URLs auf die IOS Command Reference mittels linkfilter Das Pr fwerkzeug versucht jedem in der Konfigurationsbeschreibung erkannten IOS Befehl passende Verweise auf Befehlsbeschreibungen in der Cisco IOS Command Reference zuzuordnen Dazu enth lt das Unterverzeichnis Configu ration die Dateien linkdata conf sowie designators conf die Befehlsnamen entsprechende URLs zuordnet Das Werkzeug linkfilter pl dient dazu aus dem aktuellen Datenbestand der Cisco IOS Command Reference linkdata conf zu generieren Dieser Schritt ist sinnvoll sobald neue IOS Versionen mit ge ndertem Befehlsumfang zum Einsatz kommen Die derzeitige Distribution enth lt eine Datei linkdata conf die auf Basis von IOS Release 12 3 generiert wurde Copyright Fraunhofer IESE 2003 Abbildung 28 Hilfswerkzeuge Utilities E 105 Router Configuration Checker Ele Edit View Favorites Tools Help CROCODILE Ro
48. 0 30 mit Zielport 80 Alle brigen Nachrichten im Beispiel alle au er ICMP Nachrichten und TCP Nachrichten an den bezeichneten Zielport bleiben brig und werden an die ip any any u Te deny icmp any any V permit tcp any host 135 234 100 30 eq 80 3 V permit tcp any 135 234 100 0 0 0 0 255 established V deny tcp any any V permit 123 456 789 2 Lai V don t care Abbildung 13 Spezifizieren von Ingress Egress Vorgaben Whiteset und Blackset 58 Copyright Fraunhofer IESE 2003 Pr fmodule n chste Filterklausel weitergereicht Auf diese Weise wird Klausel f r Klausel abgearbeitet Nach dieser Methode erh lt man eine reine Whiteset Spezifikation indem man ausschlie lich permit Klauseln verwendet Wird der Filter ausschlie lich mit deny Klauseln beschrieben ergibt sich eine reine Blackset Vorgabe Misch formen wie in Abbildung 13 sind ebenso zul ssig Die Interpretation der Filterspezifikationen entspricht demnach im wesentlichen der Methode nach der IOS Router Access Listen auswerten Der Anwender sollte damit gut vertraut sein Im Unterschied zu Access Listen wird am Ende einer IngressEgress Filterspezifikation jedoch kein implizites deny any angewendet Nachrichten die nach der letzten Klausel brig geblieben sind und weder dem Whiteset noch dem Blackset zugeordnet wurden bleiben statt dessen unregle mentiert Sie
49. 03 Pr fmodule Node 217 31 32 81 Member of 217 31 32 80 87 Reached via ethernet 1 Ports WWW Protocols ip tcp icmp Abbildung 21 Typische Informationen des Pr fmoduls Connectivity zu Netzknoten Abbildung 21 zeigt eine typische Prufmodulausgabe Im vorliegenden Fall legt der WWW Port den Schlu nahe da es sich bei dem Knoten um einen WWW Server handelt Access Control Lists Zugriffskontrollisten Access Control Lists ACLs geh ren zu den am schwie rigsten zu analysierenden Konfigurationsmerkmalen eines Routers Das Pr fmodul versucht die Filterwirkung solcher Listen durch Transformation in ein Whitelist Format d h die ersch pfende Liste aller zul ssigen Verbindungen zu verdeutlichen Daneben pr ft Connectivity ob alle ACLs auch korrekt deklariert und verwendet werden welche Zusammenh nge zwischen einzelnen ACL Klauseln bestehen und ob eine ACL wirkungslose Klauseln enth lt Zu den ermit telten Daten z hlen folgende Punkte e Typ der ACL standard oder extended e Korrekte Verwendung Tippfehlerschutz Jede definierte ACL wird auch verwendet Jede verwendete ACL wird auch definiert e Explizites R cksetzen d h L schen der ACL vor Deklaration e Wechselwirkungen der ACL Regeln untereinander Der Pr fbefund wird in Form von Annotationen in der Befunddatenbank abgelegt und ist in der Ausgabe direkt den entsprechenden Konfigurations klauseln zugeordnet Copyrig
50. 10 Passwords password is f4p01 identical to password line 19 ALERT 17 Passwords weakly encrypted password reused as strong secret in line 17 ALERT 19 Passwords pesky HE password reused in strongly encrypted form lines ALERT Passwords and Secrets RATemulation rule RATemulation rule Evaluation Report Accesslists RATemulation RATemulation CompoundPatterns Ingress Egress Lines and Interfaces Logging NTP Nodes and Subnets RAT Emulation User Manual Contact RATemulation rule E 105 Router Configur Compo AAA Compo Compo Compa Camna Evaluation Profile Authentication amp Authorization 27 interface Ethernet0 28 description Perimeternetz 10 1 1 0724 An 10S Router 29 ip address 10 1 1 1 255 255 255 0 broadcast address 10 1 1 255 31 ip access group 110 in redirects directed broadcast prozy arp Sutput ps CROCODILE RATemulation rule Configuration 30 ip Checker RATemulation rule 32 3 f Evaluation Profile po RATemulation rule 33 no ip 34 no 35 ipa 6 ip 37 no ip 38 no ip ip unting unting route cache aroute cache 39 no cdp enable 40 41 interface Serial0 42 description Provider 192 168 1 0 30 43 bandvidth 2048 44 ip address 192 168 1 2 255 255 255 252 45 ip access group 101 in 46 no ip directed broadcast Evalu
51. 3 28 e name Der Aufruf module gt name liefert den Typnamen des Pr fmoduls haupt s chlich um bei Fehlermeldungen pr zise das Modul anzugeben in dem das Problem aufgetreten ist e requires Der Aufruf module gt requires liefert eine Liste aller Pr fmodule zur ck von denen das mit module bezeichnete Pr fmodul abh ngig ist Die Liste ist normalerweise leer Bei der Entwicklung neuer Pr fmodule bietet sich aber die Gelegenheit logische Abh ngigkeiten zwischen einzelnen Pr fmo dulen auf diesem Wege anzuzeigen Bei Aktivierung eines Moduls werden alle als abh ngig gekennzeichneten Module automatisch mitaktiviert e patterns Der Aufruf module gt patterns liefert alle Patterns die der Parser im Auftrag des Moduls aufsp ren und zur ckmelden soll sowie den Namen des jeweiligen Pattern Handlers der bei Auftreten des Patterns die Weiter verarbeitung bernimmt e macros Der Aufruf module gt macros liefert alle Makros die das Modul zur Formu lierung seiner Patterns verwendet Der Parser nutzt diese Information um die Patterns in ihre ausf hrliche Form zu expandieren e postprocessing Der Aufruf module gt postprocessing liefert die Methode mit der das Modul eine abschlie ende Gesamtwertung des Pr fbefunds ermittelt Pr fmodule Ein Themenkomplex eines Sicherheitsaudits umfa t in der Regel eine Reihe von Pr fpunkten Logisch zusammengeh rige Pr fpunkte werden in der Regel als eigenst
52. Daten zum Interface und zu den dar ber erreichbaren Knoten und Subnetzen protokolliert darunter e P und Subnetzadresse n der Schnittstelle sowie IP Broadcast Adresse Copyright Fraunhofer IESE 2003 Pr fmodule De NS 215 29 64 q gt lt OR di amp 215 29 63 224 227 gt D 5 k k k k b D 215 29 63 249 ee WAN Verbindung zum Provider Serial O 215 29 63 250 Tunnel O 215 29 63 225 Router Ethernet O 179 55 147 9 Ethernet 1 215 29 63 86 B E Business wu EBEN LE __ Services S di O Www 215 29 63 81 A 215 29 63 80 87 en FTP 21 5 29 63 82 p ae Abbildung 17 Beispiel f r eine Verbindungstopologie wie sie mittels Connectivity rekonstruiert werden kann e Klartextbeschreibung soweit in der Konfigurationsbeschreibung enthalten e Aktivierungszustand e ber das Interface erreichbare Subnetze und Knoten sowie Protokolle mit denen diese Knoten ansprechbar sind soweit aus der Konfigurationsbe schreibung ableitbar e vorgesehene Access Liste f r eingehenden Verkehr und resultierende akzep tierte Protokollverbindungen e vorgesehene Filterliste f r ausgehenden Verkehr und daraus resultierende propagierte Protokollverbindungen Copyright Fraunhofer IESE 2003 6 5 Pr fmodule Abbildung 18 66 Interface ethernet 5 Defined at 102 Referenced at Description LAN SIGMA Verwaltun
53. Dokument das die wesentlichen Anmerkungen zur analysierten Routerkonfiguration auf einer einzigen Seite kompakt und im Zusammenhang darstellt Der Anwender kann sich auf diesem Wege zuerst einen berblick verschaffen Abbildung 7 zeigt typische Ausschnitte aus einer solchen bersichtsdarstellung Es handelt sich um den Konfigurationstext bei dem die einzelnen Klauseln je nach Pr fbefund eingef rbt sind Anmerkungen zu den Klauseln sind als Kommentare mit gekennzeichnet in den Konfigura tionstext eingef gt Teil dieser bersichtsdarstellung ist das Evaluation Profile Ausschnitt unten rechts in Abbildung 7 Diese Ansicht kann der Anwender ber den gleichna migen Bookmark Eintrag auch separat Uber das CROCODILE Hauptfenster anw hlen Die Ansicht liefert auf einen Blick die wichtigsten Informationen zum Untersuchungsgegenstand und dem Pr fergebnis Anzahl und Schwere der Befunde werden geordnet nach Pr fmodulen als Business Graphik in Form von Balkendiagrammen dargestellt Die L nge der Balken korreliert mit der Menge an kritischen Befunden in den Kategorien OKAY INFO CHECK WARN und ALERT die das jeweilige Pr fmodul ermittelt hat Der Anwender sieht auf einen Blick welches die gr ten Schw chen der Konfigurationsbe schreibung sind Durch Mausklick in die Balken des Diagramms kann sich der Anwender direkt die entsprechenden Befunde anzeigen lassen Abbildung 8 zeigt ein Evaluation Profile sowie die Anze
54. Help Findings for Logical Context Global Compounds Unsatisfied Severity WARN Annotations no service udp small servers tcp small servers missing 250 privilege exec level 1 show ip missing 352 consider access list compiled 305 ip domain lookup avoided 259 Compound not applicable no context router bgp NUM 312 Compound not applicable no context router ospf NUM 323 Typische Befundausgaben des Moduls CompoundPatterns Copyright Fraunhofer IESE 2003 Pr fmodule Patterns die keinen Einflu auf das Gesamtergebnis hatten zum Beispiel nicht erf llte Teilterme einer insgesamt erf llten ODER Bedingung werden in der Ausgabe der bersichtlichkeit halber unterdr ckt Der im Befund genannte Ausdruck kann daher im Format deutlich von dem zugrunde liegenden Compound abweichen Um dennoch eine eindeutige Zuordnung zu gew hrleisten wird am Ende der Befundmeldung in eckigen Klammern die Zeilennummer der Konfigurationsdatei CompoundPatterns conf ausgewiesen in der das Compound Pattern deklariert ist Dort sollte im Bedarfsfall ein Kommentar plaziert werden der die Bedeutung jeder nicht offen sichtlichen Pr fregel ausf hrlich erkl rt Bemerkungen Das Pr fmodul CompoundPatterns deckt einen beachtlichen Einsatzbereich ab Zu den typischen Pr faufgaben die von CompoundPatterns bernommen werden k nnen z hlen zum Beispiel e Pr fung ob geforderte Router
55. IOS 12 0 Configuration Fundamentals Cisco Press 1999 IOSessentials Cisco Systems Inc Essential IOS Features Every ISP Should Consider Version 2 9 Juni 2001 http Awww cisco com public cons isp documents IOSEssentialsPDF zip NSA U S National Security Agency http Awww nsa gov NSAguide National Security Agency Router Security Configuration Guide Version 1 1 NSA Report No C4 040R 02 September 2002 http nsa2 www conxion com cisco download htm RAT2 0 Center for Internet Security CIS Router Audit Tool RELEASE 2 0 RC1 January 2003 http Awww cisecurity org bench_cisco html RFC1918 Network Working Group Address Allocation for Private Internet Request for Comments No 1918 Februar 1996 http www fags org rfcs rfc1918 html SANS The SANS SysAdmin Audit Network Security Institute http Awww sans org Copyright Fraunhofer IESE 2003 1 3 7 1 38 Copyright Fraunhofer IESE 2003 Liste der Abk rzungen AAA ACL ASCII BGP BNF CIS CSS CSV CDP CPAN CROCODILE EIGRP FTP HREF HTML HTTP ICMP IETF IOS IP ISP IT MIB MPLS MS NSA NTP PDF PERL PIX PPP RADIUS RAT RFC SANS SNMP Copyright Fraunhofer IESE 2003 Authentication Authorization and Accounting Access Control List American Standard Code for Information Interchange Border Gateway Protocol Backus Naur Form Center for Internet Security Cascading Style Sheet HTML Comma separated Vector Format Cisco Discov
56. RL Practical Extraction and Report Language implementiert F r die Wahl dieser Sprache gab es mehrere Gr nde e PERL ist frei verf gbar und auf unterschiedlichsten Hardware Plattformen unter verschiedenen Betriebssystemen lauff hig Insbesondere gibt es PERL Laufzeitumgebungen f r die verbreiteten Linux und Windows Systeme was eine problemlose Portierung des Werkzeugs erm glicht e PERL verf gt ber sehr m chtige zugleich sehr effiziente Operationen zur Textmanipulation Mustersuche und dergleichen Damit lassen sich Parser und Analyse Routinen elegant und kompakt formulieren ohne da darunter die Ausf hrungsgeschwindigkeit leidet e PERL ist objektorientiert Komponenten eines bestimmten Komponen tentyps k nnen daher gemeinsame Eigenschaften mittels Vererbung von einem Basistyp erwerben So erben etwa alle Pr fmodule ihre Andock Copyright Fraunhofer IESE 2003 1 7 Architektur und Funktionsprinzip 18 Schnittstelle zum Parser von der gemeinsamen Basisklasse Module bei der Erstellung neuer Pr fmodule muB daf r kein gesonderter Programmcode mehr geschrieben werden was den Programmierer deutlich entlastet PERL Programme werden normalerweise von einem Interpreter ausgef hrt bed rfen also keiner bersetzung und Bindung Compiling Linking vor ihrem Start Dies beg nstigt Rapid Prototyping bei der Erstellung neuer Prufmodule Die Werkzeugkomponenten werden mit Hilfe eines sehr einfachen Hauptpro gr
57. T ist ein Werkzeug zur berpr fung von IOS Konfigu rationen Es wird vom Center for Internet Security CIS CIS im Internet zum kostenlosen Download angeboten RAT2 0 hnlich wie das CROCODILE Modul CompoundPatterns liest RAT frei konfigurierbare Pr fregel Spezifikationen ein und wendet sie auf die zu pr fende Routerkonfiguration an Das Pr fergebnis besteht aus einer Liste aller angewendeten Pr fschritte und deren jeweiligem Ergebnis PASS oder FAIL Aus der Gewichtung der Pr fregeln und der Liste der Pr fergebnisse errechnet RAT eine Benchmark Gr e Diese Kennzahl ist das Ergebnis des CIS Router Benchmarks siehe dazu auch Abbildung 23 auf Seite 92 RAT ist recht bekannt und es wird von bedeutenden Organisationen gef rdert so zum Beispiel von der National Security Agency NSA oder dem SANS Institute SANS Aufgrund dieser F rderung gibt es f r RAT umfangreiche gut ausgear beitete Pr fregels tze die auch aktualisiert werden CROCODILE bietet ein spezielles Emulationsmodul um sich diese Ressourcen zu erschlie en Das Modul emuliert RAT Version 2 0 in der CIS Distribution vom M rz 2003 Mittels der RAT Pr fregels tze des CIS kann es den CIS Benchmark nachbilden Emulationsmodul RATemulation Das Pr fmodul RATemulation liest RAT Pr fregel Spezifikationen ein und wendet diese Pr fregeln auf den Untersuchungsgegenstand an Damit erm g licht RATemulation frei konfigurierbare Pr fvorgaben in den Gre
58. T_SCORING yes oder no Bei der Angabe yes berechnet CROCODILE aus Kompatibilit tsgr nden die zusammenfassende Kennzahl des CIS Benchmarks genau wie die RAT Software Unabh ngig davon berechnet CROCODILE noch eine eigene Kennzahl nach modifizierter Vorschrift da die Originalformel fragw rdig erscheint siehe Abbildung 23 auf Seite 92 Mehr dazu im folgenden Abschnitt Kennzahlberechnung CIS Benchmark und CROCODILE Score Das RAT Framework realisiert in seiner Gesamtheit den von CIS vorgeschlagenen Sicherheits Benchmark f r IOS Router Zur einfachen Vergleichbarkeit wird die Gesamtheit aller Pr fbefunde zu einer einzelnen Kennzahl aus dem Intervall 0 10 verdichtet Je n her das Gesamtergebnis am Idealwert 10 0 liegt als um so sicherer ist die Routerkonfiguration einzustufen Leider liegt der Berechnung der Kennzahl folgende recht fragw rdige Rechen vorschrift zugrunde Jede Pr fregel wird auf alle IOS Klauseln angewendet die dem Regel Copyright Fraunhofer IESE 2003 Emulation des Router Audit Tools RAT Pattern entsprechen Jede Regelanwendung gilt als ein sogenannter check 2 Jeder check mit dem Ergebnis FAIL wird unter der Kategorie checks failed gez hlt 3 Wenn eine Pr fregel mehrmals angewendet wird und einige checks FAIL andere hingegen PASS liefern so bleiben die erfolgreichen Regelan wendungen unber cksichtigt Nur die checks mit dem Ergebnis FAIL w
59. Verbose gt bzw die Option v Es stehen drei Verbosity Stufen zur Verf gung e Stufe 0 v off maximale Einsilbigkeit Auf dieser Stufe werden nur die essentiellen Systemmeldungen des Typs error und warning sowie der Proze fortschritt auf der Konsole ausge geben e Stufe 1 Diese Stufe schlie t zus tzlich Systemmeldungen des Typs info in die Konsolenausgabe mit ein e Stufe 2 v on maximale Geschw tzigkeit Auf der h chsten Stufe werden s mtliche Systemmeldungen auch auf die Konsole ausgegeben error warning info und verbose Die gew nschte Stufe kann wahlweise als Nummer 0 2 oder als Schaltbefehl on bzw off spezifiziert werden Unabh ngig von der Belegung des Parameters lt Verbose gt werden alle System meldungen in der Logdatei batchprocess log protokolliert Die Datei liegt im konfigurierten Ausgabeverzeichnis lt ResDir gt Selbst bei sparsamster Konsolen ausgabe enth lt die Logdatei ein l ckenloses Ausf hrungsprotokoll Execution Trace entsprechend Stufe 2 Der Name der Logdatei kann abh ngig von den Konfigurationsoptionen lt ResAddDate gt bzw t und lt ResPrefix gt bzw p um einen vorangestellten Pr fix und ein nachgestelltes Datum variieren vgl Tabelle 3 Damit sind die Logdaten eindeutig als zu einem bestimmten Pr flauf zugeh rig gekennzeichnet 1 06 Copyright Fraunhofer IESE 2003 7 Hilfswerkzeuge Utilities Im Unterv
60. ag f r einen Access Router ein klarer Versto gegen bliche Sicherheitsrichtlinien sein und umgekehrt Dies macht es erforderlich bei der Stapelverarbeitung einzelne Jobs nach wechselnden Pr fkriterien durchzuf hren CROCODILE verwaltet seine Pr fregeln in Unterverzeichnissen In einem Unterver zeichnis ist den verschiedenen Pr fmodulen jeweils eine eigene Konfigurations datei zugeordnet Das hei t jedes Pr fmodul verwaltet seine Pr fkriterien individuell unabh ngig von allen anderen Modulen Dem Pr fmodul lt modul gt ist typischerweise eine Konfigurationsdatei lt modul gt conf im aktiven Pr fregel verzeichnis zugeordnet Au erdem legt die Datei plugin conf fest welche Pr fmodule in einem Pr flauf berhaupt aktiviert werden sollen Pr fregeln werden somit nach einem Schema gem Abbildung 25 verwaltet Das erleichtert die Wartung der Software und der Pr fregels tze Per Voreinstellung verwendet CROCODILE im interaktiven Betrieb den Pr fre gelsatz Configuration im Pr fregelverzeichnis lt CROCOHOME gt dem Heimat verzeichnis des Werkzeugs Diese Voreinstellung kann der Benutzer beliebig ndern indem er ein anderes Pr fregelverzeichnis und darin ein anderes Pr fre gelsatz Unterverzeichnis konfiguriert Dazu dient die Option c des interaktiven Frontends crocodile Im Stapelverarbeitungsbetrieb mit batchcroco l t sich in hnlicher Weise ein beliebiger Pr fregelsatz einstellen siehe
61. amms zu dem Gesamtwerkzeug integriert Abbildung 3 Das Hauptprogram umfaBt in seinem Kern folgende Abschnitte Zun chst werden alle ben tigten Werkzeugkomponenten deklariert Sofern der Anwender eigene Pr fmodule erg nzen m chte sind diese mittels use Klauseln bekanntzugeben Als n chstes sind die Dateinamen f r Ein und Ausgabe zu bestimmen Abweichend von Abbildung 3 wird man hier blicherweise Aufrufpara meter auswerten Im Beispiel oben wurde der bersichtlichkeit halber darauf verzichtet F r die Generierung der verschiedenen XML und HTML Ausgabeformate werden komfortable PERL Objekte mit geeigneten Unter st tzungsfunktionen verwendet Anschlie end wird je eine Instanz des Parsers und aller gew nschten Pr fmodule erzeugt Die Pr fmodule werden sodann mittels plugin in den Parser eingesteckt Damit ist der Parser startbereit Der Text wird zeilenweise einem Parsing unterzogen Daraus resultierende Befunde werden von den jeweiligen Pr fmodulen in die Ergebnisdatenbank geschrieben Nach Abschlu des Parsens f hrt der Parser mit allen angeschlossenen Modulen eine Abschlu analyse durch bei der jedes Modul aus einer spezifi schen Analysesicht sein Gesamtfazit zieht Das Programm endet mit dem Ausprotokollieren der Analysedaten in verschiedenen Text XML und HTML Formaten Wie man sieht erm glicht die Programmstruktur auf sehr einfache Weise das Werkzeug um neue Module zu erg nzen Indem der Anwend
62. apitel Pattern Handler unten e Im Abschnitt Nachverarbeitungs Methode wird soweit erforderlich eine Routine bereitgestellt die aus der Summe aller dem Modul gemeldeten Textfragmente und den daraus gewonnenen Pr finformationen eine abschlie ende Gesamtbewertung bildet Diese Methode darf auch undefi niert bleiben Die genannten Anpassungen reichen aus um ein funktionst chtiges Pr fmodul zu erstellen Man beachte da der Anwender die Abschnitte Vererbung und Konstruktor in der Regel nicht antasten mu Diese Passagen k nnen zun chst unver ndert von der Codeschablone laut Abbildung 4 bernommen werden Im Kern schrumpft somit die Anleitung f r die Konstruktion neuer Pr fmodule auf zwei Punkte zusammen 1 Spezifiziere die Patterns die analysiert werden sollen 2 Schreibe pro Pattern einen Handler der die vorgesehenen Analysen an den gefundenen Textfragmenten vornimmt sowie bei Bedarf einen Nachbearbei tungs Handler der alle gesammelten Daten am Ende einer abschlie enden Gesamtanalyse unterzieht Pattern Handler Pattern Handler kurz Handler sind Methoden des Pr fmoduls die vom Parser aufgerufen werden sooft ein zugeordnetes Text Pattern in der Router Konfigu rationsbeschreibung erkannt wird Der Parser versorgt den Handler bei jedem Aufruf mit zwei Parametern Copyright Fraunhofer IESE 2003 Architektur und Funktionsprinzip Der Parameter self verweist auf das Pr fmodul und erm glicht
63. atei kann sp ter jederzeit wieder von eingelesen und in unterschiedlichen Darstellungsformaten angezeigt werden Dazu verf gt der Werkzeugprototyp ber das Darstellungs werkzeug make_html Das Programm findet sich im Utils Unterverzeichnis und generiert eine komplexe HTML Ansicht bestehend aus mehreren Ergebnis Frames Weitere Werkzeuge f r andere Ausgabeformate zum Beispiel MS Excel Format sind zuk nftig denkbar derzeit jedoch noch nicht verf gbar 3 5 Ausgabe des Analysebefunds Die Ergebnisdatenbank speichert alle Befunde in einem internen Format Es gibt verschiedene M glichkeiten daraus eine akzeptable Darstellung zu erzeugen Copyright Fraunhofer IESE 2003 3 5 Architektur und Funktionsprinzip Abbildung 6 36 Router Configuration Overview tines P ore Information Line 13 Findings for Line 13 M Detaillierte Ergebnisdarstellung im Hypertext Format Hypertext Ausgabe Das Pr fwerkzeug unterst tzt derzeit eine HTML basierte Darstellungsvariante die unterschiedliche Sichten in mehreren untereinander verkn pften Frames darstellt Mittels Hyperlinks kann der Anwender in den Befunddaten auf unter schiedlichen Abstraktionsniveaus navigieren Abbildung 6 zeigt ein typisches Beispiel Im oberen Fenster der Darstellung wird die untersuchte Konfigurations datei angezeigt Einzelne Konfigurationsklauseln sind je nach Schwere des Befunds eingef rbt Jede Klausel ist au erdem mit einem Hyp
64. ation Report Accesslists Authentication amp 4 CompoundPattern Ingress Egress Lines and Interfac Logging NTP Nodes and Subnet RAT Emulation User Manual Contact Line 31 Contexts More Information Evaluation Target Evaluated 2003 09 18 11 08 11 Source Last Modified IOS Version Router Name SampleConfigs acsac txt 2003 04 28 09 08 39 12 0 sample router Pr fergebnisse als HTML Hypertext Clause Context interface EthernetO Logical Context ACL 110 Online CISCO Guide IP Adressing Services Online CISCO Documentation IP1R 111 Evaluation Profile Module Findings RATemulation 44 Passwords 9 Connectivity 15 CompoundPatterns 69 AAA IngressEgress 3 SNMP 5 Logging 21 NTP Findings for Line 31 Severity ip access group 110 in ALERT Annotations OKAY undefined ACL referenced l R l CHECK 3 10 fa ALERT Le 0 nn Total HTML_results default css Der R ckgriff auf diese Formatierungshilfsmittel erm glicht eine bersichtliche flexibel anpa bare Dokumentenstruktur Aller dings mu der verwendete Browser geeignet konfiguriert sein damit er statt seiner eigenen Default Einstellungen die Style Sheet Vorgaben verwendet Moderne Browser sollten sowohl Frames als auch Style Sheets problemlos unter st tzen Welche Einstellungen dazu im einzelnen erforderlich sind ist jedoch
65. ausgegebenen Meldungen werden automatisch gez hlt Das Z hlergebnis wird in der Abschlu meldung des Programmlaufs ausgewiesen Mittels get_counts lassen sich die Z hlerst nde im Programm jederzeit abfragen my warn_count error_count get_counts 161m Batch Modus bewirkt ein abort in einem Pr fmodul und seinen Hilfsmodulen nur den Abbruch eines einzelnen Jobs das umgebende Stapelverarbeitungs Frontend f ngt den Fehler und setzt die Verarbeitung mit dem n chsten anstehenden Job fort Copyright Fraunhofer IESE 2003 1 2 5 Erstellen eigener Pr fmodule 8 4 126 Um den Rechenfortschritt anzuzeigen k nnen mittels Logging pm zus tzlich berschreibbare Meldungen ausgegeben werden Der Meldungstext erscheint nur auf der Konsole und wird vom n chsten Ausgabekommando getilgt und berschrieben Zwei Operationen sind verf gbar e print_eraseable lt List gt lt List gt wird auf die Konsole geschrieben der Cursor wird ohne Zeilenvor schub auf den Textanfang zur ckgesetzt lt List gt darf keine Zeilenvorsch be n enthalten e print_progresswheel Es wird ein Laufrad in Form einer sich auf der Stelle drehenden Speiche auf der Konsole ausgegeben jeder Aufruf dreht die Speiche eine Stellung weiter N a Uberschreibbarer Text ob Meldung oder Laufrad wird von nachfolgenden Meldungen Uberschrieben sowohl von normalem wie Uberschreibbarem Text Damit das Tilgen un
66. benden Subnetze und Netzwerkknoten zu ergr nden und in verst ndlicher Form darzustellen Das Fernziel besteht darin alle ben tigten Informationen f r eine Darstellung zu liefern aus der die zul ssigen Informati onsfl sse zwischen den Router Interfaces Verbindungsrouten sowie potentiell beteiligte Kommunikationspartner verwendbare Kommunikationsprotokolle und vorgesehene Filterregeln hervorgehen Derzeit werden die erhobenen Daten nur in textueller Form protokolliert Die graphische Umsetzung mu per Hand vorgenommen werden was aber mit Hilfe des Pr fprotokolls leicht zu bewerk stelligen ist Ein typisches Beispiel f r die Art von Skizze die auf diese Weise erstellt werden kann liefert Abbildung 17 Pr fvorgaben Das Modul Connectivity ist nicht parametrisierbar besitzt also keine zugeordnete Konfigurationsdatei Alle relevanten Pattern und die dazu geh renden Pattern Handler sind im Modulcode fest vorgegeben Das Pr fmodul f hrt nur am Rande Sicherheitsanalysen im engeren Sinne durch Haupts chlich ermittelt es eine bersicht ber die Netzwerkanbindungen des Routers Soweit dabei Merkw rdigkeiten und Ungereimtheiten zutage treten werden diese selbstverst ndlich protokolliert Der Schwerpunkt liegt allerdings auf Informationsbeschaffung und aufbereitung um sp tere manuelle Analysen zu unterst tzen Dazu werden die nachfolgend genannten Daten erhoben Interfaces F r alle IP Schnittstellen werden die wesentlichen
67. bh ngig davon wie sie ber die Konfigurationsbeschreibung verstreut sind So kann der versierte Nutzer schnell die Auswirkungen aller NTP Befehle erkennen Ein weiterer logischer Kontext faBt alle Befehle zusammen die sich auf Authentisierungsschl ssel beziehen falls vorhanden Anmerkung zu NTP NTP beeinflu t normalerweise nur die Software Uhr des Routers Clock Hat dieser noch eine Hardware Uhr Calendar so kann auch sie von NTP synchroni siert werden durch den Befehl ntp update calendar Da beim Hochfahren automatisch die Hardware Zeit vom Calendar in die Software Uhr kopiert wird hat dies den Vorteil da der Router auch nach einem Reboot wieder die korrekte Zeit besitzt Wird der Calendar nicht von NTP aktualisiert so kann nach einer gewissen Laufzeit des Ger tes eine betr chtliche Gangabweichung zwischen Clock und Calendar entstehen Dies ist kein Problem solange der Router in Betrieb ist Mu er aber neu hochgefahren werden bernimmt die Software Uhr automatisch die wom glich ziemlich falsche Calendar Zeit Da ein Host bei der Verwendung von NTP nur dann seine Uhr umstellt wenn die lokale Zeit nicht zu sehr von der NTP Zeit abweicht kann dies dazu f hren da der Router nach dem Neustart nicht mehr synchronisiert wird und so unbemerkt au erhalb des NTP Verbunds steht Aus diesem Grund ist es ratsam die Uhr eines jeden Routers nach einem Reboot oder bei NTP Aktivierung mittels show clock zu berpr fen un
68. cal to password line 19 _ lauert a7 Passwords weakly encrypted password reused as strong secret in line 17 ALERT 19 Passwords weakly DENT password reused in strongly encrypted form lines ALERT Passwords and Secrets i ea BEE 89 97 98 99 100 101 access list 101 deny udp any any eq time log access list 101 deny tcp any any eq whois log access list 101 deny udp any any eq bootps log DEAD rule 1 access list 101 deny udp any any eq bootpe log DEAD rule H 0S Router Configuration Checker Microsoft Internet Explorer _ Ele Edit View Favorites Tools Help access list 101 deny DEAD rule H access list 101 deny access list 101 pers Evaluation Report for Router sample router access list 111 pers access list 111 pers access list 111 deny snap server comaunii rule IOS forbid SNM rule IOS no snmp st Annotated Configuration Text community without ac Logical Context Overview cross Reference Table of Findings IE community without vi rule IOS forbid SNM snap server comaunit rule IOS forbid SNM rule IOS forbid SNM rule LOS no snmp st Table of Contents Evaluation Profile Evaluation Profile community string 100 Evaluation Date 2003 09 25 14 16 18 et community without vid Source SampleConfigs acsac txt Last Modified 2003 04 28 09 08 39
69. d Z hlen von Meldungen ordnungsgem funktioniert m ssen allerding durchg ngig die Methoden von Logging pm verwendet werden Befehle des Typs print STDOUT STDERR sollten im fertigen Programmcode nicht erscheinen In der Debug Phase der Programierung k nnen sie jedoch ohne weiteres verwendet werden Feinschliff Die Vorgehensweise gem den Kapiteln 8 1 bis 8 3 liefert in der Regel noch kein perfektes Pr fmodul In der praktischen Erprobung ergeben sich oft noch Modifi kationen und Erg nzungen zum Beispiel e Die Zuordnung von Kritikalit tsstufen ALERT WARN CHECK usw bedarf oft noch der Feinjustierung um eine konsistente Befundeinstufung aller Pr fmodule zu erzielen e Oft ergeben sich M glichkeiten f r zus tzliche Pr fungen indem man einzelne Patterns nachtr glich verallgemeinert und dadurch zus tzliche Fehlerf lle erfa t e Die urspr nglich ins Auge gefa te Menge von relevanten Konfigurationsbe fehlen erweist sich nachtr glich mitunter als unvollst ndig So zeigt sich bei n herer Betrachtung zum Beispiel da dem Themenbereich Logging unter anderem auch noch folgende Befehle zuzuordnen sind mpls traffic eng logging tunnel mpls traffic eng logging lsp Daf r sind zus tzliche Zustandsvariablen Patterns und Handler zu erg nzen Copyright Fraunhofer IESE 2003 Erstellen eigener Pr fmodule e Zus tzlich kann das Pr fmodul auch analysieren ob sich einzelne Konfigu rationsklauseln ge
70. d bei falscher Zeit manuell mit clock set auf die aktuelle Zeit zu setzen 4 7 Modul AAA Die AAA Funktionen unter IOS regeln Authentisierung Autorisierung und Accounting Das Pr fmodul AAA analysiert die Widerspruchsfreiheit Vollstan digkeit und Sicherheit der AAA Konfigurationsvorgaben Pr fvorgaben S mtliche AAA Pr fkriterien sind im Programmcode des Pr fmoduls festgelegt parametrisierbare Pr fvorgaben sind nicht vorgesehen Das Modul analysiert derzeit nur Authentisierungs und Autorisierungs merkmale Der dritte Bereich Accounting bleibt unber cksichtigt da er nicht als sicherheitskritisch einzustufen ist Die wichtigsten Pr fungkriterien sind Copyright Fraunhofer IESE 2003 7 5 Pr fmodule 76 e Werden AAA Klauseln in der falschen Reihenfolge spezifiziert e Ist die Konfiguration der verwendeten AAA Funktionen unvollst ndig oder enth lt sie Widerspr che e Werden undeklarierte AAA Merkmale genutzt oder werden unbenutzte AAA Merkmale deklariert e Werden unsichere AAA Merkmale konfiguriert e Werden IOS Funktionen konfiguriert die nicht mit AAA kompatibel sind e Werden veraltete Authentisierungs oder Autorisierungsmechanismen verwendet Authentisierung Mittels AAA k nnen verschiedene Aktivit ten authentisiert werden darunter Login Dial in PPP oder auch der Wechsel in den sogenannten privilegierten Modus enable Per Konfiguration kann jeder dieser Aktivit ten eine L
71. de zum Konsolen und Terminal Line Logging werden soweit es sich nicht um eindeutige Konfigurationsfehler handelt eher wertneutral gemeldet Ist die entsprechende Protokollierungsvariante abgeschaltet so wird dies nicht als besorgniserregend eingestuft Demgegen ber setzt das Pr fmodul voraus da der lokaler Logdatenpuffer sowie eine externe Logdatenerfassung SYSLOG oder SNMP aus Sicherheitsgr nden aktiviert sein sollten Fehlen entsprechende Konfi gurationsklauseln so wird dieser Befund wenigstens unter der Kategorie CHECK ausgewiesen Konfigurationsklauseln zur Dimensionierung von Puffergr en und bertra gungsraten werden in der Regel der Kategorie CHECK zugeordnet unabh ngig von den verwendeten Attributwerten Es ist Aufgabe des Anwenders zu beurteilen ob angemessene Gr en verwendet wurden sinnvolle Einstellung sind in hohem Ma e anwendungsabh ngig und entziehen sich daher einer automatischen Bewertung Bemerkungen Das Pr fmodul verzichtet bewu t auf konfigurierbare Sollwert Vorgaben Die Pr fung beschr nkt sich vielmehr darauf die innere Konsistenz der Logging Konfiguration zu analysieren und die vorhandenen Einstellungen in bersicht licher Gruppierung darzustellen Dies sollte eine ausreichende Basis f r eine Beurteilung der Korrektheit und Sinnhaftigkeit der Konfiguration liefern Da sinnvolle Sollwerte sehr kontextspezifisch auf den konkreten Anwendungsfall zugeschnitten werden m ssen lohnt de
72. definiert mit deren Hilfe die Berechtigung zur Nutzung einzelner Befehlsgruppen vom Router berpr ft wird Sowohl lokale Autorisierung anhand der User Datenbank wie Server gest tzte Autorisierung mittels RADIUS TACACS oder Kerberos sind konfigurierbar Das Pr fwerkzeug stellt sicher da alle Betriebsmittel die zur Anwendung einer Autorisierungsmethode erforderlich sind lokal auch konfiguriert wurden Es pr ft auch ob die verwendeten Methodenlisten definiert sind und ob alle definierten Methodenlisten auch wirklich verwendet werden Auch die innere Widerspruchsfreiheit der Methodenlisten wird berpr ft Externe Authentisierungs und Autorisierungsserver Sofern sich Authentisierung oder Autorisierung auf einen externen Server st tzen mu dieser entsprechend konfiguriert sein Das Pr fmodul analysiert inwieweit RADIUS TACACS oder Kerberos ben tigt werden Wenn Bedarf f r einen solchen Server besteht wird berpr ft ob eine sichere Kommunikation mittels RADIUS TACACS bzw Kerberos Protokoll gew hrleistet ist Zu den ma geblichen Attributen die zu konfigurieren sind z hlen Schl ssel zur Authen tisierung des Servers sowie einheitliche Ursprungsadressen Da die Kommunikation mit einem Authentisierungs oder Autorisierungsserver leicht einmal gest rt sein kann empfiehlt es sich mehrere unabh ngige Server des gleichen Typs vorzusehen die wahlweise kontaktiert werden k nnen Dazu k nnen sogenannte Server Gruppen
73. den Jede Zeile kann bedingt durch die IOS Konfigurati onsmodi nur einem Klauselkontext angeh ren Als Name f r den Kontext empfiehlt es sich sich an die Konvention zu halten die Zeilennummer der den Kontext einleitenden Konfigurationsklausel zu benutzen also z B die Zeile in der das Sch sselwort Interface steht f r alle Interface Konfigura tionsklauseln der jeweiligen Schnittstelle Ein Kontext mu nicht explizit erzeugt werden sondern er entsteht automatisch sobald ihm eine Zeile zugeordnet wurde e change_criticality linenumber severity force_flag Hiermit kann die Kritikalitat der vom Parser erkannten Zeile ge ndert werden Allerdings wird diese Methode in aller Regel implizit durch den Aufruf von add_annotation ausgef hrt so da eine explizite Nutzung Copyright Fraunhofer IESE 2003 1 3 1 132 dieser Methode eher die Ausnahme ist Trotzdem ist es wichtig den Umgang mit Kritikalit ten zu verstehen Jedes Modul gibt jeweils seine individuelle Kritikalit tseinstufung zu einer Konfigurationsklausel an Erst das Ausgabemodul ermittelt daraus wie die Gesamtkritikalit t unter Ber cksichtigung aller Modul Einstufungen f r diese Zeile lautet Allerdings mu sich jedes Modul f r eine Einstufung pro Zeile entscheiden Wird die Funktion von einem Modul mehrfach mit unter schiedlicher Kritikalit t pro Zeile aufgerufen so wird nicht der alte Wert durch den Neuen berschrieben sondern es setzt sich
74. der Anwender die Gr e der Frames mittels Mausbewegung ver ndern darf Mit Hilfe des Attributs frame_borders kann der Anwender die Darstellung der Frame Umrandung auf Wunsch unterdr cken Das Attribut main_window_percentage gibt an welcher Anteil der insgesamt verf gbaren Fensterh he des Browsers f r den Haupt Frame zur Darstellung des Konfigurationstexts verwendet werden soll der Rest wird f r die Frames Links und Display verwendet um Detailinformationen darzustellen Das Attribut link_window_percentage bestimmt welcher Anteil der insgesamt verf gbaren Fensterbreite des Browsers f r den Links Frame reserviert wird der Rest wird f r den Display Frame zur Darstellung von Detail informationen verwendet Abgesehen von der Einstellung einer individuell bevorzugten Schriftgr e besteht normalerweise wenig Bedarf die vorgegebenen Darstellungsparameter zu ndern Anpassungen k nnen jedoch erforderlich werden wenn veraltetes Ausgabeger t eingesetzt werden soll oder wenn CROCODILE Screenshots z B in schwarz weiB weiterverarbeitet werden m ssen 3 6 Unterstutzungsmodule Bei komplizierten Pr fvorgaben kann die Programmierung eines Handlers erheb lichen Aufwand erfordern Das Werkzeug Rahmenwerk sieht daher vor h ufig genutzte Funktionalit t in separaten Unterst tzungsmodulen zu kapseln die allen Pr fmodulen als Arbeitshilfen verf gbar gemacht werden Jedes neu hinzugef gte Pr fmodul kann bei der Implem
75. die bedingte Anwendung von Pr fregeln ist spezifizierbar e RAT Emulation CROCODILE ist in der Lage Original Pr fregels tze f r das Router Audit Tool RAT einem anderen IOS Pr fwerkzeug zu verarbeiten und RAT konforme 1 Wahlweise bieten wir an solche Erg nzungen oder Anpassungen im Kundenauftrag durchzu f hren Copyright Fraunhofer IESE 2003 vii viii Pr fberichte zu generieren Dies erm glicht RAT Nutzern den einfachen Umstieg auf das wesentlich leistungsf higere CROCODILE e Gesteigerte Rechenleistung Obwohl die neue Version an Umfang und Leistungsverm gen erheblich gewachsen ist konnte die Ausf hrungsgeschwindigkeit der Pr fl ufe deutlich in einigen Anwendungen um mehr als das Vierfache gesteigert werden Die Beschleunigung kommt vor allem dem Stapelverar beitungsbetrieb zugute Im interaktiven Betrieb erh ht sie den Bedien komfort insbesondere auf leistungsschwachen Rechnersystemen Kontakt Ein Handbuch kann nicht alle Fragen kl ren die sich beim Einsatz von CROCODILE ergeben werden Wir hoffen jedoch zumindest ausreichende Grundlagen zu schaffen damit sich der Anwender die subtilen Details des Werkzeuggebrauchs eigenst ndig erschlie en kann Um k nftigen Anwendern den Umgang mit CROCODILE zu erleichtern freuen wir uns ber jeden Verbesserungsvorschlag aus dem Anwenderkreis Anmerkungen zum Werkzeug oder der Werkzeugbeschreibung k nnen an folgende Adresse gerichtet werden iese_
76. die Konfigurationsdatei Output HTML_output conf Nach ndern der Konfigurationsparameter ist daher eine Neuaufbereitung erforderlich Der Aufruf des Hilfswerkzeugs ist parameterlos perl Utils make_html pl ber die Konfigurationsdatei wird haupts chlich die Farbzuordnung und die relative Gr e der verschiedenen Schriften zueinander beeinflu t Je nach verwendetem Browser kann die Lesbarkeit durch ndern der Farbwahl und geschickte Fenster Fl chenaufteilung verbessert werden N here Details zu den Konfigurationsm glichkeiten finden sich in Kapitel 3 5 auf Seite 40 Aufbereitung einer Vergleichsdarstellung von Evaluationsergebnissen Das Hilfswerkzeug make_html pl ist auch in der Lage die Ergebnisse zweier Analysel ufe zu vergleichen und eine Ergebnisdarstellung aufzubereiten bei der nur solche Ergebnisse farblich hervorgehoben sind die sich in beiden Analyse l ufe unterscheiden Eine typische Anwendung ist eine Wiederholungspr fung nach einer Korrektur zum Beispiel nach folgender Vorgehensweise 1 Zun chst pr ft der Anwender seine Routerkonfiguration etwa die Datei routerconfiguration cfg mit einem herk mmlichen Pr flauf perl crocodile routerconfiguration cfg 2 Ersichtet die Ergebnisse des Pr flaufs und korrigiert die Routerkonfiguration routerconfiguration cfg wo dies geboten ist Die neue Fassung speichert er anschlie end unter routerconfiguration version2 cfg 3 Um zu sehen wie sich die
77. dlicher aus Sollte sich eine Analyse unter Zugrundelegung von ip 15 Je nach Leistungsf higkeit der Hardware und Schwierigkeit der Problemstellung ist mit Rechen zeiten zwischen wenigen Sekunden und bis zu mehreren Minuten zu rechnen Selbst kniffligste F lle sollten bei einem Rechner mit Gigahertz Taktrate in weniger als 10 Minuten erledigt sein Copyright Fraunhofer IESE 2003 Hilfswerkzeuge Utilities Ausgangsmenge ist die Menge aller m glichen IP Pakete ip any any V Ausgesondert werden TCP Pakete ignore t p any any establishe die zu einer etablierten Verbindung geh ren tcp any any Die verbliebenen TCP Pakete die nicht zu einer etablierten Verbindung geh ren werden explizit ausgew hlt Die restlichen Pakete alle auBer TCP bleiben unber cksichtigt da keine ausdr ckliche EinschluBklausel mehr angef gt wird Abbildung 26 Beispiel Restriktion Alle TCP Pakete ohne established Merkmal any any als unbefriedigend erweisen so kann der Anwender die Berechnung einfach abbrechen und gezielte Analysen zu relevanten Teilmengen erstellen Die Spezifikation geeigneter Restriktionen wird im Prinzip genau wie beim Modul IngressEgress vorgenommen vergleiche Abschnitt Prinzip der Filterspezifi kation Seite 57 ff sowie Abbildung 13 bis 15 Der Benutzer charakterisiert die gew nschte Ausgangsmenge durch eine Reihe von ACL Klauseln mit denen er schrittweise aus der Grundgesamthe
78. e Abbildung 12 54 klauseln Daher ist es oft erforderlich innerhalb eines kontextabh ngigen Compounds auch globale Sub Compounds zu ber cksichtigen Der Operator Global erm glicht es innerhalb eines Kontexts auf ein globales Compound Bezug zu nehmen Ein typisches Beispiel ist etwa interface Serial ow Global no cdp run no cdp enable interface Diese Regel besagt da das Cisco Discovery Protocol zur automatischen Erkennung erreichbarer Schnittstellen entweder auf globaler Ebene d h f r alle Interfaces gemeinsam deaktiviert sein soll oder gezielt f r alle Serial Inter faces im Interface Kontext abzuschalten ist Die Verwendung des Global Operators au erhalb eines Kontext Spezifikation hat keine Wirkung auf das eingeschlossene Compound ist aber zul ssig Befundausgabe Der Befund zu jedem Compound Pattern wird als Annotation ausgegeben Abbildung 12 zeigt einen typischen Ausschnitt einer solchen Ausgabe Je nachdem welche Schwere lt crit gt der Befund hat und abh ngig davon ob es sich um ein nachgewiesenes oder fehlendes Pattern handelt variiert die Formu lierung der Befundmeldung auf die der Anwender keinen Einflu nehmen kann In der Regel werden nur die Pattern Komponenten genannt die zum Erfolg bzw zum Fehlschlag der Pr fung beigetragen haben Terme innerhalb des Compound 10S Router Configuration Checker Microsoft Internet Explorer File Edit View Favorites Tools
79. e nach eingestellter Verbosity Option v erscheinen die Meldungen auch im Konsolenfenster Damit sich die Konsolenausgabe per Option einschr nken und in der Protokoll datei erfassen l t mu der Entwickler bei der Programmierung spezielle Ausgabeoperationen als Ersatz f r das Perl typische print benutzen Diese Operationen stellt die user Schnittstelle des Hilfsmoduls Auxiliary Logging pm bereit welche Pr fmodule importieren m ssen um Zugriff auf die Methoden zu erhalten package Plugin lt Module Name gt use strict use Auxiliary Logging qw user Fur die Protokollierung des Rechenfortschritts und die Ausgabe von Warn oder Fehlermeldungen sind folgende Methoden verf gbar e console lt List gt lt List gt wird auf die Konsole ausgegeben nicht jedoch in der Logdatei erfa t entspricht etwa print STDERR lt List gt n e trace lt List gt lt List gt wird unabh ngig von der eingestellten Verbosity sowohl auf die Konsole als auch in die Logdatei geschrieben e info lt List gt lt List gt wird in die Logdatei geschrieben und bei Verbosity Level 1 oder 2 zus tzlich auf der Konsole ausgegeben e verbose lt List gt lt List gt wird in die Logdatei geschrieben und bei Verbosity Level 2 zus tzlich auf der Konsole ausgegeben Copyright Fraunhofer IESE 2003 Erstellen eigener Pr fmodule e warning lt List gt lt List gt wird als Warnung d h mit vorange
80. ed connections ip x kK OK Ok XX XX Typische Informationen des Pr fmoduls Connectivity zu Line Merkmalen Copyright Fraunhofer IESE 2003 67 Pr fmodule Abbildung 20 68 Subnet 175 16 Subnets 175 16 128 175 16 17 Reached via serial 0 WAN Verbindung zum Provider TRANSKOM Typische Subnetz Informationen des Pr fmoduls Connectivity Aufstellung hilfreich um die einzelnen Router Schnittstellen gewissen funktio nalen Bereichen zuzuordnen Die protokollierten Subnetz Beschreibungen umfassen den AdreBbereich des Subnetzes das nachstumfassendere Supernetz das dieses Subnetz enthalt soweit vorhanden die n chstkleineren Subnetze die im Adre bereich dieses Subnetzes enthalten sind soweit vorhanden den Interface Namen Uber den das Subnetz erreicht werden kann die Interface Klartextbeschreibung soweit vorhanden Abbildung 20 zeigt ein Beispiel f r eine typische Subnetz Beschreibung Nodes Soweit in der Router Konfigurationsbeschreibung einzelne IP Adressen ausdr cklich erw hnt werden handelt es sich vermutlich um Netzknoten in der Regel sind dies Rechner oder IP Router Das Pr fmodul erstellt eine Liste aller IP Nodes und liefert dazu folgende Informationen IP Adresse des Knotens Subnetz dem der Knoten angeh rt Interface ber das der Knoten erreichbar ist IP Protokolle und Ports ber die der Knoten ansprechbar ist Copyright Fraunhofer IESE 20
81. edliche Versionen beziehen Grunds tzlich steht es einem Anwender frei eine gemischte SNMP Konfigu ration zu deklarieren die unterschiedliche SNMP Versionen gleichzeitig unter st tzt Dies f hrt unter Umst nden zu schwer vorhersehbaren Effekten deren ganze Tragweite sich nur durch Ausprobieren ermitteln l t Aufgrund fehlender technischer Unterlagen war es nicht m glich mit Hilfe des Pr fmoduls umfassende Vorhersagen bez glich des Router Verhaltens zu berechnen Im Falle gemischter SNMP Konfigurationen liefert das SNMP Pr fmodul daher nur eine grobe Analyse zur Korrektheit der SNMP Klauseln 101n eigenen Versuchen beobachteten wir bei gemischten Konfigurationen zum Teil ein recht merkw rdiges Verhalten des Routers Unklar blieb ob es sich dabei um eine Zuf lligkeit des spezifischen Router Typs oder eine verl liche Eigenschaft der verwendeten IOS Version Penge e irona solcher Erfahrungen raten wir von der Verwendung gemischter Konfigura tionen ab 70 Copyright Fraunhofer IESE 2003 Pr fmodule Authentisierung Autorisierung und Funktionsumfang SNMP verf gt vor allem in der Version 3 Uber verschiedene Mechanismen um das MiBbrauchspotential zu verringern Router Konfigurationen sollten das ganze Spektrum der Authentisierungs und Autorisierungsm glichkeiten aussch pfen um den Zugriff auf den Router bestm glich einzuschr nken Nicht ben tigte Funktionalit t sollte am besten vollst ndig deaktiviert
82. eicherung f r CROCODILE e Eserm glicht RAT Anwendern den einfachen Umstieg auf CROCODILE wobei Investitionen in die Definition eigener RAT Pr fregels tze gewahrt bleiben e Es bereichert den CROCODILE Hypertext Report um weitere Querverweise und Korrekturvorschl ge e Essichert die Teilhabe an Pr fregeln Callouts Fix Suggestions und Literatur hinweisen die vom CIS und anderen k nftig noch im RAT Format ver f fentlich werden Umgekehrt kann CROCODILE sogar eine Bereicherung f r RAT sein denn es vermeidet oder kompensiert einige der Unzul nglichkeiten der von uns zugrunde gelegten RAT Distribution und liefert bei gleichen Pr fregeln Vorgaben reichhal tigere Pr fberichte Aus CROCODILE Sicht stehen dem Anwender nunmehr Spezifikationsm glich keiten auf unterschiedlichen Niveaus zur Verf gung e Simple und offensichtliche Pr fkriterien die keiner weiteren Erl uterung bed rfen lassen sich am schnellsten und bequemsten mittels Compound Patterns konfigurieren Mittels Compounds lassen sich dabei auch Regeln f r mehrere Konfigurationsklauseln logisch verbinden auch bedingte Regeln sind so formulierbar e Pr fkriterien die zwar einfach aber weniger offensichtlich sind und weiterer Erl uterungen bed rfen lassen sie sich am besten im RAT Format konfigu rieren Der Vorteil besteht darin da auf diesem Wege Querverweise Erkl rungen und Korrekturvorschl ge ohne Programmieraufwand in den Pr fbericht einge
83. einen Ubergeordneten logischen Sicherheitsaspekt beziehen Es spricht auch nichts dagegen das gleiche Textmuster von mehreren Pr fmodulen jeweils unter einem anderen Gesichtspunkt analysieren zu lassen Die Wahl der Modulgranularitat sollte sich ausschlieBlich nach den Bed rfnissen des Anwenders richten MaBgeblich fur den Modulumfang sind vor allem die Ubersichtlichkeit und Bequemlichkeit der Programmierung sowie die Einfachheit der Werkzeuganwendung Nat rlich k nnen Pr fmodule bei Bedarf auch untereinander kooperieren indem sie etwa gemeinsam genutzte Befund Daten aufbauen und pflegen In diesem Fall ist aber zu ber cksichtigen daB das einzelne Modul nicht mehr unabhangig von anderen Modulen eingesetzt werden kann mit denen es kooperiert Das Pr fergebnis ist nur dann vollst ndig und korrekt wenn alle kooperierenden Module ebenfalls am Pr flauf beteiligt waren und ihren jeweiligen Befund beige tragen haben Aus diesem Grunde empfiehlt es sich bei der Konzeption von Pr fmodulen die Abh ngigkeit von anderen Pr fmodulen m glichst zu minimieren Jedes Pr fmodul hat die M glichkeit eine Liste aller Pr fmodule von denen es abh ngt REQUIRED_MODULES zu deklarieren Das Pr fwerkzeug l dt bei Programmausf hrung alle REQUIRED_MODULES automa tisch nach sofern diese versehentlich nicht in den Parser eingesteckt worden sind Programmiertechnische Realisierung Das Pr fwerkzeug wurde in der Programmiersprache PE
84. einer Reihe zus tzlicher Attribute versehen darunter zum Bespiel Importance Schwere Description Gegenstand des Pr fschritts Reason Sicherheitsrelevanz Fix Korrekturvorschlag bei Verletzung der Regel sowie Warning Hinweise zu Einschr nkungen der Regelanwendung Solche Zusatz informationen lassen sich nutzen um den vom Werkzeug erzeugten Pr fbericht um Erl uterungen und Tips zu erg nzen Dies macht den RAT Fundus auch f r CROCODILE interessant Daher wurde unser Framework um ein RAT Modul erweitert Die F higkeit RAT Regels tze originalgetreu zu verarbeiten erleichtert ehema ligen RAT Anwendern den Umstieg auf CROCODILE Sofern Anwender eigene den lokalen Gegebenheiten angepa te Pr fschritte f r RAT spezifiziert hatten k nnen sie diese privaten Pr fregels tze problemlos weiterverwenden CROCODILE liefert RAT Pr fergebnisse sowohl im klassischen RAT konformen Format also auch in CROCODILE typischer logisch vernetzter Hypertext Darstellung einschlie lich einer vergleichenden Gegen berstellung der Ergeb nisse von Wiederholungspr fungen mehr dazu in Kapitel 7 2 im Abschnitt Aufbereitung einer Vergleichsdarstellung von Evaluationsergebnissen auf Seite 111 RAT Pr fergebnisse werden in den CROCODILE Pr freport an passender Stelle eingef gt und das Pr fergebnis wird um RAT spezifische Hinweise Korrekturvorschl ge und Querverweise erg nzt 13 Streng genommen besteht die M glichk
85. eit statt eines Patterns eine in PERL zu schreibende Pr froutine ein sogenanntes Callout bereitzustellen das dann die IOS Konfigurations beschreibung beliebigen Tests unterziehen kann RAT bietet jedoch kaum Unterst tzung f r Callouts und Callout Programmierung und das Pr fergebnis eines Callouts ist auf ein simples PASS oder FAIL beschr nkt Es handelt sich also eher um einen Notanker um die strikten funktionalen Beschr nkungen des RAT Ansatzes im Einzelfall zu berwinden Die Standard distribution RATv2 0 vom M rz 2003 enth lt nur vier recht triviale Callouts CheckBuffering SizeMin ChecklOSPasswordQuality MatchAtLeast ChecklOSSecretReuse Copyright Fraunhofer IESE 2003 Emulation des Router Audit Tools RAT 5 2 RAT Konformitat Bei der Entwicklung des Emulationsmoduls waren wir bem ht alle Pr fschritte in einer zu RAT quivalenten Form durchzuf hren Aufgrund von Urheber und Lizenzrechten d rfen jedoch nur CIS akkreditierte Werkzeuge oder Auditoren eine CIS Benchmark Wertung vergeben und CROCODILE ist derzeit nicht akkredi tiert Die Verarbeitung von RAT Pr fregels tzen erfolgt daher ohne Gew hr und ohne den f rmlichen Anspruch irgendeiner CIS Konformit t Der Anwender mag anhand unserer Pr freports selbst entscheiden wie er die Originaltreue des Emulators beurteilt und welchen Stellenwert er dem Pr fergebnis unserer RAT Emulation beimi t Wir nehmen f r CROCODILE in Anspruch da e
86. ell strukturierte Konfigurationsinformationen zugeordnet werden Aufgrund fehlender Formatfestlegungen gibt es derzeit keine standardisierten Zugriffsmethoden auf Konfigurationsdateien Es obliegt dem Programmierer des jeweiligen Moduls Code f r das ffnen und Auslesen der Konfigurationsdatei bereitzustellen Der Quellcode der Standardmodule Passwords IngressEgress und CompoundPatterns liefern m gliche Vorlagen f r den sinnvollen Einsatz von Konfigurationsdateien auf unterschiedlichem Anspruchsniveau siehe Kapitel 4 Um die bersichtlichkeit des Pr fwerkzeugs zu gew hrleisten sollten alle Konfi gurationsdateien im eigens daf r vorgesehenen Konfigurationsverzeichnis siehe Verzeichnisstruktur in Kapitel 3 7 unter dem Namen lt Pr fmodul Name gt conf bzw lt Pr fmodul Name gt conf lt Nr gt bei der Verwendung mehrerer Konfigurati onsdateien angelegt werden 3 4 Befunddatenbank Alle Pr fmodule speichern ihre Befunde in strukturierter Form in einer Ergebnis datenbank des Typs ResultData ab Die Datenbank bildet die Grundlage um am Ende den Gesamtbefund des Pr flaufs aufzubereiten Der Einsatz einer 32 Copyright Fraunhofer IESE 2003 Architektur und Funktionsprinzip Datenbank entkoppelt die Prufmodule von spezifischen Darstellungsformaten der Ausgabe Logisches Modell der Befunddaten Pr fmodule k nnen Befunddaten unterschiedlicher Art in der Datenbank ablegen M glich sind e Anmerkungen e Bef
87. en d h zur Definition eines Makros d rfen andere zuvor bereits definierte Makros herangezogen werden Es ist allerdings darauf zu achten da in einer Makrodefinition nicht auf das Makro selbst oder auf ein erst sp ter definiertes Makro Bezug genommen wird Jedes Pr fmodul darf seine eigenen Makros definieren Es spielt keine Rolle ob mehrere Module den gleichen Makronamen mit unterschiedlichen Bedeutungen belegen Alle Makros werden lokal relativ zum definierenden Pr fmodul aufgel st So sind im Parser auf globaler Ebene die lokalen Makros nicht mehr Copyright Fraunhofer IESE 2003 Architektur und Funktionsprinzip von Bedeutung Dies stellt sicher daB durch das Hinzuf gen oder Erweitern von Pr fmodulen keine Namenskollisionen verursacht werden Neben den lokalen Makro Definitionen einzelner Prufmodule besteht die M glichkeit global g ltige Makros im Parser zu definieren Dies erm glicht es eigene Atome von allgemeiner N tzlichkeit einzuf hren ohne daf r in die Abl ufe des Parsers selbst eingreifen zu m ssen Global vereinbarte Makro namen d rfen lokal in den Pr fmodulen auf Wunsch umdefiniert werden Lokal definierte Makros berschreiben dabei nicht nur globale Vordefinitionen sondern gegebenenfalls sogar die Bezeichner der Standard Atome z B IPADDR NUM wovon allerdings dringend abzuraten ist Derzeit sind folgende Makros global vordefiniert aus Benutzersicht sind diese Makros kaum von Atomen zu un
88. en dabei separat f r jede neue Kontextinstanz ausgewertet Beliebig viele verschiedene Kontexte k nnen gleichzeitig oder sogar zeitlich berlappend aktiv sein Das folgende Beispiel illustriert den Einsatz von Kontext Definitionen interface Loopback ow if NOT shutdown ip address IPADDR IPMASK interface Copyright Fraunhofer IESE 2003 Pr fmodule interface Loopback ow if NOT shutdown description amp no ip redirects amp no ip directed broadcast amp no ip proxy arp amp no cdp enable interface Im vorliegenden Fall sollen Konfigurationsmerkmale verschiedener Interfaces berpr ft werden wobei zwischen sogenannten Loopback Interfaces und sonstigen Interface Typen unterschieden wird Die erste Kontext Definition macht Pr fvorgaben f r alle Loopback Interfaces Sobald eine Konfigurationsanweisung erkannt wird die mit den Schl ssel w rtern interface Loopback beginnt wird die Compound Definition f r Loopback Interfaces vom Pr fmodul aktiviert Die drei Punkte stehen w rtlich in der Compound Spezifikation Sie bilden ein atomares Pattern mit der Bedeutung beliebige Zeilenfortsetzung Im Beispiel wird berpr ft ob das Interface abgeschaltet ist Ist dies der Fall so ist die bedingte Regel nicht anwendbar und insoweit erf llt gt OKAY Meldung Falls die IF Bdingung zutrifft und das Interface nicht abgeschaltet ist so besagt die Regel da das Loopback Int
89. en Zustand die Konfiguration den Router versetzt Daher kann ein einzelner Handler nur vorl ufige Erkenntnisse zum Befund beitragen F r eine abschlie ende W rdigung wird eine gesondere Routine aufgerufen Ihr Name ist im Pr fmodul unter self gt POSTPROCEDURE hinterlegt In unserem Beispiel bernimmt summary diese Aufgabe Die Nachverarbeitung analysiert die Endwerte der Zustandsvariablen und zieht daraus R ckschl sse auf den Konfigurationszustand des Routers Die sich ergebenden positiven oder negativen Befunde werden in die Befunddatenbank eingetragen Dazu stehen dem Entwickler die Methoden laut Anhang A zur Verf gung Abbildung 31 zeigt einen typischen Ausschnitt der Nachverarbei tungsroutine f r eine ausf hrliche Darstellung verweisen wir auf den Quellcode des Logging Pr fmoduls Copyright Fraunhofer IESE 2003 1 23 Erstellen eigener Pr fmodule 124 Die Nachverarbeitungslogik komplettiert das Pr fmodul CROCODILE verf gt nun ber einen neuen Pr fbereich Der Entwickler sollte das neue Modul vor der Freigabe ausgiebig an Testf llen und realen Praxisbeispielen testen Protokollierung der Abl ufe Das Pr fmodul erfaBt und protokolliert seine Befunde mit den Methoden der Datenbankschnittstelle siehe dazu Anhang A Daneben sind manchmal aber auch R ckmeldungen zum Ablauf der Berechnung erforderlich Solche Meldungen werden in jedem Falle in die Logdatei eingetragen soweit eine solche deklariert ist j
90. enannter Cyber Attacken aus 1 1 Netzsicherheit durch sichere Router Konfiguration Wesentlichen Einflu auf die Sicherheit von IP Netzen haben die Router mit deren Hilfe IP Pakete zwischen Sendern und Empf ngern vermittelt werden Moderne Router bernehmen nicht nur Vermittlungsfunktionen sondern dienen zugleich auch der Filterung Separierung und berwachung von Datenstr men Dar ber hinaus beherbergt das Router Betriebssystem oft zahlreiche Standard dienste zum Beispiel Telnet TFTP oder SNMP von denen leicht Gefahren f r die Netzkomponenten ausgehen k nnen Router m ssen mit gro er Sorgfalt konfiguriert werden um Bedrohungen durch Aussp hen St ren Verf lschen oder Umlenken von IP Verkehr abzuwehren und sicherzustellen da der Router Angreifern keinen St tzpunkt f r weitergehende Angriffe auf das Netz bietet Das Konfigurieren eines Routers ist jedoch eine schwierige Aufgabe 1 2 _ __Werkzeugunterst tzung f r Router Sicherheitsrevisionen Routerkonfigurationen sind unter Umst nden sehr komplex und lassen sich nicht mehr ohne weiteres berblicken Entsprechend hoch ist das Risiko des Netzwerk administrators Konfigurationsfehler zu begehen die bei manueller Pr fung unentdeckt bleiben Hier kann geeignete Werkzeugunterst tzung erheblich dazu beitragen verborgene Schwachstellen in der Konfiguration eines Routers aufzusp ren CROCODILE ist ein solches Pr fwerkzeug Es liest Konfigurationsbeschreibungen i
91. ender des Werkzeugs potentielle Interessenten also die unschl ssig sind ob CROCODILE ein geeigneter Baustein f r ihre Sicherheitsl sung sein k nnte Dem unentschlossenen Leser wollen wir hinreichende Informationen ber die M glichkeiten und Grenzen des Werkzeugs zur Hand geben damit er sich guten Gewissens f r oder gegen den CROCODILE Ansatz entscheiden kann Potentielle Entwickler die das Werkzeug selbst modifizieren oder erweitern wollen sollten das Benutzerhandbuch als einf hrendes Dokument lesen ehe sie Hand an das System legen Mit R cksicht auf reine Anwender haben wir bei der Darstellung bewuBt darauf verzichtet allzu tief in die Details der Realisierung einzudringen Insbesondere haben wir im vorliegenden Dokument nur wenige Programmfragmente vorgestellt um Leser ohne PERL Kenntnisse nicht zu berfordern Der Anwender kann die entsprechenden Textpassagen notfalls getrost berspringen ohne dadurch den roten Faden zu verlieren Dessen ungeachtet findet der Entwickler im folgenden viele n tzliche Informationen zur Werkzeug Implementierung Notwendige allgemeine Vorkenntnisse Unser Bestreben war es ein Werkzeug zu konzipieren das einfach installierbar intuitiv bedienbar und m glichst kompatibel zu unterschiedlichsten Ausf h rungsplattformen ist Computergrundkenntnisse sollten ausreichen um das vi Werkzeug erfolgreich in Betrieb zu nehmen Da der typische Anwender von CROCODILE mit Routerkonfigurationen befa
92. enschen weniger gut lesbar als die entsprechende HTML Ausgabe es eignet sich aber besser f r eine Weiterverarbeitung Vor allem Unix Systeme verf gen als Bordmittel bereits ber zahlreiche Filterwerkzeuge mit denen Texte schnell und bequem nachver arbeitet werden k nnen Auch die meisten Textverarbeitungs Tabellenkalkula tions und Mathematikprogramme haben in der Regel eine Importschnittstelle f r Text Copyright Fraunhofer IESE 2003 Stapelverarbeitung Batch Processing CROCODILE erzeugt seine Textausgaben auf Wunsch im Comma separated Vector Format CSV das heiBt als Zeilen der Form lt Textfeld 1 gt lt Textfeld 2 gt lt Textfeld 3 gt Der Trenner zwischen den Textfeldern muB dabei keineswegs immer ein Komma sein Mittels der Option fs FieldSeparator kann auch ein anderes Textzeichen notfalls sogar eine beliebige Trennphrase konfiguriert werden Per Vorein stellung verwendet batchcroco ein Tabulator Zeichen als Trenner zwischen den Textfeldern Dieses Format ist auch f r Menschen leidlich lesbar auBerdem kann es unmittelbar in Microsoft Excel importiert werden und erzeugt dort ein Ubersichtliches Tabellenformat F r den Import in andere Werkzeuge kann es sinnvoll sein einen anderen Trenner zu wahlen je nach den CSV Vorlieben des jeweiligen Tools Ubliche Zeichen sind Komma oder Semikolon Ein anderes Trennsymbol ist insbesondere notwendig wenn Tabulator Zeichen auch innerhalb der Textfelde
93. entierung seiner Pattern Handler auf einen Fundus von Hilfsfunktionen zur ckgreifen der eine kompakte bersichtliche Formulierung des Pr fprogramms erm glicht Das Unterver zeichnis Auxiliary dient zur Ablage der von den Pr fmodulen ben tigten Unter st tzungsmodule Persistente Daten Einige Pr fschritte erfordern die Auswertung mehrerer Router Konfigurationsan weisungen also die Verkn pfung der Resultate mehrerer Pattern Handler eventuell sogar mehrerer Pr fmodule Solche Analysen sind nur m glich wenn Informationen ber die Aktivierungsdauer einzelner Pattern Handler hinaus gespeichert und bereitgehalten werden Die entsprechenden Daten sind somit Copyright Fraunhofer IESE 2003 4 1 Architektur und Funktionsprinzip persistent in dem Sinne daB sie unabh ngig von der Lebensdauer einzelner Prufmodule weiter existieren bis das Werkzeug den endg ltigen Pr fbefund ermittelt hat Das Werkzeug Rahmenwerk sieht vor persistente Daten durch Unterst tzungs module zu repr sentieren Jedes Unterst tzungsmodul stellt die Abstraktion eines logischen Objekts dar und bietet Funktionen um relevante Objekteigen schaften zu speichern oder abzufragen Beziehungen zwischen Objekten zu modellieren oder um Operatoren auf das Objekt anzuwenden Wir empfehlen die Verwendung solcher Unterst tzungsmodule als allgemeines Mittel zur Struk turierung persistenter Daten 3 7 Verzeichnisstruktur Der Quellcode des Werkzeugs ist i
94. er Konsolenmeldungen verbosity zu Debug Zwecken stufen weise zu erh hen oder alle Pr flauf Statusmeldungen in eine Datei zu protokollieren Logging Die Beschreibung aller zul ssigen Laufzeit Optionen w rde an dieser Stelle zu weit f hren F r eine erste Inbetriebnahme sind voraussichtlich keine besonderen Kommandozeilenparameter erforderlich CROCODILE ist weitgehend selbsterkl rend Es besitzt eine Online Hilfefunktion Option h zur schnellen Orientierung Eine Kurzbeschreibung der Laufzeit Optionen erh lt der Anwender zum Beispiel mit folgendem Aufruf user host CROCODILE perl crocodile h USAGE crocodile lt options gt lt IOS config file gt DESCRIPTION CROCODILE reads an IOS router configuration file in ASCII format analyzes the configuration settings and creates evaluation reports in ASCII HTML or XML format depending on command line options If no file name or filename is specified STDIN is read Copyright Fraunhofer IESE 2003 Anwendung des Priifwerkzeugs im Uberblick OPTIONS The options below are general option for both interactive and batch mode c lt dir gt Configuration directory where CROCODILE conf files can be found default is Configuration h Show this help information on console and exit weitere Optionen folgen Etliche der Optionen werden haupts chlich intern verwendet um crocodile im Stapelverarbeitungsmodus zu betre
95. er Menge vorgegebener Textmuster Sobald ein Textmuster Pattern im Konfigurationstext erkannt wird benachrichtigt der Parser alle Pr fmodule die sich f r das betreffende Muster interessieren und bergibt ihnen die dem Muster entsprechende Textzeile zur Auswertung Erh lt ein Pr fmodul eine Benachrichtigung so f hrt es eine dem Textmuster zugeordnete Pr froutine Pattern Handler aus Der Pattern Handler ist eine Methode des Pr fmoduls und umfa t alle logischen Pr fschritte die beim Auftreten des Textmusters vorgesehen sind Der Methodenaufruf liefert ein Pr fergebnis sowie gegebenenfalls erg nzende Kommentare zum Pr fergebnis Alle Befunde werden in strukturierter Form in eine interne Ergebnisdatenbank eingespeist Copyright Fraunhofer IESE 2003 1 5 Architektur und Funktionsprinzip Abbildung 2 16 I Pr fmodul Pr fergebnisse Ergebnis p parser i J datenbank XML IOS Hypertext Konfiguration Protokoll bersicht ber Struktur und Funktionsweise des Pr fwerkzeugs Sind alle Textzeilen der Eingabedatei in dieser Weise verarbeitet worden so wird reihum jedes Pr fmodul per Methodenaufruf noch einmal aufgefordert eine abschlie ende Gesamtwertung seines jeweiligen Pr fbefunds zur ckzumelden Dies bietet den Modulen die Gelegenheit aus der Summe aller ihnen gemeldeten Textzeilen eine integrierte Sicht auf den zu pr fenden Sicherheitsas
96. er als trivial angesehenen Klartexte ist in der Konfigurationsdatei Configuration Passwords conf in dem Attribut FORBIDDEN_PASSWORDS als Liste hinterlegt der Anwender kann diese Liste nach Gutd nken erg nzen oder ver ndern Copyright Fraunhofer IESE 2003 Pr fmodule Achtung Die Verschl sselung Nr 5 ist ein absichtlich sehr aufwendiges Verfahren Das Durchprobieren von Klartextkandidaten man bezeichnet dies auch als W rterbuchangriff Dictionary Attack erfordert daher relativ viel Rechenzeit Daher empfiehlt es sich die Liste FORBIDDEN_PASSWORDS nicht allzu sehr auszudehnen Zus tzlich zu den in FORBIDDEN_PASSWORDS genannten Pa wortkandidaten wird noch der Hostname des Routers falls er definiert ist als m gliches Pa wort ausprobiert Der Anwender kann den W rterbuch Angriff auf Ser Pa w rter unterdr cken indem er in der Konfigurationsdatei Configuration Passwords conf die Zeile NO_5_CHECK NO eintr gt Dies vermindert die Laufzeit des Pr fmoduls Wahlweise kann der Anwender aber auch einfach unn tigen Eintr ge aus der Kandidatenliste FORBIDDEN_PASSWORDS entfernen Package Digest MD5 Das Nr 5 Verschl sselungsverfahren basiert auf MD5 einem kryptographischen Hash Algorithmus der Firma RSA Data Security Inc Zur Implementierung der Verschl sselung st tzt sich das Pr fmodul Passwords der Einfachheit halber auf ein fertiges Modul von CPAN dem Comprehensive PERL Archive
97. er eindeutig inter pretierbar sind m ssen solche Dateinamen oder zumindest die darin enthal tenen Leerzeichen nach den Konventionen der Plattform geeignet in Quotes gesetzt werden Ob dies mit einfachen oder doppelten Anf hrungs striche oder zum Beispiel mit zu erfolgen hat h ngt vom Betriebssystem ab Als Argument sind auch Muster mit sogenannten Wildcard Zeichen bzw zul ssig Typische Unix Shells l sen solche und noch komplexere Suchmuster bereits auf Shell Ebene auf und bergeben der Anwendung die dem Muster entsprechende expandierte Datei Liste Windows Konsolen reichen Wildcards dagegen an die Anwendung durch Wenn CROCODILE Wildcards in Dateinamen Copyright Fraunhofer IESE 2003 97 Stapelverarbeitung Batch Processing 98 entdeckt die noch nicht auf Shell Ebene aufgel st wurden so interpretiert es diese als Suchmuster und expandiert sie auf Anwendungsebene Achtung Je nach Betriebssystem wird GroB Kleinschreibung bei Dateinamen beachtet oder ignoriert mitunter auch uneinheitlich je nach Anwendung Die Aufl sung von Suchmustern liefert daher mal alle Treffer unabh ngig von ihrer Schreibung mal nur solche Dateinamen mit bereinstimmender GroB Klein schreibung Der Anwender sollte sich auf seiner jeweiligen Plattform verge wissern da Wildcards seinen Erwartungen gem aufgel st werden Um etwa alle Dateien mit der Endung txt im Verzeichnis SampleConfigs zu analysieren
98. er seine neu erstellten Pr fmodule von der PERL Klasse Module ableitet ist sichergestellt da diese sich mittels plugin problemlos einf gen lassen Copyright Fraunhofer IESE 2003 Architektur und Funktionsprinzip Deklaration der verwendeten Komponententypen use Parsing Parser use Auxiliary ResultData use Output HTML_control use Plugin CompoundPatterns use Plugin IngressEgress nach Bedarf neue Plugin Pr fmodule erg nzen print nCROCODILE started n n Name der verschiedenen Eingabe und Ausgabedateien und Pfade my input my Shtml_outdir HTML_results my xml_outdir XML_data my xml_output xml_outdir results xml Ergebnisdarstellung anlegen und initialisieren my Shtml HTML_control gt new Output HTML_output conf Erzeugung und Initialisierung je einer Instanz der Pr fmodule my modulelist module push modulelist Plugin CompoundPatterns gt new push modulelist Plugin IngressEgress gt new pro gew nschtem Plugin Modul eine Instanz erzeugen und pushen Erzeuge und initialisiere den Parser Checkermodule einstecken my Sparser Parser gt new Sinput foreach module modulelist parser gt plugin module Eingabedatei Zeile f r Zeile parsen print nStarting parse n n Sparser gt parse Abschlu bewertung erstellen print nParsing finished Now analyzing n n Sparser
99. erden unter der Kategorie checks failed gez hlt 4 Wenn eine Pr fregel ein oder mehrmals angewendet wird und s mtliche checks das Ergebnis PASS liefern so wird dies dennoch nur als ein einziger erfolgreicher check unter der Kategorie checks passed gez hlt Wiederholter Erfolg der gleichen Regel bleibt in jedem Falle also unber ck sichtigt 5 Das Verh ltnis der Summe der Gewichte Regelattribut Importance aller checks passed zur Summe der Gewichte aller checks failed und checks passed liefert den gesuchten Wert des Benchmarks Die Berechnungsschritte 3 und 4 betonen offensichtlich Fehlschl ge gegen ber Erfolgen einer Regelanwendung Dies gibt mitunter ein recht verzerrtes Bild Wenn etwa von 10 Interfaces neun korrekt und nur eines fehlerhaft bez glich einer Regel konfiguriert wurden so vermeldet der RAT Pr freport genau eine fehlgeschlagene Regelanwendung die Masse der erfolgreichen Regelanwen dungen wird nicht gez hlt ja nicht einmal protokolliert W re dies die einzige Regel die im Pr flauf zur Anwendung kommt so erg be sich folglich ein RAT Score von 0 0 obwohl die Konfiguration beinahe korrekt ist Zur Vermeidung solcher Zerreffekte liefert CROCODILE zus tzlich zur Original Kennzahl nach CIS Vorschrift noch die entsprechende Kennzahl die sich durch gleichberechtigte Z hlung aller fehlgeschlagenen und erfolgreichen checks ergibt Anders als unter RAT werden von CROCODILE au
100. erface eine IP Adresse tragen mu gt OKAY Andernfalls erscheint eine WARN Meldung im Protokoll Der Kontext der Loopback Konfiguration endet sobald in der Router Konfigu ration eine neue Interface Anweisung interface gleich welchen Typs erkannt wird Sollte es sich zuf llig erneut um ein Anweisung der Form interface Loopback handeln so beschlie t dies den Kontext der unmittelbar darauf wieder f r eine neue Interface Instanz er ffnet wird Die zweite Kontext Definition macht Pr fvorgaben f r alle sonstigen Interfaces au er Loopback Interfaces Der Beginn des Kontexts ist an Konfigurationsanwei sungen zu erkennen die mit interface beginnen und sich nicht mit Loopback fortsetzen Auch dieser Kontext endet sobald ein neues interface in der Konfigurationsbeschreibung auftritt Die Klausel im Inneren der Kontextdefi nition besagt im wesentlichen da f r jedes Interface das nicht ausdr cklich abgeschaltet ist die folgenden Merkmale vereinbart sein sollen description no ip redirects no ip directed broadcast no ip proxy arp sowie no cdp enable Globaler Kontext versus Klauselkontext Alle IOS Klauseln die nicht in einem gesonderten Klauselkontext auftreten werden dem sogenannten Globalen Kontext zugerechnet und als globale Klauseln bezeichnet Globale Klauseln beeinflussen die Wirkung von Kontext Copyright Fraunhofer IESE 2003 53 Pr fmodul
101. ergibt sich aus der Kritikalit t aller seiner Anmer kungen sowie der Kritikalit t der zugeh rigen Konfigurationszeilen Der Configuration Mode eines IOS Befehls legt eindeutig dessen Klauselkontext fest Dar ber hinaus besteht jedoch die M glichkeit Zeilen zu beliebigen logischen Kontexten zusammenzufassen und diesen Kontexten ebenfalls Anmerkungen Verbesserungsvorschl ge und Referenzen zuzuordnen So kann man beispiels weile die Deklarationsklauseln einer Access Liste und alle Klauseln in denen diese Access Liste referenziert wird zu einem globalen access list Kontext zusammenfassen Alle Konfigurationsfehler mit Bezug zu der Access Liste k nnen so zusammenh ngend erfa t und dargestellt werden Eine Zeile der Konfigurationsdatei kann beliebig vielen logischen Kontexten zugeordnet werden aber durch IOS vorgegeben h chstens einem Klausel kontext Schnittstelle zu den Pr fmodulen Pr fmodule nutzen die Datenbankschnittstelle in der Regel nicht direkt sondern mittels Wrapper Methoden die von der gemeinsamen Basisklasse aller Pr fmodule Plugin Module mit verk rzter Parameterliste bereitgestellt werden Die verf gbaren Methoden beschreibt Anhang A Speichern und Laden der Befunddatenbank im XML Format Aus den Befunddaten k nnen unabh ngig vom Pr flauf verschiedene Ergebnisdarstellungen generiert werden Zu diesem Zweck wird die Befundda tenbank im XML Format als Datei abgespeichert Die XML D
102. erkzeug eingesetzt wird und welche Systemvoraussetzungen dazu notwendig sind Kapitel 3 beschreibt den Aufbau und die Entwurfsphilosophie des Werkzeugs Es skizziert das Zusammenspiel der einzelnen Werkzeugkomponenten Kapitel 4 ist den verf gbaren Pr fmodulen gewidmet Es beschreibt deren Funktionsweise und Pr fumfang Kapitel 5 stellt ein spezielles Pr fmodul vor das die Funktionsweise des Router Audit Tools RAT einem im Internet frei verf g baren IOS Checker Tool exakt nachbildet um RAT Anwendern den Umstieg auf CROCODILE zu erleichtern Kapitel 6 ist dem Stapelverarbeitungsbetrieb gewidmet Es stellt dar wie der Anwender mit CROCODILE Reihenuntersuchungen an vielen IOS Konfigurations dateien durchf hren kann und wie sich dabei maschinenlesbare Befunddaten f r eine Nachbearbeitung mit unabh ngigen Werkzeugen erzeugen lassen Copyright Fraunhofer IESE 2003 3 Problemstellung und L sungsansatz In Kapitel 7 werden verschiedene Hilfswerkzeuge vorgestellt die das Werkzeug erganzen und abrunden Kapitel 8 wendet sich an Entwickler die das Werkzeug um weitere Pr fmodule erweitern wollen Es vermittelt einen groben Uberblick Uber die Vorgehensweise bei der Erstellung eines Moduls AbschlieBend bietet Kapitel 9 eine kurze Zusammenfassung und einen Ausblick auf kUnftige Weiterentwicklungen 4 Copyright Fraunhofer IESE 2003 2 Anwendung des Pr fwerkzeugs im berblick Bevor wir den Anwender in einer l nglic
103. erlink hinterlegt durch Anklicken werden in den beiden unteren Fenstern Detailinformationen zur jeweiligen Klausel im Beispiel die Klausel in Zeile 13 des Konfigurationstexts angezeigt In der linken unteren H lfte werden nachdem auf eine Zeile geklickt wurde zugeh rige Verweise als Hyperlinks angezeigt Durch Klick auf einen dieser Links wird im unteren Teil rechts die gew nschte Information angezeigt Auf Wunsch kann man alle Klauseln eines Kontexts und den Kontext Pr fbefund durch Anklicken in die Anzeige holen Man kann auch unmittelbar zu ausge w hlten Seiten des IOS Reference Manuals im Internet wechseln passende Verweise werden vom Werkzeug automatisch in der Anzeige bereitgestellt Copyright Fraunhofer IESE 2003 Architektur und Funktionsprinzip Zus tzlich umfa t die Anzeige noch einen Bookmark Bereich Dort sind Verweise auf vertiefende Analysen Hintergrundinformationen sowie auf das Benutzerhandbuch hinterlegt Einzelne Analysemodule k nnen nach Bedarf weitere Bookmarks anlegen um logisch zusammenh ngende Befunde bersichtlich zu gliedern Das Werkzeug bietet daf r eine einfache Programmier schnittstelle f r Plugins siehe Anhang A HTML bersichten Die HTML Darstellung ist facettenreich erfordert aber auch einiges Navigieren um die Summe aller Befunde zu erschlie en Daher findet sich im Bookmark Bereich der Verweis Evaluation Report auf eine Befundzusammenfassung Es handelt sich um ein HTML
104. ern aufrecht zu erhalten kann der Anwender auf Wunsch die Klartextausgabe entschl sselter Pa w rter unterdr cken Dazu ist in der Datei Configuration Passwords conf die Einstellung DISCLOSE_PASSWORDS NO zu w hlen Die entsprechenden Meldungen werden daraufhin nicht mehr in den Analysebefund eingetragen Der Anwender sollte sich jedoch dar ber im klaren sein da dies nur geringen Schutz gegen fl chtige Aussp hung bietet Das von CROCODILE verwendete Entschl sselungsverfahren ist ffentlich bekannt ein Angreifer kann es sich leicht im Internet beschaffen Die Default Einstellung ist DISCLOSE_PASSWORDS YES d h alle Entschl s selungen werden im Pr fprotokoll offengelegt Triviale Nr 5 Pa w rter Das Verschl sselungsverfahren Nr 5 ist nach heutigem Kenntnisstand sicher eine systematische Entschl sselung erscheint unm glich Deshalb kann das Pr fmodul Passwords die G te der so verschl sselten Pa w rter nicht ohne weiteres berpr fen Die Tests beschr nken sich daher darauf einige offen sichtlich mangelhafte Pa wortkandidaten auszuschlie en Zun chst wird gepr ft ob eines der Klartext oder 7er Pa w rter in 5er Verschl sselung in der Konfiguration erscheint In diesem Falle w re die 5er Verschl sselung sinnlos denn der Klartext dazu ist sofort gefunden Als n chstes wird getestet ob das Chiffrat eines 5er PaBworts der Verschl s selung eines trivialen Klartexts entspricht Die Liste d
105. ernten SNMP Server Copyright Fraunhofer IESE 2003 Pr fmodule F r eine systematische Uberwachung des Routerbetriebs sind vor allem die drei letztgenannten Varianten empfehlenswert 2 sie werden besonders kritisch analysiert Alle f nf Logging M glichkeiten k nnen parallel und unabh ngig von einander genutzt werden F r jede der Varianten werden folgende Punkte berpr ft e Ist das Logging Verfahren aktiviert und sind alle Konfigurationsvorausset zungen f r eine ordnungsgem e Protokollierung erf llt e Ab welcher Dringlichkeitsstufe werden Meldungen protokolliert IOS unter scheidet die folgenden Dringlichkeitsstufen nach steigender Priorit t debugging informational notifications warnings errors critical alerts emergencies e Ist die maximal zul ssige Meldungsrate beschr nkt e Im Falle von SYSLOG Unter welchem Facility Namen werden die Meldungen an den Server bermittelt Daneben werden verschiedene allgemeine Pr fpunkte analysiert e Sind die Meldungen mit Zeitstempeln versehen e Wie sind die Meldungspuffer dimensioniert e Sind zus tzliche Logging Services aktiviert z B Line Card Logging VIP Card Logging BGP oder EIGRP Logging MPLS Logging e Werden Zugriffskontrollisten ACLs mittels log Attribut berwacht und wird die Dringlichkeitsstufe entsprechender Meldungen bei der Protokol lierung berhaupt ber cksichtigt e Sind alle Konfigurationsklauseln syntaktisch korrekt und lie
106. ertes Compound Copyright Fraunhofer IESE 2003 49 Pr fmodule 50 gilt genau dann als aufgetreten wenn das Compound selbst nicht aufgetreten ist Ein bedingtes Compound gilt als aufgetreten wenn das zutreffende THEN ELSIF oder ELSE Compound aufgetreten ist Welches Compound das zutref fende ist entscheidet sich danach ob das IF Compound oder eines der ELSIF Compounds aufgetreten ist Das erste nachgewiesene Bedingungs Compound bestimmt den relevanten Zweig Ist keines der Bedingungs Compounds aufge treten ist das ELSE Compound das relevante sofern angegeben Der Z hloperator Count besagt da das zugeordnete elementare Pattern nur dann als aufgetreten gilt wenn es wenigstens lt minoccur gt und h chstens lt maxoccur gt Mal nachgewiesen wurde Die Angabe der oberen Schranke darf entfallen mit der Bedeutung beliebig oft Als Argument des Z hloperators ist nur ein elementares Pattern zul ssig weil sich die H ufigkeit beliebiger Compound Patterns im allgemeinen nicht sinnvoll definieren l t Tabelle 2 zeigt eine f rmliche Beschreibung der Compound Pattern Syntax Kontexte Die Konfigurationsbeschreibungssprache des IOS unterscheidet verschiedene Modi Einige Konfigurationsanweisungen sind nur m glich wenn sich der Router in einem bestimmten Betriebssystem Modus befindet Um solche Anweisungen zu erteilen mu zuvor ein Modus Wechsel veranla t werden Nachfolgende Anweisungen sind dann nur im
107. ery Protocol Comprehensive PERL Archive Network Cisco Router Configuration Diligent Evaluator Extended Interior Gateway Protocol File Transfer Protocol Hyper text Reference HTML Hypertext Markup Language Hypertext Transfer Protocol Internet Control Message Protocol Internet Engineering Task Force Cisco Internet Operating System Internet Protocol Internet Service Provider Informationstechnologie Management Information Base Multi Protocol Label Switching Microsoft US National Security Agency Network Time Protocol Portable Document Format Practical Extraction and Report Language bzw Pathologically Eclectic Rubbish Lister Private Internet Exchange Cisco Firewall Point to Point Protocol Remote Authentication Dial in User Service Router Audit Tool Request for Comments Sysadmin Audit Network Security Institute Simple Network Management Protocol 139 140 TACACS TCP TFTP TTY UDP URL VIP VTY WWW XML Terminal Access Controller Access Control System Transmission Control Protocol Trivial File Transfer Protocol Teletypewriter Line Interface User Datagram Protocol Uniform Resource Locator Versatile Interface Processor Virtual TTY Line Interface World wide Web Extensible Markup Language Copyright Fraunhofer IESE 2003 Document Information Titel CROCODILE Benutzerhandbuch Datum November 2003 Report 119 03 D Status Version 3 0 Copyright 2003 Fraunhofer IESE
108. erzeichnis Utils finden sich n tzliche Werkzeuge die den Einsatz des Pr fwerkzeugs unterst tzen und sinnvoll erg nzen Es handelt sich um Funktionen die w hrend eines Pr flaufs nicht unbedingt ben tigt werden Um Standardanwendungen des Checkers nicht unn tig zu berfrachten wurden solche Sonderfunktionen in eigenst ndige Utilities ausgelagert 7 1 Durchl ssigkeitsanalysen an ACLs und Interfaces mittels blackwhite Mitunter ist es hilfreich genau zu berpr fen f r welche IP Verkehrsarten eine vorgegebene Access Control Liste durchl ssig f r welche sie abweisend ist Wir bezeichnen die Menge aller durchgelassenen IP Pakete als das Whiteset der ACL die Menge aller abgewiesenen entsprechend als deren Blackset N tzlich ist auch die Berechnung aller IP Pakete die potentiell ber ein bestimmtes Interface des Routers propagiert werden k nnen das sogenannte Propagate Set einer Schnittstelle Die Werkzeugumgebung ist in der Lage eine vollst ndige Aufstellung aller Whiteset Blackset und Propagate Set Paketformate zu generieren Je nach Umfang und Komplexit t der beteiligten ACL ist dazu jedoch ein vergleichsweise hoher Rechenaufwand erforderlich au erdem k nnen die Mengen in einigen F llen so gro und zerkl ftet ausfallen da deren Berechnung nur einen geringen Erkenntnisgewinn liefert der den hohen Interpretationsaufwand f r einen menschlichen Benutzer nicht mehr rechtfertigt 14 Es lag daher nahe
109. erzeichnis etc configs cisco ios in den Dateien common conf grundlegende Deklaration cis level 1 conf Pr fregeln f r elementare Sicherheitsanforderungen sowie cis level 2 conf Pr fregeln f r erweiterte Sicherheitsanforderungen Benutzerspezifische Zusatzregeln erwartet RAT gew hnlich in local conf im gleichen Unterverzeichnis Beliebig viele Pfade zu beliebigen Verzeichnissen d rfen unter RULES aufgelistet werden SECURITY_GUIDE lt Pfad zum Router Security Configuration Guide gt Die RAT Standarddistribution enth lt den Router Security Configuration Guide NSAguide unter doc rscg pdf Wird ein ung ltiger Pfad angegeben so kann CROCODILE keine entsprechenden Hyperlinks als Querverweise generieren wie es laut Standardregelspezifikation vorgesehen ist Dies hat jedoch keinen EinfluB auf das Pr fergebnis selbst PDF_PAGE_LABELS yes oder no Bei der Angabe yes generiert CROCODILE HREFs auf PDF Dateien die auf eine bestimmte Seite innerhalb des PDF Dokuments verweisen Das Format dazu lautet lt a href lt Dateiname gt pdf page lt Seitennummer gt lt a gt Leider wird dieses Format nur von bestimmten Browsern und nur mit dem passenden Adobe Plugin unterst tzt manche Browser sind nicht in der Lage solche HREFS berhaupt zu verstehen Sollte ein PDF Link in einem RAT Report nicht funktionieren so kann man mit der Angabe no erzwingen da alle Page Labels weggelassen werden WEIRD_RA
110. es Pattern in der Eingabe des Pr fwerkzeugs erkannt wird informiert der Parser alle betroffenen Pr fmodule und bermittelt ihnen die entsprechende Textpassage Um den Pr fmodulen die Analyse m glichst zu erleichtern liefert der Parser zu jeder gefundenen Textstelle die Daten in aufbereiteter Form Die Angaben umfassen u a e die Zeilennummer in der die Textstelle in der Eingabe gefunden wurde e die Textzeile in ihrem vollen Wortlaut Copyright Fraunhofer IESE 2003 Architektur und Funktionsprinzip e das Pattern dem die Zeile entspricht e das jedem Pattern Bestandteil entsprechende Textfragment Um jeder Pattern Komponente Atom oder Kompositum das entsprechende Textfragment eindeutig zuzuordnen werden die Komponenten hierarchisch numeriert Im Beispiel oben erg be sich folgendes Numerierungsschema access list 1 99 1300 1999 permit deny any IPADDR IPMASK log 0 access list 1 1 99 1300 1999 1 0 1 99 T 1300 1999 2 permit deny 2 0 permit 2 deny 3 any IPADDR IPMASK 3 05 any 3 IPADDR 328 IPMASK 3 2 0 IPMASK 4 log 4 0 log Das Prinzip der Nummernvergabe sollte offensichtlich sein Die Pattern Bestand teile werden von links nach rechts aufsteigend durchnumeriert mit Null beginnend Mit jeder ffnenden Klammer erfolgt ein Wechsel auf die nachst tiefere Numerierungsebene wo das gleiche Schema rekursiv angewendet wird Bei schlie ender Klammer erfolgt ein Aufstieg
111. etzungen im Konfigurationstext aufzusp ren So erkennt CROCODILE mittels logging history size NUM zum Beispiel auch falsche Konfigurationsbefehle mit ung ltiger Gr en angabe w hrend logging history size 1 500 zwar genauer ist aber bei berschreitung der erlaubten Maximalgr e 500 nicht anspringt Damit der Pattern Handler auch bei solchen Fehlern getriggert wird lohnen sich oft Verallgemeinerungen Der Entwickler kann seine Patterns in das Codefragment eintragen und deren Funktionsf higkeit pr fen Zur Formulierung von Patterns kann der Entwickler geeignete Makros vgl Kapitel 3 2 Seite 26 einf hren F r einen Testlauf wird jedem Pattern zun chst der generische Handler generic_handler zugeordnet my macroref INTERFACE gt IF_TYPE IF_NUM Is 1 20 Copyright Fraunhofer IESE 2003 Erstellen eigener Pr fmodule my patternref logging source interface INTERFACE gt HANDLER gt amp generic_handler logging history size NUM gt HANDLER gt amp generic_handler I Sind alle Patterns korrekt eingetragen dann kann der Entwickler das neue Pr fmodul mittels plugin ins CROCODILE Hauptprogramm einklinken Anhand von Beispielkonfigurationen sind jetzt erste Tests m glich e Werden alle Konfigurationsbefehle in allen m glichen Varianten tats chlich erkannt Auch in negierter Form e Ist eines der Patterns versehentlich mehrde
112. everzeich nisses in die Verarbeitung ein on oder off ResultOverwrite o Existierende Ergebnisdateien off ohne Warnung berschreiben on oder off ResultPrefix p Angegebe Zeichenkette im kein Pr fix Format lt Prefix gt allen Ausgabe dateinamen voranstellen Quick q berspringen einiger nicht on essentieller Pr fungen im Batch Modus 0 off 1 2 oder 3 on QuoteFields qf Einschlie en aller Textfelder bei off Ausgabe im ASCII Format in doppelte Anf hrungszeichen on oder off Ruleset r Verzeichnisname des Pr fregel abgeleitet aus dem satzes im Oberverzeichnis Namenspr fix der RulesetDir der auf die Batch Eingabedatei Jobs anzuwenden ist lt set gt lt filename gt RulesetDir 5 Verzeichnisname in dem die Current Working Pr fregels tze als Unterverzeich Directory nisse abgelegt sind ResultAddDate t Datums im Format JJJJMMTT an on den Dateinamen aller Ausgabe dateien anf gen on oder off Verbose V Detaillierungsgrad der Protokol off Verf gbare Optionen in batch conf und deren Entsprechung als Kommandozeilen Option Copyright Fraunhofer IESE 2003 Stapelverarbeitung Batch Processing 6 3 Auswahl von Pr fregels tzen Abbildung 25 Copyright Fraunhofer IESE 2003 Je nach Einsatzzweck eines Routers mu dieser unterschiedlich konfiguriert werden Folglich variieren auch die Pr fkriterien von Fall zu Fall Was f r einen Backbone Router gut und wichtig ist m
113. ewisser Nachrichtenurspr nge jedoch zu durchl ssig ist Die oben skizzierte Spezifikationsmethode funktioniert unabh ngig von der Reihenfolge oder der Form der Filterklauseln Ma geblich ist allein die Wirkung die sich aus dem Zusammenspiel aller Klauseln ergibt Das bedeutet insbe 9 Die Beschreibung bezieht sich auf ein logisches Konzept In der technischen Durchf hrung wird nat rlich darauf verzichtet die beschriebenen Mengen tats chlich Element f r Element zu bilden Eine solche naive Vorgehensweise w rde an der enormen Kardinalit t der Mengen scheitern Statt dessen werden Whitesets und Blacksets nur symbolisch beschrieben und mittels Umformungsschritten auf der Symbolebene analysiert Copyright Fraunhofer IESE 2003 59 Pr fmodule Abbildung 14 60 Ingress Egress for Line in PATTERN vty Whiteset tcp 153 96 133 eq telnet Blackset ip 0 152 154 255 Foe CALME ip 153 P0 95 97 255 38 OS MK ip 153 96 0 132 134 255 0 557 2557 T53 96 133 tcp 153 96 133 0 22 24 65535 X OX k Line vty 0 Accesslist 2 gt Whiteset only partially supported Missing tEB 153 96 133 4 4 4 eg telnet gt Blackset only partially supported Missing ip 151 200 19 52 7 85 ip 164 47 133 2 ip 217 31 34 129 Fe 5 Typisches Beispiel f r das Ergebnis einer IngressEgress Pr fung sondere da
114. f gen einer Anmerkung auch die Kritikalit t der Zeile ndert add_reference linenumber ref_name reference ref_type Der Aufruf ordnet einer Konfigurationsklausel einen Verweis zu Jede Zeile kann beliebig viele Verweise haben Als Argumente werden hier nach der Zeilennummer an die der Verweis angeh ngt werden sollen noch der sichtbare Verweisname der Verweis also z B eine URL oder ein Dateiname und der Typ des Verweises angegeben M gliche Typen sind file URL DumpData toLine und toContext Der erste Typ ffnet eine Datei beim zweiten wird auf einen URL verlinkt Der dritte zeigt auf einen Text vom Typ DumpData als reference ist genau der Name des Dumpdata Objektes anzugeben Beim Typ toLine kann auf eine beliebige Zeile der Konfigu Copyright Fraunhofer IESE 2003 Copyright Fraunhofer IESE 2003 rationsbeschreibung verwiesen werden und beim Typ toContext wird der entsprechende Kontext angezeigt als reference mu der Kontextname angegeben werden wobei es sich sowohl um einen logischen Kontext als auch um einen Klauselkontext handeln kann Bei den letzten drei Typen ist es au erdem wichtig da die entsprechende Datenstruktur bereits angelegt ist bevor der Verweis gesetzt wird Es kann also z B nicht auf eine Zeile verwiesen werden die vom Parser noch nicht erkannt wurde Auch Kontexte bzw Dumps m ssen vorher bereits erstellt worden sein add_logical_context linenumber con
115. f gt werden k nnen der Nachteil besteht vor allem im Copyright Fraunhofer IESE 2003 Emulation des Router Audit Tools RAT vergleichsweise hohen Spezifikationsaufwand und der gegen ber CompoundPatterns geringeren Ausdruckskraft Das Spezifikationsformat f r IngressEgress ist speziell an die Bed rfnisse von ACL Pr fvorgaben angepa t und er ffnet M glichkeiten f r Pr fregeln die weder CompoundPatterns noch RATemulation auch nur ann hernd zu bieten verm gen F r Pr fkriterien die sich mit keinem der verf gbaren Konfigurations formate darstellen lassen bietet das Framework eine recht m chtige Programmierschnittstelle um zus tzliche Pr fmodule zu implementieren Solche Module sind m glicherweise konfigurierbar in einem auf den Pr fbe reich zugeschnittenen Format Programmierung neuer Pr fmodule bleibt f r den gew hnlichen Anwender die Ultima Ratio In vielen F llen sind die vorhandenen Konfigurationsformate ausrei chend um die gew nschten Pr fkriterien zu formulieren Wir rechnen damit da es in Zukunft noch weitere flexibel konfigurierbare Pr fmodule f r CROCODILE geben wird Einstweilen bieten IngressEgress CompoundPatterns und RATemulation interessante M glichkeiten zur Abw gungen zwischen Universalit t Ausdrucksst rke und Bequemlichkeit des Spezifikationsformats Copyright Fraunhofer IESE 2003 95 Emulation des Router Audit Tools RAT 96 Copyright Fraunh
116. further restrictions Processing 5 ACL rules L223 45 5 ACL rules evaluated What type of result shall I print w Whitelist b Blacklist s Shortest of these two a All Both Whitelist and Blacklist Which one s Whitelist for ACL 102 will be relative to the following context Restrictions as given ignore tcp any any established tcp any any Restrictions amount to tcp not established Whitelist for ACL 102 tcp 217 31 32 81 eq http not established tcp 164 47 133 135 217 31 32 81 0 79 81 65535 not established Abbildung 27 Beispielanwendung des Hilfswerkzeugs blackwhite 1 1 0 Copyright Fraunhofer IESE 2003 Hilfswerkzeuge Utilities 7 2 Ergebnisaufbereitung mittels make_html Alle Analyseergebnisse werden in der zentralen Datenbank des Werkzeugs verzeichnet und am Ende des Analyselaufs im XML Format in der Datei results xml abgespeichert Zus tzlich wird die HTML Darstellungskomponente aktiviert Diese erzeugt eine bersichtliche Darstellung der Ergebnisse im Hypertext Format vgl Abbildung 6 Seite 36 Mit dem Hilfswerkzeug make_html pl kann der Anwender die XML Ergebnisdatei eines abgeschlos senen Analyselaufs results xml mit wechselnden Darstellungsparametern in HTML Darstellung aufbereiten ohne den Analyselauf wiederholen zu m ssen Neue HTML Aufbereitung nach nderungen in HTML_output conf Das genaue Format der HTML Darstellung steuert
117. g durch Fraunhofer IESE nicht ersetzen Um eigene Werkzeugerweiterungen vorzunehmen ist Programmiererfahrung in der Programmiersprache PERL unerl lich Die Grundz ge der Werkzeugarchi tektur und das Konstruktionsprinzip von Pr fmodulen vermittelt das Benutzer handbuch Ausreichende Programmierkenntnisse vorausgesetzt k nnen die verf gbaren Pr fmodule als Vorlage f r eigene Weiterentwicklungen dienen sofern der Anwender eine Quelltext Lizenz von CROCODILE erworben hat Das Werkzeug wird auch in als Obfuscated Version mit verschleiertem Quelltext angeboten Neuerungen in der CROCODILE Version 3 0 Gegen ber den Vorg ngerversionen bietet die Version 3 0 des Werkzeugs vor allem die folgenden Verbesserungen e Stapelverarbeitungsmodus Ein neues Frontend f r Stapelverarbeitung erm glicht die unbeaufsichtigte Reihenanalyse vieler Konfigurationsdateien in Serie Die Einzelergebnisse werden in vergleichender Darstellung tabelliert e CSV Ausgabeschnittstelle Die Ergebnisse eines Stapelverarbeitungslaufs werden wahlweise auch im Comma separated Vector CSV Format ausgegeben und k nnen so leicht mit anderen Werkzeugen etwa MS Excel weiterverarbeitet werden e Ausdrucksst rkere Pr fregel Beschreibungssprache Zur Formulierung eigener Pr fregeln steht dem Anwender nun eine wesentlich erweiterte Regelsyntax zur Verf gung Pr fkriterien f r mehrere Konfigurationsklauseln lassen sich damit logisch verkn pfen und auch
118. gefunden so schreibt das Pr fmodul eine Meldung gem Einstufung lt crit1 gt LaBt sich in der gesamten Konfigurationsbe schreibung kein solches Textfragment nachweisen so wird eine Meldung gem Einstufung lt crit2 gt protokolliert Im Falle der Vorgabe f r lt crit1 gt oder lt crit2 gt wird die Meldung jeweils unterdr ckt Der ausgegebene Meldungstext nimmt Bezug auf das Text Pattern kann im brigen aber vom Anwender nicht beein fluBt werden sondern richtet sich nach den Vorgaben lt crit1 gt und lt crit2 gt sowie dem Ma e in dem ein Pattern erf llt ist Das allgemeine Format einer Pattern Definition lautet wie folgt lt critl gt lt crit2 gt lt pattern gt Die folgenden Beispiele illustrieren typische Anwendungsf lle aw ip source route a ip route 0 0 0 0 0 0 0 0 Ethernet oc version PROPER_VERSION a version BAD_VERSION Die erste Pattern Definition besagt da das Auftreten der Anweisung ip source route in der Routerkonfiguration als kritisch zu werten ist und eine ALARM Meldung nach sich ziehen soll Auch das Fehlen einer solchen Anweisung gilt als Mangel und soll eine WARN Meldung ausl sen erw nscht w re no ip source route oben nicht als Regel dargestellt Die zweite Pattern Definition besagt da eine Routeranweisung die mit ip route 0 0 0 0 0 0 0 0 Ethernet beginnt hochgradig unerw nscht ist und eine ALERT Meldung hervorrufen soll Fehlt ein
119. gen deren Parameterwerte innerhalb des zul ssigen Wertebereichs e Gibt es sich widersprechende Konfigurationsklauseln 12 Eine direkte Protokollierung auf ein Ausgabeger t ist aus verschiedenen Gr nden nur von sekund rem Interesse Erstens ist eine nachtr gliche Aufbereitung mittels Textverarbeitungs werkzeugen nur noch bedingt m glich Zweitens kann der Darstellungsbereich einer Konsole berlaufen was zu Datenverlusten f hrt Und drittens vermischen sich die Logmeldungen mit Eingaben des Benutzers und sonstigen Ausgaben des IOS Dies alles erschwert die Analyse Copyright Fraunhofer IESE 2003 79 Pr fmodule 80 SNMP Logging F r die bermittlung von Logdaten an einen SNMP Server dienen sogenannte SNMP Traps Damit Trap Meldungen korrekt bermittelt und empfangen werden k nnen sind eine Reihe von Konfigurationseinstellungen vorzunehmen sowohl Logging betreffend als auch SNMP Das Pr fmodul Logging beschr nkt sich im wesentlichen auf die berpr fung der Einstellungen bez glich Logging Die SNMP seitigen Konfigurationseinstel lungen bleiben weitgehend unber cksichtigt Der Anwender kann diese mit dem Pr fmodul SNMP vgl Kapitel 4 5 analysieren Um die Pr flogik nicht zu dupli zieren verzichtet das Modul Logging auf eigenen SNMP Pr fregeln Befundaufbereitung Die Pr fpunkte werden zu logischen Kontexten gruppiert Das Pr fergebnis wird unter dem Bookmark Logging zusammengefa t Befun
120. genseitig aufheben oder ob eine unzul ssige Reihenfolge von Konfigurationsbefehlen vorliegt Dies erfordert diffizilere Pr flogik die mit den naheliegenden Zustandsvariablen allein nicht realisiert werden kann e Der Pr fbefund l t sich gezielt mit Quer Verweisen anreichern Dazu k nnen zus tzliche logische Kontexte Bookmarks Dump Areas oder gar Korrekturvorschl ge Fix Suggestions generiert werden Verweise auf externe Dokumentation etwa in Form einer URL auf ein White Paper im Internet sind ebenso vorstellbar Der Entwickler mu entscheiden wo hier das rechte Verh ltnis zwischen Aufwand und Nutzen liegt Die Entscheidung h ngt nicht zuletzt davon ab welche Fachkenntnis der Entwickler dem vorgesehenen Nutzerkreis unterstellt Je fachkundiger der Anwender um so sp rlicher kann die Befundaufbereitung ausfallen Ein Blick auf den Originalcode des Pr fmoduls zeigt wieviele Erg nzungen schlie lich noch stattgefunden haben um das Modul abzurunden 85 Anmerkungen Das Pr fmodule Logging geh rt zu den einfacheren wenn auch l nglichen Modulen des CROCODILE Rahmenwerks Seine Pr flogik ist nur von m iger Komplexit t Insofern beschreibt dieses Kapitel ein einfaches Beispiel zudem ist die Darstellung auf das Wesentliche verk rzt Tats chlich erforderten Konzeption Bereitstellung und Test des Pr fmoduls Logging einige wenige Personentage Je nach Pr fbereich kann die Entwicklung eines Pr fmoduls wese
121. gsnetz Enable state implicitly enabled Address es 172 30 128 1 AccessGrp OUT 105 Subnets reached 172 30 128 Node 172 30 128 45 ip Node 172 30 128 2 ip Accepted connections ip xk KK K XX XX Propagated connections 0 2 255 153 96 133 135 17230412854 0 2 255 172 30 1 172 30 128 2 45 0 2 255 172 30 200 11 172 30 128 0 2 255 172 30 200 2 172 30 128 2 0 2 255 172 30 200 5 172 30 128 45 icmp 172 30 128 Typische Informationen des Pr fmoduls Connectivity zu Interface Merkmalen e Zeilennummer der Router Konfigurationsbeschreibung in der das Interface deklariert wird e Zeilennummern der Router Konfigurationsbeschreibung in denen auf das Interface verwiesen wird Abbildung 18 zeigt eine typische Ausgabe des Pr fmoduls bez glich Interface Merkmalen Bemerkenswert sind vor allem die Abschnitte Accepted Connec tions und Propagated Connections Sie geben in hochverdichteter Form an welche IP Protokolle aus dem Protokollnummern Bereich 0 255 als einge hender bzw ausgehender Verkehr vom Interface weitergeleitet werden Um dies zu berechnen m ssen unterschiedlichste Konfigurationsklauseln ausgewertet werden darunter Interface Deklarationen Access Listen sowie statische Routen Die beiden Zeilen 0 2 255 172 30 1 172 30 128 2 45 icmp 172 30 128 vgl Abbildung 18 sind zum Beispiel wie folgt zu deuten Copyright Fraunhofer IESE 2003 Abbi
122. hen Darstellung mit den vielschichtigen Eigenschaften des Werkzeugs vertraut machen wollen wir im folgenden kurz die wesentlichen Schritte des Werkzeugeinsatzes zusammenfassen Diese Kurzein f hrung sollte den Anwender in die Lage versetzen das Program zu installieren und einen einfachen Standardpr flauf durchzuf hren 2 1 Systemvoraussetzungen Hardware und Betriebssystem Das Werkzeug ben tigt keine besondere Hardware Ein handels blicher Intel PC mit mindestens 100 MHz Taktfrequenz 128 MB Hauptspeicher und einigen Megabyte freiem Plattenplatz der unter Linux oder Windows betrieben wird gen gt den Anforderungen Das Werkzeug ist keineswegs auf Intel Plattformen festgelegt sondern l uft problemlos auch auf anderen Architekturen Entwickelt und getestet wurde CROCODILE gr tenteils unter Sun Solaris auf einem SPARC Prozessor PERL Laufzeitumgebung Da das Werkzeug in PERL implementiert ist ben tigt es zur Ausf hrung eine PERL Laufzeitumgebung PERL geh rt bei g ngigen Unix bzw Linux Distribu tionen zum Standardumfang F r Windows basierte Plattformen sind vorgefer tigte PERL Executables oder wahlweise Quellcode Archive im Internet frei verf gbar Achtung Je nach verwendetem Betriebsystem und installierter PERL Distribution kann die Ausf hrungsgeschwindigkeit erheblich variieren Bei einem unserer Tests ben tigte die Analyse eines Konfigurationsbeispiels unter Windows die 14 fache Laufzeit eines entsprechenden La
123. ht Fraunhofer IESE 2003 69 Pr fmodule Vertiefende Analysen zu ACLs oder Interfaces lassen sich mittels der Utility black white siehe Kapitel 7 1 durchf hren Das Modul Connectivity stellt daf r die relevanten Rohdaten im XML Format bereit 4 5 Modul SNMP Das SNMP Modul berpr ft die Konfigurationseinstellungen des Routers f r das Simple Network Management Protocol SNMP SNMP dient dazu relevante Zustandsinformationen in der Management Information Base MIB von Netzwerkkomponenten abzufragen und zu ndern oder au ergew hnliche Ereignisse Traps im Netzwerk an einen Management Knoten zu signalisieren In gro en orts bergreifenden Netzwerken ist SNMP ein unverzichtbarer Quasi standard SNMP bietet sicherheitskritische Funktionalit t denn es erm glicht ein Ausspio nieren gegebenenfalls gar ein Umkonfigurieren des Routers von einem entfernten Management Knoten aus Daher bed rfen die SNMP Einstellungen einer besonderen Sorgfalt Pr fvorgaben Das Pr fmodul SNMP ist nicht parametrisierbar Alle Pr fkriterien sind derzeit durch den Modulcode fest vorgegeben Eine besondere Erschwernis ergibt sich bei den Pr fungen dadurch da IOS drei verschiedene SNMP Versionen unterst tzt die sich hinsichtlich Authentisierungs und Berechtigungskonzept voneinander unterscheiden Das Pr fmodul kann SNMPv1 v2 sowie v3 Klauseln auswerten notfalls auch eine Kombination von Klauseln die sich auf unterschi
124. iben siehe Kapitel 2 7 Im interaktiven Betrieb spielen die meisten Laufzeitparameter nur eine untergeordnete Rolle 2 7 Die n chsten Schritte Nachdem sich der Anwender grunds tzlich mit crocodile vertraut gemacht hat kann er gezielt Pr fmodule ausw hlen um damit Routerkonfigurationen zu analysieren Er kann auch eigene Pr fregeln formulieren Das genaue Vorgehen beschreibt Kapitel 4 Neben der interaktiven Analyse einzelner Konfigurationsdateien erm glicht CROCODILE auch die berpr fung vieler Konfigurationen im Stapelverarbeitungs modus batch mode Dazu dient ein separates Frontend batchcroco Dieses Programm verf gt ebenfalls ber eine eingebaute Online Hilfe mit Kurzerkl rung aller Aufrufparameter Option h user host CROCODILE perl batchcroco h USAGE batchcroco lt options gt lt IOS config files or directories gt DESCRIPTION This is the batch processing frontend for CROCODILE It reads in a set of IOS router configuration files in text format and feeds them into CROCODILE for analysis The results of all evaluations are collected See crocodile h for more details OPTIONS d lt dir gt Store output in lt dir gt default current directory f lt fmt gt Generate output format lt fmt gt ASCII or HTML weitere Optionen folgen 1 2 Copyright Fraunhofer IESE 2003 Anwendung des Pr fwerkzeugs im Uberblick Eine genaue Beschreibung des Stapelverarbeitungs Fronte
125. ichem Textformat nach STDOUT protokolliert Mit Hilfe von Shell Funktionen kann der Anwender die Ausgabe bei Bedarf in eine Datei umleiten Die Wahl von Restriktionen Gew hnlich werden Whiteset Blackset oder Propagate Set relativ zur Gesamtheit aller m glichen IP Pakete also ip any any bestimmt F r welche Protokolle Urspr nge Ursprungs Ports Ziele und Ziel Ports besteht Durchl ssigkeit Eine genaue Antwort l t sich in der Regel nicht in wenigen Klauseln darstellen Schlimmstenfalls k nnen die resultierenden Mengen nur als eine lange Liste einzelner Spezialf lle charakterisiert werden F llt das Ergebnis zu umfangreich aus so ist es nur noch von begrenztem Nutzen zudem dauert die Berechnung unter Umst nden recht lange 1 gt Unter diesen Umst nden ist es meist sinnvoller die Durchl ssigkeit von ACLs bzw Schnitt stellen relativ zu einer eingeschr nkten Ausgangsmenge zu bestimmen zum Beispiel e Welche TCP Verbindungen die nicht schon aufgebaut not established sind k nnen passieren e Inwieweit ist der Zugriff von Host 6 7 8 9 auf privilegierte Ziel Ports in den Subnetzen 1 2 3 und 5 verwehrt e Inwieweit k nnen ICMP echo Pakete passieren Restriktionen dieser Art erm glichen es dem Anwender die Durchl ssigkeits analyse auf beliebig ma geschneiderte Ausgangsmengen einzuschr nken Dadurch sinkt in der Regel die ben tigte Rechenzeit und die Ergebnisdarstellung f llt verst n
126. ige Sekunden Um den Fortschritt der Berechnungen anzuzeigen erscheint in der Konsolenausgabe mitunter eine Zeilen oder Prozentangabe die mit dem Fortschritt der Auswertung hochgez hlt wird 2 5 Darstellung der Pr fergebnisse Die Ergebnisse eines Pr flaufs werden als Hypertext im HTML Format in verschie denen Ansichten aufbereitet und im Unterverzeichnis HTML_results unter der Einstiegsseite index html abgelegt Zur Darstellung gen gt ein herk mmlicher HTML Browser zum Beispiel Netscape Navigator Mozilla Internet Explorer oder Konqueror Abbildung 1 Das Werkzeug nutzt zur Strukturierung der Hypertext Dokumente zum einen HTML Frames zum anderen ein zentrales Cascading Style Sheet zu finden unter Copyright Fraunhofer IESE 2003 9 Anwendung des Priifwerkzeugs im Uberblick Abbildung 1 10 10S Router Configuration Checker Microsoft Internet Explorer olx Eile Edit View Favorites Tools Help on OLD 4 set Gros GE SM ER Cross Reference Table of Findings RATemulation RATemulation rule rule 3 105 Router Configuration Checker Microsoft Internet Explorer File Edit View Favorites Tools Help Module Description Severity Contexts Lines affected AAA AAA relies on a RADIUS server but none is configured ALERT ABA Connectivity undefined ACL referenced ALERT 31 Connectivity used but never defined ALERT ace 1
127. ige einer bestimmte Befundkategorie die man durch Anklicken des Diagramms in die Anzeige holen kann Differentielle Ergebnisdarstellung Wird eine Routerkonfiguration ge ndert so sollte sie danach einer erneuten Pr fung unterzogen werden Dabei interessiert den Anwender weniger die Summe aller Pr fbefunde sondern vor allem wie sich die Konfigurations nde rungen in nderungen des Pr fergebnisses niederschlagen Das Werkzeug bietet die M glichkeit einer vergleichenden Ergebnisdarstellung relativ zu einem fr heren Pr fbefund In dieser Ansicht werden nur solche Befunde farbig hervor Copyright Fraunhofer IESE 2003 3 7 Architektur und Funktionsprinzip Abbildung 7 38 gehoben die sich seit der letzten Pr fung ge ndert haben Alle brigen Befunde die in beiden Evaluationsl ufen gleich sind werden in neutralem schwarz darge stellt In diesem Aufbereitungsmodus stechen nderungen im Pr fergebnis sofort ins Auge 105 Router Configur Ele Edt View Favorites Tools Help 2 105 Router Configuration Checker osoft Internet Explorer Ele Edit View Favorites Tools Help Cross Reference Table of Findings Module Description Severity Contexts Lines affected AAA AAA relies on a RADIUS server but none is configured ALERT AAA Connectivity undefined ACL referenced ALERT 31 Connectivity used but never SET ALERT ACL 110 Passwords password is f4p01 identi
128. igene Konfigurationstests an einem IOS Router Ermitteln der relevanten Konfigurationsattribute Aus den Manual Beschreibungen ist ersichtlich da es f nf verschiedene Logging Methoden gibt Jede der Methoden hat einen fest umrissenen Satz von Konfigurationsattributen Eine Sichtung und Klassifikation ergibt folgendes Bild bez glich der relevanten Attribute pro Methode e Console Logging aktiviert deaktiviert Dringlichkeitsstufe Level e Monitor Logging aktiviert deaktiviert Dringlichkeitsstufe e Buffer Logging aktiviert deaktiviert Dringlichkeitsstufe Puffergr e e SYSLOG Logging aktiviert deaktiviert Dringlichkeitsstufe Meldungskennzeichnung Facility Copyright Fraunhofer IESE 2003 Erstellen eigener Pr fmodule Server Adresse n e SNMP Logging aktiviert deaktiviert Dringlichkeitsstufe History Puffergr e Zu jedem Attribut ist nun zu pr fen inwieweit durch IOS bereits Voreinstel lungen Defaults festgelegt sind Die Attribute k nnen dann zum Ausgangs punkt der Analyse mit entsprechenden Startwerten gegebenenfalls mit undefiniert initialisiert werden Festlegen der Pr fstrategie F r jeden Konfigurationsbefehl mu der Entwickler nun anhand der Manual Beschreibung ermitteln welche der oben genannten Attribute von dem Befehl beeinflu t werden Ist dieser Analyseschritt abgeschlossen so ist damit die Pr fmodul Logik in ihren Grundz
129. ilen weise und mit unterschiedlichen Einr cktiefen im Textformat auszugeben Copyright Fraunhofer IESE 2003 33 Architektur und Funktionsprinzip 34 Dumps werden ben tigt wenn ein Befund den Rahmen einer kurzen Anmerkung sprengt In der Ausgabe sind Hyperlinks auf Dumps m glich Verweise dienen dazu Querbeziehungen zwischen einzelnen Befunden und bei Bedarf auch zu externen Informationsquellen etwa zum IOS Masterindex von Cisco herzustellen In der Ausgabe werden solche Verweise in der Regel als Hyperlinks dargestellt denen der Anwender per Mausklick nachgehen kann Referenzierbar sind zum Beispiel Konfigurationszeilen Dumps oder externe Internet Seiten Lesezeichen Bookmarks repr sentieren keine eigenst ndigen Befunde Sie sind lediglich ein Strukturierungsmittel um Verweise zu logischen Gruppen zusam menzufassen ffnet man eine Bookmark Kategorie in der Ausgabe so erscheint eine Auswahl von Verweisen zu dieser Kategorie Der Anwender kann beliebige Bookmark Kategorien einf hren und einzelne Verweise beliebigen auch mehreren Kategorien zuordnen Siehe dazu auch Abbildung 6 auf Seite 36 All diese Befundarten k nnen mit unterschiedlichem Geltungsbereich in der Datenbank abgelegt werden e Befunde zu einzelnen Konfigurationsanweisungen e Befunde zu Klauselkontexten e Befunde zu logischen Kontexten Befunde zu Konfigurationsanweisungen beziehen sich auf eine einzelne Klausel der Router Konfigurati
130. ined self self class gt SUPER new Sself gt MACROS Smacroref self gt PATTERNS Spatternref Sself gt POSTPROCEDURE amp _final conclusion return self Handler Methoden F r jedes Pattern wenigstens ein Handler sub _line_handler my self match _ Nachverarbeitungs Methode zur Aufbereitung der Gesamtbewertung sub _final_conclusion my self Abbildung 4 Konstruktionsprinzip der Pr fmodule Copyright Fraunhofer IESE 2003 29 Architektur und Funktionsprinzip 30 Um das Werkzeug um spezifische Pr fschritte zu erweitern erstellt der Anwender ein neues Pr fmodul gem B Abbildung 4 Der Zuschnitt auf bestimmte Pr faufgaben erfordert folgende MaBnahmen e Inder Kopfzeile vergibt der Anwender einen Namen f r das neue Pr fmodul e Im Abschnitt Makro Definitionen kann er lokale Makros deklarieren um die Spezifikation der zu pr fenden Patterns zu vereinfachen e Im Abschnitt Pattern Definitionen legt der Anwender fest welche Textmuster analysiert werden sollen und welche Handler f r jedes Pattern zust ndig sind Ein Pattern kann auch mehrere Handler zugleich bedienen e Im Abschnitt Handler Methoden ist f r jeden deklarierten Pattern Handler die entsprechende Pr froutine zu schreiben Der angegebene Code wertet alle Textfragmente die dem Pattern entsprechen aus und bildet daraus eine Sicherheitsbewertung mehr dazu im Unterk
131. insbesondere auf g ngigen Unix oder Windows Systemen Installation und Deinstallation sollen problemlos m glich sein e Modularit t Das Werkzeug soll m glichst einfach zu erweitern sein auch durch den Anwender selbst In den nachfolgenden Kapiteln wird erl utert wie sich diese Anforderungen im Entwurf des Pr fwerkzeugs widerspiegeln 1 3 Sicherheitspr fkriterien Den Nutzen des Pr fwerkzeugs bestimmt vor allem die G te seiner Pr fkriterien Die vom Werkzeug verwendeten Pr fkriterien leiten sich aus ffentlich verf g baren Empfehlungen zur sicheren Konfiguration von Routern ab 2 Probleme w rden hingegen Netzwerkkomponenten bereiten die ausschlie lich ber eine graphische Benutzerschnittstelle konfigurierbar sind und deren Konfigurationseinstellungen sich nicht im Textformat exportieren lassen Einige Routerhersteller speichern Konfigurations attribute ausschlie lich in einem propriet ren Bin rformat Hier w re der CROCODILE Ansatz ungeeignet 2 Copyright Fraunhofer IESE 2003 Problemstellung und L sungsansatz Die wichtigsten uns bekannten Quellen f r solche Sicherheitsempfehlungen liefert der Hersteller Cisco Dazu z hlen verschiedene B nde der Cisco IOS Reference Library insbesondere IOS12 0a und IOS12 0b Au erdem h lt Cisco im Internet verschiedene Publikationen zum Download bereit zum Beispiel CiscoTech F r Netzbetreiber ist die Cisco Empfehlung Essential IOS Features Every ISP Shou
132. iste von Authentisierungsmethoden zugeordnet werden die der Reihe nach probiert werden um die Identit t des Nutzers zu pr fen Die Methoden k nnen wahlweise auf Line Pa w rter die lokale User Datenbank des Routers oder auf externe Authentisierungsserver vom Typ RADIUS TACACS oder Kerberos zur ckgreifen Als Fallback kann sogar eine Null Authentisierung eingetragen werden Das Modul pr ft ob die deklarierten Methodenlisten tats chlich auch verwendet werden und ob sie sicherheitstechnisch unbedenklich sind Soweit auf Line Pa w rter oder auf die User Datenbank zur ckgegriffen wird pr ft das Modul ob entsprechende Pa w rter bzw pa wortgesch tzte lokale Kennungen auch wirklich konfiguriert sind Soll ein externer Server verwendet werden so analy siert das Pr fmodul ob ein Server des entsprechenden Typs konfiguriert ist Sofern bestimmten Aktivit ten eine Authentisierungsmethodenliste zugeordnet ist mu diese auch definiert sein Das Pr fmodul stellt sicher da nicht verse hentlich eine leere oder undefinierte Methodenliste verwendet wird Autorisierung AAA erm glicht es bestimmte IOS Befehlsgruppen einer gesonderten Autori sierung zu unterstellen Autorisierung kann zum Beispiel f r Dial in Shell Zugriff Reverse Telnet oder auch f r ein sogenanntes Privilege Level festgelegt werden hnlich wie bei der Authentisierung werden Autorisierungsmethodenlisten Copyright Fraunhofer IESE 2003 Pr fmodule
133. it ip any any die gew nschten Teilmengen bernimmt oder aussondert wobei der verbleibende Rest weiter zergliedert bernommen oder verworfen werden kann Beispiel Abbildung 26 zeigt ein einfaches Beispiel f r eine Restriktion die sich mittels zweier Klauseln realisieren l t und die Teilmenge als Menge aller TCP Pakete die nicht zu einer bestehenden Verbindung geh ren charakterisiert Man erkennt da die Restriktionsklauseln in etwa das gleiche Format besitzen wie entsprechende Router Konfigurationsklauseln zur Erstellung von ACLs Aller dings wird bei der Utility blackwhite das permit weggelassen und statt eines deny wird das Schl sselwort ignore verwendet deny ist wahlweise auch zul ssig was die Spezifikation noch etwas intuitiver macht Abbildung 27 zeigt das Protokoll eines vollst ndigen Analyselaufs des Hilfswerkzeugs Copyright Fraunhofer IESE 2003 1 09 Hilfswerkzeuge Utilities Select an access control list ACL 1 ACL 102 ACL 105 ACL 106 Which one 2 Reading ACL rules AclRules acl_102 xml 5 rules read You may restrict the context for which Blacklist Whitelist analysis Restrictions accumulate and may have one of these forms ignore any IPADDR WILDCAR_DMASK ignore PROTO SUBNET PORTSPEC SUBNET PORTSPEC ICMPSPEC established Any context restrictions RETURN to quit ignore tcp any any established tcp any any No
134. its iese fraunhofer de Ein entsprechender Link Contact ist in die Hypertext Ausgabedokumente des Werkzeugs integriert Copyright Fraunhofer IESE 2003 Inhaltsverzeichnis Vorwort 1 Problemstellung und Losungsansatz 1 1 Netzsicherheit durch sichere Router Konfiguration 1 2 Werkzeugunterst tzung f r Router Sicherheitsrevisionen 13 Sicherheitspr fkriterien 1 4 Gliederung des Handbuchs 2 Anwendung des Pr fwerkzeugs im berblick 2 1 Systemvoraussetzungen 2 2 Installation und Deinstallation des Pr fwerkzeugs 2 3 Auswahl der Eingabedaten 2 4 Probelauf 2 5 Darstellung der Pr fergebnisse 2 6 Laufzeitoptionen und Help Funktion 2 7 Die n chsten Schritte 3 Architektur und Funktionsprinzip 3 1 bersicht 3 2 Parser Modul 3 3 Prufmodule 3 4 Befunddatenbank 3 5 Ausgabe des Analysebefunds Copyright Fraunhofer IESE 2003 3 6 3 7 4 1 4 2 4 3 4 4 4 5 4 6 4 7 4 8 4 9 5 1 5 2 5 3 5 4 5 5 5 6 5 7 6 1 6 2 6 3 6 4 Unterst tzungsmodule Verzeichnisstruktur Pr fmodule Auswahl von Pr fmodulen zur Ausf hrung Modul CompoundPatterns Modul IngressEgress Modul Connectivity Modul SNMP Modul NTP Modul AAA Modul Logging Modul Passwords Emulation des Router Audit Tools RAT Emulationsmodul RATemulation RAT Konformit t Konfiguration des Emulationsmoduls Kennzahlberechnung CIS Benchmark und CROCODILE Score Pr freports Regelbeschreibungen Bewe
135. k nnen beliebig viele Compound Definitionen eingetragen werden jede in einer neuen Zeile beginnend Diese werden vom Pr fmodul Compound Patterns nur im angegebenen Kontext ausgewertet au erhalb des Kontexts aber ignoriert Das lt begin pattern gt ist ein beliebiges elementares Pattern Es beschreibt die Er ffnungsklausel mit der unter IOS der gew nschte Klauselkontext eingeleitet wird Sobald das angegebene Textmuster in der Router Konfigurationsbe schreibung auftritt wird der Kontext aktiviert Bis auf weiteres wertet nun das Pr fmodul die innerhalb der geschweiften Klammern stehenden Compound Definitionen f r die vorliegende Kontextinstanz aus Es verarbeitet sie wie gew hnliche nicht kontextgebundene Compounds Beginnend bei der auf lt begin pattern gt folgenden Klausel wird die Router Konfigurationsbeschreibung Zeile f r Zeile analysiert Dies setzt sich so lange fort bis das lt end pattern gt in der Konfigurationsbe schreibung auftritt ebenfalls ein elementares Pattern Wird ein entsprechendes Textmuster erkannt so schlie t das Pr fmodul den zugeordneten Kontext und deaktiviert alle im Kontext definierten Compound Definitionen Danach ist der Kontext inaktiv bis in der Konfigurationsbeschreibung erneut ein Textmuster auftritt das dem lt begin pattern gt entspricht Aktivierung und Deaktivierung eines Kontexts k nnen sich beliebig oft wieder holen Die in geschweiften Klammern eingeschlossenen Compounds werd
136. k nnen vom Router nach Belieben akzeptiert oder zur ckgewiesen werden Bei einer Access Liste werden dagegen alle brig gebliebenen Nachrichten automatisch vom Router verworfen Soll mit einer Filterspezifikation exakt die Semantik einer Access Liste nachgebildet werden so sollte als letzte Klausel einfach deny any an die Spezifikation angef gt werden Das Verfahren liefert schlie lich zwei Mengen Das Whiteset enth lt konzep tionell alle denkbaren Nachrichten die aufgrund der Filterspezifikation zul ssig sein sollen das Blackset umfa t konzeptionell alle denkbaren Nachrichten die laut Filterspezifikation unzul ssig sein sollen Das Modul IngressEgress ist nun in der Lage f r jede einzelne dieser Nachrichten zu berpr fen ob diese aufgrund der Router Konfiguration im Betrieb tats chlich akzeptiert bzw verworfen wird Jede Abweichung wird genau protokolliert Abbildung 14 zeigt einen typischen Ausschnitt aus dem Ergebnis einer IngressEgress Pr fung In diesem Beispiel wird eine Whiteset sowie eine Blackset Vorgabe f r den Zugriff auf Line Interfaces der Form vty berpr ft und zwar in Eingaberichtung in Die Abbildung zeigt in der oberen H lfte die Vorgabe darunter das Pr fergebnis f r das Line Interface vty 0 das gem Router Konfiguration durch die Standard Access Liste Nr 2 gesch tzt ist Man erkennt da die Access Liste 2 bez glich des telnet Ports offenbar zu restriktiv bez glich g
137. ken die sich durch den Nachweis einfacher Text Patterns in der Konfigurationsbe schreibung des Routers entscheiden lassen Sicherheitsmerkmale die nur von bestimmten Kombinationen einzelner Konfigurationsanweisung ohne Bezug zur genauen Klauselauspr gung abh ngen sind damit berpr fbar Ein erheblicher Anteil aller Router Konfigurationsmerkmale z hlt zu dieser Kategorie Konfigurieren von Pr fvorgaben CompoundPatterns ist ein universell einsetzbares Pr fmodul ohne fest vorge gebene Pr fvorgaben Den konkreten Pr fauftrag erh lt das Modul ber die Modul Konfigurationsdatei CompoundPatterns conf vergleiche Verzeichnis struktur in Abbildung 10 Seite 43 Dieses Modul illustriert wie man sehr flexibel nutzbare Pr fmodule konstruieren kann indem man sie mittels einer Pr fmodul Konfigurationsdatei parametri sierbar macht Die genaue Syntax in der Pr fauftr ge spezifiziert werden bestimmt das Pr fmodul wobei es auf die verf gbaren Mechanismen des Werkzeug Rahmenwerks insbesondere Funktionen f r Pattern Matching zur ckgreifen kann Die Konfigurationsdatei CompoundPatterns conf kann drei Arten von Spezifi kationen enthalten e Makro Definitionen e Pattern Definitionen elementare oder zusammengesetzte Patterns e Kontext Definitionen Makros Makro Definitionen entsprechen in Funktion und Gestalt den Ublichen Makros wie sie auch innerhalb eines Pr fmoduls im Abschnitt Makros deklariert werden k n
138. konfiguriert werden Das Pr fmodul analy siert ob alle verwendeten Gruppen Namen auch definiert sind und ob alle Server einer Gruppe zuvor auch konfiguriert wurden Bei Verwendung eines TACACS Servers setzt AAA das TACACS Protokoll voraus ltere Protokollvarianten TACACS bzw Extended TACACS sind nicht mit AAA vertr glich Das Pr fmodul warnt wenn AAA in Kombination mit einem der veralteten Protokolltypen konfiguriert worden ist Bemerkungen Das Modul AAA ist derzeit eines der aufwendigsten Pr fmodule Dies h ngt zum einen damit zusammen da Authentisierung und Autorisierung ein komplexes Themengebiet ist Zum anderen hat es den Anschein da die AAA Mechanismen noch relativ unausgereift sind und daher einem st ndigen Wandel unterliegen Cisco hat 11 Dies zeigt sich schon daran da etwa 30 Pattern erforderlich waren um die f r AAA relevanten Konfigurationsklauseln zu erfassen Zur Analyse m ssen neben AAA Befehlen auch Interface Line User und Server Deklarationen analysiert werden Copyright Fraunhofer IESE 2003 7 7 Pr fmodule sowohl Syntax als auch Funktionsweise innerhalb weniger IOS Generationen mehrfach ge ndert Dabei haben sich offensichtliche Fehler und Widerspr che in die AAA Dokumentation eingeschlichen und auch die innere Logik der AAA Direktiven hat unter den zahlreichen Modifikationen erheblich gelitten Die Pr fung der AAA Funktionalitat ist zwangsl ufig unvollstandig
139. ld Consider IOSessentials der entscheidende Konfigurations maBstab Die Essentials werden h ufig aktualisiert und repr sentieren derzeit wohl am besten was in diesem Bereich als gute Praxis gilt Sehr detaillierte Informationen bietet auch der aktuelle Router Security Confi guration Guide der U S National Security Agency NSA NSAguide Er enth lt konkrete Konfigurationsanweisungen f r IOS Router Inhaltlich decken sich NSAguide und IOSessentials in weiten Teilen wobei der NSA Leitfaden die notwendigen Ma nahmen oft etwas anschaulicher und pr ziser beschreibt Bez glich einiger Konfigurationsempfehlungen sind die beiden Quellen aller dings widerspr chlich Dies ist darauf zur ckzuf hren da die Anforderungen von Netzbetreibern nur schwer mit den Bed rfnissen der Betreiber lokaler privater Netze vereinbar sind Sicherheitsanforderungen m ssen immer im Kontext des konkreten Anwendungsfalls gesehen werden Im folgenden verzichten wir darauf inhaltlich n her auf die verwendeten Pr fkri terien einzugehen In Kapitel 4 skizzieren wir die verf gbaren Pr fmodule und deren Pr fumfang in groben Z gen ohne die Bedeutung einzelner Pr fschritte im einzelnen zu erl utern Diesbez glich verweisen wir auf die vorstehend genannten Quellen 1 4 Gliederung des Handbuchs Das vorliegende Handbuch beschreibt Eigenschaften Architektur und Funktions weise des Pr fwerkzeugs Kapitel 2 zeigt im berblick wie das Pr fw
140. ldung 19 Pr fmodule e Alle Nachrichten deren Ursprungs IP Adresse mit 172 30 1 beginnt und deren Ziel IP Adresse entweder 172 30 128 2 oder 172 30 128 45 ist k nnen passieren solange das Nachrichtenprotokoll eine Protokollnummer ungleich 1 entweder 0 oder 2 255 hat Die Protokollnummer 1 bezeichnet das Protokoll ICMP e F r das zuvor ausgenommene ICMP Protokoll gilt ICMP Nachrichten sind von beliebigen Urspr ngen zu allen Zielen im Subnetz 172 30 128 zul ssig Die brigen Zeilen der beiden Positiv Listen Accepted Connections und Propagated Connections sind in analoger Weise zu deuten Lines Die Merkmale der Administrationszug nge des Routers sogenannte Line Interfaces werden in hnlichem Format wie die brigen Schnittstellen proto kolliert Abbildung 19 zeigt ein typisches Beispiel Subnets Das Pr fmodul ermittelt die Adre bereiche von Subnetzen die in der Router Konfigurationsbeschreibung ausdr cklich erw hnt werden sei es in Zusam menhang mit Interface Adressen bei der Festlegung statischer Routen oder als Urspr nge bzw Ziele von ACL Filterregeln Da ein Sicherheitsrevisor in der Regel die Adressen der wichtigsten umgebenden Subnetze kennt ist die systematische Line console 0 Defined at Line 198 Referenced at Enable state enabled AccessGrp IN 1 Accepted connections itp 151 200 19 52 ip 164 47 133 2 Fete eek Tp QU BLA SID OS OF 7 Propagat
141. ls der Tastenkombination Control C abzubrechen Der Job wird dann ohne Befund beendet und in der Zusammenfassung als interrupted gekennzeichnet Das Werkzeug fragt daraufhin ab ob mit dem n chsten Job fortgefahren werden soll Sofern der Anwender diese Frage nicht ausdr cklich mit n verneint wird der Batch Proze mit dem n chsten noch ausstehenden Job fortgesetzt Die Unterbrechung mit Control C bietet die M glichkeit einzelne Jobs zu berspringen ohne da dadurch die bereits vorliegenden Pr fergebnisse verloren gehen Die Anzahl der unterbrochenen Jobs wird in der AbschluB meldung auf der Konsole ausgewiesen Achtung Dieses Leistungsmerkmal funktioniert derzeit leider nicht unter allen Betriebssystemen Wird CROCODILE unter Microsoft Windows in einer Shell gestartet so leitet Windows die Unterbrechungssignale bei mehrfachen Unter brechungen nicht ordnungsgem an die Signalverarbeitung des Perl Laufzeit systems weiter Das kontrollierte Abfangen der zweiten und folgender Control C Unterbrechungen entzieht sich daher unter Windows dem Einflu von CROCODILE 6 2 Konfigurierbare Ausf hrungsparameter Options Grunds tzlich kann der Anwender batchcroco ohne die Angabe besonderer Aufrufoptionen verwenden Das Programm arbeitet mit Voreinstellungen die in der Regel automatisch f r brauchbare Ergebnisse sorgen Diese Voreinstellungen k nnen wahlweise aber auch ge ndert werden indem man die gew nschten Para
142. ltime show tinezone Evaluation Profile Evaluation Report li LE Ei 7 service timestamps log datetime localtime shov timezone Authentication amp Authorization 8 service password encryption CompoundPatterns a I E CEE gress 10 hostname saaple router Lines and Interfaces 11 FT TE 12 legging buffered 16384 critical 13 aaa new model 14 aaa authentication login LOGIN tacacs local 15 aaa authentication enable default tacacs enable 16 enable secret level 15 5 1 iNeB tr JFRAI7ckzPIX8v9g8c1 17 enable secret level 10 5 1 abcd DRkuvJyT57dhGjTHXF749 Nodes and Subnets RAT Emulation User Manual Contact Evaluation Target Differential Evaluation Profile Evaluation in Differential Mode Module Findings OKAY CHECK WARN ALERT Evaluated 2003 09 26 15 47 04 Passwords 3 RATemulation 5s B Source acsac v2 txt SNMP 4 3 l Last Modified 2003 08 26 15 46 27 AAA 0 105 Version 12 0 I z a Router Name sample router nos se gress Reference Source acsac v1 txt NIE a as of 2003 09 26 15 45 57 CompoundPatterns 1 fa Logging 1 1 a E Total 15 6 0 3 1 5 157 findings remained unchanged Some findings vanished ALERT 4 WARN 2 CHECK ai Standarddarstellung des Pr fergebnisses oben und vergleichende Darstellung relativ zu einem fr heren Referenzergebnis unten Copyright Fraunhofer IESE 2003 113 Hilfswerkzeuge Utilities Die Datenbasis des Pr fwerkzeugs
143. m Textformat ein und durchsucht diese nach potentiellen Konfigurations m ngeln Die Analyse basiert auf Pr fkriterien die teils fest vorgegeben teils frei konfigurierbar sind Der Pr fbefund wird als Hypertext Dokument ausgegeben Copyright Fraunhofer IESE 2003 1 Problemstellung und L sungsansatz Das Pr fwerkzeug ist derzeit f r Router des Herstellers Cisco Systems ausgelegt die unter dem Betriebssystem IOS betrieben werden Diese Routerklasse ist derzeit marktbeherrschend Zwar beziehen sich alle Pr fkriterien auf IOS Router konfigurationen Jedoch ist das Pr fwerkzeug als modulares IOS unabh ngiges Framework konzipiert Grunds tzlich ist es daher m glich durch Austausch der Pr fmodule auch andere Ger tetypen zum Beispiel Cisco PIX Firewalls in gleicher Weise zu berpr fen Die Voraussetzung f r den Einsatz des CROCODILE Frameworks besteht lediglich darin da die Konfigurationsbeschreibung im Textformat als Folge einzelner Konfigurationsklauseln vorliegt Bei der Konzeption der Werkzeugunterst tzung standen folgende Anforde rungen im Vordergrund e Automatisierung Das Werkzeug soll einfach anzuwenden sein und den manuellen Spezifika tions und Pr faufwand minimieren e Konfigurierbarkeit Das Werkzeug soll m glichst einfach an wechselnde Sicherheitsanforde rungen und Pr fgegenst nde anpa bar sein e Portabilit t Das Werkzeug soll auf unterschiedlichsten Plattformen ablauff hig sein
144. mentieren der Pr flogik Aufgrund der Recherche ist ungef hr klar geworden welche Pr fschritte erfor derlich sind und wie die Vorgehensweise dabei ist Nun gilt es die Pr fstrategie in PERL Code umzusetzen Pr fmodulger st Ausgangspunkt jeder Neuentwicklung ist ein Codeger st das der Entwickler durch Cut and Paste aus einem vorhandenen Modul leicht erzeugen kann Abbildung 29 zeigt eine passende Vorlage Das abgebildete Codefragment ist im Prinzip ein vollwertiges Pr fmodul es ist unter CROCODILE lauff hig sobald in der ersten Zeile der Package Name einge tragen wird Alle wesentlichen Moduleigenschaften die f r die Kompatibilit t mit dem Werkzeug erforderlich sind erbt das Modul von der Basisklasse Plugin Module Allerdings sind noch keine Patterns eingetragen Die generische Handler Routine k me daher nicht zur Ausf hrung lediglich die leere Nachverarbeitungsroutine summary wird am Ende des Analyselaufs vom CROCODILE Framework aktiviert Der Entwickler mu nun das Codeger st schrittweise gem der in Kapitel 8 2 skizzierten Pr fstrategie mit Pr flogik f llen Repr sentation des Router Konfigurationszustands F r die in Kapitel 8 2 ermittelten Konfigurationsattribute wird jeweils eine lokale Zustandsvariable eingef hrt Diese wird mit dem vorgesehenen Default Wert initialisiert zum Beispiel Console terminal logging my S Sconsole_log 1 Logging to console my Sconsole_level
145. meterwerte in der Datei Configuration batch conf eintr gt Parameter die in der Konfigurationsdatei nicht ausdr cklich gesetzt werden sind automatisch mit Vorgabewerten belegt In Tabelle 3 sind alle konfi gurierbaren Optionen und deren Voreinstellungen aufgelistet Alle Einstellungen die mittels batch conf m glich sind kann der Benutzer auch durch Kommandozeilen Optionen f r einen einzelnen Aufruf individuell einstellen Jede Kommandozeilen Angabe berschreibt dabei die entsprechende Vorgabe in batch conf Tabelle 3 zeigt die Entsprechungen von Konfigurations parametern und Kommandozeilen Optionen Als zus tzliche Kommandozeilen Option unterst tzt batchcroco den Aufruf der Online Hilfe mit h Diese Option ist aus naheliegenden Gr nden nicht vorkon figurierbar Copyright Fraunhofer IESE 2003 1 0 1 Stapelverarbeitung Batch Processing Tabelle 3 102 lierung auf der Konsole 0 off 1 oder 2 on Option in Kommando Bedeutung Default batch conf zeile ResultDir d Verzeichnisname in dem alle Current Working Ergebnisdateien abgelegt Directory werden OutputFormat f Formats der Ergebnisdateien ASCII HTML oder ASCII FieldSeparator fs Trennsymbol f r Felder in Ausga TABULATOR bedateien im ASCIl Format s SEMICOLON t TABULATOR oder lt zeichenkette gt IncludeSubdirs i Beziehe rekursiv alle Unterver off zeichnisse eines Eingab
146. mu Copyright Fraunhofer IESE 2003 73 Pr fmodule 74 Auch das direkte AnschlieBen einer Uhr an den Router wird ber cksichtigt Zudem wird falls die Authentisierungsmethode mittels SchlUsseln gewahlt wurde eine Liste der m glichen und der vertrauensw rdigen Schl ssel angezeigt Letztere m ssen falls diese Authentisierungsmethode aktiviert wurde einem NTP Server mitgeteilt werden damit der Router die ankom menden Nachrichten auch akzeptiert und seine eigene Uhr entsprechend umstellt Somit ist vom Netzwerkadministrator nachtr glich die Aufz hlung aller Peers bzw aller Server zu nehmen und auf den entsprechenden Maschinen die Schl sselkonfiguration zu berpr fen Hierbei sind die Listen der lokal dekla rierten und genutzten Authentisierungsschl ssel sehr hilfreich Der Router als NTP Server Ein Cisco Router antwortet grunds tzlich auf NTP Anfragen anderer Hosts mit seiner Software Uhrzeit Wurde der Router allerdings vorher nicht durch eine andere Zeitquelle synchronisiert so besitzt die NTP Nachricht das Stratum 0 In einem IP Paket gilt dies als Zeichen da die Zeit unsynchronisiert ist Ein Client wird diese Mitteilung ignorieren Ist der Router allerdings durch NTP synchroni siert worden oder wurde er mittels des Befehles ntp master dazu erkl rt so fungiert er auf allen Interfaces als NTP Server sofern die Schnittstelle nicht explizit davon ausgenommen wurde Als versendete Zeit dient hier die Software Uhr
147. n Mindeststandards hinsichtlich Pa wortl nge und zeichenzusammen setzung eingehalten e Werden unverschl sselte oder nur leicht verschl sselte Nr 7 Pa w rter konfiguriert wo statt dessen auch starke Verschl sselung m glich w re e Werden unverschl sselte oder nur leicht verschl sselte Nr 7 Pa w rter gleichzeitig auch als stark verschl sselte Nr 5 Pa w rter verwendet was die starke Verschl sselung kompromittieren w rde e Werden Pa w rter oder Secrets parallel zu anderen AAA Authentisierungs mechanismen verwendet vgl Kapitel 4 7 e Ist der Pa wort Verschl sselungsdienst service password encryption des Routers aktiviert um Pa wortangaben im Konfigurationstext und in IOS show Kommandos zu verschleiern e F r welche der enable Ebenen 0 bis 15 sind Pa w rter konfiguriert Copyright Fraunhofer IESE 2003 8 1 Pr fmodule 82 Alle Befunde werden unter dem Bookmark Authentication amp Authorization Unterpunkt Passwords and Secrets zusammengefa t PaBwortentschl sselung PaBworter die mit dem Verfahren Nr 7 verschl sselt wurden lassen sich mit einem sehr einfachen Verfahren entschl sseln Das Prufmodul nutzt dies f r Wiederverwendungspr fungen CROCODILE gibt normalerweise das Entschl sse lungsergebnis zu jedem 7er PaBwort als INFO Meldung aus um so auf die Problematik solcher PaBworter hinzuweisen Um bei seinen Analysen die Verschleierung von Pa w rt
148. n l st CROCODILE das Problem auf Copyright Fraunhofer IESE 2003 Architektur und Funktionsprinzip andere Weise Der CROCODILE Parser pr ft alle m glichen Interpretationen eines Patterns wenn bei einer Klausel zwei unterschiedliche Interpretationen eines Patterns anwendbar sind so meldet CROCODILE die Mehrdeutigkeit Im Beispiel oben erscheint daher folgende Meldung Ambiguous pattern caused two conflicting pattern interpretations Pattern enable secret level NUM STRING Text enable secret level 15 5 1SiNeBStr JFRdI7ckzIX8v9g8c1 Matchl EER 0 enable EER 1 secret EER 3 level 15 5 1 iNeB tr JFRAI7ckzIX8v9g8c1 Match2 ERK 0 enable REN 1 secret ER 2 level 15 RER 2 0 level k k De 115 XX X 3 5 1 iNeB tr JFRAITCKZIX8vVI9g8c1 Conflicting attribute 3 AK interpretation 1 is level 15 5 1SiNeBStr JFRdI7ckzIX8v9g8c1 eK interpretation 2 is 5 1 iNeB tr JFRAI7ckZIX8vI9g8c1 Die Meldung besagt da der Pattern Komponente Nummer 3 also STRING nach der kanonischen Z hlung bei Anwendung auf den angegebenen Text enable secret level 15 5 1 iNeB tr JFRdI7ckzIX8v9g8c1 zwei m gliche Matches zugeordnet werden k nnen Die beiden alternativen Deutungen werden ausgewiesen Damit der Pr flauf fehlerfrei durchlaufen kann mu der Anwender das beanstandete Pattern so verfeinern da es eine eindeutige Interpretation hat
149. n um das Pr fergebnis genau zu beschreiben Statt dessen wird nur das Fehlen Vorhandensein gewisser Textmuster gemeldet und gegebenenfalls beanstandet Der Meldungswortlaut ist standardisiert und daher f r Anwender ohne tiefe Router Kenntnisse mitunter schwer verst ndlich Ein verbleibender Mangel der Compound Spezifikationen ist das Fehlen von M glichkeiten Instanzennamen und Pattern Bestandteile beim Auftreten an Variablen zu binden um im weiteren Verlauf des Compounds darauf Bezug zu nehmen Mit einem solchen Mechanismus w re es zum Beispiel m glich Regeln folgenden Typs zu formulieren Wenn ein Line Interface durch eine Access Control Liste gesch tzt wird so mu diese ACL an anderer Stelle auch definiert werden line VTY oa if access class ACL_NUMBER Global access list ACL NUMBER line Obwohl eine entsprechende Erweiterung des Compound Mechanismus zun chst naheliegend erscheint so hat sie doch erhebliche Folgewirkungen auf den Compound Kalk l die uns bisher vor einer Realisierung zur ckschrecken lassen Eine Konsequenz ist etwa da man bei Variablenbindung das Auftreten mehrerer Instanzen ber cksichtigen mu Die Bindung ist daher potentiell mehrdeutig was schlie lich dazu f hrt da man Quantoren Existenz Quantor und All Quantor einf hren mu um sinnvolle Compound Interpretationen zu erhalten Dies ist nicht nur technisch sehr aufwendig und in der Notation unhandlich es ist dem
150. n Jobs mit geeigneten Aufrufparametern letztlich an crocodile zur Ausf hrung bergibt Ein einzelner Batch Job kann Warn oder Fehlermeldungen hervorrufen Solche besonderen Vorkommnisse werden in der zusammenfassenden Darstellung vermerkt und in der Logdatei batchprocess log erfa t siehe etwa ise pix txt in Abbildung 24 Hier sind 6 Probleme aufgetreten Die Abschlu meldung des Stapelverarbeitungslaufs nennt die Zahl der aufgetretenen Probleme und Fehler Ein Fehler kann so schwerwiegend sein da eine Fortsetzung des Jobs nicht mehr sinnvoll m glich ist In diesem Falle wird der betroffene Job kontrolliert abgebrochen und in der Zusammenfassung wird der Job als aborted gekenn zeichnet Ein Befund wird f r diesen Job nicht ausgewiesen Der Stapelverarbei Copyright Fraunhofer IESE 2003 99 Stapelverarbeitung Batch Processing Abbildung 24 100 105 Router Configuration Checker Microsoft Internet Explorer LOL Ele Edt Wew Favorites Tools Help Ea Batch Job Summary Evaluation Date 2003 09 25 14 16 08 Quick Evaluation Mode Level 3 Configurations Checked 20 Filename Findings OKAY ict4 txt 170 emi txt 173 ibmt txt 165 ibmt2 txt ibmt4 txt ibmt5 txt acsac txt ict3 txt ictS txt ibmt3 txt ict txt Problems Errors an FN FS FA EE EEE N a an e e a en a lle a i 4 iS N A a8 NES Cc dtag1 txt Evaluation Profile sft txt Annotated Configura
151. n verschiedene Unterverzeichnisse unter gliedert Die Strukturierung orientiert sich an den PERL Namenskonventionen In PERL werden Modul Namenshierarchien 1 1 in entsprechende Verzeichnishierar chien abgebildet Abbildung 10 zeigt die resultierende Verzeichnisstruktur 42 Copyright Fraunhofer IESE 2003 Architektur und Funktionsprinzip CROCODILE Parsing Parser Module Parser pm Patterninterpreter pm Macros pm Plugin Pr fmodule I AAA pm CompoundPatterns pm m Connectivity pm Configuration Pr fmodul Konfigurationen t plugin conf Auxiliary Unterst tzungsmodule t Accesslist pm I Portlist pm Output Ausgabemodule und HTML_output conf Ausgabekonfiguration HTML_control pm HTML_display pm Utils Utilities make_html pl linkfilter pl HTML_results HTML Ergebnisseiten index html XML_data XML Ergebnisdaten results xml Doc Dokumentation manual pdf crocodile Hauptprogramme batchcroco Abbildung 10 Verzeichnisstruktur der Werkzeug Software Copyright Fraunhofer IESE 2003 43 Architektur und Funktionsprinzip 44 Copyright Fraunhofer IESE 2003 4 Pr fmodule Zum Standardumfang des Pr fwerkzeugs geh ren mehrere Pr fmodule Sie realisieren bereits wesentliche Pr fschritte f r IOS Konfigurationen Zus tzliche Module k nnen leicht erg nzt werden um den Pr fumfang des Werkzeugs flexibel zu erweite
152. nd so mu er darauf achten da im Konfigurationstext alle Schl sselw rter ausgeschrieben sind denn CROCODILE ignoriert von wenigen Ausnahmen abgesehen Kurzformen Au erdem mu der Anwender sicherstellen da die untersuchte Konfigurations beschreibung mit der in Betrieb befindlichen Konfiguration bereinstimmt Wir empfehlen daher auf alle F lle noch einmal die running config des fertig konfigurierten Routers auszulesen und zur Sicherheit noch einmal einem Analyselauf zu unterziehen 2 4 Probelauf Im Werkzeugverzeichnis findet sich das Hauptprogramm crocodile sowie verschiedene Unterverzeichnisse gem Abbildung 10 Seite 43 Im Unterver zeichnis SampleConfigs sind zu Demonstrationszwecken Beispielkonfigura tionen hinterlegt Eine Analyse einer Konfigurationsbeschreibung erh lt man indem man den Inhalt der Konfigurationsdatei zum Beispiel wie folgt in das PERL Programm einspeist user host CROCODILE perl crocodile SampleConfigs acsac cfg Der Aufruf leitet die Datei acsac cfg als Eingabe zum PERL Programm crocodile Status und Fehlermeldungen werden auf der Konsole protokolliert 3 Au erdem ist zu pr fen mit welcher Konfiguration der Router nach einem Reboot hochf hrt Handelt es sich dabei tats chlcih um die aktuelle running config 4 Der Aufruf perl crocodile lt Eingabedatei gt ist die kanonische Form die plattformunabhangig stets funktionieren sollte Je nach verwendetem
153. nds findet sich in Kapitel 6 Alle Kommandozeilen Optionen lassen sich auch mittels der Konfigu rationsdatei Configuration batch conf vorbelegen die Konfigurationsdatei enth lt genauere Erl uterungen zu Bedeutung und Format der einzelnen Konfi gurationsparameter Copyright Fraunhofer IESE 2003 1 3 Anwendung des Priifwerkzeugs im Uberblick 14 Copyright Fraunhofer IESE 2003 3 Architektur und Funktionsprinzip Das folgende Kapitel beschreibt Aufbau und Wirkungsweise des Pr fwerkzeugs Der Entwurf ist auf gr tm gliche Flexibilit t ausgelegt um das Werkzeug mit wenig Aufwand auf neue oder ge nderte Pr fanforderungen umr sten zu k nnen 3 1 bersicht Werkzeugkomponenten Das Werkzeug gliedert sich grob in drei Komponententypen ein Mustererken nungsmodul Parser eine beliebige Anzahl von Pr fmodulen sowie ein Darstel lungsmodul zur Ergebnisaufbereitung Jedes Pr fmodul realisiert eine in sich abgeschlossene Pr faufgabe mit allen logischen Pr f und Interpretations schritten die erforderlich sind um zu einem Pr fbefund zu gelangen Der Parser bildet das Bindeglied zwischen den Pr fmodulen und den Eingabedaten Die Darstellungskomponente sorgt f r eine bersichtliche graphische Pr sentation des Untersuchungsbefunds Arbeitsweise Das Pr fwerkzeug arbeitet nach folgendem Schema Der Parser liest eine g ltige Cisco Konfigurationsdatei im Textformat ein Er vergleicht Textzeile f r Textzeile mit ein
154. nen vgl Abbildung 4 Seite 29 Sie erm glichen es komplexe Pattern Bestandteile zur besseren Lesbarkeit der Patterns mit einem symboli schen Namen zu versehen Der Makroname kann sp ter als Atom zur Konstruktion umfassenderer Pattern Spezifikationen genutzt werden Das genaue Format einer Makrodefinition ist lt MAKRO NAME gt lt basic pattern gt Copyright Fraunhofer IESE 2003 Pr fmodule wobei der Makroname aus dem Zeichenvorrat GroBbuchstaben Unterstrich und Bindestrich zu bilden ist Zwei Beispiele sind etwa PROPER_VERSION BAD_VERSION 12 0 2 NUM TE PROPER_VERSION NUM NUM Die Definitionen besagen da jede Versionsnummer die mit 12 0 beginnt und gegebenenfalls von weiteren durch abgetrennten Versionsziffern gefolgt wird eine PROPER_VERSION im Sinne der Definition ist Als BAD_VERSION wird jede Zeichenfolge angesehen die sich aus Nummern getrennt durch zusammensetzt jedoch nicht mit einer PROPER_VERSION beginnt Demnach ware zum Beispiel 12 0 3 34 eine PROPER_VERSION 12 3 hingegen eine BAD_VERSION Ein Beispiel f r die Verwendung der oben definierten Makros findet sich im folgenden Abschnitt Man beachte da in einer Makro Definition nur ein elementares Pattern verwendet werden darf Die Verwendung zusammengesetzter Patterns d h die Verkn pfung elementarer Patterns mittels AND OR NOT XOR usw siehe unten ist innerhalb von Makr
155. ntergeladen und installiert haben In diesem Falle ergeben sich die erforderlichen Angaben ganz nat rlich aus der Struktur des RAT Stammver zeichnisses Der Anwender kann die geforderten Daten aber auch unter v llig anderen Pfadnamen hinterlegen etwa im CROCODILE Konfigurationsverzeichnis Folgende Parameter sind zu setzen e RATLIB lt Pfad zum lib Verzeichnis einer RATv2 0 Distribution gt Diese Angabe ist zwingend erforderlich falls Callout Regeln verwendet werden sollen denn einige Callouts verwenden Datendeklarationen der RAT Standarddistribution fehlt die Angabe oder ist ein Zugriff nicht m glich so werden Callout Regeln sp ter im Pr flauf mit Warnhinweis ausgelassen konventionelle RAT Pr fregeln sollten hingegen trotzdem noch funktionieren e CONTEXTS lt Pfad zur Datei mit den IOS Kontextbeschreibungen gt In der RAT Standarddistribution finden sich die Kontext Spezifikationen f r IOS gew hnlich im Unterverzeichnis etc configs cisco ios in der Datei contexts txt Hier wird festgelegt welche Analysekontexte RAT unter scheiden kann und wie diese benannt werden e FIELDS lt Pfad zur Datei mit den Feldformatbeschreibungen gt In der RAT Standarddistribution finden sich die Feldformatbeschreibungen Copyright Fraunhofer IESE 2003 Should the RATemulation module be started at all Where is the RAT library required for Callout execution Where is the specification of IOS contexts Where
156. ntlich aufwen diger sein Ma gebliche Einflu faktoren f r den Entwicklungsaufwand sind vor allem e Wie viele Konfigurationsbefehle umfa t der Pr fbereich Wie umfangreich k nnen diese Befehle parametrisiert werden e Wie unabh ngig sind die relevanten Konfigurationsbefehle von einander Inwieweit sind Wechselwirkungen zu beachten z B eine vorgeschriebene Reihenfolge von Konfigurationsschritten e Wie eindeutig und vollst ndig ist die von Cisco bereitgestellte Dokumen tation Bzw Wie gut ist der Entwickler mit dem Pr fbereich vertraut Copyright Fraunhofer IESE 2003 1 2 7 Erstellen eigener Pr fmodule Gerade der letztgenannte Punkt ist haufig der entscheidende Kostentreiber f r die Bereitstellung eines neuen Pr fmoduls denn die Cisco Dokumentation l t allzu oft wichtige Fragen unbeantwortet Zuweilen f hren die Unterlagen sogar regelrecht in die Irre Es bedarf dann umfangreicher Routertests um sich Klarheit ber die tats chliche Wirkungsweise einzelner Konfigurationsbefehle zu verschaffen Sofern der Entwickler den Pr fbereich genau versteht sollte er mit ein wenig Routine nach der hier dargestellten Vorgehensweise sehr z gig und systema tisch ein passendes Pr fmodul bereitstellen k nnen 1 28 Copyright Fraunhofer IESE 2003 9 Status und Ausblick 9 1 Status der Werkzeugunterst tzung Das CROCODILE Framework hat sich in bisherigen Anwendungen recht gut bew hrt obwohl es l ng
157. nzen des RAT Formats In seiner flexiblem Konfigurierbarkeit gleicht das Emulationsmodul dem Modul CompoundPatterns vgl Kapitel 4 1 und tats chlich entspricht die M chtigkeit der spezifizierbaren Pr fregeln ziemlich genau dem Ausdrucksverm gen der sogenannten elementaren Patterns jenes Moduls Compound Patterns sind jedoch noch m chtiger vgl Tabelle 2 auf Seite 51 Im Kern besteht jede RAT Regel aus einem Pattern das eine IOS Klausel beschreibt Ein Pattern ist entweder als required oder als forbidden gekennzeichnet und ein Pr fschritt scheitert wenn ein als required deklariertes Pattern fehlt oder ein als Copyright Fraunhofer IESE 2003 8 5 Emulation des Router Audit Tools RAT 86 forbidden gekennzeichnetes Pattern in der Routerkonfiguration nachgewiesen wird Somit handelt es sich wie bei elementaren Patterns um Pr fregeln zu einzelnen Konfigurationszeilen Pr fregeln f r die Bewertung des Zusammen spiels mehrerer unzusammenh ngender IOS Klauseln sind im RAT Regelformat nicht darstellbar 1 hnlich wie bei CompoundPatterns k nnen RAT Pr fregeln auf spezifische Konfigurationskontexte eingeschr nkt werden vgl dazu Kapitel 4 1 Abschnitt Kontexte auf Seite 50 zum Beispiel auf den Interface oder Line Konfigurationsmodus Diesbez glich bietet RAT gegen ber CompoundPatterns nichts neues Im Unterschied zu CompoundPatterns sind die Pr fregeln f r RATemulation jedoch mit
158. ob beide Beschreibungen logisch quivalent sind NETMASK 0 0 0 255 OCALNETA 147 56 103 0 NETMASK OCALNETB 147 56 104 0 NETMASK OCALNETC 147 56 105 0 NETMASK OUTBOUND Serial 0 1 interface OUTBOUND out deny ip any 10 0 0 0 0 255 255 255 deny ip any 127 0 0 0 0 255 255 255 deny ip any 172 16 0 0 0 15 255 255 deny ip any 192 168 0 0 0 0 255 255 permit ip LOCALNETA any permit ip LOCALNETB any permit ip LOCALNETC any Fr F Abbildung 16 Beispiele f r die Verwendung von Makros in IngressEgress conf Copyright Fraunhofer IESE 2003 63 Pr fmodule Auch aus technischer Sicht ist dieses Pr fmodul bemerkenswert Es greift bei der Auswertung seiner Konfigurationsdatei IngressEgress conf auf die bereits vorhandene Funktionalit t von Parser und Patternmatcher zur ck Dies erm g licht es einerseits Spezifikationsklauseln unterschiedlichster Auspr gung sicher zu erkennen zum anderen k nnen Tippfehler in der Spezifikation nahezu zeichengenau lokalisiert und pr zise beanstandet werden Der R ckgriff auf gew hnliche BNF Pattern bei der Festlegung des Spezifikationsformats bietet bei Bedarf auch die M glichkeit das Syntaxformat einzelner Klauseln mit wenig Aufwand bedarfsgerecht zu modifizieren oder zu erweitern 4 4 Modul Connetctivity 64 Das Pr fmodul Connectivity dient dazu die Verbindungstopologie des Routers und der ihn umge
159. ocess log e eine Tabelle mit den Einzelergebnissen aller Jobs summary lt format gt e einen Pr fbericht pro Eingabedatei lt file name gt lt format gt e gegebenenfalls eine Liste aller Befunde aller Jobs in maschinenlesbarem Textformat allfindings txt Die Dateiendung richtet sich bei der Gesamttabelle und den Pr fberichten nach dem gew nschten Ausgabeformat entweder ASCII Text Endung txt oder HTML Endung html Die Datei allfindings txt wird falls gew nscht nur im Textformat erzeugt eine HTML Version ist nicht vorgesehen Abbildung 24 zeigt zwei typische Beispiele solcher Ergebnisdateien Die Eintr ge in summary html oben rechts sind als Hyperlinks ausgelegt Durch Anklicken einer Tabellenzeile l t sich sofort der zugeh rige Pr fbericht mit den detail lierten Befunden ffnen in Abbildung 24 unten links im Hintergrund dargestellt Der im Batch Modus generierte HTML Pr fbericht ist identisch mit dem Evaluation Report den crocodile im interaktiven Modus erzeugt Dar ber hinaus erzeugt crocodile jedoch weitere Sichten und Zusatzinformationen die im Stapelverarbeitungsbetrieb mit batchcroco nicht generiert werden Pr fergebnisse im ASCII Format werden nur im Stapelverarbeitungsmodus erzeugt Im interaktiven Modus ist ausschlie lich HTML bzw XML verf gbar Fehlschlag oder Abbruch einzelner Batch Jobs Das Programm batchcroco ist lediglich ein Frontend das die einzelne
160. ofer IESE 2003 6 Stapelverarbeitung Batch Processing CROCODILE ist in seinen Urspr ngen ein interaktives Werkzeug um eine einzelne IOS Konfiguration einer genauen Pr fung zu unterziehen Betreiber gr erer Netzwerke die viele IOS Router zu berwachen haben m ssen mitunter jedoch fl chendeckende Reihenuntersuchungen durchf hren Dies erfordert den Stapel verarbeitungsbetrieb im unbetreuten OFFLINE Modus CROCODILE unterst tzt Batch Processing durch ein separates Frontend Programm patchcroco Im folgenden wird der Stapelverarbeitungsmodus des Werkzeugs dargestellt und erl utert 6 1 Verwendung von CROCODILE im Stapelverarbeitungsmodus Der Stapelverarbeitungsmodus dient dazu mehrere IOS Konfigurationsdateien in Serie zu analysieren pro Datei einen Pr fbericht zu erstellen und die Pr fbe funde f r alle Konfigurationsdateien tabellarisch aufzubereiten Die Stapelverarbeitung bernimmt das Programm batchcroco im CROCODILE Hauptverzeichnis Das Programm wird mit den Namen der zu untersuchenden Dateien als Aufrufparameter gestartet Die Namensliste darf auch Verzeichnis namen enthalten In diesem Falle werden alle Dateien im angegebenen Verzeichnis der Stapelverarbeitung unterworfen Auf Wunsch werden dabei auch alle Unterverzeichnisse rekursiv durchsucht und in die Verarbeitung mit einbezogen Achtung Je nach Betriebssystem d rfen Dateinamen auch Leerzeichen enthalten Damit Datei Listen als Kommandozeilen Paramet
161. onsbeschreibung Ein Pr fmodul kann einer Zeilen nummer Anmerkungen Verweise oder Verbesserungsvorschl ge in beliebiger Zahl zuordnen Durch Anklicken der Konfigurationszeile kann der Anwender alle zugeordneten Befunde anzeigen lassen Befunde zu Klauselkontexten beziehen sich auf die sogenannten Configuration Modes des Router Betriebssystems IOS Configuration Modes bilden einen Kontext in dem ganz bestimmte Routereinstellungen vorgenommen werden k nnen Beispiele sind etwa der Interface Mode oder der Line Mode Viele Konfigurationsanweisungen sind nur in ganz bestimmten Kontexten erlaubt und ein Konfigurationsfehler in einem Kontext hat Auswirkungen auf alle Einstel lungen im gleichen Kontext Pr fmodule haben die M glichkeit alle Zeilen eines solchen Kontexts zu einen Klauselkontext zusammenzufassen und ihnen 7 Noch passender w re stattdessen die Bezeichnung Zeilenkontext doch leider w rde dies zu in der englischen bersetzung zu Verwechslungsgefahr mit der von IOS bereits vergebenen Bezeichnung Line f r eine serielle Schnittstelle f hren weshalb wir uns f r Klausel entschieden haben Copyright Fraunhofer IESE 2003 Architektur und Funktionsprinzip gemeinsame Anmerkungen Verbesserungsvorschl ge und Verweise zuzuordnen Der Klauselkontext mit allen zugeh rigen Zeilen und Befunden wird in der Ergebnisdarstellung als zusammenh ngende Einheit pr sentiert Die Kriti kalit t eines Klauselkontexts
162. ory Systematic scoring RAT compliant scoring Rules applied 38 38 Rules passed 16 16 Rules failed 22 57 22 57 Checks applied E7 47 Checks passed 26 16 Checks failed 31 54 31 65 Optimum score 392 317 Actual score 190 48 115 36 Fix Script RULE IOS require line passwords This fix is commented out because you have to supply a sensitive value To apply this rule uncomment remove the leading on the commands below and replace LINE_PASSVORD with the value you have chosen Do not use LINE_PASSVORD Ausschnitt aus einem typischen von CROCODILE generierten RAT Pr freports neter Querverweise verbunden Per Mausklick kann man diese Hintergrundinfor mationen in die Anzeige holen Eine Zusammenfassung der RAT spezifischen Ergebnisdaten wird unter dem Bookmark RAT Emulation im Hypertext Pr freport bereitgestellt Zusatzlich ordnet CROCODILE jeden einzelnen RAT Befund den verschiedenen Anzeigen und Kategorien der CROCODILE Darstellung zu RAT Ergebnisse werden also genau wie gew hnliche CROCODILE Befunde behandelt Ist zum Beispiel eine Zeile ein Klauselkontext oder ein logischen Kontext von einem RAT Befund ber hrt so Copyright Fraunhofer IESE 2003 Emulation des Router Audit Tools RAT wird der Befund in die betroffenen Zeilen Klausel oder Kontextanzeigen einschlieBlich der Overview Darstellung eingeblendet Zudem wird f r das RAT Modul ein zus tzlicher Profil Balken im E
163. os nicht zul ssig und wird von CROCODILE zur ck gewiesen Patterns Patterns bezeichnen Textmuster in der Router Konfigurationsbeschreibung deren Vorhandensein oder Fehlen zu berpr fen ist Funktion und Gestalt eines Patterns entsprechen im wesentlichen den Deklarationen wie sie blicherweise in Pr fmodulen im Abschnitt Patterns vorzunehmen sind vgl Abbildung 4 Im Unterschied dazu werden in CompoundPatterns conf jedoch ausschlie lich Patterns nicht jedoch zugeordnete Pattern Handler spezifiziert Die Benennung eines Handlers entf llt weil s mtliche Patterns in CompoundPatterns conf von einem gemeinsamen Standard Handler bearbeitet werden Anstelle eines Handlers spezifiziert der Anwender pro Pattern zwei verschiedene Einstufungen lt crit1 gt und lt crit2 gt e lt crit1 gt gibt an wie das Auftreten des spezifizierten Patterns in der Router Konfigurationsbeschreibung einzustufen ist e lt crit2 gt gibt an wie das Fehlen des spezifizierten Patterns in der Router Konfigurationsbeschreibung einzustufen ist Die Einstufung besteht jeweils aus einem einzigen Zeichen M gliche Belegungen sind o i c w a f r OKAY INFO CHECK WARN bzw ALERT sowie f r irrelevant Im Pr flauf durchmustert das Pr fmodul die Router Konfiguration nach Textstellen die dem spezifizierten Pattern entsprechen Wird ein entspre Copyright Fraunhofer IESE 2003 47 Pr fmodule 48 chendes Textfragment
164. pattern2 gt ergibt ein neues Pattern e Auswahl lt pattern1 gt lt pattern2 gt bedeutet Entweder lt pattern1 gt oder lt pattern2 gt oder e Option bedeutet Der Inhalt der Klammer ist optional e Wiederholung bedeutet Der Inhalt der geschweiften Klammer ist wenigstens einmal vorhanden und wiederholt sich beliebig oft bedeutet Der Inhalt der eckigen Klammer fehlt oder wiederholt sich beliebig oft e Negation I lt pattern gt bedeutet Das Pattern tritt an dieser Stelle nicht auf Verf gbare Atoms Zur Bildung von Patterns stehen eine Reihe vordefinierter Atome zur Verf gung Bei Bedarf lassen sich leicht neue Atome im Parser nachr sten Tabelle 1 gibt einen berblick ber die derzeit definierten Atoms und ihre Bedeutung F r jedes Copyright Fraunhofer IESE 2003 Architektur und Funktionsprinzip Atom ist soweit m glich eine quivalente PERL Regular Expression angegeben um formal zu definieren welche Muster der Parser als g ltigen Match akzeptiert Atom Bezeichner Regular Expression Beschreibung STRING SPAS 8S Rest der Zeile ab dem ersten signifikanten Zeichen WORD TA s Zeichenkette ohne Whitespace ohne angeh ngten Kommentar NAME A Za z w Wort aus Buchstaben Punkten Binde und Unterstrichen NUM d Ganzzahl IPADDR A d d d d IP Adresse in Do
165. pekt zu konstruieren die sich nicht an einer einzelnen Textzeile festmachen l t Die R ckmeldungen aller Module erg nzen die in der Datenbank gesammelten Befunde Nach Abschlu des Parser Laufs wird die gesamte Befunddatenbank als Datei im XML Format gespeichert Diese Rohdaten werden genutzt um daraus verschiedene HTML Sichten zu generieren die sich mit einem gew hnlichen Web Browser darstellen lassen Abbildung 2 zeigt das Funktionsprinzip in der bersicht Pr fmodule als Software Einsch be Das Pr fwerkzeug wird f r einen Pr flauf vorbereitet indem der Anwender die vorgesehenen Pr fmodule in den Parser einsteckt Alle Pr fmodule verf gen ber eine genormte Schnittstelle die genau zu einer entsprechenden Andock m glichkeit des Parsers pa t Dem Grundsatz nach sind Pr fmodule vollkommen unabh ngig von einander Sie k nnen einzeln oder auch in Gruppen in das Parser Modul eingesteckt werden um einen Pr flauf mit individuellem Pr fumfang zusammenzustellen Dem Anwender steht es frei f r jeden zu pr fenden Sicherheitsaspekt ein separates Pr fmodul bereitzustellen oder logisch verwandte Pr fpunkte in einem Copyright Fraunhofer IESE 2003 Architektur und Funktionsprinzip gemeinsamen Modul zusammenzufassen Im Extremfall ist f r jedes einzelne Textmuster ein eigenes Pr fmodul zustandig Meist Ubernimmt jedoch ein Pr fmodul die Analyse mehrerer mitunter dutzender von Textmustern die sich alle auf
166. r bg_color margin colorcode font_family font_family_listing font_size_heading font_size_listing font_size_bookmark font_weight heading_bgcolor OKAY INFO CHI WARN ALI UN SOI ECK HTML output conf Config file for HTML output Some general settings show_not_recognized resize_allowed frame_borders main_window_percentage link_window_percentage about the appereance KK un KKK U o w f w n oe un a oe w Settings about the style You may define a font size and just rely on the font_size 12pt Verdana Arial arial Helvetica helvetica Courier courier monospace 120 110 90 bold 000 BBF DDF 1px 390 03F E _ E5 F70 E00 777 000 Define the RGB Mix for each severity but you may also avoid it browsers default settings Typische Einstellungen f r die HTML Ausgabe in Output HTML_output conf Copyright Fraunhofer IESE 2003 Architektur und Funktionsprinzip einzelner Attribute ist meist unmittelbar aus dem Attributnamen ableitbar mit folgenden Ausnahmen Das Attribut show_not_recognized gibt an ob der untersuchte IOS Konfigura tionstext vollst ndig ausgegeben wird oder ob Konfigurationsklauseln die das Werkzeug in der Analyse nicht ber cksichtigt hat ausgeblendet werden sollen Das Attribut resize_allowed bestimmt ob die Aufteilung der Browser Fensters in einzelne Frames unverr ckbar sein soll oder ob
167. r verwendet werden Einige Werkzeuge erfordern es zus tzlich zum Trennzeichen die einzelnen Textfelder in Anf hrungszeichen einzuschlie en Damit l t sich meist auch verhindern da Sonderzeichen innerhalb der Textfelder die Verarbeitung st ren CROCODILE liefert auf Wunsch solche Anf hrungszeichen wenn man die Option patchcroco qf QuoteFields angibt Mittels f fs und qf kann der Anwender variabel verschiedene Varianten des CSV Formats erzeugen Einer flexiblen Ergebnisaufbereitung z B in Form von Business Graphiken Filterung Aggregation Sortierung der Dateien e summary txt e allfindings txt sowie der individuellen ASCII Pr freports steht damit nichts mehr im Wege 6 5 Protokollierung der Stapelverarbeitung Der Rechenfortschritt des Stapelverarbeitungsprozesses wird auf der Konsole angezeigt In der Grundkonfiguration ist CROCODILE im Batch Modus recht wortkarg ausgelegt Die Konsolenausgaben beschr nken sich darauf wesent liche Probleme zu melden und dem Benutzer zu vermitteln wie weit der Batch ProzeB vorangeschritten ist Sollten irgend welche Verarbeitungsprobleme auftreten so kann der Benutzer auf Wunsch ausf hrlichere Konsolenausgaben aktivieren um den Punkt an dem die Stapelverarbeitung in Schwierigkeiten geraten ist mdglichst eng einzu Copyright Fraunhofer IESE 2003 1 0 5 Stapelverarbeitung Batch Processing grenzen Dazu dient das Konfigurationsattribut lt
168. rausgesetzt nat rlich da das Konfigurationsattribut lt Ruleset gt bzw die Option r nicht gesetzt sind Wurde ausdr cklich ein Ruleset vorkonfiguriert so wird die Pr fix Angabe in Dateinamen grunds tzlich ignoriert Achtung Wenn im Stapelverarbeitungsbetrieb Dateien verarbeitet werden deren Namen zuf llig einen Bindestrich enth lt so wir der Namensbestandteil vor dem Bindestrich als Regelsatz Angabe interpretiert sofern das Konfigurati onsattribut lt Ruleset gt nicht spezifiziert ist Nicht immer liegt dies in der Absicht des Benutzers Sofern sich nicht zuf llig ein Ruleset mit diesem falschen Regelsatz Namen unter lt RulesetDir gt findet wird der Job abgebrochen undes erscheint folgende Fehlermeldung auf der Konsole Job 1 of 1 SampleConfigs b gwi2 txt ERROR Can t find ruleset b ERROR File SampleConfigs b gwi2 txt skipped Der Pfad zum Regelsatzverzeichnis lt RulesetDir gt kann absolut oder relativ zum Arbeitsverzeichnis des Anwenders angegeben werden Zus tzlich ist es m glich den Pfad relativ zum Installationsverzeichnis von CROCODILE anzugeben Dazu dient das Schl sselwort lt CROCOHOME gt am Beginn des Pfadnamens Maschinenlesbare Ergebnisformate Mit der Option f ASCII bei Bedarf zus tzlich zur Option f HTML kann der Anwender vorgeben da batchcroco seine Ergebnisse in gew hnlichem Textformat ausgibt Dieses Ausgabeformat ist f r einen M
169. ren Spezifikation kaum eine Vorgabe birgt eher die Gefahr von Spezifikationsfehlern Copyright Fraunhofer IESE 2003 Pr fmodule 4 9 Modul Passwords Auf einem IOS Router k nnen verschiedene Pa w rter in einigen Befehlen auch secrets genannt konfiguriert werden zum Beispiel Login Pa w rter Enable Pa w rter oder auch FTP Pa w rter Um die Pa wortvorgaben gegen Aussp hung zu sch tzen k nnen PaBworter in der Konfiguration wahlweise auch in verschl sselter Form hinterlegt werden IOS bietet daf r zwei Verschl s selungsvarianten Nr 5 und Nr 7 Die 5er Verschl sselung ist kryptographisch sicher das 7er Verfahren dient hingegen nur der Verschleierung denn eine Entschl sselung ist problemlos m glich Das Pr fmodul Passwords untersucht die Routerkonfiguration auf unsichere Pa w rter oder Pa w rter die unn tig schwach verschl sselt wurden sowie auf fehlende Aktivierung des Pa wort Verschl sselungsdienstes Pr fvorgaben Die Pr fkriterien zum Bereich Passwords sind berwiegend im Programmcode des Pr fmoduls festgelegt lediglich die Kandidatenliste f r den Test Suche nach trivialen Passw rtern ist mittels Configuration Passwords conf frei konfigu rierbar Die wichtigsten Pr fpunkte des Pr fmoduls sind e Sind alle in password bzw secret Klauseln enthaltenen Pa wortcodes zul ssige Zeichenketten e Werden unsichere d h leicht erratbare Pa w rter verwendet Werde
170. rn Im folgenden stellen wir die verf gbaren Pr fmodule vor 4 1 Auswahl von Pr fmodulen zur Ausf hrung Der Benutzer kann ausw hlen welche der verf gbaren Pr fmodule bei einem Pr flauf tats chlich zur Anwendung kommen sollen Die Liste der zu aktivie renden Module steht in der Datei Configuration plugin conf Fehlt diese Datei oder ist sie leer so werden s mtliche unter Plugin verf gbaren Module geladen und aktiviert Durch L schen oder besser durch Auskommentieren einzelner Eintr ge kann der Anwender den Pr fumfang des Werkzeugs reduzieren Abbildung 11 zeigt eine Beispielkonfiguration bei der die Module NTP pm und RATemulation pm abgeschaltet sind plugin conf Which plugin modules are selected for execution If this file exists only those plugins named here are loaded and executed Plugins are specified one or multiple per line Leading and trailing whitespace is ignored A trailing pm is optional Specifications are case insensitive Module names not found in Plugin are ignored AAA CompoundPatterns Connectivity IngressEgress Logging NTP Passwords SNMP RATemulation Abbildung 11 Konfigurationsbeispiel f r plugin conf zur Festlegung der auszuf hrenden Pr fmodule Copyright Fraunhofer IESE 2003 45 Pr fmodule 42 Modul CompoundPatterns 46 Das Pr fmodul CompoundPatterns ist in der Lage alle Pr fpunkte abzudec
171. rtung Stapelverarbeitung Batch Processing Verwendung von CROCODILE im Stapelverarbeitungsmodus Konfigurierbare Ausf hrungsparameter Options Auswahl von Pr fregels tzen Maschinenlesbare Ergebnisformate 41 42 45 45 46 56 64 70 72 75 78 81 85 85 87 88 90 91 93 94 97 97 101 103 104 Copyright Fraunhofer IESE 2003 6 5 7 7 1 7 2 7 3 8 8 1 8 2 8 3 8 4 8 5 9 9 1 9 2 9 3 Protokollierung der Stapelverarbeitung Hilfswerkzeuge Utilities Durchlassigkeitsanalysen an ACLs und Interfaces mittels blackwhite Ergebnisaufbereitung mittels make_html Generierung von URLs auf die IOS Command Reference mittels linkfilter Erstellen eigener Pr fmodule Recherche Analyse Implementieren der Pr flogik Feinschliff Anmerkungen Status und Ausblick Status der Werkzeugunterst tzung N chste Schritte Ausdehnung auf andere Netzwerkkomponenten Anhang A Schnittstelle zur Befunddatenbank Quellenverzeichnis Liste der Abk rzungen Copyright Fraunhofer IESE 2003 105 107 107 111 112 115 115 116 118 126 127 129 129 130 130 131 137 139 xi XII Copyright Fraunhofer IESE 2003 1 Problemstellung und L sungsansatz IP basierte Kommunikationsnetze haben in den vergangenen Jahren an Bedeutung gewonnen Immer mehr Unternehmen sind in an das Internet angeschlossen Dies setzt die unternehmensinterne Informationstechnologie IT der Gefahr sog
172. s 4 2 Soll die f nfte Zeile anschlie end keine Unterteilung in Spalten besitzen sondern durchgehend sein z B als berschrift so gibt man 5 an Die Positions Endung ist optional und darf auch weggelassen werden d h 5 ist gleichbedeutend mit 5 Die Spaltengr e der Tabelle richtet sich automatisch nach der Gr e der in die Spalte geschriebenen Zeichenketten Will man zwar eine durchge hende also spaltenlose Zeile benutzen die aber nicht in der ersten sondern z B in der dritten Spalte beginnt so kann man mittels 6 3 in der sechsten Zeile ab der dritten Spalte einen Textstring einf gen der sich dann ber alle weiteren Spalten erstreckt und somit auch nicht deren Gr e beeinflu t Dieses kann man z B f r eine einger ckte berschrift verwenden Um mehrere Spalten einer Zeile mit Text zu f llen mu man die Funktion mehrfach aufrufen Jeder Dump kann nur von einem Modul bearbeitet werden add_bookmark name ref_name reference ref_type severity Die Methode ordnet einen Verweis einem Lesezeichen zu Lesezeichen dienen vor allem als Aufh nger f r Befunde die weder zu einer Zeile noch zu einem Kontext oder einer globalen Befund berschrift passen Bei der erweiterten HTML Ausgabe gibt es in der Mitte des Bildschirmes einen Abschnitt in dem alle Lesezeichen unter ihrem zugewiesenen Namen name aufgelistet werden Sie sind nichts anderes als eine Ansammlung von Referenzen die wie alle
173. s RAT Pr fregels tze getreulich anwendet In einigen Details weicht die Regelverarbeitungen unter CROCODILE allerdings erkennbar von der unter RAT ab Geringf gige Unterschiede ergaben sich vor allem durch Schw chen der RAT Software So fanden sich bei der Analyse der RAT Distribution Stand M rz 2003 zum Beispiel e Tippfehler in den Regelspezifikationen die RAT ohne Warnung ignoriert die jedoch Einflu auf die Regelanwendung haben k nnen e Nicht vorgesehene Matches einzelner Patterns die unter RAT in Testbei spielen eine unzul ssige Regelanwendung hervorriefen e Verfehlte Matches von korrekt spezifizierten Patterns die unter RAT in Testbeispielen eine anwendbare Regel unbeachtet lie en e Inkonsistenzen wie etwa Querverweise auf undefinierte Regelobjekte die RAT unbeanstandet lie und offenbar gar nicht bemerkte Die vorgefundenen M ngel haben wir dem RAT Entwicklerteam mitgeteilt Es ist davon auszugehen da diese Problemf lle mittlerweise beseitigt worden sind Das Emulationsmodul wurde auf alle F lle so gestaltet da es die Fehler von RAT vermeidet und Patterns korrekt anwendet offensichtlich falsche Patterns zum Teil sogar automatisch korrigiert und erkennbare Fehler und Inkonsistenzen in RAT Regeldaten auf der Konsole zumindest protokolliert Sofern nach Entdecken einer Regelschw che ein Weiterarbeiten noch sinnvoll m glich erscheint setzt CROCODILE den RAT Pr fschritt trotz Warnmeldung fort und erzielt of
174. s n chstes muB der Entwickler f r jeden relevanten Befehl ein passendes Pattern eintragen Zur Orientierung dient das Cisco Reference Manual Allerdings lassen sich die dort beschriebenen Formate in der Regel nicht w rtlich bertragen Sie bed rfen meist einer Anpassung etwa aus folgenden Gr nden e Oft wird angestrebt mit einem einzigen Pattern sowohl die positive als auch die negierte Form eines Patterns zu erfassen also zum Beispiel logging rate limit number all console except severity no logging rate limit Dazu ist es erforderlich die Befehlsparameter in einer zus tzlichen Klammerung einzuschlie en um sie als optional zu kennzeichnen logging rate limit number all console except severity Die Negation selbst das Schl sselwort no wird von CROCODILE automatisch als optional angesehen und in jedem Falle toleriert e Die im Manual ausgewiesene Syntax ist oftmals irref hrend wenn nicht gar falsch So lautet zum Beispiel die korrekte Darstellung der Syntax f r logging rate limit wie folgt zumindest f r einen von uns berpr ften IOS Router logging rate limit console all all number except severity Man vergleiche dies mit den Angaben im Cisco Manual auf Seite FR 499 e Mitunter wird ein Pattern absichtlich allgemeiner ausgelegt als es die korrekte Befehlssyntax eigentlich erfordert Dies kann dazu dienen das Pattern zu vereinfachen ist aber auch hilfreich um Tippfehler oder Bereichs verl
175. sobald externe Server beteiligt sind In diesem Fall h ngt die Sicherheit n mlich ebenso sehr von der Konfiguration des Servers wie der des Routers ab Neben der Analyse der Router Konfiguration ist es daher unverzichtbar auch die verwen deten Server in die Betrachtungen mit einzubeziehen Dies kann das Pr fwerkzeug nicht leisten 4 8 Modul Logging 78 Cisco IOS generiert Alarm Informations und Debug Meldungen zu relevanten Hardware und Software Ereignissen des Routers Diese Meldungen k nnen zur Konsole in lokale Puffer oder zu einem externen Server gelenkt werden Dies liefert ein Protokoll Log des Routerbetriebs ein wichtiger Baustein f r ein umfassendes IT Sicherheitskonzept Das Pr fmodul Logging pr ft die f r Logging relevanten Konfigurationseinstel lungen auf Korrektheit Widerspruchsfreiheit und Vollst ndigkeit Es erstellt eine nach Bereichen geordnete bersichtsdarstellung aller relevanten Parameter Pr fvorgaben S mtliche Pr fkriterien zum Bereich Logging sind im Programmcode des Pr fmoduls festgelegt parametrisierbare Pr fvorgaben sind nicht vorgesehen Insgesamt bietet IOS f nf verschiedene M glichkeiten zur Logdatenerfassung drei lokale und zwei netzbasierte Varianten Die Protokollierung erfolgt wahlweise e auf die Router Konsole e auf eine Terminal Line Schnittstelle Monitor e in einen lokalen Pufferspeicher e nach einem entfernen SYSLOG Server oder e nach einem entf
176. st noch nicht in allen Bereichen vollstandig ausgebaut ist In den meisten Beispielkonfigurationen aus der Praxis die wir mit CROCODILE analysiert haben fanden sich zumindest Ungereimtheiten oft sogar gravie rende Fehler Wenn unsere Beobachtung repr sentativ ist so sind Konfigurati onsm ngel eher die Regel als die Ausnahme und Sicherheitsl cken bleiben oft ber Monate unentdeckt Die Tatsache da CROCODILE Schwachstellen aufdeckt die selbst geschultes Personal bersehen hat best rkt uns in unserem Ansatz Die derzeit erzielte Abdeckung von Sicherheitsanforderungen durch Pr fkriterien fu t ma geblich auf dem generischen Pr fmodul CompoundPatterns Es hat sich gezeigt da Pr fanforderungen unterschiedlichster Art leicht im Forma lismus von CompoundPatterns spezifizierbar sind Der Ansatz eine einfache Metasprache zur Deklaration von Pr fanforderungen einzuf hren hat sich als sehr hilfreich erwiesen CompoundPatterns betont die Einfachheit der Pr fpunktdeklarationen was zu Lasten der Analysem chtigkeit und Protokollierungsgenauigkeit dieses Pr fmoduls geht Eine noch komplexere Spezifikationssprache zur Beschreibung von Pr fpunkten w re vielseitiger w rde jedoch tiefere Kenntnisse und gr eren Aufwand f r den Revisor mit sich bringen Die Praxis mu erweisen was der ausgewogenste Kompromi zwischen M chtigkeit und Bedienfreundlichkeit eines generischen Moduls ist Das Modul IngressEgress demonstrier
177. stelltem in jeder Ausgabe zeile in die Logdatei und auf die Konsole geschrieben e error lt List gt lt List gt wird als Error d h mit vorangestelltem ERROR in jeder Ausga bezeile in die Logdatei und auf die Konsole geschrieben e abort lt List gt lt List gt wird als Warnung d h mit vorangestelltem in jeder Ausgabe zeile in die Logdatei und auf die Konsole geschrieben Danach wird die Programmausf hrung mit einer Meldung und entsprechendem Exit Status abgebrochen Die Ausgabemethoden sind so realisiert da sie syntaktisch genau wie ein gew hnliches print allerdings ohne Dateideskriptor Argument verwendet werden k nnen Das hei t zum Beispiel da die Argumentliste lt List gt nicht in Klammern eingeschlossen werden mu und da beliebig viele Ausgabe Elemente durch Komma getrennt angegeben werden d rfen Anders als print f gen die oben genannten Methoden am Ende der Ausgabe automatisch einen Zeilenvorschub n an Sollte dies in Ausnahmef llen einmal unerw nscht sein so kann der Zeilenvorschub unterdr ckt werden indem man das erste Listenelement mit einem einleitet etwa warning This is part 1 of a multi part output line warning this is part 2 warning And here is part 3 Diese drei Kommandos erzeugen folgende Ausgabe This is part 1 of a multi part output line this is part 2 And here is part 3 Die mit warning oder error
178. t wie sich flexible zugleich m chtige Pr fanforderungen mit einfacher Bedienbarkeit vereinbaren lassen wenn man die Pr fproblem Klasse geeignet einschr nkt Das Ausgabeformat zur Darstellung der Pr fergebnisse ist in unseren Augen recht ausgereift Der R ckgriff auf HTML Hypertext erm glicht flexible Anpas sungen der Formatgestaltung an die Bed rfnisse des Anwenders die Verwend barkeit eines beliebigen Standard Browsers sorgt f r sehr gute Portierbarkeit auf unterschiedlichste Plattformen Im Stapelverarbeitungsmoduls liefert CROCODILE seine Ergebnisse wahlweise auch im CSV Format was eine einfache Weiterverarbeitung mit unabh ngigen Werkzeugen gew hrleistet Copyright Fraunhofer IESE 2003 1 29 Status und Ausblick 9 2 N chste Schritte Die vorhandenen Pr fmodule decken nur einige wenn auch wichtige Teilbereiche der Routersicherheit ab Durch zus tzliche Module lassen sich beste hende L cken in der Pr flogik schlie en die mit den einfachen Mitteln von CompoundPatterns nur unvollst ndig behandelbar sind Zudem ist es w nschenswert zu einzelnen M ngeln sehr spezifische Diagnosemeldungen zu generieren was CompoundPatterns nicht erm glicht Einige Pr fbereiche erfordern vermutlich parametrisierbare Pr fmodule die mit einer Modulkonfiguration in geeignetem Beschreibungsformat best ckt werden m ssen Zuk nftige Untersuchungen m ssen erweisen wie der Anwender Pr fkriterien zu bestimmten
179. t Schreibweise jede Zahl aus dem Bereich 0 255 DSTRINGD D D D In Delimiterzeichen D einge schlossene ggf mehrzeilige Zeichenkette ARES Match mit dem verbleibenden Rest einer Zeile ohne angeh ngten Kommentar PATTERN Match mit einem g ltigen BNF Pattern nach CROCODILE Syntax konventionen lt Bereich gt d Match mit einer Ganzzahl im angegebenen Intervall NUM NUM lt von gt lt bis gt lt Numeral gt Match mit der gleichlautenden Ganz oder Festkommanzahl NUM NUM lt Literal gt _ Match mit gleichlautender in Single Quotes eingeschlossener r Zeichenfolge lt IOS Keyword gt _ Match mit dem gleichlautenden IOS Schl sselwort in beliebiger A Za z l a z S GroB Kleinschreibung lt Makro gt Wird durch das zugeordnete CROCODILE Pattern substituiert A Z_ A Z_ d siehe Abschnitt Makros Seite 26 lt Regular Expression gt Match mit gleichklautender PERL Regular Expression CZ CITAN ZANAT ANSI AINA Tabelle 1 Vordefinierte Atoms zur Bildung von CROCODILE Patterns Eine typische Pattern Spezifikation w re zum Beispiel access list 1 99 1300 1999 permit deny any IPADDR IPMASK log Copyright Fraunhofer IESE 2003 21 Architektur und Funktionsprinzip 22 In diesem Pattern sind access list permit deny any und log Schl ssel w rter der Cisco Konfigurationssprache IPADDR bezeichnet das Atom f r eine
180. t keine Information zum Kontext eines Befehls vor so wird im zweiten Feld null eingetragen Die automatisch generierte Datei erwies sich bisher als weitgehend vollst ndig und von ausreichender Qualit t Zur Optimierung wurde nur eine Handvoll zus tzlicher Eintr ge manuell erg nzt Dem Anwender steht es frei nach Belieben Zeilen hinzuzuf gen oder zu l schen Die Qualit t von linkdata conf hat keinen wesentlichen Einflu auf Analyseergebnisse des Werkzeuggs sie steigert lediglich den Bedienkomfort 1 1 4 Copyright Fraunhofer IESE 2003 8 Erstellen eigener Pr fmodule CROCODILE ist ein erweiterbares Werkzeug Der Anwender kann bei Bedarf eigene Pr fmodule erg nzen um Pr fumfang und Pr ftiefe zu steigern Am Beispiel des Pr fmoduls Logging skizzieren wir im folgenden die empfohlene Vorgehens weise zur Entwicklung neuer Pr fmodule Das Kapitel soll einen Eindruck von dem erforderlichen Entwicklungsaufwand vermitteln Anwender des Werkzeugs die keine Modulentwicklung betreiben wollen k nnen diesen Abschnitt des Handbuchs berspringen 8 1 Recherche Zun chst mu der Entwickler einen Pr fbereich festlegen im Beispiel ist dies das Themengebiet Logging In der Regel wird man den einen oder anderen Konfi gurationsbefehl kennen der zum Pr fbereich geh rt Dieser kann als Einstieg dienen um ber die Cisco Online Dokumentation einschl gige Beschreibungen zu ermitteln So findet man zum Beispiel unter
181. t noch ein sinnvolles Pr fergebnis Da wir also von den RAT Mechanismen laut verf gbarem Software Stand abweichen mu ten um RAT Fehler zuvermeiden kann dies im Detail kleinere Unterschiede zwischen RAT und CROCODILE Pr fergebnissen hervorrufen So ergibt sich nat rlich ein anderes Benchmark Resultat wenn RAT f lschlich Regeln ausl t oder anwendet die CROCODILE korrekterweise ausf hrt beziehungs Copyright Fraunhofer IESE 2003 87 Emulation des Router Audit Tools RAT 5 3 88 weise ignoriert Daher sind manchmal minimale Diskrepanzen zwischen RAT und CROCODILE m glich Der Anwender kann sich jedoch leicht davon berzeugen da dies normalerweise keinen nennenswerten Einflu auf das Pr fergebnis hat Konfiguration des Emulationsmoduls Den genauen Pr fauftrag erh lt das Modul ber die Konfigurationsdatei RATemulation conf im Unterverzeichnis Configuration vgl Verzeichnis struktur in Abbildung 10 Seite 43 Dort wird festgelegt e ob berhaupt RAT Regels tze angewendet werden sollen e unter welchen Pfadnamen die RAT Regelspezifikationen und zugeh rige Regel Metadaten gespeichert sind e wo sich gegebenfalls der Callout Code vgl Fu note 13 auf Seite 86 findet f r Regeln die anwenderspezifischen Pr fcode einbinden Abbildung 22 zeigt einen typischen Inhalt der Konfigurationsdatei In der Regel kann davon ausgegangen werden da RAT Interessenten ein Exemplar der RAT Distribution heru
182. te Access Listen zu pr fen und umgekehrt Wie eingangs erw hnt k nnen Filtervorgaben gezielt bestimmten Access Listen oder Interfaces zugeordnet werden Damit lassen sich f r die verschiedenen Router Zug nge unterschiedliche Filtervorgaben festlegen Pr fvorgaben f r Access Listen Im einfachsten Fall gibt der Anwender Kriterien f r die Filterwirkung von Access Listen vor Es liegt dann in der Verantwortung des Nutzers diese Access Listen entsprechend ihrer Bestimmung einzelnen Schnittstellen zuzuordnen Das Spezifikationsformat f r access list Pr fvorgaben lautet wie folgt access list lt Pattern gt lt Liste von permit und deny Filterklauseln gt Das Pattern bezeichnet eine BNF artige Syntaxbeschreibung entsprechend dem Pattern Format f r Pattern Handler vgl Kapitel 3 2 und legt fest welche Access Listen von der Vorgabe betroffen sein sollen Nur solche Listen deren Name dem Pattern entspricht fallen unter die Vorgabe Wird als Pattern zum Beispiel 1 99 eingesetzt so bezieht sich die Vorgabe auf alle Standard Access Listen das Pattern bedeutet hingegen da die Vorgabe f r beliebige Access Listen gelten soll Beliebig komplexe Patterns sind spezifizierbar Pr fvorgaben f r Interfaces Der Anwender kann eine Filtervorgabe auch gezielt bestimmten Interfaces zuordnen Das Pr fmodul analysiert dann diese Schnittstellen unabh ngig davon durch welche Access Listen sie gesch tzt werden
183. terscheiden IPMASK IPADDR IF_TYPE i a z IF_NUM d d d d Schnittstelle zum Hauptprogramm Das Parser Modul hat eine sehr schlanke Schnittstelle zum Hauptprogramm Die einzigen nach au en sichtbaren Funktionen des Parsers sind new parse und analyze Deren Verwendung geht aus dem Beispiel in Abbildung 3 Seite 19 hervor Der Anwender mu sich ber die Parser Schnittstelle zum Hauptpro gramm keine Gedanken machen selbst wenn er neue Pr fmodule entwickelt und einf gt Schnittstelle zu den Pr fmodulen Mit der Schnittstelle zwischen dem Parser und den Pr fmodulen kommt der Anwender normalerweise nicht in Ber hrung selbst wenn er eigene Pr fmodule konstruiert Das korrekte Zusammenspiel ergibt sich automatisch aufgrund der Vererbungsmechanismen Die Interaktion zwischen Parser und Pr fmodulen erfolgt nur in einer Richtung Alle Aktivit t geht vom Parser aus Aus Sicht des Parsers sind alle Pr fmodule vom Objekttyp Module Da es sich in Wahrheit um abgeleitete verfeinerte Objekte handelt ist an der Schnittstelle zwischen Parser und Pr fmodulen nicht erkennbar Folglich nutzt der Parser auch nur die ffentlichen Funktionen des Objekttyps Module Pr fmodule erben diese Schnittstelle aufgrund ihrer Ableitung von Module ohne weiteres Zutun Im einzelnen handelt es sich um folgende Funktionen Copyright Fraunhofer IESE 2003 2 7 Architektur und Funktionsprinzip 3
184. text_name Hiermit kann jede Zeile einem beliebigen logischen Kontext zugeordnet werden um Zusammenh nge zwischen Konfigurationsklauseln zu verdeut lichen Der Name des Kontexts unterliegt keinen Einschr nkungen Ein Kontext mu nicht explizit erzeugt werden sondern er entsteht automa tisch sobald ihm eine Zeile zugeordnet wurde add_fix_suggestion linenumber suggestion comment Hiermit l t sich einer Zeile ein Verbesserungsvorschlag zuordnen Auch hier gilt die Regel daB mit jedem Aufruf dieser Funktion ein weiterer Vorschlag hinzugef gt wird Ein solcher Vorschlag besteht in der Regel aus einem Codefragment und einer Erl uterung Der Parameter suggestion bezeichnet den Code comment die Erl uterung change_context_criticality context_name severity force_flag Diese Methode kann einem bereits existierenden Kontext eine Kritikalitat zuordnen Siehe dazu die Erl uterungen zu change_criticality oben add_context_annotation context_name text severity Die Methode ordnet einem Kontext eine Anmerkungen zu Siehe dazu die Erl uterungen zu add_annotation oben add_context_ref context_name ref_name reference ref_type Die Methode ordnet einem Kontext einen Verweis zu Siehe dazu die Erl u terungen zu add_reference oben add_context_fix_suggestion context_name suggestion comment Die Methode ordnet einem Kontext einen Verbesserungsvorschlag zu Siehe dazu die Erl uterungen zu add_fi
185. tige Interpreta tionen zulassen Dies wird in Kapitel 3 2 im Abschnitt Konflikte Gierige oder minmale Pattern Interpretation genauer erl utert Wird eine mehrdeutige Pattern Interpretation erkannt so unterbricht CROCODILE den Pr flauf mit einer Fehlermeldung Der Anwender mu sein Pattern dann so verfeinern da die angezeigte Mehrdeutigkeit beseitigt wird Zusammengesetzte Patterns Ein zusammengesetztes Pattern Compound Pattern oder kurz Compound entsteht durch Verkn pfung mehrerer elementarer Patterns Die geschachtelte Verkn pfung mehrerer Sub Compounds liefert ebenfalls ein g ltiges Compound Pattern Compounds dienen dazu Textmuster zu spezifizieren die mehrere Konfigurationsklauseln umfassen Zur Verkn pfung sind folgende Operatoren verf gbar e UND Verkn pfung lt compound1 gt amp lt compound2 gt e ODER Verkn pfung lt compound1 gt lt compound2 gt e XOR Verkn pfung XOR lt compound1 gt lt compound n gt e Negation NOT lt compound gt e Bedingtes Pattern IF lt compound gt THEN lt then compound gt ELSIF lt compound2 gt lt elsif compound gt ELSE lt else compound gt e Z hloperator Count lt basic pattern gt lt minoccur gt lt maxoccur gt UND ODER bzw XOR Verkn pfung haben die offensichtliche Bedeutung Das Compound gilt genau dann als aufgetreten wenn beide wenigstens einer bzw genau einer der Operanden aufgetreten ist Ein mit NOT negi
186. tion Text Logical Context Overview Cross Reference Table of Findings g rs a w iR m FA FS wfo a a e e e e c e e e e e A effi D D te N CS Da De ciosc txt FI a lI File Edit View Favorites Tools Help ise pix txt some 1 txt 10 Evaluation Report for Router sample router briani txt 9 brian2 txt En Table of Contents dtag2 txt 4 Evaluation Profile Evaluation Date 2003 09 25 14 16 18 Source SampleConfigs acsac txt Last Modified 2003 04 28 09 08 39 Evaluation Ruleset home schwarz tmp CROCODILE Configuration Quick Evaluation Mode Level 3 Module Findings OKAY CHECK WARN ALERT RATemulation 44 3 Passwords 9 Connectivity 10 1 3 CompoundPatterns 69 DE 2 Il 2109 AAA 4 h ki IngressEgress 3 SNMP El Logging i 5 NTP 3 1 2 Total 168 65 30 27 30 16 Annotated Configuration Text 2 version 12 0 rule IOS logging buffered passed version PROPER_VERSION okay 53 3 service nagle service nagle okay 276 4 no service vad Fu HTML Ergebnisse eines Stapelverarbeitungslaufs summary html und acsac html tungsbetrieb wird jedoch mit dem n chsten Job normal fortgesetzt CROCODILE weist die Anzahl der abgebrochenen Jobs in einer AbschluBmeldung auf der Konsole aus Copyright Fraunhofer IESE 2003 Stapelverarbeitung Batch Processing Benutzergesteuerte Jobunterbrechung Es besteht auch die M glichkeit den gerade laufenden Job interaktiv mitte
187. tionsparameter hingewiesen Beinhalten Schl ssel und Access Listen Kommandos Default Werte wird dies angemerkt und in der sp teren Analyse ber cksichtigt Sind Kommados in einem IOS Modus nicht zul ssig wird eine Warnung ausgegeben Viele Fehler ergeben sich erst aus dem logischen Zusammenwirken aller Konfigu rationsklauseln Wurde zum Beispiel die Authentisierung durch Schl ssel konfi guriert so ist das Kommando ntp server ohne die Angabe eines Schl ssels wirkungslos Das Modul versucht solche Unstimmigkeiten auszuweisen Liste der IP Adressen und Interfaces Nach dem Pr flauf werden die entsprechenden IP Adressen aller Server und Peers aufgelistet mit denen der Router eine NTP Kommunikation f hrt Zudem werden die Interfaces angezeigt ber die Broadcast Nachrichten f r das Zeitpro tokoll ein bzw ausgehen Die Daten die hier aufgelistet werden sind bereits auf Plausibilit t berpr ft Zudem werden die mittels ntp access group angewandten Access Listen ber cksichtigt Allerdings mu der Netzwerkadmini strator die Listen der beteiligten Interfaces berpr fen Hier mu der Port 123 TCP oder UDP an mindestens einem Interface freigeschaltet sein damit die NTP Anfragen nicht durch diese Restriktion verworfen werden Eine automatische Kontrolle kann hier nicht vorgenommen werden da die Netzumgebung dem Werkzeug nicht bekannt ist und deshalb auch nicht entscheidbar ist welches Interface f r NTP freigeschaltet werden
188. u wie Interfaces mit Filtervorgaben belegt werden Das Spezifikationsformat ist entsprechend line lt Pattern gt in out inout lt Liste von permit und deny Filterklauseln gt Copyright Fraunhofer IESE 2003 Pr fmodule Verwendung von Makros Bei der Formulierung von Filterlisten kann es wiederkehrende Textsequenzen geben oder Spezifikationsbausteine die aus Gr nden der Lesbarkeit und Wartbarkeit mit einem symbolischen Namen belegt werden sollten Dazu bietet das Pr fmodul die M glichkeit in IngressEgress conf Makros zu deklarieren Das Format dazu lautet lt MACRO NAME gt lt Pattern gt Eine Makro Deklaration darf nur eine Zeile umfassen und der frei wahlbare Makroname darf nur GroBbuchstaben enthalten Jedes beliebige BNF Pattern darf verwendet werden soweit dies mit dem Verwendungszweck des Makros vereinbar ist Abbildung 16 zeigt Beispiele f r die Verwendung von Makros Bemerkungen Der besondere Charme des IngressEgress Moduls liegt zum einen in seiner einfachen und flexiblen Konfigurierbarkeit zum anderen in seinen unseres Wissens einmaligen F higkeiten beliebig komplexe Whitesets und Blacksets auf rein logischer Ebene zu handhaben ohne dabei auf die Art und Weise ihres Zustandekommens Bezug nehmen zu m ssen Auch wenn eine Filterspezifi kation keinerlei formale hnlichkeit mit den relevanten Teilen der Konfigurati onsbeschreibung hat kann das Pr fmodul dennoch erkennen
189. ufs unter Linux auf dem gleichen Rechner Da PERL urspr nglich f r Unix konzipiert wurde ist davon auszugehen da Unix bzw Linux Distributionen von PERL im Zweifelsfalle performanter als vergleichbare Windows Distributionen sind Copyright Fraunhofer IESE 2003 5 Anwendung des Priifwerkzeugs im Uberblick 2 2 2 3 Die vorliegende Software wurde unter den PERL Versionen 5 4 5 6 und 5 8 entwickelt und unter den Betriebssystemen Sun Solaris 2 6 und 2 8 RedHat Linux Kernel 2 4 9 sowie Windows 2000 erfolgreich getestet Um die Portabilitat des Codes zu gew hrleisten haben wir bewu t darauf verzichtet PERL Sprachmittel neuerer Versionen als Version 5 4 einzusetzen Auch haben wir vermieden PERL Zusatzmodule zu verwenden die ber eine Standarddistribution hinausgehen Installation und Deinstallation des Pr fwerkzeugs Wir setzen voraus da PERL auf der Ausf hrungsplattform bereits installiert worden ist F r das Werkzeug selbst bedarf es dann keiner besonderen Vorberei tungen mehr Auf einem Unix System mu der Anwender zum Beispiel die folgenden Schritte ausf hren um CROCODILE zu installieren 1 Einloggen und Wechsel in ein freies Unterverzeichnis zum Beispiel in das Verzeichnis tmp user host cd tmp user host tmp 2 Laden des Werkzeugarchivs und Entpacken der Software user host tmp cp floppy crocodile tar user host tmp tar xvf crocodile tar 3 Wechsel in das Werkzeug Unterverzeichnis
190. um Beispiel ein Regelklasse mittels Selected no deaktiviert so werden automatisch alle zu dieser Klasse geh renden Regeln ignoriert selbst wenn einzelne Regeln der Klasse individuell mit Selected yes aktiviert sind Unter dem Bookmark RAT Emulation findet sich der Link Rule Descriptions der auf eine Gesamtbeschreibung aller konfigurierten Regelspezifikationen verweist Die Beschreibung ist als Hypertext Dokument aufbereitet und enth lt s mtliche Regelklassen Regeln und Datenparameter mit ihren wichtigsten Attri buten Die Regelhierarchie wird durch Hyperlinks repr sentiert mit denen die Klassen und Regelnamen hinterlegt sind Dies erlaubt das bequeme Navigieren im Pr fregelbaum Deaktivierte Teile der Regelspezifikation sind durch Grauf rbung kenntlich gemacht Copyright Fraunhofer IESE 2003 93 Emulation des Router Audit Tools RAT 5 7 94 CROCODILE verzichtet allerdings auf jegliche Editor Unterst tzung f r RAT Pr fregels tze Anwender haben meist ohnehin einen RAT Editor aus der Origi naldistribution zur Hand und notfalls k nnen Pr fregeln auch recht einfach wenn auch weniger komfortabel mit einem gew hnlichen Texteditor bearbeitet werden F r n here Hinweise zum genauen Format der Regelbeschreibungen und den Einstellungsm glichkeiten verweisen wir auf die Dokumentation der Original distribution RAT2 0 Bewertung Das RAT Emulationsmoduls ist in mehrerlei Hinsicht eine Ber
191. undkategorien e Verbesserungsvorschlage e Dumps e Verweise e Lesezeichen Anmerkungen sind Zeichenketten mit einem Kommentar zum Sicherheitsstatus einer Konfigurationseigenschaft Jede Anmerkung ist mit einer Kritikalitatsein stufung versehen die von OKAY INFO CHECK Uber WARN bis ALERT reichen kann Die Einstufung gibt an ob es sich bei der Anmerkung um einen positiven neutralen unklaren negativen oder gar kritischen Befund handelt Die Kritikalitat eines Befundes wird in der Ausgabe durch entsprechende Farbung kenntlich gemacht Befundkategorien bieten die M glichkeit Befunde schlagwortartig bestimmten Themenbereichen zuzuordnen Der Benutzer kann den Namen und die Bedeutung einer solchen Kategorie selbst festlegen und jeden Befund einer Befundkategorie zuordnen Solche Kategorien erm glichen es sp ter in der Ausgabe einzelne Analysesichten auf ausgew hlte Problembereiche einzu schr nken Beispiele f r m gliche Kategorien sind etwa Benutzerauthenti sierung Logging oder auch Accounting Verbesserungsvorschl ge bieten die M glichkeit zu einem Befund einen Bug Fix mit anzugeben In der Regel wird es sich dabei um IOS Konfigurationsbe fehle handeln deren Funktion zus tzlich mit einem Kommentar erl utert werden kann Es steht dem Anwender jedoch frei als Verbesserungsvorschlag einen gew hnlichen Klartext zu hinterlegen Dumps dienen dazu umfassendere Analyseergebnisse tabellarisch ze
192. ur sehr vage dokumentiert ist Um Probleme zu vermeiden sollte man sich an die von Cisco empfohlenen Vorgehensweisen halten Das Werkzeug pr ft unter anderem e Sind SNMP Klauseln in der von Cisco empfohlenen Reihenfolge deklariert e Gibt es veraltete oder wegen Uberdeckung unwirksame SNMP Klauseln e Werden ungebr uchliche Nachrichtenl ngen packet sizes verwendet Bemerkungen Aus technischer Sicht ware es ohne weiteres vorstellbar die Pr ftiefe des SNMP Moduls noch erheblich zu verbessern Derzeit scheitert dies vor allem an den unzureichenden Informationen die Cisco zum Thema SNMP Konfiguration unter IOS zur Verf gung stellt W nschenswert w re insbesondere das genaue Zusammenspiel zwischen SNMPv1 v2 und v3 im Pr fmodul genau nachzu bilden um exaktere Vorhersagen ber gemischte Konfigurationen treffen zu k nnen 4 6 Modul NTP 72 Das NTP Pr fmodul berpr ft die Konfigurationseinstellungen des Routers f r das Network Time Protocol NTP NTP dient dazu die lokalen Systemuhren von Netzwerkkomponenten miteinander abzugleichen Synchron laufende Uhren sind wichtig denn sie erleichtern die berwachung und Fehlerbehebung in Kommunikationsnetzen erheblich Das Pr fmodul NTP baut auf Analysen des Pr fmoduls Connectivity auf vgl Kapitel 4 4 und kann daher nur im Verbund mit diesem aktiviert werden Ist Connectivity f r einen Pr flauf nicht aktiviert so wird es f r das abh ngige Modul
193. uter Configuration An IOS Router Configuration Checker 2 version 12 0 3 service nagle 4no service pad 5 service tcp keepalives in 6 service timestamps debug datetime localtime show timezone 7 service timestamps log datetime localtime show timezone 8 service passvord encryption Evaluation Profile Evaluation Report Accesslists Authentication amp Authorization CompoundPatterns a I E ngress Egress 10 hostname saaple router Lines and Interfaces 111 inet 1 ss 12 logging buffered 16384 critical 13 aaa new nodel 14 aaa authentication login LOGIN tacacs local 15 aaa authentication enable default tacacs enable 16 enable secret level 15 5 1 iNeBStr JFRdI7ckzPIZ8v9g8c1 Nodes and Subnets RAT Emulation User Manual Contact 17 enable secret level 10 5 1 abed DRkuvJyT57dhGjTHXF749 zj Evaluation Target Evaluation Profile Evaluated 2003 09 26 15 47 04 Module Findings OKAY CHECK WARN ALERT RATemulation 44 3 oo Source acsac v2 txt Passwords g 12 l 13 Last Modified 2003 08 26 15 46 27 CompoundPatterns 69 E i 10 IOS Version 12 0 IngressEgress 3 Router Name sample router SNMP 3 a Logging 21 5 l AAA li li NTP 3 1 i Connectivity z li i Rn Total 164 67 30 26 30 11 CROCODILE Router Configuration Differential Coloring An IOS Router Configuration Checker 2 version 12 0 3 service nagle 4 no service pad 5 service tcp keepalives in 6 service tinestanps debug datetime loca
194. utig und f hrt zu Konflikten die durch Pattern Modifikation ausger umt werden m ssen Vgl Kapitel 3 2 Abschnitt Konflikte Gierige oder minmale Pattern Interpretation auf Seite 24 e Wird jedem erkannten Befehl mittels attach_ciscolinks auch eine sinnvolle Manual Referenz zugeordnet Gegebenenfalls mu der Suchbegriff angepa t oder die Linkdatenbank im Unterverzeichnis Configuration erg nzt werden vgl dazu Kapitel 7 3 Erst wenn alle Patterns zufriedenstellend funktionieren sollte mit der Erstellung der Pr flogik begonnen werden Erstellen der Handler Pr flogik Pattern f r Pattern tauscht der Entwickler nun den generischen Handler generic_handler gegen eine ma geschneiderte Handler Routine aus Der generische Handler Code dient dabei als Vorlage ber den Parameter match hat der Handler Zugriff auf den Konfigurations befehl der durch seine bereinstimmung mit dem Pattern den Handler getriggert hat Die Pr flogik beginnt in der Regel damit den Match mittels add_logical_context bzw set_clause_context einem Analysekontext zuzuweisen der vorangehende Aufruf dump_hashref in der Vorlage gem Abbildung 29 protokolliert den match Datensatz auf die Konsole vergleiche Abbildung 5 auf Seite 31 und dient nur zur Orientierung w hrend der Entwicklung im fertigen Pr fmodul wird dieser Befehl auskommentiert oder gel scht Au erdem wird versucht mittels attach_ciscolinks
195. valuation Profile angelegt Die doppelte Ergebnisaufbereitung sowohl nach RAT als auch nach CROCODILE Konventionen liefert allen Anwendern auch ehemaligen RAT Nutzern den jeweils vertrauten Pr freport 5 6 Regelbeschreibungen RAT Pr fregeln lassen sich hierarchisch in Klassen und Unterklassen unter gliedern Eine RAT Regelklasse entspricht in etwa einem Pr fbereich im CROCODILE Sprachgebrauch Die Baumstruktur der Regelhierarchie erm glicht es ganze Teilb ume geschlossen auszuw hlen oder zu deaktivieren Dazu hat jede Regelklassen und Regelbeschreibung ein Attribut Selected mit den m glichen Attributwerten YES oder NO Das Original RAT beinhaltet eigene Editierwerkzeuge f r Regeldatens tze mit denen sich einzelne Pr fbereiche komfortabel ausw hlen und aktivieren lassen Der Regeleditor sorgt daf r da die entsprechenden Attribute korrekt und konsi stent gesetzt werden Etliche Pr fregeln sind auch mit Variablen parametrisierbar So lassen sich Regeln zum Beispiel an lokal vergebene Netzwerkadressen anpassen Die zugeh rigen Variablenbelegungen sind Teil der Pr fregelspezifikation und m ssen vor einem RAT Pr flauf vom Anwender angepa t werden Auch dabei unterst tzt der RAT Regeleditor den Anwender CROCODILE erkennt sowohl Regelklassen und Regelhierarchien als auch konfigu rierbare Regelparameter Es berpr ft deren Stimmigkeit und wendet die definierten Einstellungen korrekt an Wird z
196. viert so ist IngressEgress nicht lauff hig Das Pr fwerkzeug kontrolliert diese Abh ngigkeit automatisch und l dt das Partnermodul Connectivity notfalls automatisch nach Pr fvorgaben Die Pr fvorgaben des Moduls IngressEgress sind frei konfigurierbar Den konkreten Pr fauftrag erh lt das Modul ber die Modul Konfigurationsdatei IngressEgress conf im Unterverzeichnis Configuration vgl Abbildung 10 Seite 43 Die Konfigurationsdatei enth lt Anforderungen an Ingress Egress Filterung f r e Interfaces e Line Interfaces oder e Access Listen Dazu kann der Anwender sowohl Whitesets als auch Blacksets vorgeben Whitesets geben an welche Nachrichtentypen von einem Interface einem Line Interface oder einer Access Liste mindestens akzeptiert werden m ssen Blacksets legen fest welche Nachrichtentypen mindestens abgewiesen werden sollen Findet sich der Typ einer Nachrichten weder in einem Whiteset noch in einem Blackset so kann die entsprechende Nachricht aufgrund der Router Konfi guration akzeptiert oder abgewiesen werden das Pr fmodul l Bt beides unbeanstandet Prinzip der Filterspezifikation Syntax und Semantik um Anforderungen an Ingress Egress Filterung vorzu geben sind eng an IOS Befehle angelehnt Dies bietet dem Anwender ein vertrautes leicht zu beherrschendes Befehlsformat Das Beschreibungsprinzip ist einfach Der Anwender schreibt eine Spezifikation in Form einer Filter Liste die der gew
197. werden In bezug auf Traps spontane Mitteilungen des Routers ber besondere Betriebszust nde ist es ratsam sehr wichtige Mitteilungen m glichst nicht zu deaktiveren Umgekehrt sollten h ufige weniger relevante Ereignisse nur sehr sparsam signalisiert und daher bevorzugt deaktiviert werden Das Pr fmodul analysiert daher vor allem folgende Punkte e Wurde der SNMP Server deaktiviert e Sind die verwendeten Community Strings SNMP Pa w rter hinreichend schwierig zu erraten e Wird von sicheren Authentisierungs und Verschl sselungsm glichkeiten bestm glich Gebrauch gemacht e Werden die Sichten auf SNMP Informationen durch Views eingeschr nkt e Wird der Zugriff m glichst auf READONLY beschr nkt e Sind SNMP Zugriffe durch Access Listen eingeschr nkt e Ist ein System Shutdown via SNMP ausgeschlossen e Welche SNMP Traps sind aktiviert oder deaktiviert Manager Einstellungen Router z hlen in der Regel zu den verwalteten managed nicht zu den verwal tenden managing Objekten Es ist daher un blich einen Router als SNMP Manager zu konfigurieren Das Pr fmodul warnt wenn der Router als Manager konfiguriert ist somit also andere Netzwerkkomponenten wom glich umkonfi gurieren kann Copyright Fraunhofer IESE 2003 71 Pr fmodule Verschiedenes Insgesamt sind die verf gbaren IOS Klauseln zur Konfiguration der SNMP Einstel lungen recht verwickelt und voller Seiteneffekte deren Wirkung n
198. www cisco com univercd cc td doc product software ios122 122mindx index htm den Cisco IOS Release 12 2 Master Index und dort unter dem Suchbegriff logging command einen Verweis auf die Cisco IOS Configuration Funda mentals Command Reference Ein Blick auf das Inhaltsverzeichnis zeigt schnell da vor allem die Seiten FR 482 bis FR 505 ma gebliche Informationen zum Pr fbereich enthalten Durch genaues Studium der Command Reference lassen sich unmittelbar folgende potentiell wichtige Konfigurationskommandos identifizieren logging default logging buffered logging console logging facility logging history size logging linecard logging monitor logging on logging rate limit logging source interface logging synchronous logging trap Daneben werden noch weitere Kommandos in Zusammenhang mit Logging erw hnt snmp server enable traps snmp server host access list extended Copyright Fraunhofer IESE 2003 1 1 5 Erstellen eigener Pr fmodule 8 2 116 Analyse Inwieweit diese Kommandos tats chlich f r eine berpr fung relevant sind mu die nachfolgende Analyse erweisen Um Pr fkriterien zu entwerfen mu der Entwickler als n chstes die einzelnen Befehlsbeschreibungen analysieren Selbst ein IOS Experte hat vermutlich nicht alle Befehle und deren vielf ltige Konfigurationsoptionen auswendig parat Die Analyse st tzt sich daher zun chst auf das Cisco Reference Manual in Zweifels f llen auf e
199. x_suggestion oben rename_context old_context_name Es kommt gelegentlich vor da man einen Kontext umbenennen mu Dies ist z B der Fall wenn man einen Kontext mit dem Namen Accesslist 102 angelegt hat die Access Liste aber im Laufe der Konfigurationsbeschreibung redefiniert wird In diesem Fall kann man den alten Kontext Accesslist 102 vom System umbenennen lassen Damit k nnen diesem Kontextnamen 133 134 andere Zeilen zugeordnet werden Der neue Name des alten Kontextes wird automatisch vom System ermittelt und als R ckgabewert der Funktion ausgegeben Somit kann man auch dem alten Kontext noch Anmer kungen usw hinzuf gen add_DumpData name position text Mit dieser Methode kann man formatierten Text speichern Jeder Textblock bekommt einen Namen name ber den man auf ihn verweisen kann Die Darstellung des Textes erfolgt als Tabelle Deshalb mu man bei jedem String den man in diesen Text Block einf gen will die Zeilen und Spalten nummer angeben in der der Text erscheinen soll M chte man ganzzeilige Ausgaben generieren kann man anstelle der Spaltennummer auch einen Stern angeben Die Angabe dieser beiden Werte geschieht mittels des Positions Strings Als erstes wird eine Zeilennummer erwartet dann durch ein Komma getrennt die Spaltennummer oder ein Stern Somit sieht ein Positions String der einen Text in die zweite Spalte der vierten Zeile schreiben will folgenderma en au

Download Pdf Manuals

image

Related Search

Related Contents

Foxit RMS PDF Protection Tool User Manual    Bedienungsanleitung  Des clients satisfaits – c`est entre vos mains  Téléchargez les documents  FALCON M  CAHIER DES CHARGES D`UNE EXPERIMENTATION DE  K09-2GL, K09-2SPGL and K09-3GL  Casio AP-220 Electronic Keyboard User Manual  BETRIEBSANLEITUNG FÜR DRAHTSCHWEISSMASCHINE  

Copyright © All rights reserved.
Failed to retrieve file