Bakalářská práce

Synthesizing grammar of smart card commands

Ondřej Kuhejda
Anotace

Zdrojové kódy aplikací chytrých karet většinou nejsou k dispozici; navíc jsme často nuceni studovat chování těchto karet pouze z jejich odpovědí na zaslané vstupy. Tato práce představuje mechanismus, pomocí kterého dokážeme objevit neznámé rozhraní aplikací na kartách za využití gramatické inference. A to i tehdy, nemáme-li předchozí znalosti o dané kartě. Díky tomuto postupu je nejen možné nalézt …více

Abstract

Source codes of smart card applets are usually not available; moreover, there is often only black-box access to the smart card. This thesis presents a mechanism for the discovery of smart card interfaces by inferring grammars of APDU commands without prior knowledge about tested smart cards. The used method is shown to be effective not only for interface discovery but also for finding defects and vulnerabilities …více

Zadání práce
Cílem práce je zmapovat možnosti automatické extrakce předpokládaného formátu datové části příkazů akceptovaných neznámou aplikací na čipové kartě bez znalosti zdrojového ani binárního kódu. Jednou z možností je kombinace zasílání velkého množství náhodně generovaných vstupů (fuzzing), analýza pozorovatelného chování karty (data a doba trvání odpovědi, chybový status) a hledání odpovídající gramatiky společné pro vstupy se stejným pozorovaným chováním.
V praktické části budou provedeny tyto konkrétní části:
  • Úpravy existujícího nástroje APDUFuzzer a jeho přizpůsobení pro zisk testovacích vstupů.
  • Přehled dostupných softwarových balíků pro extrakci gramatiky a jejich případná modifikace pro potřeby práce.
  • Vytvoření testovací aplikace se známým očekávaným formátem vstupních dat a ověření míry funkčnosti navržené metody.
  • Získání velkého množství testovacích stupů a odpovídajících odpovědí z alespoň 2 karet s neznámou aplikací a pokus o rekontrukci formátu očekávaných dat.
  • Zhodnocení úspěšnosti použité metody a návrh možných vylepšení.
Literatura:
pyAPDUFuzzer: https://github.com/petrs/pyAPDUFuzzer
Glade program input grammar synthetizer: https://github.com/obastani/glade
Práce zkontrolována:
27. 5. 2020 09:27, doc. RNDr. Petr Švenda, Ph.D., učo 4085
Jazyk práce
angličtina angličtina
Termín obhajoby
26. 6. 2020
Práce byla úspěšně obhájena

Vedoucí

doc. RNDr. Petr Švenda, Ph.D., učo 4085
KPSK FI MU

Oponent

RNDr. Adam Janovský, Ph.D., učo 410390
abs FI MU

  • Přidání souboru

    Soubor nebo složku lze nahrát pomocí tlačítka Přidat.
  • Další operace se soubory

    Podrobnosti lze zjistit označením příslušného řádku.
  • Pohled pro experty

    Pro častou práci je možné zvolit režim Více možností.
  • Vyhledávání souborů

    Vyhledávaný výraz můžete zadat přímo do adresního řádku.
  • Rychlý přístup k souborům

    Pomocí funkce Nedávné je možné se rychle vrátit k právě prohlíženým souborům. Oblíbené soubory je také možné označit Hvězdičkou.