This shows you the differences between two versions of the page.
Both sides previous revision Previous revision Next revision | Previous revision | ||
secure-low-level-programming:capitole:11-programare-sigura [2018/12/20 20:07] razvan [Exercițiu 3] |
secure-low-level-programming:capitole:11-programare-sigura [2018/12/21 10:44] (current) razvan |
||
---|---|---|---|
Line 28: | Line 28: | ||
===== Exerciții ===== | ===== Exerciții ===== | ||
+ | |||
+ | /* | ||
Arhiva de suport pentru exerciții se găsește [[http://koala.cs.pub.ro/training/res/secure-low-level-programming/arc/11-programare-sigura-skel.zip|aici]]. Descărcați arhiva și apoi decomprimați-o folosind comenzile:<code> | Arhiva de suport pentru exerciții se găsește [[http://koala.cs.pub.ro/training/res/secure-low-level-programming/arc/11-programare-sigura-skel.zip|aici]]. Descărcați arhiva și apoi decomprimați-o folosind comenzile:<code> | ||
Line 34: | Line 36: | ||
cd 11-programare-sigura-skel/ | cd 11-programare-sigura-skel/ | ||
</code> | </code> | ||
+ | |||
+ | */ | ||
==== Reguli Secure Coding ==== | ==== Reguli Secure Coding ==== | ||
Line 48: | Line 52: | ||
==== Alte exemple nesigure ==== | ==== Alte exemple nesigure ==== | ||
- | Accesăm directorul ''lalala/'' din arhiva de suport. | + | Parcurgeți exemplele de cod nesigure din [[https://github.com/deadbits/InsecureProgramming|acest repository]]. Pentru a clona repository-ul folosiți comanda |
+ | <code> | ||
+ | git clone https://github.com/deadbits/InsecureProgramming | ||
+ | </code> | ||
- | TODO | + | Parcurgeți **toate** fișierele cod sursă C din rădăcina repository-ului și identificați, rapid, bug-ul/vulnerabilitatea și ce problemă cauzează (și, dacă e cazul, cum poate fi exploatată). |
+ | ==== Bad vs. Good ==== | ||
+ | Accesați [[https://samate.nist.gov/SRD/testsuite.php|NIST Software Assurance Reference Dataset Project]]. | ||
+ | |||
+ | Descărcați: | ||
+ | * suita //C Test Suite for Source Code Analyzer v2 - Vulnerable// (Test Suite ID 100) | ||
+ | * suita //C Test Suite for Source Code Analyzer v2 - Secure// (Test Suite ID 101) | ||
+ | |||
+ | Alegeți cel puțin 5 exemple din suita vulnerabilă și identificați vulnerabilitatea. Gândiți soluția pentru acea vulnerabilitate și vedeți dacă este similară celei din suita sigură. În suita sigură identificatorul exemplului este mai mare cu 1 față de cel din suita vulnerabilă. De exemplu pentru exemplul ''043'' din suita vulnerabilă, identificatorul este ''044'' ca mai jos: | ||
+ | <code> | ||
+ | cat 100/000/149/043/Format_string_problem-bad.c | ||
+ | cat 101/000/149/044/Format_string_problem-good.c | ||
+ | </code> |