Pemantauan web bermula dengan tujuan, bukan dengan titik tangkapan. Mengira klien aktif, memasa panggilan API dan membaca isi mesej masing-masing memerlukan bukti berbeza dan keputusan privasi berbeza. Gerbang yang menghantar HTTPS terlindung melihat sambungan, bukan kandungan halaman. Memilih lapisan yang salah menghasilkan data yang kelihatan kaya dan tidak menjawab apa-apa.

Namakan soalan sebelum sumber data

Mulakan dengan keputusan operasi yang harus disokong oleh data. Soalan ketersediaan memerlukan kiraan dan masa, soalan permintaan memerlukan laluan dan kod status, dan soalan kandungan memerlukan isi mesej. Setiap langkah ke dalam menambah sensitiviti dan kerumitan kejuruteraan. Dapatkan pemilik perkhidmatan dan pemilik keselamatan meluluskan audiens, tujuan dan pengendalian sebelum pengumpulan bermula, kerana mengendalikan terowong bukan keputusan itu.

Tulis soalan dalam satu ayat dan simpan di sebelah pelan pengumpulan. Itulah satu-satunya kawalan skop yang boleh dipercayai.

Apa yang gerbang boleh dan tidak boleh tunjukkan

Gerbang yang menghantar HTTPS terlindung dengan betul biasanya melihat alamat, port dan volum, bukan baris permintaan atau isi.

conntrack -L -d 203.0.113.10 | head
tcpdump -ni vpn0 -c 20 'tcp port 443'

Senarai conntrack menunjukkan aliran dan terjemahan, dan tangkapan pendek menunjukkan paket tanpa kandungan aplikasi yang boleh dibaca. Itu cukup untuk menjawab sama ada trafik mengalir, berapa banyak, dan antara titik akhir mana. Ia bukan senarai URL, dan proksi CONNECT biasa menghantar pertukaran terenkripsi tanpa menamatkan TLS aplikasi. Apabila seseorang menjanjikan laluan permintaan dari kedudukan itu, tanya komponen mana yang menyahsulit dan di bawah kepercayaan siapa.

Log aplikasi menjawab kebanyakan soalan permintaan

Untuk aplikasi yang anda kendalikan, pengelogannya yang disokong sendiri biasanya menjawab soalan peringkat permintaan tanpa menyahsulit sambungan orang lain.

curl -sS -o /dev/null -w "%{http_code} %{time_total}\n" https://app.example.com/health
tail -n 5 /var/log/nginx/access.log

Permintaan kesihatan mengukur ketersediaan dari kedudukan klien, dan log akses merekodkan medan yang telah dipilih pelayan untuk disimpan. Pilih medan yang diperlukan tugas dan biarkan selebihnya di luar, kerana URL pun boleh membawa parameter sensitif. Baris log ialah bukti tentang perkhidmatan itu, bukan tentang setiap perkhidmatan lain yang dicapai pengguna melalui terowong. Mengekalkan pengumpulan sempit juga mengekalkan soalan penyimpanan kecil, jadi tetapkan tetingkap lebih pendek daripada eksperimen pemikiran yang menghasilkan keperluan itu.

Pemintasan ialah reka bentuk kepercayaan berasingan

Jika pemeriksaan peringkat mesej benar-benar diperlukan, pemintasan TLS mencipta titik akhir dipercayai baharu dan perkiraan kepercayaan klien yang mesti diedarkan dan dikekalkan. Aplikasi yang menyematkan sijil akan rosak, dan pengendali kini memegang kunci peribadi yang perlindungannya sama penting dengan mana-mana kunci pelayan. Menjadikan pengumpulan berfungsi dengan melemahkan pengesahan sijil, atau menampal aplikasi yang menyematkan sijilnya, menukar kawalan keselamatan dengan baris log. Utamakan reka bentuk pemeriksaan berdokumen yang pengedaran kepercayaannya sudah diurus, dan jauhkan kunci peribadi pihak berkuasa daripada apa-apa yang dikongsi.

Pada akhir tetingkap pengumpulan, keluarkan konfigurasi dan bahan kepercayaannya melalui pemiliknya, dan lupus bukti yang disimpan mengikut dasar yang dipersetujui. Maklumat dipercayai yang cukup untuk tujuan yang dinyatakan ialah kriteria kejayaan, bukan tangkapan terbesar yang mungkin.

Artikel berkaitan