User Tools

Site Tools


secure-low-level-programming:capitole:11-programare-sigura

Differences

This shows you the differences between two versions of the page.

Link to this comparison view

Both sides previous revision Previous revision
Next revision
Previous revision
secure-low-level-programming:capitole:11-programare-sigura [2018/12/20 19:37]
razvan [Subiecte abordate]
secure-low-level-programming:capitole:11-programare-sigura [2018/12/21 10:44] (current)
razvan
Line 26: Line 26:
   * https://​github.com/​deadbits/​InsecureProgramming   * https://​github.com/​deadbits/​InsecureProgramming
   * https://​cwe.mitre.org   * https://​cwe.mitre.org
 +
 ===== 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 37:
 </​code>​ </​code>​
  
-==== Exercițiu 1 ====+*/
  
-Accesăm directorul ''​lalala/''​ din arhiva de suport.+==== Reguli Secure Coding ====
  
-TODO+Parcurgem două reguli din [[https://​wiki.sei.cmu.edu/​confluence/​display/​c/​SEI+CERT+C+Coding+Standard|SEI CERT C Coding Standard]] și două reguli din [[https://​wiki.sei.cmu.edu/​confluence/​pages/​viewpage.action?​pageId=88046682|SEI CERT C++ Coding Standard]]. Identificați problemele pe care le rezolvă și indicațiile de rezolvare a acestora. 
 +==== Exemple nesigure ====
  
-==== Exercițiu 2 ====+Parcurgeți exemplele de cod nesigure din subdirectorul ''​vulnerable/''​ din [[https://​github.com/​patricia-gallardo/​insecure-coding-examples|acest repository]]. Pentru a clona repository-ul folosiți comanda 
 +<​code>​ 
 +git clone https://​github.com/​patricia-gallardo/​insecure-coding-examples 
 +</​code>​
  
-Accesăm directorul ​''​lalala/''​ din arhiva ​de suport.+Apoi accesați subdirectorul ​''​vulnerable/''​ din repository și parcurgeți fișierele cod sursă C sau C++ de acolo. 
 +==== Alte exemple nesigure ====
  
-TODO+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>​
  
-==== Exercițiu 3 ====+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ă).
  
-Accesăm directorul ''​lalala/''​ din arhiva de suport.+==== Bad vsGood ====
  
-TODO+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>​
secure-low-level-programming/capitole/11-programare-sigura.1545327449.txt.gz · Last modified: 2018/12/20 19:37 by razvan