Python a kybernetická bezpečnosť / 27. časť

0

Mnohí z nás, najmä tí skôr narodení, si určite melancholicky spomíname na prvé počítačové hry, v ktorých sa začal objavovať cieľ tzv. zmocnenia sa protihráčovej vlajky. Niekedy to tvorcovia mysleli doslova. Úlohou hráča bolo zmocniť sa protihráčovej vlajky. Inokedy malo zmocnenie sa vlajky všeobecný význam, ktorý reprezentoval cieľ, pri ktorom sa hráč mal zmocniť protihráčovho územia, ústredného velenia, vybudovaných štruktúr či konkrétnej postavy alebo objektu. Spomínané ciele sa označovali a označujú jednotným výrazom CTF – Capture the Flag. Okrem neho sa používa aj slovíčko pwn (pwned, powned, pwnd...), ktoré má veľmi podobný význam, resp. veľmi úzko súvisí s CTF. V niekoľkých po sebe nasledujúcich časti seriálu v stručnosti predstavíme, ako uvedené výrazy súvisia s programovaním, kybernetickou bezpečnosťou a okrem iného aj s programovacím jazykom Python.

CTF (ctftime.org)

Z pohľadu kybernetickej bezpečnosti sa pojmom CTF označuje špecifický typ súťaží, počas ktorých sa súťažiaci snažia využiť svoje počítačové vedomosti na riešenie rôznych úloh v oblasti IT. Za vyriešenie úloh dostávajú body, ktorých sumár následne hodnotí úroveň konkrétneho súťažiaceho. Ním môže byť osoba – jednotlivec, ale častejšie ide o celý tím riešiteľov. Typovo sa súťaže CTF delia na: 

1. Jeopardy (stávka) – súťažiaci musia vyriešiť súbor úloh, ktoré sú zaradené do rôznych kategórií, najmä v oblastiach www, forenzného inžinierstva, analýzy programových kódov vrátane reverznej analýzy, kryptológie, steganografie, algoritmov, ako aj zraniteľnosti mobilných zariadení a ďalších citlivých miest. Úlohy sa zadávajú zväčša od jednoduchších, ohodnotených menším počtov bodov, až po zložitejšie s väčším počtom bodov.

2. Attack-Defence (útok – obrana), resp. Wargame (vojnová hra) – súťažiaci sa snažia ochrániť vlastné zariadenia, pričom súčasne útočia na zariadenia protihráča. Organizátori súťaže na začiatku pridelia súťažiacim zariadenia so slabým zabezpečením a je iba na súťažiacich, do akej miery sú schopní ochrániť si pridelené zariadenia.

3. Mixed (kombinovaná súťaž) – zväčša ide o súťaž Attack-Defence so súčasným plnením úloh vydaných zo strany organizátora.

Jednou z prvých a najväčších súťaží organizovaných s cieľom CTF bola DEF CON (defcon.org). Tá sa prvýkrát konala v roku 1993 v Las Vegas, pričom súťaž stále trvá. Jej 33. kolo (DC33) sa koná v termíne 7. – 10. 8. 2025. DEF CON k tomu pripravil samostatnú webovú stránku defcon.org/html/defcon-33/dc-33-index.html.


Obr. 1   Logá DEF CON a DC33

Pwn

V súvislosti so súťažami CTF sa často stretávame so slovíčkom pwn (pwned, powned, pwnd...). Viaceré internetové zdroje tvrdia, že slovo pwned sa prvýkrát objavilo v online hre World of Warcraft, kde jej autori z dôvodu blízkosti klávesov O a P urobili preklep a namiesto výrazu „has been owned" vznikol výraz „has been pwned“. Tento výraz súvisel s dosiahnutím výhry zo strany počítača, ktorý mal vyhrať, dominovať, prekonať či kompromitovať hráča s využitím počítačovej „sily“. Iné zdroje však tvrdia, že slovo pwn (own) bolo prvýkrát použité oveľa skôr, a to v súvislosti so šachovými hrami. Už vtedy išlo o vyjadrenie výhry, resp. dominancie jedného hráča nad druhým. V prípade výhry zaznela veta „I am the pwnage!“ čiže „Ja som výherca!

V počítačovom žargóne sa slovom pwned označuje dosiahnutie kontroly nad cieľovým systémom, typicky v kontexte jeho úspešnej kompromitácie, resp. kompromitácie celej počítačovej siete. Ak bol systém pwned, boli úspešne hacknuté = prelomené jeho bezpečnostné prvky a nad daným systémom bola získaná plná kontrola (system was mastered).

Peknou ukážkou praktického významu slova pwned je stránka haveibeenpwned.com, pomocou ktorej možno skontrolovať, či zadaná e-mailová adresa, resp. doména bola alebo nebola kompromitovaná. Podobných stránok, ktoré zaznamenávajú chyby v bezpečnosti a úspešné prelomenia počítačových systémov, je niekoľko. Viac-menej každá z nich istým spôsobom spomína slovo pwned.

Súťaže CTF okrem DEF CON organizujú aj mnohí ďalší usporiadatelia, a to nielen vo vzdialenom zahraničí, ale aj v Českej republike či na Slovensku. Môžeme spomenúť napr. organizátorov cybergame.sk, ctf.kyberakademia.sk, guardians.sk, kybersoutez.cz, thecatch.cz atď.

Binary Security and Exploitation

Pod pojmom exploit rozumieme prienik do cieľového systému s využitím jeho zraniteľného miesta, teda jeho „slabosti“. Najčastejšie sa začína analýzou systému, pokračuje identifikáciou zraniteľností (vulnerabilities) a končí zásahom do systému, ktorým zabezpečíme vykonanie nami požadovaných akcií. Pri Binary Exploitation sa pokúšame modifikovať binárny kód tak, aby sme zabezpečili vykonanie nami naprogramovaného (arbitrary) kódu. Najčastejšie spôsoby, ako to dosiahnuť, sú nasledujúce:

1. pretečenie zásobníka (buffer overflow) – nepovolený zápis údajov do zásobníka,

2. zlé formátovanie reťazcov (wrong string formats) – nesprávna kontrola formátu reťazcov,

3. použitie uvoľnenej pamäte (use after free) – zápis do predtým uvoľnenej pamäte,

4. porušenie dynamicky pridelenej pamäte (heap manipulation) – zmanipulovaná práca s heap,

5. narušenie návratových hodnôt (return oriented programming) – zreťazenie sekvencií inštrukcií.

Problémy s možným prienikom do binárnych súborov boli známe už odnepamäti, a preto vznikol koncept tzv. Binary Security. Ide o nástroje a metódy, pomocou ktorých má byť binárny kód zabezpečený proti neželaným modifikáciám. Aj keď uvedené nástroje nezabezpečia stopercentnú ochranu kódu, ich správnou implementáciou vieme významne zvýšiť mieru zabezpečenia binárnych súborov.

Pwntools (pypi.org/project/pwntools, docs.pwntools.com)

Pwntools je CTF framework, resp. toolkit a takisto knižnica Python určená na zjednodušenie procesu Binary Exploitation, reverzného inžinierstva a aj na tvorbu exploitov. Medzi jej základné funkcionality patria:

  • interakcia s binárnymi súbormi,
  • manipulácia kódu shellu (shellcode),
  • tvorba sieťových paketov,
  • príprava exploit skriptov.

Téme Binary Security a Pwntools sa budeme podrobne venovať v nasledujúcich častiach seriálu.

Zobrazit Galériu

Pridať komentár

Mohlo by vás zaujímať

Mohlo by vás zaujímať