Anda di halaman 1dari 7

Mewaspadai Pencurian Password Pada Firefox

Jika Anda menggunakan browser Firefox, pada saat mengisi informasi pada kotak login akan muncul
notifikasi untuk menyimpan data login Anda. Anda dapat menyimpan data login atau menolak untuk
menyimpan data login tersebut. Jika Anda menyimpan data login, selanjutnya Anda tidak perlu
memasukan data login kembali jika kembali mengakses situs tersebut. Data login akan otomatis terisi
oleh Firefox.

Gambar1. Notifikasi dari Firefox untuk menyimpan data login.

Tidak hanya Firefox yang menawarkan fitur untuk menyimpan data login, browser lain seperti Google
Chrome atau Internet Explorer pun memiliki fitur serupa. Dengan adanya fitur ini, diharapkan pengguna
browser tidak perlu lagi repot untuk mengingat-ingat data login.

Jika Anda mendapatkan notifikasi seperti Gambar1 dan memilih tombol “Remember”, maka Firefox akan
menyimpan data login yang Anda masukan di situs yang Anda akses. Anda bisa melihat data login
tersebut melalui menu Tools | Options | Security, klik pada tombol “Saved Password”. Jendela baru yang
baru yang terbuka akan menampilkan informasi berisi situs dan username yang telah tersimpan, Anda
dapat memilih tombol “Show Passwords” untuk menampilkan informasi password.

Gambar2. Tampilan menu Options pada Firefox.

Gambar4. Konfirmasi untuk autorisasi penyimpanan data login.

Firefox menyediakan fitur autorisasi untuk mengatur pengguna yang dapat mengakses data login yang
tersimpan oleh Firefox. Caranya yaitu dengan mengaktifkan pilihan “Use a master password”. Dengan
menggunakan fitur autorisasi ini maka saat membuka situs yang data loginnya pernah disimpan, Firefox
akan meminta password untuk mengakses data yang dibutuhkan. Begitu juga autorisasi ini terjadi saat
memiih tombol “Saved Password”.

Gambar3. Isi data login yang telah tersimpan.

Dimana Firefox menyimpan data login Anda? Apakah data Anda aman dari pengintip?

Kedua pertanyaan tersebut akan muncul jika sisi sekuriti dikedepankan. Firefox menyimpan data login di
file bernama signons.sqlite sedangkan data autorisasi bernama key3.db. Berikut lokasi dari kedua file ini :

- Windows 7/Vista/XP/2000 –> %APPDATA%\Mozilla\Firefox\Profiles\xxxxxxx.default\


- Windows 98/Me –> C:\WINDOWS\Application Data\Mozilla\Firefox\Profiles\xxxxxxx.default\

Jika Anda pernah mengupgrade Firefox dari versi lama, maka Anda akan melihat file dengan nama
signons3.txt. File tersebut merupakan tempat penyimpanan password pada Firefox versi lama. Berikut
contoh isi dari file signons.sqlite :
http://www.codeproject.comhttp://
www.codeproject.comctl00$MC$MemberLogOn$CurrentEmailctl00$MC$MemberLogOn$CurrentPasswo
rdMEIEEPgAAAAAAAAAAAAAAAAAAAEwFAYIKoZIhvcNAwcECGcTd7hGWhzNBBghbMXi9ylLdKqhqHyv2M
DMr8Y5/WoRS/
o=MDIEEPgAAAAAAAAAAAAAAAAAAAEwFAYIKoZIhvcNAwcECOqPKSgutRwfBAixttNWrvZTHw=={a6aa530
3-9521-436e-97c2-382ad7d8ecfa}

Bagaimana cara mendekripsinya? Hmm…

Mengintip managemen password pada Firefox

Seperti yang telah diketahui, Firefox menyimpan data login di signons.sqlite. File tersebut merupakan file
database dengan format SQLite. Pada Firefox terdapat addon sebagai editor untuk SQLite yaitu SQLite
Manager. Dengan adanya addon ini, Anda dapat melihat struktur table pada file signons.sqlite. Setelah
Anda menginstall addon ini, buka file signons.sqlite melalui menu Database | Connect Database. Jika
dilihat, di tabel moz_logins, pada kolom encryptedUsername dan encryptedPassword, username dan
password untuk login telah terenkripsi.

Gambar5. Tampilan SQLite Manager.

Jika Anda tidak menggunakan master password untuk menyimpan atau mengakses data login, data yang
tersimpan hanya terenkripsi dengan menggunakan Base 64. Untuk mendekripsi tipe encoding Base 64
tidaklah sulit, source code Base 64 atau online services untuk melakukan proses enkripsi-dekripsi pun
bertebaran di Intenet. Oleh karena itu, dengan tidak menggunakan master password, setiap orang yang
dapat mengakses file signons?.txt atau signons.sqlite, dapat dengan mudah mendekripsi dan
mendapatkan informasi-informasi login (pribadi) Anda.

Namun bagaimana jika Anda menggunakan master password?

Berikut adalah kode kriptografi yang digunakan untuk mendekripsi data login :

_decrypt : function (cipherText) {

let plainText = null, userCanceled = false;

try {

let plainOctet;

if (cipherText.charAt(0) == '~') {

// The old Wallet file format obscured entries by

// base64-encoding them. These entries are signaled by a


// leading '~' character.

plainOctet = atob(cipherText.substring(1));

} else {

plainOctet = this._decoderRing.decryptString(cipherText);

plainText = this._utfConverter.ConvertToUnicode(plainOctet);

} catch (e) {

this.log("Failed to decrypt string: " + cipherText +

" (" + e.name + ")");

// In the unlikely event the converter threw, reset it.

this._utfConverterReset();

// If the user clicks Cancel, we get NS_ERROR_NOT_AVAILABLE.

// If the cipherText is bad / wrong key, we get NS_ERROR_FAILURE

// Wrong passwords are handled by the decoderRing reprompting;

// we get no notification.

if (e.result == Components.results.NS_ERROR_NOT_AVAILABLE)

userCanceled = true;

return [plainText, userCanceled];

},

Jika dilihat, pada saat mendekripsi string, jika karakter pertama dari string adalah “~”, maka fungsi yang
digunakan yaitu fungsi atob. Fungsi atob sendiri menggunakan encoding Base 64. Kode ini dapat dilihat
di \Program Files\Mozilla Firefox\components\ storage-mozStorage.js atau pada source code di \toolkit\
components\passwordmgr\src\storage-mozStorage.js

Jika Anda ingin bertukar pesan dengan teman Anda dan ingin menyembunyikan pesan dengan cepat,
Anda bisa menggunakan fungsi atob untuk mengenkripsi dan btoa untuk mendekripsi. Silahkan Anda
mengetik “javascript:atob("TkMxMjUzSFo2")” pada kotak url di browser Firefox Anda. Sedangkan untuk
mengenkripsi suatu string, ketikan “javascript:btoa("somestring")”.

Apabila karakter pertama dari string bukanlah “~” maka kodenya yaitu :

plainOctet = this._decoderRing.decryptString(cipherText);

Fungsi decryptString terdapat pada file /security/manager/ssl/src/nsSDR.cpp. Berikut potongan kode


dari nsSDR.cpp :

/* string decryptString (in string crypt); */


NS_IMETHODIMP nsSecretDecoderRing::
DecryptString(const char *crypt, char **_retval)
{
  nsNSSShutDownPreventionLock locker;
  nsresult rv = NS_OK;
  char *r = 0;
  unsigned char *decoded = 0;
  PRInt32 decodedLen;
  unsigned char *decrypted = 0;
  PRInt32 decryptedLen;

  if (crypt == nsnull || _retval == nsnull) {


    rv = NS_ERROR_INVALID_POINTER;
    goto loser;
  }

  rv = decode(crypt, &decoded, &decodedLen);


  if (rv != NS_OK) goto loser;

  rv = Decrypt(decoded, decodedLen, &decrypted, &decryptedLen);


  if (rv != NS_OK) goto loser;

  // Convert to NUL-terminated string


  r = (char *)nsMemory::Alloc(decryptedLen+1);
  if (!r) { rv = NS_ERROR_OUT_OF_MEMORY; goto loser; }

  memcpy(r, decrypted, decryptedLen);


  r[decryptedLen] = 0;

  *_retval = r;
  r = 0;

loser:
  if (decrypted) PORT_Free(decrypted);
  if (decoded) PR_DELETE(decoded);
  return rv;
}

Mari melihat algoritma dari fungsi di atas. Ada dua fungsi penting yang digunakan untuk enkripsi pada
string yaitu decode dan decrypt. Jika ditelusuri, maka fungsi decode tetap menggunakan Base 64 untuk
mengubah mendekripsi hasil enkripsi ke string biasa (plain text). Sedangkan pada fungsi decrypt, fungsi
ini mengakses tiga fungsi lagi yaitu :

- PK11_GetInternalKeySlot
- PK11_Authenticate
- PK11SDR_Decrypt

Ketiga fungsi ini menggunakan standar cryptographic API PKCS #11 dan cryptographic library Mozilla
NSS. Pada PK11SDR_Decrypt, algoritma enkripsi yang digunakan yaitu TripleDes (CBC mode). Jadi jika
Anda menggunakan master password, Firefox akan menggunakan algoritma enkripsi bernama TripleDes.

Modifikasi notifikasi untuk menyimpan password

Apabila ada malware yang berhasil aktif di sistem Anda, dimana malware tersebut mencuri semua data
login yang telah Anda simpan. Tentunya hal ini akan membawa kerugian bagi Anda karena data-data
pribadi Anda jatuh ke tangan orang lain.

Muncul pertanyaan :

“Bagaimana jika saya tidak pernah menyimpan data login di Firefox? Tidak ada yang bisa mencuri dong?”

Sayangnya, kelakuan malware terkadang membuat kepada bergeleng-geleng. Malware dapat membuat
Firefox memaksa Anda untuk selalu menyimpan data login meskipun Anda tidak ingin menyimpannya!

Penulis menggunakan Firefox 3.6.7. Berikut rahasia yang digunakan oleh malware :

1. Pastikan Firefox tidak aktif. Buka file nsLoginManagerPrompter di Program Files\Mozilla Firefox\
components\
2. Pada baris 855, ubah tulisan dari :
pwmgr.setLoginSavingEnabled(aLogin.hostname, false);
menjadi
pwmgr.addLogin(aLogin);
3. Pada baris 864, ubah tulisan dari :
/* NOP */
menjadi
pwmgr.addLogin(aLogin);
4. Simpan hasil modifikasi. Jangan lupa untuk membuat backup dari file asli.

Apa efek dari pemodifikasian kode di atas? Setiap kali notifikasi untuk menyimpan data login muncul,
tombol apa pun yang Anda pilih maka Firefox akan menyimpan data login Anda.
Password recovery versus Password stealer

Saat ini sudah mulai banyak program Firefox password recovery yang bertujuan untuk mendapatkan
kembali data login atau bahkan master password apabila si pengguna lupa akan password yang
digunakannya.

Salah satu contoh program password recovery untuk Firefox yaitu FirePasswordViewer. Dengan
program ini Anda dapat melihat data login Anda yang telah tersimpan

Gambar6. Tampilan FirePasswordViewer.

Untuk menggunakan FirePasswordViewer sangat mudah. Setelah membuka program, Anda cukup
memilih tombol “Start Recovery” untuk menampilkan daftar situs beserta username. Dengan
memilih tombol “Show Password” akan menampilkan data password pada login Anda. Jika Anda
menggunakan master password, maka Anda harus mengisi master password untuk menampilan data
password.

Selain FirePasswordViewer, ada program bernama FireMaster. Jika FirePasswordViewer untuk


melihat data login, sedangkan FireMaster bertujuan untuk meng-crack master password. Secara
garis besar, teknik yang digunakan oleh FireMaster yaitu dictionary attack dan bruteforce attack.
Program ini pun bersifat open source.

Gambar7. Tampilan FireMaster.

Berbeda dengan program berjenis password recovery, meskipun konsep yang digunakan sama,
tetapi penyalahgunaan dari konsep ini membuat terciptanya payload dari malware. Password stealer
merupakan salah satu payload dari malware. Tujuan dari program ini untuk mencuri data-data yang
tersimpan termasuk data login pada Firefox. Umumnya data yang dicuri akan dikirim ke pembuat
trojan, baik melalui email, ftp dan cara yang lainnya. Salah satu contoh program ini adalah iStealer.
Silahkan lihat gambar8 untuk melihat data dari program apa saja yang dapat dicuri oleh iStealer.

Gambar8. Tampilan iStealer.

Program FirePasswordViewer, FireMaster dan source code FireMaster beserta contoh source code
password source stealer dapat didapatkan di dalam DVD.

Memilih master password

Untuk mendekripsi data login yang tersimpan, Firefox membutuhkan master password yang
tersembunyi di key3.db. Oleh karena itu, tolak ukur kekuatan data login yang tersimpan yaitu
tergantung kompleksitas dari master password. Salah satu tips untuk membuat password yang baik
ialah password minimal 8 karakter dan juga menggunakan karakter spesial seperti “%, !, &”.
Kesimpulan

Firefox telah menggunakan algoritma enkripsi yang cukup baik namun jika Anda ingin menyimpan
password Anda pada Firefox sebaiknya gunakanlah fitur master password. Selain orang lain tidak bisa
mengakses data pribadi Anda secara bebas, Anda pun terhindar dari program password stealer.

Anda dapat menggunakan data login yang tersimpan di komputer Anda ke komputer lain yaitu
dengan mengkopi singons3.txt, signons.sqlite and key3.db ke folder serupa di komputer lain.

Tidak hanya Firefox, seperti yang terlihat pada gambar8, browser lain seperti Internet Explorer,
Google Chrome atau Opera pun dapat menjadi sasaran dari malware. Oleh karena itu, gunakanlah
master password pada Firefox.

Lebih Lanjut :

- http://en.wikipedia.org/wiki/Base64
- http://www.mozilla.org/projects/security/pki/nss/nss-guidelines.html
- http://mxr.mozilla.org/mozilla-central/source/security/manager/ssl/src/

Ilustrasi : Bagaimana Firefox menyimpan password Anda? Celah apa yang dapat dieksploitasi oleh
malware?

Gambar ilustrasi : ilustrasi.jpg

Anda mungkin juga menyukai