User Tools

Site Tools


secure-low-level-programming:capitole:09-utilitare-de-analiza-cod

This is an old revision of the document!


9. Utilitare de analiză de cod

Pentru a preveni existența bug-urilor și a vulnerabilităților, un dezvoltator va urmări cu atenție codul scris de sine sau de alții (auditare de cod). Pentru a facilita acest proces, există utilitare specifice care să automatizeze analiza codului și să raporteze posibile probleme. Pot fi utilitare de analiză statică (pe cod) sau de analiză dinamică (ce presupun rularea unui proces). Este important integrarea acestor utilitare în procesul de dezvoltare și testare software (Software Development Lifecycle).

Subiecte abordate

  • auditarea codului
  • utilitare de analiză statică
  • utilitare de analiză dinamică
  • fuzzing
  • execuție simbolică

Resurse

Alte resurse

Exerciții

Arhiva de suport pentru exerciții se găsește aici. Descărcați arhiva și apoi decomprimați-o folosind comenzile:

wget http://koala.cs.pub.ro/training/res/secure-low-level-programming/arc/09-utilitare-de-analiza-cod-skel.zip
unzip 09-utilitare-de-analiza-cod-skel.zip
cd 09-utilitare-de-analiza-cod-skel/

Auditare cod

Accesăm directorul hidden-bugs/ din arhiva de suport.

Fișierul cod sursă hidden-bugs.c conține 8 erori de programare. Identificați-le parcurgând manual codul (code audit). Lucrați în echipe de 2-3 persoane.

După aceasta folosiți utilitarele cppcheck, splint și scan-build pentru a verifica static prezența erorilor.

Moduri uzuale de rulare:

cppcheck --enable=all hidden-bugs.c
splint hidden-bugs.c
scan-build make

Verificare cod anterior

Folosiți utilitarele cppcheck, scan-build și splint pentru a verifica fișierele ce conțin buffer overflow-uri din sesiunea 06.

Verificare cod proiect

Accesăm directorul picpic/ din arhiva de suport.

Verificați codul sursă din cadrul directorului folosind utilitarele cppcheck, splint și scan-build.

Valgrind

Accesăm directorul valgrind/ din arhiva de suport.

Urmăriți codul din fișierul cod sursă vuln.c și rulați executabilul vuln. Executabilul primește ca argument un număr care se asociează cu o anumită funcție din program ce va fi executată. Rulați programul sub Valgrind în forma:

valgrind ./vuln 1

Vedeți rezultatul afișat de Valgrind și validați depistarea erorilor de folosire a memoriei.

secure-low-level-programming/capitole/09-utilitare-de-analiza-cod.1545286657.txt.gz · Last modified: 2018/12/20 08:17 by razvan