Ingegneria del software : come prevenire le top 25 vulnerabilità nel codice di CWE/SANS con il Microsoft SDL
Pochi giorni fa è stato presentato un lavoro congiunto CWE e SANS che riassume le 25 cause più serie e purtroppo più ricorrenti nello sviluppo del software relative alla sicurezza.
Oggi Microsoft ha rilasciato un documento che spiega come l’ SDL - il processo di ingegneria del software - Microsoft Security Development LifeCycle- , se applicato correttamente, è in grado di gestire tutti e 25 glil errori.
Questi non sono semplici esercizi di stile ma piuttosto servono a dimostrare che le fatiche (e i costi) derivati dall’implementazione del SDL nel proprio processo di sviluppo software sono ben spese. Ben vengano queste liste sugli errori di sicurezza perchè un processo orientato alla sicurezza deve essere sempre revisionato ed aggiornato perchè le tecniche e i metodi di attacco sono sempre in divenire…
CWE |
Title |
Education? |
Manual Process? |
Tools? |
Threat Model? |
20 |
Improper Input Validation |
Y |
Y |
Y |
Y |
116 |
Improper Encoding or Escaping of Output |
Y |
Y |
Y |
|
89 |
Failure to Preserve SQL Query Structure (aka SQL Injection) |
Y |
Y |
Y |
|
79 |
Failure to Preserve Web Page Structure (aka Cross-Site Scripting) |
Y |
Y |
Y |
|
78 |
Failure to Preserve OS Command Structure (aka OS Command Injection) |
Y |
Y |
||
319 |
Cleartext Transmission of Sensitive Information |
Y |
Y |
||
352 |
Cross-site Request Forgery (aka CSRF) |
Y |
Y |
||
362 |
Race Condition |
Y |
|||
209 |
Error Message Information Leak |
Y |
Y |
Y |
|
119 |
Failure to Constrain Memory Operations within the Bounds of a Memory Buffer |
Y |
Y |
Y |
|
642 |
External Control of Critical State Data |
Y |
Y |
||
73 |
External Control of File Name or Path |
Y |
Y |
Y |
|
426 |
Untrusted Search Path |
Y |
Y |
||
94 |
Failure to Control Generation of Code (aka 'Code Injection') |
Y |
Y |
||
494 |
Download of Code Without Integrity Check |
Y |
|||
404 |
Improper Resource Shutdown or Release |
Y |
Y |
||
665 |
Improper Initialization |
Y |
Y |
||
682 |
Incorrect Calculation |
Y |
Y |
||
285 |
Improper Access Control (Authorization) |
Y |
Y |
Y |
|
327 |
Use of a Broken or Risky Cryptographic Algorithm |
Y |
Y |
Y |
|
259 |
Hard-Coded Password |
Y |
Y |
Y |
Y |
732 |
Insecure Permission Assignment for Critical Resource |
Y |
Y |
||
330 |
Use of Insufficiently Random Values |
Y |
Y |
Y |
|
250 |
Execution with Unnecessary Privileges |
Y |
Y |
Y |
|
602 |
Client-Side Enforcement of Server-Side Security |
Y |
Y |
--Mario