ACER_JUN23 ACER_JUN23 ACER_JUN23

Python a kybernetická bezpečnosť – 2. časť

0

V tejto časti seriálu sa doslova bezhlavo vrhneme do neprebádaných vôd a hneď zostra začneme programovať. Pri plnom vedomí toho, že sme si zatiaľ takmer nič nevysvetlili, pripravíme prvú verziu vzorovej aplikácie, ktorú budeme v nasledujúcich častiach dopĺňať o novú funkcionalitu. Ako základ nám poslúži kód, ktorý sme už raz predstavili, ale nateraz použijeme iné výkonné príkazy. Čo sa týka teórie, tú budeme vysvetľovať postupne s uvedením vzťahu k jednotlivým príkazom a postupom. Chápeme, že bez ďalšieho štúdia potrebných detailov budú viaceré veci nejasné, ale naším cieľom je čo najrýchlejšie prezentovať praktické aplikácie bez zdĺhavého venovania sa teórii.

Drôtové vs. bezdrôtové prostredie

Väčšinu nami opisovaných riešení budeme realizovať v bezdrôtovom prostredí. Prečo? Jeden z najdôležitejších dôvodov je všadeprítomná preferencia tohto druhu sietí. Nemenej dôležitý dôvod je implementácia pokročilých kontrolných mechanizmov v rámci drôtových, resp. optických sietí, ktoré je veľmi ťažké prekonať a ktorých narúšanie môže viesť k problémom s legislatívou. Okrem toho sa nám v rámci bezdrôtových sietí ponúkajú (aj keď nechcene) mnohé spôsoby interakcie, a to často bez toho, aby sme porušili akékoľvek zákony.

Potrebné nástroje

Náš kód alebo postupy budeme riešiť na úplne obyčajnom prenosnom počítači s bežným sieťovým rozhraním, pomocou ktorého sme sa doposiaľ pripájali k ostatným zariadeniam, resp. k sieti internet. Ako zvyčajne použijeme operačný systém Linux (Ubuntu distro). Nič nám nebráni použiť niektorý z virtualizačných nástrojov, ako napr. VirtualBox, ale naše aplikácie môžeme spúšťať aj priamo, a to po doinštalovaní nasledujúcich balíčkov:

sudo apt install net-tools

Základné sieťové nástroje

ifconfig

sudo apt install wireless-tools

Sieťové nástroje určené pre bezdrôtové siete

iwconfig, iwgetid

sudo apt install aircrack-ng

Nástroje určené na prelomenie (cracking) bezpečnosti bezdrôtových sietí

airmon-ng

sudo apt install tshark

 

 

 

sudo dpkg-reconfigure wireshark-common

sudo chmod +x /usr/bin/dumpcap

Konzolová verzia notoricky známeho nástroja Wireshark, ktorý je určený na zachytávanie a analýzu sieťovej prevádzky

 

Umožnenie spúšťania tshark pod účtami bežných (non-superusers) používateľov

tshark

sudo apt install pip

Python Package Installer

pip

sudo apt install idle

Python Integrated Development Environment

idle

Príprava na programovanie

Aplikácie budeme programovať v bežnom Pythone pomocou knižníc Pandas a Dash. Knižnica Pandas je určená na manipuláciu a analýzu rôznych typov údajov. Pomocou frameworku Dash dokážeme vytvárať interaktívne webové aplikácie slúžiace na vizualizáciu údajov. Prioritne sa zameriava na analýzu, revíziu, kontrolu údajov a ich vizualizáciu, modelovanie, reportovanie... Viac informácií o knižnici Pandas a frameworku Dash možno nájsť v predošlých častiach tohto seriálu.

Programový kód aplikácie budeme v počiatočnej fáze pripravovať v základnom Python IDE IDLE. Zdrojový súbor editujeme jednoduchým príkazom idle scanner.py. Vykonanie kódu zabezpečíme príkazom sudo python3 scanner.py. Spúšťanie s právami root je nevyhnutné z dôvodu spúšťania systémových príkazov v rámci aplikácie, ktoré nemožno spustiť pod účtami bežných (non-superusers) používateľov.


Obr. 1 Podtypy manažment rámcov štandardu IEEE 802.11 (Wi-Fi)

Monitoring siete

Získavanie informácií o potenciálnych cieľoch útokov, resp. získavanie informácií v rámci penetračných testov kybernetickej bezpečnosti je jeden z najdôležitejších krokov, ktorý determinuje našu ďalšiu činnosť. V prípade drôtových sietí môže byť skenovanie siete klasifikované ako trestná činnosť, a preto sa takýmto krokom zďaleka vyhneme. Bezdrôtové siete však fungujú na úplne inom princípe a ich skenovanie bez akéhokoľvek zásahu (zatiaľ) pre nás nepredstavuje žiadne právne riziko.

Nesmiernymi výhodami bezdrôtových sietí je jednoduchosť až trivialita ich používania, ktoré sú doplnené o ich všadeprítomnosť. Tieto výhody však získavame za cenu niekoľkých zásadných nevýhod. Tá najdôležitejšia je pravidelné vysielanie vlastných údajov a takisto prejavovanie záujmu o údaje ostatných zariadení prítomných v okolí. Zariadenia, ktoré sa v rámci najznámejšej bezdrôtovej siete Wi-Fi, založenej na pravidlách definovaných štandardom 802.11, chcú pripojiť k iným zariadeniam, vysielajú tzv. Probe Request rámce (frames – Data Link vrstva modelu OSI) spolu s viacerými údajmi používanými na výber „spriazneného“ zariadenia. Naopak, zariadenia, ktoré ponúkajú možnosť pripojenia (zväčša tzv. prístupové body – Access Point – AP), vysielajú tzv. Beacon rámce, pomocou ktorých informujú o svojej existencii a podporovaných vlastnostiach. Pomocou rámcov Probe Request a Beacon sa teda jednotlivé zariadenia a ich sieťové rozhrania vzájomne informujú o svojej prítomnosti a svojich spôsobilostiach. Podrobnosti vysvetlíme neskôr. 

Obr. 2 Grafický výstup aplikácie WiFiScanner

WiFiScanner

Cieľom našej prvej aplikácie bude základný monitoring sietí Wi-Fi. Po úspešnej inštalácii všetkých uvedených nástrojov musíme naše sieťové rozhranie prepnúť do tzv. Monitor módu, a to pomocou príkazu sudo airmon-ng start „wlp2s0“ (wlp2s0 je názov bezdrôtového rozhrania v rámci nášho OS). Sieťové rozhranie v móde Monitor prijíma všetky údaje, ktoré sú vysielané akýmkoľvek iným zariadením v našom okolí s kompatibilným sieťovým rozhraním. Je jedno, či ide o počítač, smartfón, tablet, tlačiareň, fotoaparát, alebo obyčajné hodinky.

Ako sme uviedli, každé zariadenie, ktoré má možnosť pripojiť sa k sieti Wi-Fi, začne po aktivácii Wi-Fi vysielať rámce Probe Request. Ich cieľom je nadviazať kontakt s okolitými zariadeniami (najmä AP) a v prípade kladnej reakcie participovať na vytvorení príslušného spoja. Naopak, hlavnou úlohou rámcov Beacon je informovať okolité zariadenia o možnosti využitia kvalitnejšieho spoja v prípade pohybu/prechodu zariadenia od jedného AP k druhému. V oboch prípadoch teda dochádza k automatickému vysielaniu uvedených rámcov.

Aplikácia WiFiScanner využíva nástroj tshark na zachytávanie rámcov Probe Request a Beacon vysielaných zariadeniami v našom okolí. Napriek tomu, že moderné ovládače implementujú viaceré obranné mechanizmy, ako napr. náhodná zmena MAC adresy, nevysielanie názvu siete (SSID), nevysielanie špecifických elementov výrobcu (Vendor Specific Elements), zachytávaním uvedených rámcov máme možnosť získať mnoho užitočných informácií o zariadeniach, ktoré sa nachádzajú v našom okolí.

Marek Sopko

Zobrazit Galériu

Marek Sopko

Všetky autorove články

Pridať komentár

Mohlo by vás zaujímať

Mohlo by vás zaujímať