Alat baru untuk mendeteksi intersepsi HTTPS



Seiring meningkatnya penggunaan HTTPS, keinginan orang yang tidak berwenang untuk menyusup ke lalu lintas yang dilindungi meningkat. Sebuah studi tahun 2017 oleh Dampak Keamanan dari Interception HTTPS menemukan ini menjadi praktik yang semakin umum. Analisis lalu lintas pada server pembaruan Firefox menunjukkan bahwa di beberapa negara persentase memperkenalkan agen pihak ketiga di HTTPS mencapai 15%.

Sejak penelitian, situasinya tidak mungkin membaik. Sekarang, bahkan model headphone nirkabel Sennheiser terbaru memerlukan pemasangan sertifikat root (dengan parameter tidak aman) dalam sistem .

Paling sering, antivirus atau middlebox korporat membahayakan perlindungan (lihat daftar di bawah), tetapi bisa lebih buruk. Dalam hal apa pun, yang terbaik adalah mengetahui dengan pasti kapan saluran HTTPS Anda sebenarnya tidak aman end-to-end. Bahkan ketika sistem pihak ketiga memotong lalu lintas yang bermaksud baik, sering kali tidak mendukung sandi modern atau tidak memvalidasi sertifikat, sehingga mengurangi keseluruhan perlindungan koneksi. Tetapi mereka dapat mencegat lalu lintas SSL tidak hanya untuk tujuan yang baik, tetapi juga untuk tujuan jahat: misalnya, untuk penyensoran di tingkat negara.

Program pemantauan HTTPS bertindak sebagai proxy transparan yang memutuskan sesi TLS, memeriksa konten, dan kemudian membuat sesi baru dengan server tujuan. Mereka menggunakan versi yang berbeda dari perpustakaan TLS dari browser populer, yang memungkinkan mereka untuk dideteksi di sisi server oleh ketidakcocokan antara HTTP User-Agent dan TLS Client Halo dari browser dan proxy yang sebenarnya.

Untuk memulai, berikut adalah beberapa wawasan praktis dari studi 2017 yang meliputi Mozilla, Google, GlobalSign, serta peneliti akademis dari University of Michigan, University of Illinois di Urban-Champaign, dan University of California di Berkeley.

Kerugian praktis dari intersepsi HTTPS adalah degradasi enkripsi dan kerentanan proxy transparan tambahan. Para penulis penelitian mengevaluasi sejumlah middlebox populer dengan parameter ini. Seperti yang Anda lihat, pada tahun 2017, hampir setengah dari mereka tidak mendukung suite sandi modern, dan lima kerentanan serius terdaftar. Hanya 1 dari 12 yang dapat sepenuhnya mencerminkan semua suite sandi khusus.



Aktivitas antivirus di komputer pengguna juga biasanya terdeteksi di sisi server. Studi ini menunjukkan bahwa hanya dua antivirus yang sepenuhnya mencerminkan sandi pengguna, dalam kasus lain enkripsi menurun.



Melindungi dari beberapa ancaman, antivirus mengurangi enkripsi dan menambahkan kerentanannya sendiri. Secara umum, menginstal antivirus pihak ketiga sering secara signifikan menurunkan keamanan keseluruhan sistem. Beberapa ahli menyarankan pengguna untuk selalu menghapus antivirus pihak ketiga dari sistem , karena kode invasif dan tulisannya yang buruk membuat browser dan program lain sulit untuk menyediakan keamanan mereka sendiri.

Dalam perjalanan antara klien dan server, proxy transparan lainnya juga dapat berfungsi. Untuk mendeteksi agen ini dengan lebih baik, Cloudflare baru-baru ini merilis dua alat baru:

  1. MITMEngine , perpustakaan gratis untuk mendeteksi intersepsi HTTPS.
  2. MALCOLM , dasbor untuk menampilkan metrik tentang intersepsi HTTPS di jaringan Cloudflare.

Minat utama adalah perpustakaan MITMEngine. Para pengembang menulis bahwa mereka mengambil alat Deteksi MITM Caddy Server populer sebagai sampel. Ini mendukung satu set peramban populer dan mengenali intersepsi HTTPS dengan sidik jari spesifik dari Halo Pelanggan dan pesan-pesan Agen Pengguna TLS, seperti dijelaskan di atas.

Para pengembang mencoba untuk memberikan perpanjangan dengan menyederhanakan penambahan versi baru dari browser ke detektor, serta meningkatkan kinerja dan memperluas fungsi detektor dibandingkan dengan Caddy Server MITM Detection. Ini menganalisis parameter Halo Klien TLS berikut, membandingkan data nyata dengan sidik jari peramban yang dikenal:

  • Versi TLS
  • suite sandi;
  • ekstensi dan artinya;
  • kelompok kurva elips yang didukung;
  • format titik dari kurva elips.

Faktanya, MITMEngine melakukan sidik jari sebagian dari pengguna tanpa mendanonimkannya, tetapi dengan tekad yang dapat diandalkan bahwa koneksi dibuat oleh browser nyata, bukan perantara.

Contoh kerja


Misalkan MITMEngine melihat Agen Pengguna berikut dari pengguna:

Mozilla/5.0 (Windows NT 6.1; WOW64) AppleWebKit/537.36 (KHTML, like Gecko)
Chrome/47.0.2526.111 Safari/537.36


Agen Pengguna ini terkait dengan Chrome 47 di Windows 7. Itu disertai dengan pesan Halo Klien TLS, yang menunjukkan suite sandi berikut, dalam hex:

0000 c0 2b c0 2f 00 9e c0 0a c0 14 00 39 c0 09 c0 13 .+./.... ...9....
0010 00 33 00 9c 00 35 00 2f 00 0a .3...5./ ..


Pesan ini cocok dengan suite sandi berikut:

TLS_ECDHE_ECDSA_WITH_AES_128_GCM_SHA256 (0xc02b)
TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256 (0xc02f)
TLS_DHE_RSA_WITH_AES_128_GCM_SHA256 (0x009e)
TLS_ECDHE_ECDSA_WITH_AES_256_CBC_SHA (0xc00a)
TLS_ECDHE_RSA_WITH_AES_256_CBC_SHA (0xc014)
TLS_DHE_RSA_WITH_AES_256_CBC_SHA (0x0039)
TLS_ECDHE_ECDSA_WITH_AES_128_CBC_SHA (0xc009)
TLS_ECDHE_RSA_WITH_AES_128_CBC_SHA (0xc013)
TLS_DHE_RSA_WITH_AES_128_CBC_SHA (0x0033)
TLS_RSA_WITH_AES_128_GCM_SHA256 (0x009c)
TLS_RSA_WITH_AES_256_CBC_SHA (0x0035)
TLS_RSA_WITH_AES_128_CBC_SHA (0x002f)
TLS_RSA_WITH_3DES_EDE_CBC_SHA (0x000a)


Suite sandi default untuk Chrome 47 adalah sebagai berikut:

0000 c0 2b c0 2f 00 9e cc 14 cc 13 c0 0a c0 14 00 39 .+./.... .......9
0010 c0 09 c0 13 00 33 00 9c 00 35 00 2f 00 0a .....3.. .5./..


Jika Anda perhatikan dengan teliti, Anda dapat melihat: dalam traffic nyata, daftar cipher sedikit lebih pendek dari yang seharusnya ada di browser asli. Meskipun sisanya diatur dalam urutan yang sama, dua set tidak ada:

TLS_ECDHE_ECDSA_WITH_CHACHA20_POLY1305_SHA256 (0xcc14)
TLS_ECDHE_RSA_WITH_CHACHA20_POLY1305_SHA256 (0xcc13)


Dapat diasumsikan bahwa lalu lintas dari browser pengguna melewati proxy transparan yang tidak mendukung sandi ChaCha. Ini mengurangi perlindungan pengguna karena suite cipher AES-CBC di sebelah ChaCha rentan terhadap padding serangan oracle.

Dalam beberapa kasus, MITMEngine bahkan memungkinkan Anda untuk menentukan program spesifik mana yang menyebabkan degradasi koneksi HTTPS (dalam contoh di atas, itu adalah antivirus Sophos). Server dapat memperingatkan pengguna tentang ancaman ini.





Source: https://habr.com/ru/post/id444496/


All Articles