Aplicațiile mobile ale băncilor românești, de tip Android, pot fi decompilate foarte ușor cu scopul interceptării datelor de logare, a afirmat Marius Mailat, specialist în securitate online. Mailat este partener în firma Appsrise SRL și director de dezvoltare la compania germană Appseleration GmbH.
Astfel, un dezvoltator de malware poate să decompileze aplicația originală și să o modifice pentru a intercepta datele de logare. Efectul este că utilizatorul obișnuit găsește în Google Play două aplicații aparent similare. Pe lângă cea originală, cea de-a doua poate fi o versiune decompilată și recompilată a aplicației originale.
Prin interceptarea datele de logare, un dezvoltatorul rău intenționat poate avea acces la datele confidențiale ale utilizatorului: plăți, transferuri etc. Transferul de fonduri, adică furtul banilor, este mai greu de realizat, pentru că, de obicei, se bazează pe TAN (Transaction Authentication Number) sau pe alte sisteme externe de securizare.
Mailat spune că a aplicat metodica pe aplicațiile de banking românești, pentru a exemplifica ”modul facil pentru un expert” de a decompila o aplicație, iar rezultatele sunt ”dezamăgitoare”:
- Aplicațiile de banking românești nu encriptează clasele binare și practic oferă o privire nestânjerită în modul în care sunt construite.
- Există aplicații de banking românești care nu folosesc https ca și metodă de transfer.
- Cele care folosesc https sunt aplicații care nu verifică certificatele și practic un ”man in the middle” (intermediar) poate intercepta datele confidențiale.
- Multe din aplicațiile native Android sunt de fapt web-apps împachetate cu Cordova, deci practic un efort de câteva ore din partea băncii de a realiza un site mobil. Din păcate, viteza și ușurința folosirii unor astfel de aplicații lasă de dorit. Așteptările în momentul în care descarci din Google Play este să folosești o aplicație nativă cu toate avantajele ei, și nu să dai peste o aplicație care este de fapt un browser în care se deschide varianta mobilă a site-ului băncii.
Într-o prezentare făcută luna trecută la târgul Internet&Mobile World 2013, Appseleration a prezentat un studiu calitativ și cantitativ asupra băncilor românești care au scos aplicații mobile pe Android.
Clasamentul celor mai vulnerabile aplicații (de la 0 – foarte prost la 10 – excelent):
1. Nextebank, OTP Bank – 1
2. ING Bank – 2
3. Banca Transilvania – 3
4. Citibank, Millenium – 4
5. BCR, Raiffeisen – 5
”Punctajul este mic din cauză că absolut nicio aplicație nu securizează baza de date, preferințele, puține ascund codul, absolut niciuna nu encriptează binarul rezultat, multe aplicații nu verifică certificatul SSL”, a explicat Mailat (foto).
Expertul a dat ca exemplu două cazuri concrete:
1. Din punctul de vedere al modului in care este scris codul, Millenium are aplicații cu cod învechit și lent. Codul denotă un mix de 2-3 dezvoltatori cu stiluri diferite și lipsa dramatică a unui arhitect sau code review-er.
2. Un dezvoltator rău intenționat poate să decompileze aplicația Banca Translvania, să lanseze pe Google Play o nouă aplicație ”Banca Transilvania – 1 an online banking gratuit” și să profite de datele obținute.
Banca Transilvania nu este cea mai vulnerabilă, însă este un exemplu interesant pentru că:
- Are un cod sursă ușor ”citibil” astfel încât se poate observa că baza de date este ne-encriptată (este localizată la ”/data/data/ro.btrl.mobile/databases/bancatransilvania.db”);
- se pot observa cu ușurință end-points nesecurizate de genul: http://www.bancatransilvania.ro/jsn/credits.php sau http://www.bancatransilvania.ro/jsn/deposits.php (chiar dacă acestea sunt legate de currency, nu ar trebui sa fie vizibile atât de ușor);
- parolele folosite se salveaza în clar, în BT_PASSWORD_STORAGE și PASSWORD, în preferințe.
Clasamentul celor mai populare aplicații
Banca Număr down-load-uri Rating-ul utilizatorilor
1. Raiffeisen 50.000 – 100.000 3,7
2. ING 10.000 – 50.000 3,8
3. BT 10.000 – 50.000 3,6
4. BCR 10.000 – 50.000 4,0
5. Millenium 1.000 – 5.000 3,8
6. Citibank 1.000 – 5.000 3,1
7. OTP Bank 1.000 – 5.000 3,6
8. Nextebank 500 – 1.000 4,1
Majoritatea atacurilor de tip decompilare-recompilare nu au ca țintă sistemul bancar, ci aplicații populare, cum ar fi jocurile, iar scopul este trimiterea de SMS-uri ascunse la numere cu tarif special.
Decompilarea și reîmpachetarea aplicațiilor se poate preveni prin ascunderea sau encriptarea unor clase din fișierul binar APK folosind aplicații ca și Proguard sau Dexguard. Soluțiile mai complexe se referă la protejarea bazei de date și a preferințelor (care implicit nu sunt criptate).
Analiza a fost făcută pe Android, pentru că acesta este cel mai utilizat sistem din lume pentru dispozitivele mobile, fiind și aria de expertiză a celor de la Appseleration. Din punctul de vedere al comunicației nesecurizate, aceleași probleme se regăsesc și pe aplicațiile iOS, care însă sunt mai greu de decompilat.
Atacurile de tip ”malware” pentru aplicațiile mobile au cea mai mai rată de creștere dintre toate tipurile de virus dezvoltate la nivel mondial.
Vlad Bârleanu