Hálózatok monitorozása Mobil és vezetéknélküli hálózatkezelés Linux és * BSD operációs rendszerek alatt Bokor László BME-HT goodzi@mcl.hu
Áttekintés A hálózati protokoll-analizátorokról röviden Mi az a Wireshark? Wireshark alapok lipPcap, WinPcap Capture opciók Capture szűrők Display szűrők Adatok elemzése GUI vs. CLI Wireshark CLI eszközei Capture vezeték nélküli környezetben Amire a Wireshark sem képes Összefoglalás Hálózatok monitorozása
Hálózati protokoll-analizátor Számítógép hw/sw, ami lehallgatja és tárolja a hálózat forgalmát Elfogja a csomagokat (capture) és analizálja a tartalmukat A hálózati protokoll-analizátor feladatai: Hibakeresés Hálózati szűk keresztmetszetek felderítése Behatolás-észlelés (intrusion detection) Alkalmazások és szolgáltatások működésének elemzése Hálózatok monitorozása
A hálózat-analízis öt lépése A nyers adatok gyűjtése (capture) A nyers adatok szűrése (filter) Adatból információ Az információ megjelenítése Az információ validálása Kérdések, melyeket tegyünk fel a hálózat-analízis előtt: Milyen információra van szükségem? A kimenet vizualizációja Milyen adatforrásaim vannak a nyers adatok gyűjtéséhez? Az adatforrások kimeneti formátumával legyünk tisztában Milyen eszközök állnak rendelkezésemre? Mire képesek, mik az opciók: manual! Gyakorlat + Tapasztalat + kreativitás! Hálózatok monitorozása
Mi az a Wireshark? A wireshark egy hálózati protokoll- és csomag-analizátor Megpróbálja elfogni a hálózaton közlekedő csomagokat és a lehető legtöbb információt tartalmazva megpróbálja megjeleníteni a csomag adatait UNIX és Windows környezet Sniffer, vagyis lehallgató számítógépes program Hasonlít a tcpdump-hoz Fejlett GUI rengeteg szűrési és osztályozó opcióval eWeek” Labs szerint a Wireshark "The Most Important Open-Source Apps of All Time" as of May 2, 2007“ Eredeti szerő: Gerald Combs, Ethereal néven, 1998-ban A Wireshark nevet 2006 júniusában kapta Hálózatok monitorozása
Mire jó a Wireshark? Hálózati adminisztrátorok: hibakeresés, problémaelhárítás Biztonsági szakemberek: biztonsági problémák és rések felderítése Fejlesztők: protokoll-implementációk debugja Bárki: hálózat elemzése, protokollok működésének elsajátítása Fontos: A Wireshark nem behatolás-jelző A Wireshark nem képes a hálózaton beavatkozásra, csak mérni és adatot gyűjteni tud róla Hálózatok monitorozása
Legfontosabb Wireshark szolgáltatások „Megérti” a különböző hálózati protokollok felépítését Megjeleníti a beágyazásokat és a protokoll-fejléc szerkezeteket, megmagyarázza szerepüket Csak a pcap könytár által támogatott hálózatokon működőképes Cross-platfrom szoftver: Linux, Mac OS X, Microsoft windows Hálózatok monitorozása
libPcap, WinPcap libPcap WinPcap: A Pcap megfelelője Rendszerfüggetlen interfész csomagok felhasználói szintű elfogására Hordozható keretrendszer alacsonyszintű hálózatmonitorozási célokra Támogatja a hálózati statisztikák gyűjtését, biztonsági monitorozást, hálzat debuggolását, stb. WinPcap: A Pcap megfelelője Szabványos eszköz Windows rendszereken történő link-szintű hozzáférés biztosításához Lehetővé teszi a csomagok elfogását és küldését is Egy speciális illesztőprogram is a része, mely kiegészíti az operációs rendszert és biztosítja az alacsony szintű hálózati hozzáférést Függvénykönyvtár A lipPcap UNIX API windows változatát is tartalmazza Hálózatok monitorozása
Wireshark telepítés: Windows letöltés next, klikk, next, klikk, finish Hálózatok monitorozása
Wireshark telepítés: Linux (Ubuntu) # apt-get install wireshark Hálózatok monitorozása
Hogyan szerzek adatot? Capture lehetőségek Capture kikötések Vezetékes Vezeték nélküli Capture kikötések Hubs Mirrors/Monitors/SPANs Promiscuous mód („válogatás nélkül”) AirPcap (802.11 adat, menedzsment és vezérlő keretek) Hálózatok monitorozása
Capture opciók Hálózatok monitorozása
Capture szűrők Szintaxis: Pl.: protokoll, irány, host(s), érték, logikai operátorok, egyéb kifejezések Protokoll ether, fddi, ip, arp, rarp, decnet, lat, sca, moprc, mopdl, tcp and udp. irány src, dst, src and dst, src or dst Logikai operátorok not, and, or Pl.: tcp dst 10.1.1.1 80 and tcp dst 10.2.2.2 3128 Hálózatok monitorozása
Display szűrők Ha nem vagy biztos a dolgodban: jobb klikk Filter Bar Találd meg a számodra érdekes mezőt, majd építsd fel a szűrőt egy jobb egérkattintással! Filter Bar A Filter bar színekkel jelzi, hogy a megadott kifejezés szintaxisa helyes-e. Zöld: helyes Vörös: helytelen Sárga: kérdéses A legördülő menü a 10 legkorábban megadott szűrési feltételt is felkínálja Hálózatok monitorozása
Display szűrő operátorok display.field.name operator érték eq, == egyenlő ne, != nem egyenlő gt, > nagyobb lt, < kisebb ge, >= nagyobb vagy egyenlő le, <= kisebb vagy egyenlő contains, speciális adatot tartalmaz Kombinálás az and/or segítségével, negálás a NOT-tal Zárójelek használhatók a nagyobb kifejezéseknél
Display szűrő példa Don't show me beacons or control frames: "wlan.fc.type_subtype ne 8 and wlan.fc.type ne 1"
Display személyre szabása: Oszlopok A Libpcap PrismAVS vagy Radiotap fejlécekkel látja el a csomagokat, így téve értelmezhetővé az RSSI értéket és a rate információkat WinPcap az AiroPeek NX-et használja: RSSI százalék, rate Mindezt meg is jeleníthetjük az oszlopokban, személyre szabással! Edit Preferences Columns New, name column, select format "IEEE 802.11 TX Rate" Ugyanezt "IEEE 802.11 RSSI„-re is Wireshark >=0.99.6 esetében újra se kell indítani a programot és már meg is jelenik az új oszlop az újonnan felvett információkkal!
Wireshark Column Preferences menü
Display színezése I. A kereteknek sajátságainak megfelelően színeket rendelhetünk a csomagokhoz a csomaglitában Egyszerűén értelmezhető csomaglista, display szűrők működésének gyors elemzése Néhány színezett sor is nagyban segít a nagy capture fájlok elemzésekor! Click View Coloring Rules Nevezd meg a view-t, add meg a display szűrőt, állítsd be az elő- és háttér színeket Az egyedi szabályok elmenthetők
Display színezése II. A hibák gyorsan kiszúrhatók, és segítenek a kérdéses csomagokra fókuszálni! Hogyan érdemes? A színezési szabályok ACL-szerűen kerülnek felhasználásra: az első illeszkedő szabály nyer! A szabályok megoszthatók (Import/Export) Ha nincs szükség a színezésre, akkor üres szabályrendszert használj: a fájlok hamarabb betöltődnek így! Hálózatok monitorozása
Display makrók WiFi címekhez A makrók egyszerűsítik a komplex display szűrők használatát 802.11 többféle címmezőt használ: Source, Destination, Transmitter, Receiver, BSSID "wlan.addr" csak a Source, Destination mezőket tartalmazza Makró: wlanalladdr "(wlan.addr eq $1 or wlan.bssid eq $1 or wlan.ta eq $1 or wlan.ra eq $1)"
Adatok elemzése: Statistics>Summary A statisztikák segítségével egyszerűen felmérhető a mérési környezet Használd a statisztikákat, hogy meghatározd a mérésed fókuszpontjait! Használd a grafikonokat, hogy ellenőrizd a hipotéziseidet! Hálózatok monitorozása
Adatok elemzése : Statistics>Protocol Hierarchy Hálózatok monitorozása
Adatok elemzése : Statistics>Conversations Hálózatok monitorozása
Adatok elemzése : Statistics>End Points Hálózatok monitorozása
Adatok elemzése : I/O grafikon Hálózatok monitorozása
Grafikus interpretáció I. Hálózatok monitorozása
Grafikus interpretáció II. Folyamatok és folyamok (strams) követése – Kiváló szolgáltatás! Hálózatok monitorozása
GUI vs. CLI Graphical USER Interface vs. COMMAND Line Interface GUI -> szolgáltatásgazdag, de “rögzített” funkcionalitás CLI egyéb eszközökkel -> flexibilitás! CLI -> automatikusan ismétlődő feladatokra! CLI-t nem csak akkor használunk, mikor a GUI nem elérhető! Hálózatok monitorozása
A Wireshark CLI eszközei Wireshark CLI eszközök tshark dumpcap editcap mergecap capinfos Egyéb CLI eszközök |, >, for … do … done, `<command>` cut, sort, uniq, tr sed, awk szkriptnyelvek (sh/perl/python/…) Hálózatok monitorozása
tshark A Wireshark CLI verziója Hasonló a tcpdump-hoz, de Állapottartó Bővebb kimeneti opciók Display szűrők dumpcap a capture motor standard opciók: -D, -i, -c, -n, -l, -f, -R, -s, -w, -r névfeloldás (-n) Időbélyegek formátuma (-t<format>) „decode as” (-d tcp.port==8080,http) alapértékek felülírása (-o <pref>:<value>) kimeneti formátumok (-V -T <format>) summary, use of column prefs Verbose (-V), hex dump (-x) dekódolt csomagok formátumának meghatározása: Packet Details Markup Language (-T pdml) mezők (-T fields -E <sep> -e <field1> -e <field2> …) statisztikagyűjtés (-z …) protokoll hierarchia (-qz io,phs) Folyamatok (conversations) (-qz conv,eth , -qz conv,tcp) i/o statisztikák (-qz io,stat,10,ip,icmp,udp,tcp) Hálózatok monitorozása
dumpcap (wire|t)shark használja külön is használható tshark-hoz hasonló opciók, de állapotmentes! (örökké futhat ) gyors! „ring buffer” dumpcap -i 5 -s0 -b filesize:16384 -files:1024 -w ring.cap Hálózatok monitorozása
capinfos tracefile-ból összegző jelentés készítése minden információ vs. specifikus információ $ capinfos valami.cap File name: valami.cap File type: Wireshark/tcpdump/... - libpcap File encapsulation: Ethernet Number of packets: 3973 File size: 1431813 bytes Data size: 1368221 bytes Capture duration: 1299.436650 seconds Start time: Thu Jan 17 11:37:16 2010 End time: Thu Jan 17 11:58:55 2010 Data rate: 1002.53 bytes/s Data rate: 8256.42 bits/s Average packet size: 320.18 bytes Hálózatok monitorozása
editcap A capture fájlok manipulálására szolgál „editcap –h” a barátunk Működés: keret- vagy időtartományok megadása editcap -r valami.cap tmp.cap 1-1000 2001-3000 editcap -A "2010-01-17 11:40:00" -B "2010-01-17 11:49:59" valami.cap tmp.cap Fájl darabolása editcap -c 1000 valami.cap tmp.cap Hálózatok monitorozása
mergecap A capture fájlok összefésülésére szolgál „mergecap –h” is barátunk Időbélyeg alapú összefésülés mergecap -w out.cap in-1.cap in-2.cap Egyszerű append mergecap -a -w out.cap in-1.cap in-2.cap Hálózatok monitorozása
Egyéb CLI eszközök: bash Parancs csővezeték | ls -1t | head Kimenet átirányítása > ls -1t | head > newfiles.txt Ciklusok for … do … done for word in ‘one’ ‘two’ ‘three’; do echo $word; done parancskiértékelés (``) jelek között for file in `ls -1t | head`; do echo $file; head -1 $file;echo "";done > firstlines.txt Változók értékadása newfile=`echo ${file}.bak` Hálózatok monitorozása
Egyéb CLI eszközök: cut, sort, uniq, tr cut (szövegfájl minden sorából részek eltávolítása) -c (by position) cut -c1-10 /etc/passwd -f [-d ‘<delimiter>’] (by field) cut -d ':‘ -f1 /etc/passwd sort (szövegfájl sorainak rendezése) with no option sort names.txt -r (reverse sorting) sort -r names.txt -n (numerical sort) du -ks * | sort -rn | head uniq (sorismétlések jelentése vagy megszüntetése) with no option sort names.txt | uniq -d (only ‘doubles’) sort names.txt | uniq -d -c (show count) sort names.txt | uniq -c tr (karakterek törlése vagy ) “ ” “_” echo “one two” | tr “ “ “_” -d “\015” cat dosfile.txt | tr –d “\015” > unixfile.txt Hálózatok monitorozása
Egyéb CLI eszközök: sed, awk szkriptnyelv erejű alkalmazások! sed – adatfolyam feldolgozása szűrési és átalakítási célokból awk – mintafelismerő és feldolgozó nyelv Hálózatok monitorozása
Sniffing és Capture vezeték nélküli környezetben A vezeték nélküli környezet komplikált A fizikai réteg kiszámíthatatlansága nehézzé teszi a hibakeresést és felismerést Ezért van szükség a vezeték nélküli forgalom lehallgatására és a csomagok elfogására/elemzésére Nincs szükség authentikációra és hozzáférési privilégiumokra a lehallgatáshoz (osztott közeg!) Hasznos a biztonsági elemzésekhez, audithoz A vezeték nélküli interfészek különböző működési módokat ismernek Master, Managed, Ad-Hoc, Monitor A monitor mód: 802.11 keretinformációk A managed mód: Ethernet információk Hálózatok monitorozása
Managed mód vs. Monitor mód > tshark -np -i 4 Capturing on Intel(R) PRO/Wireless 2915ABG Network Connection 0.196409 205.188.9.40 -> 10.240.3.197 Oncoming Buddy: thenickde 0.307958 10.240.3.197 -> 205.188.9.40 prelude > aol [ACK] Seq=1 Ack=133 Win=65083 Len=0 2.336869 10.240.3.197 -> 205.188.13.24 AIM SST, Download Buddy Icon Request 3.850285 00:0b:86:01:87:00 -> ff:ff:ff:ff:ff:ff Who has 10.240.3.27? Tell 10.240.3.1 Monitor mód (RFMON) > tshark -n -i 2 Capturing on AirPcap N Wireless Capture Device 0.001234 00:0b:86:d5:e4:02 -> ff:ff:ff:ff:ff:ff Beacon frame, SN=1297, FN=0, Flags=........, BI=100, SSID="ethersphere-voip" 1.077842 00:19:7e:b4:fb:47 -> ff:ff:ff:ff:ff:ff Data, SN=1321, FN=0, Flags=.p....F. 6.522158 00:13:ce:55:98:ef -> ff:ff:ff:ff:ff:ff Probe Request, SN=350, FN=0, Flags=........, SSID=Broadcast[Malformed Packet] 6.522176 -> 00:14:bf:0f:03:32 (RA) Acknowledgement, Flags=........ Hálózatok monitorozása
RFMON implementáció A módot az illesztőprogramok határozzák meg Linux: RFMON támogatott nyílt forráskód! Windows: RFMON nem támogatott nehogy olyasmire használjuk már az eszközt, amit a gyártó nem akar…" Megoldás: Airpcap (CACE Technologies) Egyszerre csak egy csatornán tud hallgatózni Az áthallások a közeli csatornákon utazó adatokat is „belerakhatják” Hálózatok monitorozása
Linux – RFMON mód beállítása I. iwconfig – vezeték nélküli paraméterek konfigurálása ifconfig - IP cím, up/down, stb. Használhatjuk Centrino, HostAP, RealTek, RTL, Prism54, new Mac80211, és MADWIFI-old illesztők esetében wardrive@~:# iwconfig wlan0 mode monitor channel 1 wardrive@~:# iwconfig wlan0 | grep Mode Mode:Monitor Frequency:2.412GHz Access Point: 00:00:00:00:00:00 wardrive@~:# ifconfig wlan0 | grep HWaddr wlan0 Link encap:UNSPEC HWaddr 00-30-F1-0E-51-1F-00-00-00-00-00-00-00-00-00-00
Linux – RFMON mód beállítása II. MADWIFI-NG kártyákhoz a “wlanconfig” szükséges (create/destroy) Szülő/gyermek referenciákat használ a wifi0 (szülő) és a tetszőlegesen létrehozott gyermek eszközök (pl. ath0) kezeléséhez Monitor mód csak akkor használható, ha nincs más internfész Az összes gyermek interfészre ki kell adni a "destroy" parancsot wardrive@~:# wlanconfig ath0 destroy wardrive@~:# wlanconfig ath0 create wlandev wifi0 wlanmode monitor ath0 wardrive@~:# ifconfig ath0 up wardrive@~:# iwconfig ath0 | grep Mode Mode:monitor Frequency:2.412 GHz Access Point: 00:00:00:00:00:00
Linux – RFMON mód beállítása III. Madwifi-NG eléggé “válogatós” ha monitor módról van szó Elvileg lehetésges a managed + monitor vagy a master + monitor kombináció, de a gyakorlat mást mutat Monitor módban nem kedveli a csatornák között váltást A “nem kedveli” azt jelenti, hogy megáll az adatok közlése pár percre, mindenféle ésszerű ok nélkül Illesztőprogram újratöltése, mint csodamódszer “autocreate=none” wardrive@~:# rmmod ath_pci wardrive@~:# modprobe ath_pci autocreate=none
AP hiba- Authentikációs algoritmus nem támogatott
Amire a Wireshark sem képes Nem tud térképet készíteni a hálózatról Nem képes csomagok injektálására, generálására: Passzív eszköz! Csak azokat a protokollokat képes részletezni, melyekre fel van készítve! Csak olyan adatot képes elfogni, amit az OS\Interface\Interface driver támogat Pl. vezetéknélküli környezetben! Hálózatok monitorozása
Összefoglalás A Wireshark valóban nélkülözhetetlen mindenki számára, aki a hálózatok működésével foglalkozik, bármilyen szinten! Hibakeresés és elemzés A Display és Capture szűrők nagy potenciállal bíró eszközök! A hatékony alkalmazás gyakorlatot igényel, de kifizetődik! Hálózatok monitorozása
Felhasznált források, irodalom Wireless Sniffing with Wireshark http://www.willhackforsushi.com/books/377_eth_2e_06.pdf Wireshark irodalomgyűjtemény: http://wiki.wireshark.org/Presentations Sharkfest előadások: http://www.cacetech.com/SHARKFEST.08/ http://www.cacetech.com/sharkfest.09/
Bokor László BME-HT goodzi@mcl.hu Köszönöm a figyelmet! Bokor László BME-HT goodzi@mcl.hu