Brno? Vypsali jsme pro vás nové termíny školení OOP v Brně!
Avatar
SebelaMichal
Člen
Avatar
SebelaMichal:18. března 22:09

Potřebuji teoretickou radu. Lze do IP (tcp, udp) protokolů přidat nějakou vlastní hlavičku? Rád bych vytvořil s někým síťový ovladač pro windows (později třeba i ostatní os), který by do tcp a udp protokolů přidával nějaká data navíc, ne do obsahu, ale do hlavičky, zda tam vůbec něco takového je :) Neznám ale úplně všechny detaily síťařiny. Dokázal by mi na to někdo prosím odpověďět? Pokud by to nešlo v IPv4, šlo by to v IPv6 ? Pokud ne, lze tcp nebo i udp protokol zabalit do vlastního protokolu ? To předpokládám, že ano. Fungují tak vpn.

Zkusil jsem: Googlit, wireshark

Chci docílit: Rád bych zničil všechen malware - to se mi asi nepovede, ale proč k tomuto nezkusit přispět - rád bych založil nějaký opensource projekt v tomto duchu. Možná vymýšlím kolo. Zajímaly by mě názory ostatních odborníků.... Aktuálně si potřebuji odpověďět na pár otázek, po nichž budu vědět, zda moje snažení má smysl. :)

Zkrátka chci tcp, udp komunikaci zašifrovat pomocí klíče, který bude hash exe a dll souborů, ze kterého se skládá proces. Na základě tohoto by server měl nějaký whitelist a povoloval komunikaci. Musela by existovat i nějaká (ransomware) ochrana, aby si procesy hash "nekradli", jednoduché to nebude.

Co myslíte, je to hloupost ? Nebo existuje už něco takového ? Nemá někdo povědomí ?

díky a omlouvám se, pokud jsem netrefil správné fórum. Jsem převážně c# programátor.

 
Odpovědět 18. března 22:09
Avatar
Martin Dráb
Redaktor
Avatar
Odpovídá na SebelaMichal
Martin Dráb:19. března 10:55

Nepamatuji se, zda IP/TCP/UDP dovoluje do hlaviček přidávat nějaký vlastní obsah (případně kolik bajtů), ale to bys měl snadno dohledat (i Wikipedia by mohla stačit). Nic by ti ale nemělo bránit případně do těch paketů prostě potřebný obsah přidat (jako to dělá třeba IPSec).

Chceš-li napsat síťový ovladač, který bude data transparentně dešifrovat za běhu, pravděpodobně sáhneš po Windows Filtering Platform, protože u ovladačů nižší úrovně (NDIS filter drivers) nikdy nedostaneš informaci o tom, jakému procesu byl daný paket doručen. WFP ti tuhle informaci řekne, ale jen u určitých odálostí, jako bind, connect, accept, listen, první paket z UDP streamu, ale rozhodně ne u každého přijatého paketu (to si budeš muset dopočítat např. podle zdrojových a cílových IP a portů a protokolu, protože budeš schopný si udržovat databázi právě otevřených TCP spojení).

Předpokládám, že s WFP máš nějaké zkušenosti a víš, že je to "docela bestie", alespoň mi tak vždycky přišla. Ten framework toho umí až moc (a tebe budou zřejmě zajímat WFP Callout Drivers) a dokumentace mi přišla někdy dost nejasná. Mnohem lepší bylo spoléhat se na příklady.

Pak tu jsou další problémy:

  • jak bude probíhat výměna klíčů?
  • jakým způsobem budeš šifrovat a chránit integritu paketů?
  • jak zajistíš, že ti do legitimního procesu nevlezl nějaký uličník a nezačal ti z něho posílat data (pokud to provede tak, že nebude načítat DLL knihovnu)?
  • co procesy, které načítají či uvolňují různé DLL knihovny podle potřeby?
Nahoru Odpovědět 19. března 10:55
2 + 2 = 5 for extremely large values of 2
Avatar
SebelaMichal
Člen
Avatar
SebelaMichal:21. března 10:33

Ahoj, děkuji za komentář, no těch problémů je tam více :( ve finále i ty klíče by si útočník mohl vytáhnout asi podobným způsobem, jak s tím budu nakládat já - úplně domyšlené to bohužel nemám.

 
Nahoru Odpovědět 21. března 10:33
Děláme co je v našich silách, aby byly zdejší diskuze co nejkvalitnější. Proto do nich také mohou přispívat pouze registrovaní členové. Pro zapojení do diskuze se přihlas. Pokud ještě nemáš účet, zaregistruj se, je to zdarma.

Zobrazeno 3 zpráv z 3.