Nel campo della sicurezza informatica, l'ingegneria sociale (dall'inglese social engineering) è lo studio del comportamento individuale di una persona al fine di carpire informazioni utili.
Questa tecnica è anche un metodo (improprio) di crittanalisi quando è usata su una persona che conosce la chiave crittografica di un sistema e viene usata anche dalla polizia. Similmente al cosiddetto metodo del tubo di gomma (il quale è però una forma di tortura) può essere, secondo gli esperti, un modo sorprendentemente efficiente per ottenere la chiave, soprattutto se comparato ad altri metodi crittanalitici.
Con l'evoluzione del software, l'uomo ha migliorato i programmi a tal punto che essi presentano pochi bug (errori che i programmatori generalmente commettono quando creano un software). Per un cracker sarebbe impossibile attaccare un sistema informatico in cui non riesce a trovare bug. Quando ciò accade l'unico modo che il cracker ha per procurarsi le informazioni di cui necessita è quello di attuare un attacco di ingegneria sociale.
Un ingegnere sociale (social engineer) per definirsi tale deve saper fingere, sapere ingannare gli altri, in una parola saper mentire.
Un social engineer è molto bravo a nascondere la propria identità, fingendosi un'altra persona: in tal modo egli riesce a ricavare informazioni che non potrebbe mai ottenere con la sua identità reale. Nel caso sia un cracker, può ricavare informazioni attinenti ad un sistema informatico. Il social engineering è quindi una tecnica per ricavare informazioni molto usata dagli hacker esperti e dalle spie, e dato che comporta (nell'ultima fase dell'attacco) il rapporto più diretto con la vittima, questa tecnica è una delle più importanti per carpire informazioni. In molti casi il cosiddetto ingegnere potrà riuscire a ricavare tutto ciò che gli serve dalla vittima ignara.
Le fasi dell'attacco
Il social engineer comincia con il raccogliere informazioni sulla vittima per poi arrivare all'attacco vero e proprio. Durante la prima fase (che può richiedere anche alcune settimane di analisi), l'ingegnere cercherà di ricavare tutte le informazioni di cui necessita sul suo bersaglio: e-mail, recapiti telefonici, ecc. Superata questa fase, detta footprinting, l'ingegnere passerà alla fase successiva, cioè quella che gli permetterà di verificare se le informazioni che ha ricavato sono più o meno attendibili, anche telefonando all'azienda del bersaglio e chiedendo cortesemente di parlare con la vittima. La fase più importante, quella che determinerà il successo dell'attacco, è lo studio dello stile vocale della persona per la quale vuole spacciarsi (ad esempio cercando di evitare in tutti i modi l'utilizzo di espressioni dialettali e cercando di essere quanto più naturale possibile, sempre utilizzando un tono neutro e cortese). In questa fase l'attaccante avrà sempre vicino a sé i propri appunti con tutte le informazioni raccolte nella fase di footprinting, dimostrandosi pertanto sicuro nel caso gli venisse posta qualche domanda.
Molto spesso il social engineering viene utilizzato per ricavare informazioni su privati (phishing). Un esempio di azione di questo genere può essere una falsa e-mail, mandata da un aspirante ingegnere sociale fingendosi magari un amministratore di sistema, o un membro di qualche grosso ente. Vengono richiesti al malcapitato di turno nome utente e password di un suo account, ad esempio quello di posta elettronica, con la scusa di fare dei controlli sul database dell'azienda. Se la vittima cade nel tranello, il social engineer avrà ottenuto il suo obiettivo, ossia una breccia nel sistema della vittima, da cui potrà iniziare una fase di sperimentazione allo scopo di violare il sistema stesso.
Tecniche alternative
Della tecnica appena descritta è stato un grosso esponente Kevin Mitnick durante le sue scorrerie informatiche. Su questo tema Mitnick ha scritto un libro, L'arte dell'inganno. Altre tecniche descritte in questo libro sono:
- rovistare nella spazzatura in cerca di foglietti con appuntate delle password, o comunque in cerca di recapiti telefonici indirizzi, ecc.
- fare conoscenza con la vittima, fingendo di essere un incompetente informatico e chiedendo lumi all'esperto;
- spacciarsi per un addetto della compagnia che vende i programmi utilizzati, dicendo che è necessario installare una patch al sistema.
In alcuni dei casi descritti, Mitnick afferma di aver avuto accesso diretto alle macchine tramite l'amministratore, utilizzando una connessione ritenuta normalmente sicura come quella SSH (Secure Shell).