Nu sunt programator ca sa justific si sa argumentez acest post. Mai mult de atat am trecut prin topicul numit securitatea sistemelor inca de la primul website pus pe Internet care a fost spart dupa 2 zile din cauza unei erori in phpBB, pana la situl de care am grija zilnic, hacked nu mai mult de o luna in urma. Pana la urma din toate aceste greseli am invatat (nu eu, ci programatorii) unde sunt “gauri de securitate”. Insa nu programatorii sunt cei care platesc pretul in fata clientilor sau a organizatiilor.
Mi-am adus aminte de toate acestea citind un articol de Stefaniu Criste care semnala un top al celor 25 de greseli pe care programatorii nu trebuie sa le faca, top facut de organizatii (30 la numar) care au studiat cauzele care au dus la milioanele de evenimente semnalate in 2008 in privinta patrunderii ilegale in situri (numai doua din aceste erori au generat peste 1,5 mil. incidente). Unde nu mai punem cate evenimente nu au fost semnalate …
Asadar, documentatia completa se gaseste pe pagina institutului SANS si pentru cei care nu au timp sa citeasca tot, incerc sa fac un mini rezumat :
Sunt 3 categorii mari in care se incadreaza erorile :
1. Interactiunea nesigura intre componente / 9
2. Management al resurselor riscant / 9
3. Sisteme de aparare slabe / 7
Lista o pun in engleza si nu incerc traducerea, pentru ca termenii ma depasesc, insa consider ca orice programator care se respecta ar trebui sa fie la curent cu notiunile de mai jos. Si resurse pentru corectarea acestor erori, si explicatii pe larg le gasiti la adreseleurmatoare.
CATEGORY: Insecure Interaction Between Components
CWE-20: Improper Input Validation
CWE-116: Improper Encoding or Escaping of Output
CWE-89: Failure to Preserve SQL Query Structure (aka ‘SQL Injection’)
CWE-79: Failure to Preserve Web Page Structure (aka ‘Cross-site Scripting’)
CWE-78: Failure to Preserve OS Command Structure (aka ‘OS Command Injection’)
CWE-319: Cleartext Transmission of Sensitive Information
CWE-352: Cross-Site Request Forgery (CSRF)
CWE-362: Race Condition
CWE-209: Error Message Information Leak
CATEGORY: Risky Resource Management
CWE-119: Failure to Constrain Operations within the Bounds of a Memory Buffer
CWE-642: External Control of Critical State Data
CWE-73: External Control of File Name or Path
CWE-426: Untrusted Search Path
CWE-94: Failure to Control Generation of Code (aka ‘Code Injection’)
CWE-494: Download of Code Without Integrity Check
CWE-404: Improper Resource Shutdown or Release
CWE-665: Improper Initialization
CWE-682: Incorrect Calculation
CATEGORY: Porous Defenses
CWE-285: Improper Access Control (Authorization)
CWE-327: Use of a Broken or Risky Cryptographic Algorithm
CWE-259: Hard-Coded Password
CWE-732: Insecure Permission Assignment for Critical Resource
CWE-330: Use of Insufficiently Random Values
CWE-250: Execution with Unnecessary Privileges
CWE-602: Client-Side Enforcement of Server-Side Security
deci ‘porous defenses’ inseamna ‘porozitatea sistemelor de aparare’ … n-am stiut.. nice! NOT