S ChatGPT pracuji už poměrně dlouho. Za měsíc mi ušetří desítky hodin času. Používám ho na řadu věcí od drobných konzultací, přes pomoc s tvorbou obsahu/kódu až po různé revize a návrhy na zlepšení. Nikdy jsme jej však nepoužíval jako „staršího studenta“, který vám pomáhá trpělivě dovysvětlit kontext a prohloubit vzdělání.
Dostal jsem novou pracovní výzvu, která zahrnuje určitý segment kybernetické bezpečnosti. Vzhledem k tomu, že moje znalosti jsou spíše praktické a značně roztříštěné, rozhodl jsem se že si je doplním. A není nic lepšího než to vzít pořádně a pěkně od začátku. Rozhodl jsem se pro kurzy na TryHackMe, protože krom detailních kurzů je k dispozici i virtuální stroj, kde si vše můžete prakticky vyzkoušet. Když nemáte náladu na učení, tak můžete otestovat s značně prohloubit své schopnosti na různých výzvách.
Ale zpět k tématu. Byl jsem v kurzu (místnosti), který vysvětluje základy síťové komunikace. Nic složitého, většinu věcí znám. V jedné sekci se vysvětluje fungování DHCP. V podstatě účele bylo, jen říct si, že počítač si přes DCHP může požádat o přidělení IP adresy, zjistí jaké má používat DNS pro překlad domén a na jaké IP je brána pro komunikaci mimo interní síť.
Všechno poctivě pročítám i když znám. Když v tom narazím na část, kde se píše že klient je na portu 68 a pošle na port 67 serveru UDP požadavek o přidělení IP adresy. Říkám si proč? Proč je komunikace takto roztahaná na dva různé porty?
Tak to zadám do ChatGPT. Ten okamžitě přispěchá s odpovědí, že počítač neví, kde je DHCP server, takže musí poslat broadcast požadavek (na všechny), když to čtu tak už mi dojde, že takto by zbytečně přijmul požadavek i on sám. Rozdělení na porty tak dává perfektní smysl.
Nicméně okamžitě mě napadá, že pokud zařízení v interní sítí takto rozesílají DHCP požadavky přes broadcast, tak by se přeci jen daly odchytit. Což mi ChatGPT potvrzuje.
Netrvá dlouho a už spolu připravujeme python skript, na odchytávání UDP požadavků směřujících na port 67. První verze je jednoduchý koncept, kde jsem se hlavně chtěl podívat jak takový paket s požadavkem vypadá.
import socket
def listen_dhcp():
# Vytvoření UDP socketu
sock = socket.socket(socket.AF_INET, socket.SOCK_DGRAM)
# Povolení opětovného použití adresy
sock.setsockopt(socket.SOL_SOCKET, socket.SO_REUSEADDR, 1)
# Bind na všechny IP adresy (0.0.0.0) a port 67 (DHCP server port)
sock.bind(('0.0.0.0', 67))
print("Poslouchám na UDP portu 67...")
while True:
data, addr = sock.recvfrom(4096) # Přijme až 4096 bajtů
print(f"\nPřijatý paket od {addr}:")
print(data.hex()) # Vytiskne surová data v hexadecimálním formátu
if __name__ == "__main__":
listen_dhcp()
Samozřejmě v mé interní síti se toho zas tak moc neděje, takže odhlásím mobil od wi-fi a znovu přihlásím, abych chytnul paket. Jsem z toho nadšený. Později se k projektu vracím. Rozšiřuji jej o barevné zvýraznění informací v paketu a vypisuji, co se z něj dá zjistit. Zároveň abych měl provoz se opět díky ChatGPT učím o dhcping
který posílám z Kali Linuxu co mi jede jako WSL.

Ok zpět k učení. Po prvních úspěšném odchycení UDP paketu přemýšlím nad celým konceptem. Samozřejmě jako první mě napadá, že pokud bych poslouchal komunikaci a byl už na sítí, tak bych třeba mohl odpovědět místo DHCP serveru. Načež se dozvídám o útoku zvaném DHCP spoofing.
Pak se vrátím ke kurzu, kde je vysvětlený celý proces komunikace (Discover, Offer, Request, Acknowledge). Samozřejmě mě napadá další možný útok a to, že by nějaký skript mohl jako více zařízení vybrat celý rozsah. Načež zjistím, že jsem „objevil“ útok DHCP starvation.
Závěr
Sekce o DHCP měla trvat tak 5 minut. Nakonec se mi protáhla tak na hodinu, právě proto že jsem se díky ChatGPT začal v tématu vrtat. Když jsem o tom druhý den přemýšlel, tak mi přišlo zajímavé, jaký dopad vlastně má využívaní AI pro výuku.
Na první pohled by se mohlo zdát, že AI učení výrazně urychlí, protože odpovídá okamžitě (nemusíte hledat zdroje), nikdy ji neunavíte dotazy a dalo by se říct, že její trpělivost je nekonečná.
Co když ale ve skutečnosti se učení zpomalí, protože AI umožní jít mnohem více do hloubky a ptát se na věci, které by jinak zůstaly skryté, nebo by na ně nezbyl čas. Výsledkem tak není o „tradičním“ rychle se to „nabiflovat“, ale hlubší pochopení. V mém případě mě z jednoduchého kurzu o DHCP dovedla k experimentování se sítí, skriptování a pochopení útoků, které se budou probírat později.
Myslím, že dopad AI na vzdělávání bude velmi individuální. U někoho může být přínosem zásadním, jiný ji využije jen povrchně. Je to nástroj, který otevírá nové možnosti. AI nebude rozšiřovat schopnosti všech stejně. Tím že individualizuje učební proces ještě více odhalí rozdílí mezi studenty.
Těm zvídavým a motivovaným umožní jít mnohem dál než kdy dřív. Těm, kdo se učí jen z povinnosti, nijak zvlášť nepomůže, spíše naopak. V důsledku to znamená, že rozdíl mezi „průměrnými“ a „zvídavými“ studenty se s nástupem AI ještě více prohloubí.
Učení bude víc než kdy jindy o studentovi a jeho motivaci. Ne o tom, co je ve výkladu, ale co s tím sám student udělá.