Bakalářská práce

Nástroje pro statickou a dynamickou analýzu kódu se zaměřením na bezpečnostní chyby

The static and dynamic analysis source code tools with focus on security bug finding

David Formánek
Anotace

Práce se zabývá automatickou statickou a dynamickou analýzou a jejím využitím pro hledání zejména bezpečnostních chyb v kódu. Obsahuje přehled a srovnání volně dostupných i komerčních nástrojů podporujících jazyky Java nebo C#. S využitím testovací sady zranitelného kódu byla pro analyzátor FindBugs jeho schopnost hledat chyby prakticky vyhodnocena. Uvedeny jsou také možnosti využití nástrojů se systémem pro agregaci a opakovaný sběr výsledků analýzy.

Abstract

The thesis deals with automatic static and dynamic analysis and its usage for software bug finding, especially in security area. It contains comparison of various open source and commercial tools for languages Java and C#. The bug finding ability for FindBugs analyser has been practically verified using test suite with vulnerable code. Possibilities of utilization of software for aggregation and repeatable collection of analysis results are mentioned too.

Zadání práce
Cílem práce je zmapovat stav nástrojů (volně dostupné a dosažitelné komerční) pro statickou a dynamickou analýzu aplikací ve zdrojové nebo binární podobě a analyzovat možnosti jednotlivých nástrojů a jejich omezení na základě modelu jejich vnitřního fungování. Budou uvedeny možnosti nástrojů z hlediska hledání bezpečnostních chyb i chyb, které mohou k bezpečnostním zranitelnostem vést, se zaměřením na projekty vytvářené pomocí jazyků Java a C#.

V praktické části pak:
- Prozkoumat formát výstupu těchto nástrojů s ohledem na společnou agregaci výstupů více nástrojů spuštěných nad stejnou aplikací. Provést rešerši existujících nástrojů, které takovou agregaci podporují.
- Popsat způsob použití nástroje vybraného na základě rešerše s ohledem na opakovaný sběr výstupů během pokračujícího procesu vývoje, značení odstraněných problémů a výskytu nových a možnost potlačení falešných hlášení.
- Podílet se na uvedení nástrojů do použití v každodenním vývoji včetně vytvoření potřebné metodiky ve spolupráci s průmýslovým partnerem.
- Provést praktické ověření popsané metodiky na rozsáhlejší bázi kódu a vyvodit z výsledku doporučení pro pravidelné využití nástroje

Literatura:
OWASP Static code analysis https://www.owasp.org/index.php/Static_Code_Analysis
FindBugs, http://findbugs.sourceforge.net/
Práce zkontrolována:
20. 5. 2014 10:24, doc. RNDr. Petr Švenda, Ph.D., učo 4085
Jazyk práce
čeština čeština
Termín obhajoby
16. 6. 2014
Práce byla úspěšně obhájena

Vedoucí

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

Oponent

RNDr. Andrij Stecko, Ph.D.
ext FI MU

Masarykova univerzita Fakulta informatiky
Studijní program
Informatika
  • 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.