Analize şi testări de securitate

Prezentare generală

Testarea securităţii codului Oracle include atât activităţi funcţionale, cât şi activităţi non-funcţionale pentru verificarea funcţiilor şi calităţii produselor. Deşi aceste tipuri de teste vizează adesea caracteristici care se suprapun ale produselor, acestea sunt independente şi sunt efectuate de echipe diferite. Testele de securitate funcţionale şi non-funcţionale se completează reciproc, pentru a asigura acoperirea cuprinzătoare a securităţii produselor Oracle.

Testarea funcţională a securităţii

Testarea funcţională a securităţii este executată de obicei de către echipele obişnuite QA pentru produs, ca parte a ciclului normal de testare a produsului. În timpul acestei testări, inginerii QA verifică conformitatea caracteristicilor de securitate implementate cu elementele stabilite anterior în specificaţiile funcţionale, în timpul proceselor de examinare arhitecturală şi a listelor de verificare.

Analiza şi testarea pentru asigurarea securităţii

Analiza şi testarea pentru asigurarea securităţii verifică nivelul de calitate al securităţii produselor Oracle împotriva atacurilor de diverse tipuri. Există două categorii mari de teste utilizate la testarea produselor Oracle: analize statice şi dinamice, care vor fi descrise în secţiunea de mai jos. Aceste teste au corespondenţe diferite în ciclul de colaborare al dezvoltării produsului şi găsesc categorii de probleme diferite, deci sunt utilizate împreună de echipele de produs Oracle.

Analiza statică

Analiza statică de securitate a codului sursă reprezintă linia iniţială de apărare utilizată în timpul ciclului de dezvoltare a produsului. Oracle utilizează un instrument de analiză statică a codului de la Fortify Software, o companie HP, precum şi o varietate de instrumente dezvoltate intern, pentru a depista problemele în timpul scrierii codului. Produsele dezvoltate cu cele mai moderne limbaje de programare (precum C/C++, Java, C#) şi platforme (J2EE, .NET) sunt scanate, pentru a se identifica posibilele probleme de securitate. Acest tip de verificare funcţionează foarte bine pentru identificarea depăşirilor memoriei-tampon şi a scurgerilor de memorie în codul C/C++, problemelor privind gestionarea memoriei în J2EE şi .NET, detectarea utilizării improprii a acreditărilor, diverse injecţii, configurări incorecte ale sistemului, etc. Unul dintre dezavantajele acestui tip de analiză îl reprezintă numărul mare de rapoarte fals-pozitive, adică, multe dintre problemele raportate nu constituie o problemă. De regulă, analiza acestor rapoarte de scanare implică ingineri seniori din echipele de produs care sunt familiarizaţi cu codul produsului, pot clasifica problemele fals-pozitive de cele reale şi care cunosc analiza Fortify şi regulile de scriere a codului pentru a reduce numărul erorilor fals-pozitive.

Analiza dinamică

Analiza dinamică are loc întotdeauna în timpul ultimelor faze ale dezvoltării produsului: cel puţin, produsul sau componenta trebuie să funcţioneze. Deşi această activitate poate să difere în cadrul organizaţiilor Oracle, de regulă este efectuată de o echipă QA de securitate (sau un grup similar dedicat) şi poate fi distribuită de mai multe echipe de produs. Analiza dinamică este destinată interfeţelor de produs vizibile din exterior şi interfeţelor API, bazându-se frecvent pe instrumente specializate de testare. Pentru testare, la Oracle se utilizează şi instrumente manuale şi automate. Instrumentele automate implică tehnici complicate pentru testarea interfeţelor şi protocoalelor de produs accesibile prin reţea, în timp ce instrumentele manuale presupune modificarea manuală, dar permite o precizie mai mare.