SlideShare a Scribd company logo
1 of 25
Download to read offline
Come 
me&ere 
in 
sicurezza 
le 
applicazioni 
Legacy: 
un 
approccio 
pragma5co 
Antonio 
Parata 
-­‐ 
an.parata@reply.it 
Roma 
12/12/2014
Chi 
sono? 
-­‐ Head del gruppo di R&D di Reply Communica6on 
Valley 
-­‐ Un appassionato di programmazione funzionale 
(F#) e sviluppatore (hDp://nebula.tools) 
-­‐ Un appassionato di soIware security 
-­‐ Membro del board di OWASP Italy (Co-­‐Autore 
della OWASP Tes6ng Guide v2 e v3)
Introduzione 
Che cosa si intende per applicazione Legacy? 
-­‐ Un’applicazione difficile da modificare/aggiornare 
-­‐ Un’applicazione senza documentazione 
-­‐ Un’applicazione scriDa “molto tempo fa” (… in cobol) 
“…to me, legacy code is simply code without tests.” 
Michael C. Feathers autore di Working Effec6vely With Legacy Code
Introduzione 
Perché parlare di applicazioni legacy? 
Un approccio pragma6co 
– Il goal è meDere in sicurezza l’applicazione e non 
apprendere le tecniche per compromeDerla 
sfruDando le vulnerabilità iden6ficate 
– Dovete comunque sapere quali sono le 
vulnerabilità più impaDan6
Approccio 
1. Eseguire agvità di assessment per valutare lo 
stato aDuale della sicurezza 
2. Avviare agvità mirate alla messa in sicurezza 
del codice 
-­‐ Non limitarsi a fixare soltanto le vulnerabilità 
iden6ficate 
3. Verifica dei progressi
Approccio 
Quali agvità è consigliabile avviare per prima? 
-­‐ Code Inspec6on 
-­‐ Security Tes6ng 
-­‐ Penetra6on Test 
Ref.Capers 
Jones 
-­‐ 
SoIware 
Engineering 
Best 
Prac5ces. 
Lessons 
from 
Successful 
Projects 
in 
the 
Top 
Companies 
(McGraw-­‐Hill, 
2010)
OWASP 
Top 
Ten 
U6lizzata per avere un’idea 
delle vulnerabilità più 
cri6che 
Abbastanza snella da 
essere leDa anche dai non 
esper6 del seDore
OWASP 
-­‐ 
Proac5ve 
Controls 
for 
Developers 
Fornisce una Top Ten dei controlli di sicurezza più 
importan6 da considerare all’interno della 
propria applicazione
OWASP 
-­‐ 
Proac5ve 
Controls 
for 
Developers 
-­‐ 
Parameterize 
Queries 
$stmt = $dbh->prepare("update users set 
email=:new_email where id=:user_id"); 
$stmt->bindParam(':new_email', $email); 
$stmt->bindParam(':user_id', $id);
OWASP 
-­‐ 
Proac5ve 
Controls 
for 
Developers 
– 
Encode 
Data 
Si comincia con < per finire con
OWASP 
-­‐ 
Proac5ve 
Controls 
for 
Developers 
– 
Encode 
Data 
La maggior parte dei Web Framework moderni hanno capability di 
encoding preconfigurate al loro interno 
Se siete nel dubbio: 
Ruby on Rails 
– hDp://api.rubyonrails.org/classes/ERB/U6l.html 
Reform Project 
– Java, .NET v1/v2, PHP, Python, Perl, JavaScript, Classic ASP 
– hDps://www.owasp.org/index.php/Category:OWASP_Encoding_Project 
ESAPI 
– PHP.NET, Python, Classic ASP, Cold Fusion 
– hDps://www.owasp.org/index.php/Category:OWASP_Enterprise_Security_API 
.NET An6XSS Library (v4.3 NuGet released June 2, 2014) 
– hDp://www.nuget.org/packages/An6Xss/
OWASP 
-­‐ 
Proac5ve 
Controls 
for 
Developers 
– 
Validate 
All 
Inputs 
In buona parte dei casi l’input aDeso ha un 
formato prestabilito… 
…Verificate che sia effegvamente cosi! 
Approcci: 
Whitelist à ciò che non è permesso è rifiutato 
Blacklist àciò che è malevolo è bloccato
OWASP 
-­‐ 
Proac5ve 
Controls 
for 
Developers 
– 
Implement 
Appropriate 
Access 
Controls 
Esistenza di modelli consolida6: RBAC, ACL 
Il controllo di accesso può essere abbastanza 
complesso da implementare, alcuni 
accorgimen6: 
-­‐ TuDe le richieste devono passare dal controllo 
d’accesso 
-­‐ Deny by default 
-­‐ Don't reinvent the wheel
OWASP 
-­‐ 
Proac5ve 
Controls 
for 
Developers 
– 
Establish 
Iden5ty 
and 
Authen5ca5on 
Controls 
Auten6cazione è il processo che verifica che 
un’en6tà è effegvamente chi dice di essere. 
Una volta auten6cato 6picamente viene avviata una 
sessione 
Assicuratevi che 
-­‐ Le password siano “saltate” e conservate in modalità 
sicura (ad esempio u6lizzando BCrypt) 
-­‐ Il token di sessione sia debitamente proteDo e non 
predicibile (in genere affidarsi ai meccanismi del 
framework soDostante è la soluzione più semplice)
OWASP 
-­‐ 
Proac5ve 
Controls 
for 
Developers 
– 
Protect 
Data 
and 
Privacy 
Quando inviate da6 sensibili sulla rete 
preoccupatevi di proteggerli accuratamente 
-­‐ U6lizzate HTTPS per la trasmissione di da6 
sensibili 
-­‐ U6lizzate dei meccanismi an<tampering per 
assicurare che il dato non possa essere 
modificato arbitrariamente
OWASP 
-­‐ 
Proac5ve 
Controls 
for 
Developers 
– 
Implemen5ng 
Loggin 
and 
Intrusion 
Detec5on 
Logging non è solo per la fase di debugging 
Assicuratevi di: 
-­‐ EffeDuare il logging di tuDe le operazioni considerate 
sensibili (login, cambio password, …) 
-­‐ Conservate i log in un “posto sicuro” 
-­‐ Non inserite all’interno dei log informazioni sensibili 
(password, token di sessione, etc…) 
Assicuratevi che i log siano vis6 o analizza6 da qualcuno/ 
qualcosa e che in caso di problemi vengano genera6 degli 
allarmi tempes6vi
OWASP 
-­‐ 
Proac5ve 
Controls 
for 
Developers 
– 
Leverage 
Security 
Features 
of 
Frameworks 
and 
Security 
Libraries 
A seconda del linguaggio u6lizzato esistono 
framework che forniscono una base per la 
creazione dei vari meccanismi di sicurezza 
Tipicamente ben scrig e con una codebase 
consolidata 
Preoccupatevi comunque di tenerli sempre 
aggiorna6
OWASP 
-­‐ 
Proac5ve 
Controls 
for 
Developers 
– 
Include 
Security-­‐Specific 
Requirements 
Non è mai troppo tardi per considerare dei nuovi 
security requirements 
Considerate: 
1. Security Features and Func6ons 
2. Business Logic Abuse Cases 
3. Data Classifica6on and Privacy Requirements
OWASP 
-­‐ 
Proac5ve 
Controls 
for 
Developers 
– 
Design 
and 
Architect 
Security 
In 
In applicazioni legacy difficilmente potrà essere 
modificata l’architeDura, cercate però di 
considerare 
-­‐ La superficie di aDacco 
-­‐ Gli eventuali framework u6lizza6 
-­‐ Spefiche vulnerabilità derivan6 dal linguaggio 
e/o tools u6lizza6
Mi 
fido 
ma 
verifico 
OWASP -­‐ Proac6ve Controls for Developers è una 
guida che aiuta gli sviluppatori a meDere in 
sicurezza il codice della propria applicazione 
Serve però verificare che il codice sia stato 
effegvamente messo in sicurezza. 
OWASP Applica6on Security Verifica6on 
Standard (ASVS)
OWASP 
-­‐ 
ASVS 
“The primary aim of the OWASP Applica6on 
Security Verifica6on Standard (ASVS) Project is to 
normalize the range in the coverage and level of 
rigor available in the market when it comes to 
performing Web applica6on security verifica6on 
using a commercially-­‐workable open standard.” 
h&ps://www.owasp.org/index.php/Category:OWASP_Applica5on_Security_Verifica5on_Standard_Project
OWASP 
-­‐ 
ASVS
OWASP 
– 
ASVS 
Requisi5 
V2: Authen6ca6on Verifica6on Requirements 
V3: Session Management Verifica6on Requirements 
V4: Access Control Verifica6on Requirements 
V5: Malicious Input Handling Verifica6on Requirements 
V7: Cryptography at Rest Verifica6on Requirements 
V8: Error Handling and Logging Verifica6on Requirements 
V9: Data Protec6on Verifica6on Requirements 
V10: Communica6ons Security Verifica6on Requirements 
V11: HTTP Security Verifica6on Requirements 
V13: Malicious Controls Verifica6on Requirements 
V15: Business Logic Verifica6on Requirements 
V16: Files and Resources Verifica6on Requirements 
V17: Mobile Verifica6on Requirements
Conclusioni 
1. Verificare il proprio stato 
eseguendo agvità con valore 
comprovato 
-­‐ Security Tes6ng 
-­‐ Code Inspec6on 
2. Applicare controlli ogmali di 
sicurezza nel codice (Proac6ve 
Controls) 
3. Verificare l’andamento (ASVS) 
4. Ripetere dal punto 1 con 
cadenza periodica
Q&A

More Related Content

What's hot

festival ICT 2013: Sicurezza delle applicazioni web
festival ICT 2013: Sicurezza delle applicazioni webfestival ICT 2013: Sicurezza delle applicazioni web
festival ICT 2013: Sicurezza delle applicazioni web
festival ICT 2016
 

What's hot (7)

Mobile Application Penetration Testing Giordano Giammaria
Mobile Application Penetration Testing Giordano GiammariaMobile Application Penetration Testing Giordano Giammaria
Mobile Application Penetration Testing Giordano Giammaria
 
Demystify web application vulnerability assessment
Demystify web application vulnerability assessmentDemystify web application vulnerability assessment
Demystify web application vulnerability assessment
 
festival ICT 2013: Sicurezza delle applicazioni web
festival ICT 2013: Sicurezza delle applicazioni webfestival ICT 2013: Sicurezza delle applicazioni web
festival ICT 2013: Sicurezza delle applicazioni web
 
Cyber Defense - How to find and manage zero-days
Cyber Defense - How to find and manage zero-days Cyber Defense - How to find and manage zero-days
Cyber Defense - How to find and manage zero-days
 
Mamma, da grande voglio essere un Penetration Tester HackInBo 2016 Winter
Mamma, da grande voglio essere un Penetration Tester HackInBo  2016 WinterMamma, da grande voglio essere un Penetration Tester HackInBo  2016 Winter
Mamma, da grande voglio essere un Penetration Tester HackInBo 2016 Winter
 
Nessus
NessusNessus
Nessus
 
Hackers vs Developers - Cross Site Scripting (XSS) Attacco e difesa
Hackers vs Developers - Cross Site Scripting (XSS) Attacco e difesaHackers vs Developers - Cross Site Scripting (XSS) Attacco e difesa
Hackers vs Developers - Cross Site Scripting (XSS) Attacco e difesa
 

Viewers also liked

Viewers also liked (8)

Owasp lapse
Owasp lapseOwasp lapse
Owasp lapse
 
Securing your web applications a pragmatic approach
Securing your web applications a pragmatic approachSecuring your web applications a pragmatic approach
Securing your web applications a pragmatic approach
 
HackInBo2k16 - Threat Intelligence and Malware Analysis
HackInBo2k16 - Threat Intelligence and Malware AnalysisHackInBo2k16 - Threat Intelligence and Malware Analysis
HackInBo2k16 - Threat Intelligence and Malware Analysis
 
Web Application Security: Bug Hunting e Code Review
Web Application Security: Bug Hunting e Code ReviewWeb Application Security: Bug Hunting e Code Review
Web Application Security: Bug Hunting e Code Review
 
.NET for hackers
.NET for hackers.NET for hackers
.NET for hackers
 
Confess 2013: OWASP Top 10 and Java EE security in practice
Confess 2013: OWASP Top 10 and Java EE security in practiceConfess 2013: OWASP Top 10 and Java EE security in practice
Confess 2013: OWASP Top 10 and Java EE security in practice
 
Cross Site Scripting (XSS) Defense with Java
Cross Site Scripting (XSS) Defense with JavaCross Site Scripting (XSS) Defense with Java
Cross Site Scripting (XSS) Defense with Java
 
EyePyramid and other .NET malware. How to analyze them?
EyePyramid and other .NET malware. How to analyze them?EyePyramid and other .NET malware. How to analyze them?
EyePyramid and other .NET malware. How to analyze them?
 

Similar to Come mettere in sicurezza le applicazioni legacy, un approccio pragmatico

Open Source in Azienda: sicurezza e risparmio
Open Source in Azienda: sicurezza e risparmioOpen Source in Azienda: sicurezza e risparmio
Open Source in Azienda: sicurezza e risparmio
akabit
 
festival ICT 2013: Gestire criticità in maniera efficiente per liberare slot ...
festival ICT 2013: Gestire criticità in maniera efficiente per liberare slot ...festival ICT 2013: Gestire criticità in maniera efficiente per liberare slot ...
festival ICT 2013: Gestire criticità in maniera efficiente per liberare slot ...
festival ICT 2016
 
Francesco Trucchia: Rapid Application Developement con strumenti Open Source
Francesco Trucchia: Rapid Application Developement con strumenti Open SourceFrancesco Trucchia: Rapid Application Developement con strumenti Open Source
Francesco Trucchia: Rapid Application Developement con strumenti Open Source
Francesco Fullone
 

Similar to Come mettere in sicurezza le applicazioni legacy, un approccio pragmatico (20)

Sicurezza Applicatica Dalla Teoria Alla Pratica
Sicurezza Applicatica Dalla Teoria Alla PraticaSicurezza Applicatica Dalla Teoria Alla Pratica
Sicurezza Applicatica Dalla Teoria Alla Pratica
 
Silex, iniziamo
Silex, iniziamoSilex, iniziamo
Silex, iniziamo
 
I tool owasp per la sicurezza del software 20110315
I tool owasp per la sicurezza del software 20110315I tool owasp per la sicurezza del software 20110315
I tool owasp per la sicurezza del software 20110315
 
CMS - Analisi Vulnerabilità
CMS - Analisi VulnerabilitàCMS - Analisi Vulnerabilità
CMS - Analisi Vulnerabilità
 
Open Source in Azienda: sicurezza e risparmio
Open Source in Azienda: sicurezza e risparmioOpen Source in Azienda: sicurezza e risparmio
Open Source in Azienda: sicurezza e risparmio
 
festival ICT 2013: Gestire criticità in maniera efficiente per liberare slot ...
festival ICT 2013: Gestire criticità in maniera efficiente per liberare slot ...festival ICT 2013: Gestire criticità in maniera efficiente per liberare slot ...
festival ICT 2013: Gestire criticità in maniera efficiente per liberare slot ...
 
Linux Day 2014 - Napoli - Programma Il Futuro: una scelta open source
Linux Day 2014 - Napoli - Programma Il Futuro: una scelta open sourceLinux Day 2014 - Napoli - Programma Il Futuro: una scelta open source
Linux Day 2014 - Napoli - Programma Il Futuro: una scelta open source
 
Programma il futuro: una scelta open source
Programma il futuro: una scelta open sourceProgramma il futuro: una scelta open source
Programma il futuro: una scelta open source
 
Francesco Trucchia: Rapid Application Developement con strumenti Open Source
Francesco Trucchia: Rapid Application Developement con strumenti Open SourceFrancesco Trucchia: Rapid Application Developement con strumenti Open Source
Francesco Trucchia: Rapid Application Developement con strumenti Open Source
 
SMAU PADOVA 2019 Luca Bonadimani (AIPSI)
SMAU PADOVA 2019 Luca Bonadimani (AIPSI)SMAU PADOVA 2019 Luca Bonadimani (AIPSI)
SMAU PADOVA 2019 Luca Bonadimani (AIPSI)
 
La logisitca del Software OSS
La logisitca del Software OSSLa logisitca del Software OSS
La logisitca del Software OSS
 
La logisitca del software oss
La logisitca del software ossLa logisitca del software oss
La logisitca del software oss
 
Moving from Monolithic to Microservice Architecture: an OSS based stack deplo...
Moving from Monolithic to Microservice Architecture: an OSS based stack deplo...Moving from Monolithic to Microservice Architecture: an OSS based stack deplo...
Moving from Monolithic to Microservice Architecture: an OSS based stack deplo...
 
Meetup Progressive Web App
Meetup Progressive Web AppMeetup Progressive Web App
Meetup Progressive Web App
 
Meetup Fluent Design e Progressive Web App
Meetup Fluent Design e Progressive Web AppMeetup Fluent Design e Progressive Web App
Meetup Fluent Design e Progressive Web App
 
Sap Security Sicurezza Audit Sap Sod Tools
Sap Security   Sicurezza Audit Sap   Sod ToolsSap Security   Sicurezza Audit Sap   Sod Tools
Sap Security Sicurezza Audit Sap Sod Tools
 
Personal Cloud
Personal CloudPersonal Cloud
Personal Cloud
 
Fare sicurezza con zSecure
Fare sicurezza con zSecureFare sicurezza con zSecure
Fare sicurezza con zSecure
 
sicurezza e php
sicurezza e phpsicurezza e php
sicurezza e php
 
Enterprise digital forensics e sicurezza con strumenti open Automatizzare Aud...
Enterprise digital forensics e sicurezza con strumenti open Automatizzare Aud...Enterprise digital forensics e sicurezza con strumenti open Automatizzare Aud...
Enterprise digital forensics e sicurezza con strumenti open Automatizzare Aud...
 

More from Antonio Parata (7)

Program Analysis: a security perspective
Program Analysis: a security perspectiveProgram Analysis: a security perspective
Program Analysis: a security perspective
 
Jackpot! sbancare un atm con ploutus.d
Jackpot! sbancare un atm con ploutus.dJackpot! sbancare un atm con ploutus.d
Jackpot! sbancare un atm con ploutus.d
 
Smau 2006
Smau 2006Smau 2006
Smau 2006
 
Smau 2007
Smau 2007Smau 2007
Smau 2007
 
Hat 2008
Hat 2008Hat 2008
Hat 2008
 
Openexp 2006
Openexp 2006Openexp 2006
Openexp 2006
 
Infosecurity 2007
Infosecurity 2007Infosecurity 2007
Infosecurity 2007
 

Come mettere in sicurezza le applicazioni legacy, un approccio pragmatico

  • 1. Come me&ere in sicurezza le applicazioni Legacy: un approccio pragma5co Antonio Parata -­‐ an.parata@reply.it Roma 12/12/2014
  • 2. Chi sono? -­‐ Head del gruppo di R&D di Reply Communica6on Valley -­‐ Un appassionato di programmazione funzionale (F#) e sviluppatore (hDp://nebula.tools) -­‐ Un appassionato di soIware security -­‐ Membro del board di OWASP Italy (Co-­‐Autore della OWASP Tes6ng Guide v2 e v3)
  • 3. Introduzione Che cosa si intende per applicazione Legacy? -­‐ Un’applicazione difficile da modificare/aggiornare -­‐ Un’applicazione senza documentazione -­‐ Un’applicazione scriDa “molto tempo fa” (… in cobol) “…to me, legacy code is simply code without tests.” Michael C. Feathers autore di Working Effec6vely With Legacy Code
  • 4. Introduzione Perché parlare di applicazioni legacy? Un approccio pragma6co – Il goal è meDere in sicurezza l’applicazione e non apprendere le tecniche per compromeDerla sfruDando le vulnerabilità iden6ficate – Dovete comunque sapere quali sono le vulnerabilità più impaDan6
  • 5. Approccio 1. Eseguire agvità di assessment per valutare lo stato aDuale della sicurezza 2. Avviare agvità mirate alla messa in sicurezza del codice -­‐ Non limitarsi a fixare soltanto le vulnerabilità iden6ficate 3. Verifica dei progressi
  • 6. Approccio Quali agvità è consigliabile avviare per prima? -­‐ Code Inspec6on -­‐ Security Tes6ng -­‐ Penetra6on Test Ref.Capers Jones -­‐ SoIware Engineering Best Prac5ces. Lessons from Successful Projects in the Top Companies (McGraw-­‐Hill, 2010)
  • 7. OWASP Top Ten U6lizzata per avere un’idea delle vulnerabilità più cri6che Abbastanza snella da essere leDa anche dai non esper6 del seDore
  • 8. OWASP -­‐ Proac5ve Controls for Developers Fornisce una Top Ten dei controlli di sicurezza più importan6 da considerare all’interno della propria applicazione
  • 9. OWASP -­‐ Proac5ve Controls for Developers -­‐ Parameterize Queries $stmt = $dbh->prepare("update users set email=:new_email where id=:user_id"); $stmt->bindParam(':new_email', $email); $stmt->bindParam(':user_id', $id);
  • 10. OWASP -­‐ Proac5ve Controls for Developers – Encode Data Si comincia con < per finire con
  • 11. OWASP -­‐ Proac5ve Controls for Developers – Encode Data La maggior parte dei Web Framework moderni hanno capability di encoding preconfigurate al loro interno Se siete nel dubbio: Ruby on Rails – hDp://api.rubyonrails.org/classes/ERB/U6l.html Reform Project – Java, .NET v1/v2, PHP, Python, Perl, JavaScript, Classic ASP – hDps://www.owasp.org/index.php/Category:OWASP_Encoding_Project ESAPI – PHP.NET, Python, Classic ASP, Cold Fusion – hDps://www.owasp.org/index.php/Category:OWASP_Enterprise_Security_API .NET An6XSS Library (v4.3 NuGet released June 2, 2014) – hDp://www.nuget.org/packages/An6Xss/
  • 12. OWASP -­‐ Proac5ve Controls for Developers – Validate All Inputs In buona parte dei casi l’input aDeso ha un formato prestabilito… …Verificate che sia effegvamente cosi! Approcci: Whitelist à ciò che non è permesso è rifiutato Blacklist àciò che è malevolo è bloccato
  • 13. OWASP -­‐ Proac5ve Controls for Developers – Implement Appropriate Access Controls Esistenza di modelli consolida6: RBAC, ACL Il controllo di accesso può essere abbastanza complesso da implementare, alcuni accorgimen6: -­‐ TuDe le richieste devono passare dal controllo d’accesso -­‐ Deny by default -­‐ Don't reinvent the wheel
  • 14. OWASP -­‐ Proac5ve Controls for Developers – Establish Iden5ty and Authen5ca5on Controls Auten6cazione è il processo che verifica che un’en6tà è effegvamente chi dice di essere. Una volta auten6cato 6picamente viene avviata una sessione Assicuratevi che -­‐ Le password siano “saltate” e conservate in modalità sicura (ad esempio u6lizzando BCrypt) -­‐ Il token di sessione sia debitamente proteDo e non predicibile (in genere affidarsi ai meccanismi del framework soDostante è la soluzione più semplice)
  • 15. OWASP -­‐ Proac5ve Controls for Developers – Protect Data and Privacy Quando inviate da6 sensibili sulla rete preoccupatevi di proteggerli accuratamente -­‐ U6lizzate HTTPS per la trasmissione di da6 sensibili -­‐ U6lizzate dei meccanismi an<tampering per assicurare che il dato non possa essere modificato arbitrariamente
  • 16. OWASP -­‐ Proac5ve Controls for Developers – Implemen5ng Loggin and Intrusion Detec5on Logging non è solo per la fase di debugging Assicuratevi di: -­‐ EffeDuare il logging di tuDe le operazioni considerate sensibili (login, cambio password, …) -­‐ Conservate i log in un “posto sicuro” -­‐ Non inserite all’interno dei log informazioni sensibili (password, token di sessione, etc…) Assicuratevi che i log siano vis6 o analizza6 da qualcuno/ qualcosa e che in caso di problemi vengano genera6 degli allarmi tempes6vi
  • 17. OWASP -­‐ Proac5ve Controls for Developers – Leverage Security Features of Frameworks and Security Libraries A seconda del linguaggio u6lizzato esistono framework che forniscono una base per la creazione dei vari meccanismi di sicurezza Tipicamente ben scrig e con una codebase consolidata Preoccupatevi comunque di tenerli sempre aggiorna6
  • 18. OWASP -­‐ Proac5ve Controls for Developers – Include Security-­‐Specific Requirements Non è mai troppo tardi per considerare dei nuovi security requirements Considerate: 1. Security Features and Func6ons 2. Business Logic Abuse Cases 3. Data Classifica6on and Privacy Requirements
  • 19. OWASP -­‐ Proac5ve Controls for Developers – Design and Architect Security In In applicazioni legacy difficilmente potrà essere modificata l’architeDura, cercate però di considerare -­‐ La superficie di aDacco -­‐ Gli eventuali framework u6lizza6 -­‐ Spefiche vulnerabilità derivan6 dal linguaggio e/o tools u6lizza6
  • 20. Mi fido ma verifico OWASP -­‐ Proac6ve Controls for Developers è una guida che aiuta gli sviluppatori a meDere in sicurezza il codice della propria applicazione Serve però verificare che il codice sia stato effegvamente messo in sicurezza. OWASP Applica6on Security Verifica6on Standard (ASVS)
  • 21. OWASP -­‐ ASVS “The primary aim of the OWASP Applica6on Security Verifica6on Standard (ASVS) Project is to normalize the range in the coverage and level of rigor available in the market when it comes to performing Web applica6on security verifica6on using a commercially-­‐workable open standard.” h&ps://www.owasp.org/index.php/Category:OWASP_Applica5on_Security_Verifica5on_Standard_Project
  • 23. OWASP – ASVS Requisi5 V2: Authen6ca6on Verifica6on Requirements V3: Session Management Verifica6on Requirements V4: Access Control Verifica6on Requirements V5: Malicious Input Handling Verifica6on Requirements V7: Cryptography at Rest Verifica6on Requirements V8: Error Handling and Logging Verifica6on Requirements V9: Data Protec6on Verifica6on Requirements V10: Communica6ons Security Verifica6on Requirements V11: HTTP Security Verifica6on Requirements V13: Malicious Controls Verifica6on Requirements V15: Business Logic Verifica6on Requirements V16: Files and Resources Verifica6on Requirements V17: Mobile Verifica6on Requirements
  • 24. Conclusioni 1. Verificare il proprio stato eseguendo agvità con valore comprovato -­‐ Security Tes6ng -­‐ Code Inspec6on 2. Applicare controlli ogmali di sicurezza nel codice (Proac6ve Controls) 3. Verificare l’andamento (ASVS) 4. Ripetere dal punto 1 con cadenza periodica
  • 25. Q&A