Una raccolta di domande per colloqui per ruoli di Sicurezza Informatica
Indice dei Contenuti
Sicurezza delle Applicazioni
-
Se dovessi sia cifrare che comprimere i dati durante la trasmissione, quale operazione faresti per prima, e perché?
- La compressione mira a usare i pattern nei dati per ridurne la dimensione.
- La cifratura mira a randomizzare i dati così che non siano interpretabili senza una chiave segreta.
- Se cifri prima e poi comprimi, la compressione sarà inutile. La compressione non funziona su dati casuali.
- Se comprimi prima e poi cifri, un attaccante può trovare pattern nella lunghezza del messaggio (Rapporto di Compressione) per apprendere qualcosa sui dati e potenzialmente vanificare la cifratura (come CRIME)
- Risorse:
-
Cosa potrebbero fare gli attaccanti con una vulnerabilità di Iniezione negli Header HTTP?
- I ritorni a capo e gli avanzamenti di riga (o %0D & %0A) sono mezzi che consentirebbero agli attaccanti di controllare gli header HTTP
- Gli attaccanti potrebbero iniettare XSS tramite l'header Referer
- Gli attaccanti potrebbero impostare il cookie a un valore noto all'attaccante (session fixation)
- Gli attaccanti potrebbero reindirizzare a un server malevolo
-
Descrivi l'ultimo programma o script che hai scritto. Quale problema risolveva?
- Si cerca solo di capire se il candidato ha una conoscenza di base dei concetti di programmazione ed è almeno in grado di scrivere semplici programmi
-
Come implementeresti un campo di login sicuro su un sito web ad alto traffico dove le prestazioni sono un fattore da considerare?
-
Quali sono i vari modi per gestire gli attacchi di forza bruta?
- Blocco degli account/timeout
- Rate limiting delle API
- Restrizioni IP
- Fail2ban
- ...ecc.
-
Cos'è il Cross-Site Request Forgery? E come difendersi?
- Quando un attaccante induce il browser della vittima a effettuare richieste con le credenziali della vittima
- Esempio: se un tag immagine (``) punta a un URL con un'azione associata, es. https://foo.com/logout
- Le difese includono, ma non si limitano a:
- controllare l'header Origin e l'header Referer
- verificare i token CSRF o i nonce
-
Cos'è il Cross-Site Scripting? Quali sono i diversi tipi di XSS? Come difendersi da XSS?
- L'XSS si verifica quando gli attaccanti inducono i browser delle vittime a eseguire del codice (di solito JavaScript) all'interno del loro browser
- Tradizionalmente, i tipi sono stati categorizzati in attacchi XSS Stored e Reflected.
- Lo XSS Stored è del codice che un attaccante è riuscito a rendere persistente in un database e che viene recuperato e presentato alle vittime (es. forum)
- Lo XSS Reflected è di solito sotto forma di un URL creato ad arte che include il codice malevolo. Quando l'utente fa clic sul link, il codice viene eseguito nel suo browser
- Recentemente ci sono state discussioni sull'XSS basato su DOM, che si verifica quando gli attaccanti possono controllare gli elementi del DOM, ottenendo così XSS senza inviare alcuna richiesta al server
- Le categorie di XSS tendono a sovrapporsi, quindi è molto meglio descrivere l'XSS in termini come Server Stored XSS, Server Reflected XSS, Client Stored XSS (es. DOM-based XSS memorizzato), o Client Reflected XSS (es. DOM-based XSS riflesso)
- Le difese includono:
- Codifica dell'output (più importante)
- Validazione dell'input (meno importante)
-
In che modo HTTP gestisce lo stato?
- HTTP è stateless
- Lo stato è memorizzato nei cookie
Architetto
- Hai progettato misure di sicurezza che si estendono su domini informativi sovrapposti?
- Puoi farmi alcuni esempi di requisiti di architettura di sicurezza?
- Quali sfide di sicurezza particolari presenta l'architettura orientata ai servizi (SOA)?
- Hai architettato una soluzione di sicurezza che coinvolgeva componenti SaaS? Quali sfide hai affrontato?
- Hai lavorato a un progetto in cui gli stakeholder hanno scelto di accettare rischi di sicurezza identificati che ti preoccupavano? Come hai gestito la situazione?
- Come gestisci le richieste di diversi stakeholder con requisiti contrastanti?
- Come garantisci che gli architetti di soluzioni sviluppino soluzioni sicure?
- Come garantisci che una soluzione continui a essere resiliente di fronte a minacce in evoluzione?
- Quale pensi sia la tecnologia più importante in questo momento? Come la metteremo in sicurezza?
Blue Team
- Dato un log del traffico HTTP tra una macchina della tua rete e un sito web di terze parti (es. Google), come apparirebbero le porte di origine e di destinazione?
- La porta di origine potrebbe essere un numero superiore alla porta 1024 (detta anche porta effimera)
- La porta di destinazione potrebbe essere la 80 (HTTP) o la 443 (HTTPS)
Crittografia
-
Qual è la differenza tra codifica, cifratura e hashing?
- La codifica garantisce l'integrità del messaggio. Può essere facilmente reversibile. Esempio: base64
- La cifratura garantisce la riservatezza del messaggio. Reversibile solo usando le appropriate chiavi di decifratura. Esempio: AES256
- L'hashing è una funzione unidirezionale. Non può essere invertita. L'output ha una lunghezza fissa e di solito è più piccolo dell'input.
-
TLS usa cifratura simmetrica o asimmetrica?
- Entrambe.
- Lo scambio iniziale avviene usando la cifratura asimmetrica, ma la cifratura dei dati in grandi volumi è fatta usando quella simmetrica. Vedi la domanda successiva per ulteriori informazioni.
- Risorse:
-
Descrivi il processo di configurazione di una sessione TLS quando qualcuno visita un sito web sicuro.