Pemungutan suara garis partai Kongres akan memungkinkan ISP untuk mengeksploitasi data pribadi keluarga Anda tanpa persetujuan Anda. Lihat " Senat menempatkan keuntungan ISP atas privasi Anda ".
Script ini dirancang untuk mengalahkan pelanggaran ini dengan menghasilkan sejumlah besar penelusuran web acak yang realistis untuk mencemari data ISP dan menjadikannya tidak berguna secara efektif dengan mengaburkan data penelusuran aktual.
Saya membayar banyak ISP untuk penggunaan data setiap bulan. Saya biasanya tidak menggunakan semua bandwidth yang saya bayar. Jika ISP saya akan menjual kebiasaan penelusuran pribadi, maka saya akan mencemari penelusuran dengan kebisingan dan menggunakan semua bandwidth yang saya bayar. Metode ini mencapai ini.
Jika semua orang menggunakan semua data yang telah mereka bayar untuk mencemari riwayat penelusuran mereka, maka mungkin ISP akan mempertimbangkan kembali model bisnis penjualan sejarah penjelajahan pribadi pelanggan.
Alternatif menggunakan VPN atau Tor hanya mendorong masalah ini ke pilihan penyedia VPN, menyulitkan jaringan, dan menambahkan masalah nyata menavigasi captcha ketika muncul sebagai node keluar Tor. Juga, lalu lintas terenkripsi memiliki terlalu banyak informasi saluran samping yang dapat dieksploitasi, dan masih dapat digunakan untuk menentukan kapan anggota keluarga tertentu di rumah, dan kegiatan di mana mereka terlibat.
Perayap ini menggunakan Chromedriver dengan Pustaka Python Selenium, menggunakan daftar hitam untuk situs web yang tidak diinginkan (lihat kode untuk detail), tidak mengunduh gambar, dan menghormati robot.txt, yang semuanya memberikan keamanan yang baik.
python3 isp_data_pollution.py
python3 isp_data_pollution.py --help
python3 isp_data_pollution.py -bw 1024 # 1 TB per month
python3 isp_data_pollution.py -g # print debugging statements
Pendekatan yang digunakan dalam skrip ini rentan terhadap serangan statistik dan anomali lalu lintas. Artikel Jon Brodkin tentang privasi melalui injeksi kebisingan mencakup beberapa kritik yang valid: pendekatan ini tidak dijamin untuk mengaburkan informasi pribadi yang sensitif, dan bahkan jika itu bekerja pada awalnya, itu mungkin tidak skala. Kelemahan dan saran yang diketahui untuk perbaikan disambut di halaman masalah.
Namun, ada informasi teori dan probabilistik informasi yang baik untuk menyarankan pendekatan seperti ini dapat bekerja dalam banyak situasi praktis. Privasi melalui kebingungan telah digunakan dalam banyak konteks. Dalam ilmu data, Rubin mengusulkan metode yang sehat secara statistik untuk menjaga kerahasiaan subjek dengan menutupi data pribadi dengan data sintetis ("Keterbatasan Pengungkapan Statistik", Jos 9 (2): 461-468, 1993). Dalam makalah bagus yang relevan dengan repo ini, Ye et al. Jelaskan model privasi sisi klien yang menggunakan injeksi kebisingan ("injeksi kebisingan untuk perlindungan privasi pencarian", Proc. 2009 Intl. CSE ).
Berikut adalah dua argumen back-of-the-envelope untuk kemanjuran pendekatan ini dalam kasus intrusi privasi ISP. Ini bukan bukti, tetapi model sederhana yang menyarankan beberapa optimisme diperlukan. Kemanjuran aktual harus ditentukan dengan menguji model -model ini di dunia nyata.
Pendekatan Ye et al. Berusaha meminimalkan informasi timbal balik antara data pengguna dan data pengguna dengan noise yang disuntikkan yang disajikan ke server. Informasi timbal balik adalah tumpang tindih antara entropi data pengguna, dan entropi data pengguna dengan noise yang disuntikkan (area ungu di bawah). Jumlah dan distribusi noise yang disuntikkan dipilih untuk membuat informasi timbal balik ini sekecil mungkin, sehingga membuatnya sulit untuk mengeksploitasi data pengguna di sisi server.
Contoh dalam makalah Ye et al. Adalah kueri pencarian khusus. Analogi dalam repo ini adalah domain spesifik. Informasi domain adalah data utama yang bocor ke ISP jika HTTPS terenkripsi digunakan, dan karenanya relevan. Kasus lalu lintas yang tidak terenkripsi dengan istilah dan konten kueri eksplisit dibahas di bagian selanjutnya tentang kemungkinan maksimum.
Ye et al. Tunjukkan bahwa informasi timbal balik menghilang jika:
Jumlah panggilan kebisingan ≥ (jumlah panggilan pengguna - 1) × jumlah kemungkinan panggilan
Untuk aplikasi ini, jumlah kemungkinan panggilan adalah jumlah domain yang mungkin dikunjungi pengguna (per hari), dan jumlah panggilan adalah jumlah kunjungan yang dilakukan. Nielson melaporkan pada 2010 bahwa rata -rata orang mengunjungi 89 domain per bulan. Agar sangat konservatif dalam (lebih) memperkirakan jumlah panggilan kebisingan yang diperlukan untuk mengaburkan data penelusuran ini, mengasumsikan bahwa rata -rata pengguna kunjungan O (100) domain per hari, dengan permintaan pengguna O (200) per hari, atau sekitar satu setiap lima menit dalam sehari yang panjang.
Persamaan di atas menegaskan bahwa (200-1) × 100 atau sekitar dua puluh ribu (20.000) panggilan kebisingan diperlukan untuk mencapai nol informasi timbal balik antara data pengguna dan data pengguna plus noise.
Ini sama dengan satu panggilan kebisingan setiap lima detik, yang sangat mudah dicapai dalam praktik, dan dengan mudah berada dalam batas bandwidth nominal 50 GB per bulan.
Jika model teori informasi sisi klien Ye et al. Valid dalam praktiknya, maka masuk akal untuk berharap bahwa parameter yang dipilih dalam skrip ini akan dapat sangat mengurangi atau menghilangkan informasi timbal balik antara data domain pengguna yang sebenarnya dan data domain yang disajikan kepada ISP.
Selain itu, lebih sedikit panggilan kebisingan dapat digunakan jika model ketergantungan diperkenalkan antara distribusi pengguna dan noise.
Panggilan HTTP yang tidak terenkripsi membocorkan data pengguna yang sangat spesifik ke ISP. Metode iklan yang ditargetkan menggunakan data yang ditangkap ini untuk mengklasifikasikan pengguna dan melayani iklan yang disesuaikan berdasarkan kategori pengguna. Secara probabilistik, pendekatan ini secara inheren tergantung pada menemukan "puncak" spesifik dalam distribusi permintaan pengguna, kemudian menggunakan puncak ini untuk menemukan kategori konsumen yang paling mungkin untuk pengguna. Menyuntikkan sejumlah besar panggilan yang tidak berkorelasi (atau lebih baik, anti-berkorelasi) dapat menghambat pendekatan kemungkinan maksimum yang digunakan untuk mengklasifikasikan pengguna karena menambahkan lebih banyak puncak di seluruh distribusi yang diukur dari kepentingan pengguna.
Selain itu, bandwidth transmisi pengiklan sangat dibatasi - hanya begitu banyak iklan yang cocok di halaman web. Menambahkan panggilan kebisingan yang tidak berkorelasi memperumit masalah memilih iklan yang sesuai.
Baik artikel bagus Kaveh Waddell dan Jon Brodkin tentang privasi ISP di Atlantik dan ARS Technica membahas kritik penting dari pendekatan ini. Ini dirangkum di sini bersama dengan respons baik sehingga pengguna mengetahui masalah ini, dan untuk meminta saran untuk mengatasinya.
“Menopang Sejarah Penelusuran Seseorang Dengan Melaporkan Salinan Pola Penelusuran Orang lain mungkin lebih berguna.… 'Ini akan menjadi sistem seperti TOR di mana anonimitas datang melalui penggunaan bersama.'” [Bruce Schneier]
“[Jangan meremehkan] kemampuan penyedia internet ... untuk melihat melalui taktik data-obfuskasi.” [Bruce Schneier]
"Pencarian Google acak dapat mengirim program ke lubang kelinci gelap, tanpa sepengetahuan pengguna." [Kenn White]
safe=active ditambahkan ke kueri pencarian. -Komentar 2: Lalu lintas Node Keluar Tor hampir pasti berisi lalu lintas seperti itu, yang merupakan masalah penting bagi operator keluar-node. Sebaliknya, kebisingan yang dihasilkan sendiri mungkin terjadi-dan dalam praktiknya tampaknya-sangat aman."Beberapa informasi sensitif bahkan jika dikelilingi oleh kebisingan. ... Bayangkan jika peretas menargetkan ISP Anda, riwayat penelusuran Anda bocor, dan itu menunjukkan Anda mengunjungi situs web kontroversial tertentu. ... Bahkan jika itu dikelilingi oleh kebisingan, akan sangat sulit untuk mendapatkan kebisingan yang akan memberi Anda penyangkalan yang masuk akal." [Jeremy Gillula]
Analisis Pendekatan Kebingungan Data Lain menunjukkan kerentanan terhadap serangan classifer pembelajaran mesin di luar rak: Pedinti dan Saxena menunjukkan klasifikasi pengguna yang bermakna dengan plugin browser TrackMenot yang dimaksudkan untuk mengalahkan mesin pencari permusuhan ("pada privasi pencarian Web berdasarkan query obfuscation: studi case dari trackmenot", di dalam pijat . Model permusuhan dan metode pelatihan yang digunakan dalam analisis ini tidak secara langsung berlaku untuk kasus perantara ISP. Fitur utama dari serangan Pedinti dan Saxena adalah:
Tak satu pun dari fitur serangan ini tentu berlaku untuk model permusuhan ISP. Ada kemungkinan bahwa ISP dapat menggunakan data pengguna yang tidak tercemar historis untuk melatih classifier, namun, ini menganggap bahwa minat, angka, dan identitas pengguna pada alamat IP akun tidak berubah dari bulan ke bulan, sebuah peristiwa yang tidak mungkin untuk sebagian besar pengguna dan rumah tangga. Tanpa data pengguna yang tidak rusak untuk dilatih, makalah ini menggambarkan kesulitan de-anonimisasi pihak ketiga bahkan dengan jumlah kebisingan terbatas. Akan berguna untuk mengukur kinerja klasifikasi dengan dan tanpa kemampuan untuk berlatih dengan data pengguna yang tidak rusak. Mengetahui jawaban untuk kedua kasus akan menunjukkan potensi perbaikan dalam pendekatan pengayaan.
Polusi data adalah salah satu komponen dari memprivatisasi data pribadi Anda. Instal HTTPS EFF di mana -mana dan privasi BUDGER di semua browser. Juga lihat Repos Osxfortress dan OSX-OpenVPN-Server untuk memblokir iklan, pelacak, dan malware di seluruh perangkat.
Menggunakan proxy privatisasi untuk mengumpulkan lalu lintas pribadi Anda sendiri dengan lalu lintas polusi menambahkan lapisan lain kebingungan dengan kontrol lalu lintas header. Header HTTP dari lalu lintas yang tercemar muncul sebagai:
GET /products/mens-suits.jsp HTTP/1.1
Accept: text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8
User-Agent: Mozilla/5.0 (Windows NT 10.0; WOW64; Trident/7.0; rv:11.0) like Gecko
Accept-Encoding: gzip, deflate
Accept-Language: en-US,*
Host: www.bananarepublic.com
Connection: keep-alive
Setelah beberapa saat merangkak secara acak terlihat seperti ini:
This is ISP Data Pollution ??, Version 1.1
Downloading the blacklist… done.
Display format:
Downloading: website.com; NNNNN links [in library], H(domain)= B bits [entropy]
Downloaded: website.com: +LLL/NNNNN links [added], H(domain)= B bits [entropy]
http://eponymousflower.blogspot.com/2017/02/lu…: +6/32349 links, H(domain)=6.8 b
Tangkapan tangkapan layar dari halaman web merangkak secara acak terlihat seperti ini. Perhatikan bahwa tidak ada gambar yang diunduh.
driver.get_screenshot_as_file('his_all_time_greatest_hits.png') :

Bergantung pada instalasi Python (v. 3) Anda, dependensi modulnya numpy , requests , selenium , dan fake_useragent , serta chromedriver . Bagaimana Anda menginstal ini tergantung pada OS Anda.
Ini melibatkan memilih manajer paket Python (ayat 3), biasanya pip atau Anaconda .
Saya suka pip , jadi di mesin saya, saya akan mengatakan:
sudo pip-3.7 install numpy requests selenium fake_useragent OpenSSL
Direkomendasikan agar biner chromedriver dipasang langsung dari [chromedriver.chromium.org] (http://chromedriver.chromium.org/downloads. Pastikan untuk memverifikasi etag dari instalasi yang diunduh.
Perintah pemasangan MacPorts adalah:
sudo port install chromedriver py37-numpy py37-requests py37-psutil py37-openssl psutil
Inilah yang juga diperlukan pada macOS:
sudo port install chromedriver
sudo -H pip-3.7 install selenium fake_useragent
# if chromedriver fails to install because of an Xode configuration error: test with
/usr/bin/xcrun -find xcrun
# then do this:
cd /Applications/Xcode.app/Contents/Developer/usr/bin/
sudo ln -s xcodebuild xcrun
Homebrew adalah pilihan bagus lainnya.
sudo yum -y install https://centos7.iuscommunity.org/ius-release.rpm
sudo yum -y groupinstall development
sudo yum -y install python34 python34-pip python34-devel python34-pyflakes openssl-devel
sudo pip3 install --upgrade pip
sudo pip3 install numpy psutil requests selenium fake_useragent pyopenssl
sudo apt-get install git
git clone https://github.com/essandess/isp-data-pollution.git
cd isp-data-pollution/
sudo apt install python3-pip
pip3 install --upgrade pip
pip3 install numpy
pip3 install psutil
sudo -H pip3 install psutil --upgrade
sudo -H pip3 install --upgrade pip
sudo -H pip3 install selenium
sudo -H pip3 install fake_useragent
sudo -H pip3 install pyopenssl
sudo apt-get install fontconfig
sudo apt-get install libfontconfig
sudo apt-get install build-essential chrpath libssl-dev libxft-dev
sudo apt-get install libfreetype6 libfreetype6-dev
sudo apt-get install libfontconfig1 libfontconfig1-dev
#! Please update these commands for chromedriver
# export PHANTOM_JS="phantomjs-2.1.1-linux-x86_64"
# sudo mv $PHANTOM_JS /usr/local/share
ls /usr/local/share
# sudo ln -sf /usr/local/share/$PHANTOM_JS/bin/phantomjs /usr/local/bin
# phantomjs --version
python3 isp_data_pollution.py
Jika Anda berada di belakang firewall, gunakan sudo -EH untuk mewarisi pengaturan lingkungan http_proxy .
chromedriver memerlukan beberapa perangkat lunak grafis, virtual atau lainnya, jadi pada komputer tanpa kepala, Anda akan memerlukan paket sistem berikut dan paket lokal.
Jika Anda tidak menggunakan VirtualEnv (di bawah) maka jalankan PIP sebagai sudo.
sudo apt-get install xvfb
pip install pyvirtualdisplay
Untuk mengisolasi file pustaka PIP, VirtualEnv nyaman. Jika Anda lebih suka metode ini, Anda dapat mengikuti langkah -langkah di bawah ini:
pushd ~/.virtualenvs/ && virtualenv -p python3 isp-pollute && popd
workon isp-pollute
pip install numpy requests selenium fake_useragent psutil
sudo apt-get install chromedriver