Mendeteksi sensor oleh ISP dengan OONI


Salah satu indikasi adanya diktator adalah sensor terhadap informasi. Dengan melakukan pembodohan seperti menghalangi pendidikan dan akses terhadap informasi, diktator berharap dapat mempertahankan posisinya. Diktator juga cenderung melakukan penyadapan karena ia ingin segalanya berada dalam kendali. Ia perlu melakukan semua ini karena ia tidak akan sanggup bertahan pada persaingan yang bebas, jujur dan adil.

Open Observatory of Network Interference (https://ooni.torproject.org/) adalah sebuah global observation network yang dikembangkan untuk mendeteksi sensor dan penyadapan yang dilakukan oleh ISP. Pengguna melakukan serangkaian pengujian melalui ooniprobe yang menghubungi server ooni-backend. Semakin banyak jumlah pengguna dan semakin sering pengguna melakukan pengujian, maka peneliti jaringan dapat semakin memastikan praktek sensor dan penyadapan yang dilakukan oleh ISP atau pihak lainnya. Laporan hasil pengujian dapat diakses secara terbuka oleh siapa saja di https://ooni.torproject.org/reports/0.1/ (dikelompokkan berdasarkan negara).

Saya akan mulai dengan melakukan instalasi ooniprobe pada Debian Live (yang merupakan versi stable bukan testing). Pada saat tulisan ini dibuat, versi terbaru ooniprobe di wheezy-backport adalah 1.1.1-1. Saya dapat menemukan versi yang lebih baru di PyPI yang sudah mencapai 1.2.2. Oleh sebab itu, saya akan mencoba men-install ooniprobe yang ada di PyPI. Sebelumnya, saya perlu men-download beberapa package yang dibutuhkan terlebih dahulu dahulu dengan membuka root terminal dan memberikan perintah berikut ini:

# apt-get update && apt-get install python-dev python-pip python-dumbnet libpcap libgeoip-dev libffi-dev tor

Setelah ini, saya dapat men-download ooniprobe di PyPI melalui pip dengan perintah seperti berikut ini:

# pip install ooniprobe

Setelah proses instalasi selesai, saya dapat melihat apa saja pengujian yang dapat dilakukan oleh ooniprobe dengan memberikan perintah berikut ini:

# ooniprobe -s

Perintah di atas juga akan membuat file konfigurasi ooniprobe.conf di lokasi ~/.ooni.

Sebelum memulai pengujian, saya akan men-download resources terbaru dengan memberikan perintah berikut ini:

# ooniresources --update-inputs --update-geoip

Pengujian yang dilakukan oleh OONI dideskripsikan dalam file yang disebut sebagai deck. Dengan demikian, sebuah deck adalah kumpulan dari net test. Saya dapat melihat deck bawaan di di lokasi /usr/share/ooni/decks:

# ls /usr/share/ooni/decks
complete.deck  complete_no_root.deck  fast.deck  fast_no_root.deck  mlab.deck

Saya juga membuat deck khusus untuk mewakili negara saya dengan memberikan perintah berikut ini:

# oonideckgen
Unable to lookup the probe IP via traceroute
Looking up your IP address via torproject
Found your IP via a GeoIP service: x.x.x.x
Deck written to /home/user/deck-id/0.0.1-id.user.deck
Run ooniprobe like so:
ooniprobe -i /home/user/deck-id/0.0.1-id-user.deck

Perintah di atas akan menghasilkan folder dengan nama deck-id. id adalah kode negara untuk Indonesia berdasarkan standar ISO 3166-2. oonideckgen memperoleh informasi mengenai negara saya melalui layanan GeoIP.

Sesuai dengan output perintah oonideckgen, saya dapat memulai pengujian dengan memberikan perintah berikut ini:

# ooniprobe -i /home/user/deck-id/0.0.1-id-user.deck

Setelah pengujian selesai dilakukan, ooniprobe akan menghasil file yaml yang berisi informasi hasil untuk masing-masing net test. File ini akan dikirim ke server laporan sehingga dapat diakses oleh publik di lokasi https://ooni.torproject.org/reports/.

Pengujian blocking/dns_consistency akan mendeteksi sensor yang dilakukan melalui DNS. Ini adalah metode sensor yang sederhana dimana ISP mengalihkan request ke URL yang sah menjadi ke lokasi yang berbeda. Pengujian ini bisa menghasilkan false positive karena website modern biasanya memiliki load-balancing yang akan mengalihkan request ke server terdekat sesuai dengan wilayah geografis.

Pengujian blocking/http_requests akan mendeteksi sensor yang dilakukan secara MITM (yang masuk dalam kategori penyadapan). Pengujian ini akan membandingkan request HTTP normal dari komputer dan request HTTP melalui jaringan Tor. Bila blocking/http_requests mendeteksi perbedaan, ia akan menampilkan pesan seperti:

The two body lengths appear to not match
cencorship could be happening
Headers appear to *not* match

Jaringan Tor adalah jaringan ‘bawang’ dimana saya tidak menghubungi server tujuan secara langsung melainkan ‘berputar-putar’ terlebih dahulu ke sesama pengguna Tor. Tujuannya adalah agar ISP tidak mengetahui destinasi pengguna yang sesungguhnya. Kemungkinan sensor dari ISP juga menjadi sangat kecil karena request HTTP versi Tor akan dilakukan oleh komputer lain yang memakai ISP berbeda (sama seperti pada VPN!). Tentu saja ISP lokal masih memiliki peluang melakukan sensor konten bila mereka berhasil memecahkan enkripsi paket yang dilakukan oleh Tor atau men-install backdoor langsung pada komputer pengguna.

Pengujian manipulation/http_invalid_request_line akan berusaha mengirimkan request ilegal dengan harapan proxy penyadap mengembalikan pesan kesalahan. Pada laporan yaml untuk http_invalid_request_line, saya dapat membandingkan nilai received dan send. Bila berbeda, tampering akan bernilai true. Sebagai contoh, pada pengujian yang saya lakukan untuk sebuah ISP lokal, terlihat secara jelas bahwa nilai received berbeda dengan send. Ini menunjukkan bahwa ISP lokal tersebut memiliki proxy yang ‘menyadap’ komunikasi saya.

Pengujian manipulation/http_header_field_manipulation memeriksa apakah header yang dikirim sama persis dengan header yang diterima oleh server; aktifitas penyadapan bisa saja menyebabkan perubahan http header. Sebagai contoh, pada laporan yaml untuk http_header_field_manipulation, saya menemukan bahwa ISP lokal (atau bisa juga router dan modem) yang saya pakai membuang header acCepT-EncODINg karena HTTP header tersebut tidak sampai di server tujuan. Bila dilihat secara positif, ia membuat pengguna terhindar dari serangan seperti CRIME dan BREACH. Bila dilihat secara negatif, ia membuat akses Internet semakin lambat dan konten lebih mudah disadap.

Perihal Solid Snake
I'm nothing...

Apa komentar Anda?

Please log in using one of these methods to post your comment:

Logo WordPress.com

You are commenting using your WordPress.com account. Logout / Ubah )

Gambar Twitter

You are commenting using your Twitter account. Logout / Ubah )

Foto Facebook

You are commenting using your Facebook account. Logout / Ubah )

Foto Google+

You are commenting using your Google+ account. Logout / Ubah )

Connecting to %s

%d blogger menyukai ini: