Kebijakan Privasi VHDP
VHDP (Virtual Hardware Driver Platform) menjalankan root filesystem distro Linux
di host Linux atau Android tanpa hak root. Isinya library libvhdp untuk disematkan
di program lain dan program baris perintah phdp.
Halaman ini menjelaskan apa yang VHDP baca, tulis, dan kirim saat Anda memakainya. Isinya disusun dari pemeriksaan kode sumber VHDP versi 1.0.0. Ini halaman kebijakan pertama untuk VHDP. Versi berikutnya akan mendapat halaman sendiri, dan halaman ini tetap tersedia.
Intinya
- VHDP tidak punya akun, server pengembang, analytics, telemetry, atau pelaporan error. Kodenya sendiri tidak membuka koneksi jaringan.
- Yang dibaca dan ditulis VHDP ada di perangkat Anda: direktori rootfs, direktori host yang
Anda bind, dan direktori sementara di
TMPDIR. - Program di dalam rootfs memakai jaringan host secara bawaan. Ke mana data mereka pergi
ditentukan program itu sendiri. Opsi
--network nonemenolak socket IP. - Fungsi
vhdp_configure_rootfsmengisi/etc/resolv.confdi rootfs dengan server DNS publik milik Google dan Cloudflare. Setelah itu, nama domain yang dicari program di rootfs sampai ke kedua operator tersebut.phdptidak memanggil fungsi ini. - Dari lingkungan host, hanya
TERM,COLORTERM,LANG,LC_ALL, danTZyang diteruskan ke program di rootfs, kecuali Anda memakai--clear-env. - Menghapus direktori rootfs membuang hampir semua yang pernah ditulis VHDP.
Yang dicakup kebijakan ini
Kebijakan ini berlaku untuk VHDP versi 1.0.0: library libvhdp, C ABI-nya,
program phdp, dan loader vhdp-loader. Halaman web yang sedang Anda baca
juga tercakup.
Ada tiga hal di luar cakupan halaman ini:
- Program yang Anda jalankan di dalam rootfs. VHDP menerjemahkan syscall mereka, tetapi
perilaku programnya sendiri tidak diubah. Kalau Anda memasang paket lewat
apt, yang berlaku adalah aturan penyedia paket itu. - Sumber rootfs. VHDP tidak mengunduh rootfs. Anda atau aplikasi yang memakai VHDP menyiapkannya sendiri.
- Aplikasi yang menyematkan
libvhdp. Aplikasi itu yang menentukan apa yang dilakukan dengan event, keluaran program, dan pengaturan sesi. Kebijakan privasinya berlaku terpisah.
Di bawah setiap judul bagian ada penanda: "Di perangkat Anda", "Melibatkan pihak lain", atau "Anda yang mengatur".
Yang tidak dikumpulkan pengembang
Kode VHDP tidak punya saluran untuk mengirim data ke pengembang. Di dalamnya tidak ada:
- sistem akun atau login, dan tidak ada server milik pengembang;
- analytics atau telemetry, yaitu perekaman dan pengiriman data pemakaian;
- pelaporan error otomatis ke server;
- pemeriksaan pembaruan otomatis;
- kode yang membuka koneksi jaringan atas nama VHDP sendiri.
Selain pustaka standar C dan C++ dari sistem, satu-satunya dependensi build adalah pustaka thread sistem. Tidak ada SDK pihak ketiga.
Data yang dibaca dari perangkat Anda
Saat menjalankan sesi, VHDP membaca dan menulis di dalam direktori rootfs yang Anda berikan
atas nama program di rootfs. Opsi --read-only-rootfs membuat setiap penulisan ke
rootfs gagal dengan EROFS.
Program di rootfs hanya melihat bagian host yang Anda izinkan:
- Direktori yang Anda tambahkan dengan
--bind HOST:GUEST. Direktori ini read-only, kecuali Anda menambahkan:rw. - Node perangkat
/dev/null,zero,full,random,urandom,tty,ptmx, dan/dev/pts. Ini proyeksi bawaan--dev minimal. Dengan--dev none, tidak ada node yang diproyeksikan. /prochost, read-only, hanya bila Anda memilih--proc host. Bawaannyanone. Lewat/prochost, program di rootfs bisa melihat informasi proses lain milik host.
Variabel lingkungan untuk program di rootfs berisi PATH, HOME, dan
nilai host untuk TERM, COLORTERM, LANG,
LC_ALL, dan TZ. Variabel host lain tidak ikut. Opsi
--clear-env mengosongkan semuanya, dan --env KEY=VALUE menambah nilai
yang Anda tentukan.
VHDP juga membaca variabel TMPDIR, VHDP_LOADER, dan
VHDP_PROC_STAND_IN untuk mengatur cara kerjanya sendiri. Nilainya tidak dikirim ke
mana pun.
Berkas yang ditulis VHDP
Di luar penulisan yang diminta program di rootfs, VHDP menulis berkas berikut atas namanya sendiri:
- Direktori
$TMPDIR/.vhdp-proc.XXXXXX(mode 0700) berisi pengganti berkas/procsepertiuptime,loadavg, danstat. Direktori ini dibuat hanya kalau host menolak pembacaan berkas/procaslinya, dan dihapus saat sesi berakhir. KalauTMPDIRtidak diisi, VHDP memakai/tmp. - Berkas probe sesaat
.vhdp-link-probe-*dan.vhdp-xmap-*diTMPDIR. Keduanya dipakai untuk menguji kebijakan host dan langsung dihapus. - Direktori
.vhdp-hardlinks/di rootfs atau di bind:rw, hanya di host yang menolaklink(2). Isinya berkas yang punya lebih dari satu nama, ditambah catatan jumlah link dan path host dari nama-nama itu. Berkas kembali ke nama aslinya begitu tinggal satu nama, jadi direktori ini biasanya kosong kembali.
VHDP tidak menulis berkas log, cache, atau konfigurasi di direktori home Anda.
Fungsi bantu rootfs di C ABI
Tiga fungsi hanya berjalan kalau aplikasi yang menyematkan libvhdp
memanggilnya. phdp tidak memakai ketiganya.
vhdp_configure_rootfs menyiapkan rootfs yang baru diekstrak. Fungsi ini membuat
direktori mountpoint (dev, proc, sys, tmp,
root, etc) dan entri pengisi di /dev. Ia menulis ulang
/etc/resolv.conf setiap kali dipanggil, lalu menulis /etc/nsswitch.conf,
/etc/hosts, /root/.profile, dan /root/.hushlogin kalau
berkas itu belum ada. Pada rootfs yang punya /etc/passwd, fungsi ini menambahkan
pengguna dracos (uid dan gid 1000) dengan login dinonaktifkan di
/etc/shadow, berkas /etc/sudoers.d/dracos berisi sudo tanpa kata sandi,
dan direktori /home/dracos.
vhdp_dpkg_plan_json dan vhdp_projection_plan_json hanya
mengembalikan rencana dalam bentuk JSON. Rencana dari vhdp_dpkg_plan_json berisi
script pemulihan dpkg. Kalau script itu dijalankan, ia membuat salinan cadangan
/var/lib/dpkg/status.vhdp-bak di dalam rootfs.
Koneksi jaringan dan DNS
VHDP sendiri tidak menghubungi server mana pun. Program di dalam rootfs lain ceritanya. Secara
bawaan (--network host) mereka memakai jaringan host seperti program biasa milik
pengguna Anda, dan bisa terhubung ke alamat mana pun yang mereka pilih. Dengan
--network none, VHDP menolak socket IP dan hanya mengizinkan socket
AF_UNIX.
Kalau vhdp_configure_rootfs pernah dipanggil untuk sebuah rootfs, berkas
/etc/resolv.conf di rootfs itu berisi server DNS publik berikut:
- Google Public DNS:
8.8.8.8dan2001:4860:4860::8888; - Cloudflare:
1.1.1.1dan2606:4700:4700::1111.
Setiap kali program di rootfs mencari alamat sebuah nama domain, server itu menerima nama
domain yang dicari dan alamat IP jaringan Anda. Kebijakan privasi operatornya yang berlaku untuk
data tersebut. Anda bisa mengganti isi /etc/resolv.conf di rootfs dengan server DNS
pilihan Anda. Ingat bahwa vhdp_configure_rootfs menulis ulang berkas itu setiap kali
dipanggil lagi.
Event, log, dan diagnostik
phdp menulis event dan pesan error ke stderr, atau ke descriptor
yang Anda pilih dengan --event-fd. Opsi --trace menambahkan event untuk
setiap syscall. Event itu bisa memuat path dan argumen yang dipakai program di rootfs. Event
tidak disimpan ke berkas kecuali Anda sendiri mengalihkannya ke berkas.
Di C ABI, event dikirim ke fungsi callback milik aplikasi yang menyematkan
libvhdp. Apa yang dilakukan aplikasi itu dengan event diatur oleh kebijakan aplikasi
tersebut.
phdp doctor memeriksa host (versi VHDP, profil host, status seccomp, kebijakan
penyimpanan, dukungan KVM, dan sebagainya), lalu mencetak hasilnya ke layar. Probe aktifnya
berjalan di proses anak sekali pakai. Opsi --no-active mematikan probe aktif itu.
phdp inspect membaca rootfs, termasuk /etc/os-release, dan juga hanya
mencetak hasilnya. Keduanya tidak menyimpan atau mengirim laporan.
Berapa lama data disimpan dan cara menghapusnya
VHDP tidak punya jadwal penghapusan otomatis dan tidak menyimpan data di luar tempat yang disebut di halaman ini.
- Menghapus direktori rootfs membuang isi rootfs,
.vhdp-hardlinks/di dalamnya, dan semua yang ditulisvhdp_configure_rootfs. - Direktori
.vhdp-hardlinks/di bind:rwberada di direktori host Anda dan perlu dihapus sendiri kalau masih berisi. - Direktori
$TMPDIR/.vhdp-proc.*dihapus saat sesi berakhir normal. Kalau proses VHDP dihentikan paksa, direktori itu bisa tertinggal dan boleh Anda hapus.
Keamanan
Engine rootless VHDP memberi isolasi kompatibilitas lewat penerjemahan path. Engine ini tidak dirancang sebagai sandbox keamanan. Program di rootfs berjalan dengan hak pengguna host Anda, jadi jangan menjalankan rootfs yang tidak Anda percayai.
VHDP tidak pernah memberi hak tambahan di host. no_new_privs selalu aktif, dan
--uid serta --gid hanya mengubah identitas yang dilihat program di
rootfs.
Kalau vhdp_configure_rootfs dipakai, pengguna dracos di rootfs bisa
memakai sudo tanpa kata sandi. Hak root itu hanya berlaku di dalam rootfs dan tetap dibatasi hak
pengguna host Anda. Fungsi yang sama juga membuat /tmp (mode 0777) dan
/dev/shm (mode 1777) di rootfs bisa ditulis semua pengguna rootfs.
VHDP tidak mengenkripsi rootfs atau berkas sementaranya. Perlindungannya bergantung pada izin berkas dan enkripsi penyimpanan dari sistem operasi Anda.
Perubahan pada kebijakan ini
Halaman ini menggambarkan VHDP versi 1.0.0. Kalau versi baru mengubah cara VHDP menangani data, kebijakannya diperiksa ulang terhadap kode versi itu dan diterbitkan sebagai halaman baru. Tanggal di bagian atas menunjukkan kapan halaman ini terakhir diperbarui.
Halaman untuk versi lama tetap disimpan di Privacy Center, supaya Anda bisa membandingkan sendiri apa yang berubah.
Kontak
Kalau ada pertanyaan soal halaman ini, kirim email ke lexyong66@gmail.com. VHDP tidak punya tombol kontak atau pengiriman laporan otomatis. Pengembang hanya menerima apa yang Anda tulis dan lampirkan sendiri di email itu.
Halaman web ini
Privacy Center dan halaman yang sedang Anda baca seluruhnya statis. Tidak ada analytics, cookie, atau penyimpanan di peramban Anda, dan tidak ada permintaan ke layanan luar. Yang dimuat hanya daftar kebijakan dan file halaman ini, keduanya dari alamat yang sama.
Kebijakan ini disusun dari pemeriksaan kode sumber VHDP 1.0.0 pada tag
v1.0.0 di repository. Kalau Anda menemukan bagian yang tidak cocok dengan perilaku
VHDP, beri tahu lewat alamat email di atas.