Proactive Obfuscation [Romanian]

See original

Confuzie proactivă


Prezentare generală

Independenţa de eşecuri în operații de reproducere este esenţială atunci când se utilizează reproducerea în servicii distribuite sigur. Dar reproduceri care utilizează acelaşi cod produc aceleași vulnerabilităţi. Deci, reproduceri nu eșuează independent, atunci când este sub atac. Confuzie proactiva este o nouă metodă de restaurare a oarecăror măsuri de acestă independenţa prin care fiecare reproducere este periodic repornită cu ajutorul unui fișier divers executabil generat din nou.

Diverse tehnici au fost propuse pentru a crea confuzie -fișiere diverse executabile create automat în timpul compilării, încărcării, sau în timpul pornirii. Acestea includ reordonare adresei şi repachetare a umpluturei, sistem de reordonare a apelului, instrucţiunile setului de randomizare şi o grămadă de opțiuni de randomizare. Toate produc fișiere executabile confuzionate, care par mai probabil să cadă mai degrabă în accident, ca răspuns la anumite clase de atacuri, decât să intră sub controlul unui adversar. De exemplu, un atac de suprarevărsare a buffer-ului, de obicei, va depinde de detaliile referitor de aspect, astfel încât folosind reproduceri diferite de fișiere executabile defectate, bazate pe adresa de reordonare sau repachetare a umpluturei, sunt susceptibile de a se prăbuşirii în loc de a cadea sub controlul atacatorului.

Model de confuzie

Mai degrabă decât depinderea de proprietăţile de confuzie tehnice particulare, expunem două proprietăţi pe care cerem să satisfacem.

  • Confuzie Independentă.
    Pentru t> 1, cantitatea de munca pentru un adversar pentru un compromis de reproducere confuzionată t este Ω (t) ori de muncă necesară pentru compromiterea unei reproduceri.
  • Adversar mărginit.
    Timpul necesar pentru un adversar la un compromis t + 1 reproducerii este mai mare decât timpul necesar pentru a reconfuzie, repornire, şi recuperarea reproducerii n.
    Independenţa confuziei implică diferite fișiere executabilele confuzionate prezintînd o oarecare măsură de independenţă. Premisa metodelor de confuzie actuale constă în aceea că ele aproximează Independenţa Confuziei. Având în vedere timp suficient, cu toate acestea, un adversar ar putea încă în să compromită t +1 reproduceri. Independenţa confuziei şi Adversar mărginit împreună implică periodic reproduceri reconfuzionate şi repornite și cu toate acestea, fac mai greu pentru adversari să menţină controlul asupra mai multor reproduceri de t compromise. În special, un adversar cu timpul ar putea să compromită t +1 reproduceri confuzionate, toate n ca să fie reconuzionate şi repornite (cu atacatorul evacuat), astfel încât nu mai mult de t reproduceri să fie vreodată compromise.

Mecanisme

Confuzie proactivă depinde de trei mecanisme, care sunt descrise în reprezentare în urma unui serviciu replicat cu reproduceri n.

  • Sinteza răspunsului.
    Clienții trimit intrare la reproduceri — fiecare reproducere aplică aceeaşi interfaţă ca un serviciu centralizat şi trimiteri de ieşire pentru clienți. Pentru a transforma ieşire de la multe reproduceri într-o ieşire din serviciu replicat, replici utilizează funcția de ieșire a sintezei fd, în cazul în care d specifică numărul minim de reproduceri distincte de care este nevoie unui răspuns. Sinteza răspunsului este mecanismul care implementează funcţia de sinteza de ieşire pentru clienți.
  • Recuperare de stare.
    Reproducerea salvează starea care ar se putea schimba, atunci când ei procesează intrare de la clienţii — după repornire, un mecanism de recuperare a stării prevede o modalitate de reproduceri pentru recupera starea astfel încât ei să poată continua participarea la serviciul replicat. Pentru a converti starea primite de la mai multe reproduceri într-o singură stare, reproducerile reiniţializate folosesc o funcţie sinteză de a stării gr, în cazul în care r specifică numărul minim de reproduceri distincte de care este nevoie unui răspuns.
  • Reîmprospătare.
    Mecanismul reîmprosătării prevede înnoirea fișierelor executabile confuzionate la reproduceri, hosturi periodic repornite, şi informează reproducerea ale schimbărilor epocii.

Implementare

Am folosit aceste mecanisme pentru a pune în aplicare prototipuri de două servicii: un firewall distribuit (bazate pe PF in OpenBSD), folosind mașina de replicare a stării şi un serviciu de interogare-actualizare distribuit care utilizează sisteme cvorum. Ambele prototipuri implementează mecanismele în spaţiul utilizatorului folosind un pseudo-dispozitiv pentru prelucrarea pachetelor primite de către kernel. Ambele sunt implementate în C folosind OpenSSL. Lucrarea noastră oferă detalii despre evaluarea acestor prototipuri.