Advertisement
Advertisement

More Related Content

Similar to Workshop sulla Sicurezza Informatica(20)

Advertisement
Advertisement

Workshop sulla Sicurezza Informatica

  1. Sicurezza nel WEB
  2. Dott. Mirko Porcu Corso sicurezza nel Web 2 Argomenti trattati ● Cos’è la sicurezza informatica ● Cenni di crittografia – Simmetrica – Assimetrica – Funzioni di Hashing – Firma Digitale ● Sicurezza nel web: – Autenticazione e Autorizzazione – OWASP
  3. Dott. Mirko Porcu Corso sicurezza nel Web 3 Cos'è la sicurezza informatica? La sicurezza informatica è quel ramo dell’informatica che si occupa della prevenzione e della gestione di incidenti informatici.
  4. Dott. Mirko Porcu Corso sicurezza nel Web 4 Rami della sicurezza informatica Prevenzione : Attuare tutte quelle procedure che permettono di mettere in sicurezza il sistema Gestione degli incidenti informatici : Digital investigation https://www.sicurezzaegiustizia.com/digital-forensics/
  5. Dott. Mirko Porcu Corso sicurezza nel Web 5 Applicazione insicura Applicazione sicura Cosa devo fare ? Quando la mia applicazione sarà sicura?
  6. Dott. Mirko Porcu Corso sicurezza nel Web 6 Alcune definizioni Cos'è un attacco? L'attacco è un insieme di azioni compiute dall'attaccante sfruttando le vulnerabilità delle applicazioni target. Vulnerabilità è una debolezza dell'applicazione che permette agli attaccanti di effettuare comportamenti non desiderati / previsti.
  7. Dott. Mirko Porcu Corso sicurezza nel Web 7 Cenni di crittografia Crittografia Tecnica di rappresentazione di un messaggio in una forma tale per cui l’informazione in esso contenuta possa essere recepita solo dal destinatario. Ciò si può ottenere con due diversi metodi: - celando l’esistenza stessa del messaggio; - sottoponendo il testo del messaggio a trasformazioni che lo rendano incomprensibile. http://www.treccani.it/enciclopedia/crittografia/
  8. Dott. Mirko Porcu Corso sicurezza nel Web 8 Legge di Kerckhoffs In un sistema crittografico è importante tener segreta la chiave, non l'algoritmo di cifratura.
  9. Dott. Mirko Porcu Corso sicurezza nel Web 9 Cifratura simmetrica La cifratura a chiave privata prevede che la chiave debba essere la medesima per il processo di cifratura e di de-cifratura del messaggio e deve rimanere segreta a terze parti non coinvolte nella comunicazione.
  10. Dott. Mirko Porcu Corso sicurezza nel Web 10 Cifratura simmetrica La cifratura a chiave simmetrica può essere di 2 tipologie : ● Cifratura a blocchi – Gli algoritmi di cifratura a blocchi sono senza uno stato, cioè il testo cifrato dipende semplicemente dalla chiave e dal testo nel blocco da cifrare ● Cifratura a flusso – Gli algoritmi di cifratura a flusso sono un particolare tipo di algoritmo di cifratura a blocco, in cui abbiamo dei blocchi molto piccoli (di solito, da 1 bit fino a 8 bit), ma l'algoritmo è detto stateful, cioè viene preso in considerazione uno stato, una condizione dell'algoritmo, dovuto a ciò che è stato cifrato precedentemente. Con un algoritmo di questo tipo, non si può più creare un attacco di tipo probabilistico, perché la stessa sequenza di bit nel messaggio “m” sarà codificata con due blocchi diversi in “c”.
  11. Dott. Mirko Porcu Corso sicurezza nel Web 11 Cifratura simmetrica - esempi Cifratura a flusso ● One-Time Pad (OTP) ● RC4 Cifratura a blocchi ● DES ( Data Encryption Standard) ● 3DES ● RC2 ● AES (Advanced Encryption Standard) ● Blowfish
  12. Dott. Mirko Porcu Corso sicurezza nel Web 12 Cifratura assimetrica Cifratura a chiave pubblica ● Le chiavi di cifratura e de-cifratura sono diverse –  Mittente e destinatario non condividono una chiave segreta –  La chiave di cifratura pubblica è nota a tutti e, quindi, anche al mittente –  La chiave di cifratura privata è nota solo al destinatario
  13. Dott. Mirko Porcu Corso sicurezza nel Web 13 Cifratura assimetrica
  14. Dott. Mirko Porcu Corso sicurezza nel Web 14 Cifratura asimmetrica - esempi ● Diffie-Hellman – L’algoritmo`é particolarmente adatto per scambiarsi una chiave segreta attraverso un canale non sicuro. ● DSS (Digital Signature Standard) ● ElGamal – Lo schema è basato sulla difficoltà del calcolo del logaritmo discreto ● RSA ( Ronald Rivest, Adi Shamir e Leonard Adleman) – Chiavi da 1024 bit a 4096 Oggi, insieme a DSS, RSA è uno degli algoritmi più usati per la cifratura di firme digitali.
  15. Dott. Mirko Porcu Corso sicurezza nel Web 15 Modalità di attacco Ciphertext only attack: L’attaccante conosce una stringa “y” di testo cifrato. Cerca di risalire al testo in chiaro o alla chiave. Known plaintext attack: L’attaccante conosce una stringa “x” di testo in chiaro e il corrispondente testo cifrato “y”. Cerca di risalire alla chiave o di decrittare altri testi cifrati. Chosen plaintext attack: L’attaccante ha la possibilità di scegliere un testo in chiaro “x” e di costruire il corrispondente testo cifrato. Cerca di risalire alla chiave o di decrittare altri testi cifrati. Chosen ciphertext attack: L’attaccante ha la possibilità di scegliere un testo cifrato “y” e di ottenere il corrispondente testo in chiaro “x”. Cerca di risalire alla chiave.
  16. Dott. Mirko Porcu Corso sicurezza nel Web 16 Funzione di Hash - requisiti Requisiti di una funzione di hash : • È facile calcolare l’hash di un messaggio • È difficile trovare il messaggio che ha generato un dato hash (non invertibilità delle funzioni di hash) • È difficile modificare un messaggio senza modificare il relativo hash (resistenza debole alle collisioni) • È difficile trovare due messaggi che abbiano lo stesso hash (resistenza forte alle collisioni)
  17. Dott. Mirko Porcu Corso sicurezza nel Web 17 Funzione di hash - utilizzo Utilizzata per la verifica dell’integrità di un messaggio
  18. Dott. Mirko Porcu Corso sicurezza nel Web 18 Funzione di Hash - esempi ● MD5 (message-digest algorithm 5) hash da 128 bit – non considerata più sicura – https://md5.gromweb.com/ ● Gli algoritmi di hash SHA – SHA-1 hash da160 bit – SHA-2 hash da 256 a 512 bit
  19. Dott. Mirko Porcu Corso sicurezza nel Web 19 PKCS https://it.wikipedia.org/wiki/PKCS https://italy.emc.com/emc-plus/rsa-labs/standards-initiatives/public-key-cryptography-standards.htm
  20. Dott. Mirko Porcu Corso sicurezza nel Web 20 Firma digitale Cos'è la firma digitale? La firma digitale è il risultato di una procedura informatica – detta validazione – che garantisce l’autenticità e l’integrità di documenti informatici. La firma digitale conferisce al documento informatico le seguenti caratteristiche: ● autenticità: la firma digitale garantisce l’identità del sottoscrittore del documento; ● integrità: la firma digitale assicura che il documento non sia stato modificato dopo la sottoscrizione; ● non ripudio: la firma digitale attribuisce piena validità legale al documento, pertanto il documento non può essere ripudiato dal sottoscrittore; http://www.agid.gov.it/firma-digitale
  21. Dott. Mirko Porcu Corso sicurezza nel Web 21 Firma digitale Come funziona la firma digitale? Per generare una firma digitale è necessario utilizzare una coppia di chiavi digitali asimmetriche attribuite in maniera univoca ad un soggetto, detto titolare. La chiave privata è conosciuta solo dal titolare ed è usata per generare la firma digitale da apporre al documento. Viceversa, la chiave da rendere pubblica è usata per verificare l’autenticità della firma. Questo metodo è conosciuto come crittografia a doppia chiave e garantisce la piena sicurezza (visto che la chiave pubblica non può essere utilizzata per ricostruire la chiave privata). http://www.agid.gov.it/firma-digitale
  22. Dott. Mirko Porcu Corso sicurezza nel Web 22 Tipi di sottoscrizioni digitali Gli standard europei prevedono tre tipi di sottoscrizione digitale, identificati dagli acronimi ● CadES : La busta CadES (CMS* Advanced Electronic Signatures) è un file con estensione .p7m, il cui contenuto è visualizzabile solo attraverso idonei software in grado di “sbustare” il documento sottoscritto. ● PadES : La firma digitale in formato PadES (PDF Advanced Electronic Signature) è un file con estensione .pdf, leggibile con i comuni reader disponibili per questo formato. ● XadES : Lo XAdES (XML Advanced Electronic Signature) rappresenta un nuovo standard di firma digitale basato su file XML (formato già definito dal W3C). *CMS Cryptographic Message Syntax
  23. Dott. Mirko Porcu Corso sicurezza nel Web 23 CAdES L’autenticità del certificato è garantita da un’Autorità di certificazione; in Italia, dai certificatori accreditati ai sensi dell’articolo 29 del CAD (D.Lgs. n. 82/2005). http://www.agid.gov.it/sites/default/files/linee_guida/firme_multiple.pdf
  24. Dott. Mirko Porcu Corso sicurezza nel Web 24 CAdES Per il formato CAdES l’apposizione di due o più firme può essere effettuata in due modi: • re-imbustando in una nuova busta CAdES la busta generata dalla sottoscrizione precedente (c.d. controfirma o “firma matrioska”), come mostrato in figura 2; • oppure aggiungendo nella busta ulteriori firme, accompagnate dai relativi certificati (c.d.firme congiunte), come mostrato in figura 3. http://www.agid.gov.it/sites/default/files/linee_guida/firme_multiple.pdf
  25. Dott. Mirko Porcu Corso sicurezza nel Web 25 Validazione dei documenti firmati Validazione dei file firmati : ● Utilizzare software di terze parti; l'Agid (Agenzia per l'Italia digitale) propone alcuni fornitori sulla pagina http://www.agid.gov.it/agenda-digitale/infrastrutture-architetture/firme-elettroniche/software-verifica ● Utilizzare il DSS (Digital Signature Service) o altre librerie per la propria implementazione
  26. Dott. Mirko Porcu Corso sicurezza nel Web 26 Digital Signature Service Librerie open source disponibili al seguente repository : ● https://github.com/esig/dss Attualmente alla versione 5.0 e composto da oltre 30 moduli Al seguente link si può trovare la versione dell'Agid alla versione 4.7.0 : ● https://dss.agid.gov.it/ Al seguente link si può trovare la demo alla versione più aggiornata : ● https://joinup.ec.europa.eu/sd-dss/webapp-demo/home Al seguente link si può trovare il codice sorgente della demo : ● https://ec.europa.eu/cefdigital/code/projects/ESIG/repos/dss-demos/browse
  27. Dott. Mirko Porcu Corso sicurezza nel Web 27 Progettazione del software sicuro Il software sicuro è quel software che permette di fruire delle risorse e dei comportamenti/funzionalità per cui è stato disegnato.
  28. Dott. Mirko Porcu Corso sicurezza nel Web 28 Autenticazione e Autorizzazione In termini di protezione del computer, l'autenticazione, è un processo con il quale un'entità (un utente, un'applicazione, un dispositivo, ecc.) accerta un'altra entità per ciò che pretende di essere. Il metodo di autenticazione più comunemente utilizzato è il nome utente e una password. L'autorizzazione è il processo che in genere viene dopo l'autenticazione e viene utilizzato per concedere o negare l'accesso a un risorsa (resource computing). Così, una volta che una persona o un dispositivo è stato autenticato, l’autorizzazione abilita il controllo dell'accesso a una risorsa, solo per coloro che hanno un bisogno legittimo per ottenere tale l'accesso.
  29. Dott. Mirko Porcu Corso sicurezza nel Web 29 Tipologia di Autenticazione Tipi di autenticazione : ● Password Authentication ● PIN Authentication ● 3 One Time Password (OTP) Authentication ● Smart Card Authentication ● Certificate Based Authentication ● Biometric Authentication ● USB Devices : Alcuni dispositivi USB gestiscono le informazioni di autenticazione, come un certificato X.509
  30. Dott. Mirko Porcu Corso sicurezza nel Web 30 OWASP L'Open Web Application Security Project  (chiamato semplicemente  OWASP), è un progetto open-source per la sicurezza delle applicazioni.
  31. Dott. Mirko Porcu Corso sicurezza nel Web 31 OWASP TOP TEN 2017 ● A1-Injection Injection flaws, such as SQL, OS, XXE, and LDAP injection occur when untrusted data is sent to an interpreter as part of a command or query. The attacker’s hostile data can trick the interpreter into executing unintended commands or accessing data without proper authorization. ● A2-Broken Authentication and Session Management Application functions related to authentication and session management are often implemented incorrectly, allowing attackers to compromise passwords, keys, or session tokens, or to exploit other implementation flaws to assume other users’ identities (temporarily or permanently). ● A3-Cross-Site Scripting (XSS) XSS flaws occur whenever an application includes untrusted data in a new web page without proper validation or escaping, or updates an existing web page with user supplied data using a browser API that can create JavaScript. XSS allows attackers to execute scripts in the victim’s browser which can hijack user sessions, deface web sites, or redirect the user to malicious sites.
  32. Dott. Mirko Porcu Corso sicurezza nel Web 32 OWASP TOP TEN 2017 ● A4-Broken Access Control Restrictions on what authenticated users are allowed to do are not properly enforced. Attackers can exploit these flaws to access unauthorized functionality and/or data, such as access other users' accounts, view sensitive files, modify other users’ data, change access rights, etc. ● A5-Security Misconfiguration Good security requires having a secure configuration defined and deployed for the application, frameworks, application server, web server, database server, platform, etc. Secure settings should be defined, implemented, and maintained, as defaults are often insecure. Additionally, software should be kept up to date. ● A6-Sensitive Data Exposure Many web applications and APIs do not properly protect sensitive data, such as financial, healthcare, and PII. Attackers may steal or modify such weakly protected data to conduct credit card fraud, identity theft, or other crimes. Sensitive data deserves extra protection such as encryption at rest or in transit, as well as special precautions when exchanged with the browser.
  33. Dott. Mirko Porcu Corso sicurezza nel Web 33 OWASP TOP TEN 2017 ● A7-Insufficient Attack Protection The majority of applications and APIs lack the basic ability to detect, prevent, and respond to both manual and automated attacks. Attack protection goes far beyond basic input validation and involves automatically detecting, logging, responding, and even blocking exploit attempts. Application owners also need to be able to deploy patches quickly to protect against attacks. ● A8-Cross-Site Request Forgery (CSRF) A CSRF attack forces a logged-on victim’s browser to send a forged HTTP request, including the victim’s session cookie and any other automatically included authentication information, to a vulnerable web application. Such an attack allows the attacker to force a victim’s browser to generate requests the vulnerable application thinks are legitimate requests from the victim. ● A9-Using Components with Known Vulnerabilities Components, such as libraries, frameworks, and other software modules, run with the same privileges as the application. If a vulnerable component is exploited, such an attack can facilitate serious data loss or server takeover. Applications and APIs using components with known vulnerabilities may undermine application defenses and enable various attacks and impacts.
  34. Dott. Mirko Porcu Corso sicurezza nel Web 34 OWASP TOP TEN 2017 ● A10-Underprotected APIs Modern applications often involve rich client applications and APIs, such as JavaScript in the browser and mobile apps, that connect to an API of some kind (SOAP/XML, REST/JSON, RPC, GWT, etc.). These APIs are often unprotected and contain numerous vulnerabilities. https://www.owasp.org/index.php/Top_10_2017-Top_10
  35. Dott. Mirko Porcu Corso sicurezza nel Web 35 Bibliografia Bibliografia ● http://www.agid.gov.it/ ● http://www.infosectoday.com/Articles/Intro_to_Cryptography/Introduction_Encryption_Algorithms.htm ● https://dss.agid.gov.it ● https://www.owasp.org/index.php/Top_10_2017-Top_10 ● https://www.ietf.org/ ● https://italy.emc.com/emc-plus/rsa-labs/standards-initiatives/public-key-cryptography-standards.htm ● https://home.deib.polimi.it/zanero/slides/SicurezzaFirmaDigitale.pdf ● https://it.wikiversity.org/wiki/Criptosistemi_simmetrici
Advertisement