GNU/Linux >> Belajar Linux >  >> Linux

Kaboxer - Aplikasi Kali Boxer

Hidup dan mati selama 18 bulan terakhir kami telah mengerjakan Kaboxer , dan tepat sebelum Kali 2021.1, ia siap untuk mengucapkan “Halo Dunia” (kemudian akan mulai mengirimkan aplikasi Anda) .

TL;DR - Apa ini?

Tentang apa namanya, Kaboxer? Kali Aplikasi Petinju

Apa artinya? Aplikasi dalam wadah, untuk paket (cara maju untuk aplikasi yang sulit dikemas dengan benar). Namun alih-alih menjadi wadah yang berdiri sendiri, mereka diintegrasikan ke dalam sistem manajemen paket Kali standar dan dapat diinstal/dihapus melalui perintah apt standar.

Oke. Tapi apa yang Kaboxer lakukan? Tidak semua alat mudah dikemas. Ada berbagai kriteria yang harus dipenuhi, terkadang beberapa pohon ketergantungan yang gila atau modifikasi sistem yang aneh. Anda mungkin perlu menggunakan pustaka lama, atau Anda mungkin perlu mengubah konfigurasi sesuatu yang akan merusak aplikasi lain. Apa pekerjaanmu? Kami bekerja dengan pembuat alat untuk mencoba dan membuatnya lebih mudah, atau kami menghabiskan banyak waktu larut malam untuk mencoba menyesuaikannya atau kami tidak dapat mengemasnya.

Masuk Kaboxer. Dengan menggunakan container, kami dapat memasukkan paket non-standar yang kompleks ke dalam container dan mengintegrasikannya dengan sistem operasi lainnya, dan menggabungkannya ke dalam ekosistem kemasan. Ini berarti Anda dapat menginstal program Kaboxer dan menggunakannya tanpa perlu melakukan langkah khusus.

Apa manfaat Kaboxer bagi saya? Kaboxer memiliki beberapa kasus penggunaan, tergantung siapa yang menggunakannya:

  • Untuk orang yang menggunakan Kali Linux, ini transparan sehingga Anda tidak akan menyadarinya saat Anda menggunakannya (itulah sebabnya Anda mungkin tidak melihatnya sebagai "masalah besar") . Anda hanya mendapatkan lebih banyak alat!
  • Bagi kami pengembang Kali, ini adalah pengubah permainan.
  • Untuk pembuat paket Debian lainnya, ini mungkin menarik perhatian Anda.
  • Untuk pembuat alat (yang menginginkan perangkat lunak mereka di Kali) , masih ada harapan untukmu;-)

Apa sisi buruk dari Kaboxer? Ukuran aplikasi akan lebih besar karena akan membawa beban normal karena harus menggunakan kontainer. Meskipun paket yang diinstal berukuran kecil, penginstalannya akan mengunduh wadah yang diperlukan yang akan menghabiskan hingga beberapa ratus megabita bahkan untuk aplikasi sederhana.

Apa yang akan terjadi karena Kaboxer? Kami berharap untuk mulai memasukkan lebih banyak alat ke Kali Linux yang sebelumnya tidak dapat dikemas, dan apakah Anda tidak menyadari bahwa Anda menggunakannya melalui Kaboxer. Sayangnya, alat tersebut tidak akan masuk ke instalasi default kami karena peningkatan ukuran untuk gambar ISO akan terlalu signifikan.

Ringkasan

Ada berbagai alat yang akan bermanfaat bagi pengguna Kali, tetapi mengalami masalah yang membuat mereka sulit untuk dikirim dengan benar sebagai *.deb paket. Ini bisa jadi karena, alatnya:

  • Tidak dikembangkan dengan mempertimbangkan pengemasan dan integrasi sistem. Mereka berasumsi bahwa mereka dapat menginstal versi perpustakaan tertentu, atau menambal perpustakaan, atau mengunduh bagian-bagian perangkat lunak pada saat runtime daripada pada waktu penginstalan. Ini bertentangan dengan standar pengemasan dan juga merupakan praktik rekayasa perangkat lunak yang buruk.
  • Mungkin merasa mereka berhak melakukan apa pun yang mereka inginkan dengan sistem operasi atau aplikasi lain. Tindakan ini tidak boleh diizinkan dan perangkat lunak perlu diisolasi. Kami telah melihat tindakan seperti:
    • Membuat pengguna dengan UID/GID tertentu.
    • Menggunakan jalur yang bertentangan dengan Filesystem Hierarchy Standard (FHS).
    • Menggunakan port TCP atau UDP yang biasanya terpengaruh ke layanan lain.
    • Mengonfigurasi ulang layanan yang ada.
  • Berinteraksi dengan server eksternal (mungkin dengan metode yang tidak aman), sehingga perangkat lunak itu sendiri tidak dapat dipercaya sepenuhnya. Oleh karena itu, sebaiknya Anda mengisolasi perangkat lunak tersebut dari data berharga atau sensitif yang mungkin ada di sistem.

Cara untuk menyediakan isolasi yang diperlukan dari atas adalah dengan menggunakan containerization. Kontainer memungkinkan menjalankan aplikasi di lingkungan yang terisolasi, dengan pengurangan drastis risiko interaksi yang tidak direncanakan dengan sistem lainnya (pengguna, layanan, aplikasi lain, file yang ada, versi perpustakaan tertentu, dll.).

Pilihan desain

Meskipun kami tidak mengecualikan untuk mendukung solusi containerization lainnya, kami telah memilih untuk memulai dengan Docker. Ini terkenal, digunakan secara luas, dan mendapat manfaat dari ekosistem citra yang besar, sehingga memastikan kelangsungan jangka panjangnya. Kontainer Docker dapat dikonfigurasi dalam banyak cara untuk mencapai berbagai integrasi yang kita perlukan dengan sistem host atau bahkan di antara beberapa kontainer.

Nilai Kaboxer adalah bagaimana memudahkan untuk mengikat kontainer buruh pelabuhan dengan sistem host, melalui fitur buruh pelabuhan biasa seperti titik pemasangan dan pengalihan port, tetapi juga melalui integrasi dengan entri menu desktop. Semua integrasi tersebut, serta instruksi untuk membangun atau mengambil gambar buruh pelabuhan, ditentukan dalam satu file YAML.

Ini adalah file YAML tunggal yang dikirimkan dalam .deb file yang kami sediakan di Kali dan skrip pasca instalasi paket tersebut akan mengunduh gambar secara transparan sehingga aplikasi siap dijalankan setelahnya.

Pembuatan gambar Docker

Pembuatan gambar buruh pelabuhan juga dimediasi oleh Kaboxer tetapi tidak ada yang ajaib, intinya memanggil docker build pada Dockerfile tertentu dengan beberapa variabel.

Terserah kepada pembuat paket untuk menulis Dockerfile itu, tetapi langkah itu bisa menjadi sepele ketika proyek upstream sudah memiliki Dockerfile atau ketika ia menyediakan gambar buruh pelabuhan yang siap digunakan.

Publikasi gambar Docker

Langkah ini sangat membosankan sehingga kami telah mengotomatiskannya dengan GitLab CI. Setiap kali kami membuat perubahan ke repositori yang didedikasikan untuk aplikasi “kabox”, seperti perjanjian, GitLab CI akan membangun kembali gambar buruh pelabuhan terkait dan menyimpannya di registri gambarnya.

Integrasi gambar ke dalam sistem

Setelah aplikasi ditampung, kami masih perlu membuatnya tersedia bagi pengguna dengan cara yang mulus, dengan cara yang idealnya bahkan tidak akan terlihat. Pengguna bahkan tidak perlu tahu bahwa aplikasi berjalan dalam wadah.

Kami telah menjelaskan bahwa pengguna terus berinteraksi dengan paket Kali untuk menginstal dan menghapus aplikasi kemas, meskipun paket tersebut sebagian besar adalah cangkang kosong yang menjalankan perintah Kaboxer di berbagai skrip pengelola. Mereka juga menyediakan .desktop file sehingga aplikasi dapat dijalankan dari menu desktop biasa, dan pembantu baris perintah agar dapat dijalankan dari terminal tanpa harus mengetahui tentang Kaboxer.

Untuk dapat menjalankan wadah buruh pelabuhan, pengguna memerlukan beberapa izin yang lebih tinggi:kami memodifikasi penginstal Kali untuk memberikan izin tersebut secara default kepada pengguna yang dibuat selama proses instalasi awal. Untuk pengguna lain, mereka harus ditambahkan ke grup Kaboxer (adduser $USER kaboxer ).

Pengguna jelas ingin data aplikasi mereka disimpan sehingga Kaboxer memiliki fasilitas untuk mengonfigurasi volume yang dibagikan antara host dan wadah sehingga memberikan kegigihan bahkan jika wadah berumur pendek. Dan kemudian bergantung pada jenis aplikasinya, Anda mungkin memerlukan integrasi yang lebih spesifik:

  • Untuk aplikasi GUI, kita membutuhkan soket host X11 agar dapat diakses.
  • Untuk aplikasi web, kami ingin mengekspos port HTTP dan memulai browser web pada URL yang sesuai.

Kebutuhan dasar tersebut tercakup dalam fitur Kaboxer saat ini, tetapi sepertinya integrasi jenis lain akan diperlukan di masa mendatang.

Jika Anda masih ingin mempelajari lebih lanjut tentang Kaboxer, silakan lihat berandanya (ditambah kode sumber), dan dokumentasi kami (dengan contoh “Hello World”).

Untuk contoh aplikasi "dunia nyata", Anda dapat melihat "Aplikasi Kaboxed" pertama kami:

  • Covenant, kerangka kerja untuk menyoroti permukaan serangan .NET. Covenant hadir sebagai server yang dimulai di latar belakang, ditambah aplikasi Web yang berjalan di browser.
  • Firefox Developer Edition, adalah browser web dan kami memilihnya karena ini adalah aplikasi GUI besar yang kompleks.
  • Zenmap, GUI NMAP resmi. Zenmap bergantung pada pustaka Python 2 yang tidak tersedia di Kali Linux.

Ingin mengotori tangan Anda dan mencobanya?

[email protected]:~$ sudo apt update && sudo apt -y install covenant-kbx
...
[email protected]:~$
[email protected]:~$ covenant-kbx
Usage: covenant-kbx start|stop
[email protected]:~$
[email protected]:~$ covenant-kbx start
>>> Initializing user data in ~/.local/covenant/data
>>> Starting covenant
Please wait during the start, it can take a long time...
>>> Opening https://127.0.0.1:7443 with a web browser
covenant/default started
Press ENTER to exit
[email protected]:~$
[email protected]:~$ ss -at | grep 7443
LISTEN 0      4096         0.0.0.0:7443        0.0.0.0:*
[email protected]:~$

Jangan lupa buka https://localhost:7443 di peramban web!

Jika Anda ingin mulai menjelajahi Kaboxer sendiri dan melihat apa yang terjadi di balik kap mesin:

[email protected]:~$ kaboxer
usage: kaboxer [-h] [-v] {run,start,stop,get-meta-file,get-upstream-version,prepare,upgrade,list,ls,build,install,clean,push,save,load,purge} ...
kaboxer: error: the following arguments are required: action
[email protected]:~$
[email protected]:~$ kaboxer ls
App       Installed version    Available version    Packaging revision from YAML    Packaging revision from image
--------  -------------------  -------------------  ------------------------------  -------------------------------
covenant  0.6                  -                    1                               1
[email protected]:~$

Terakhir, Anda dapat melacak program apa yang menggunakan Kaboxer di Kali dengan mencari paket yang diakhiri dengan -kbx :

[email protected]:~$ apt-cache search --names-only '\-kbx$'
covenant-kbx - .NET command and control framework
firefox-developer-edition-en-us-kbx - Mozilla Firefox web browser - Developer Edition - en-US
zenmap-kbx - The Network Mapper Front End
[email protected]:~$

Linux
  1. Amankan Kali Pi (2022)

  2. Kali Unkaputtbar

  3. Peningkatan Aksesibilitas Kali Linux

  1. Linux – Menjalankan Aplikasi Mac Os X Di Linux?

  2. Kali Linux 1.0.7 Rilis

  3. Kali Linux 1.0.6 Rilis

  1. Tema Komunitas Kali

  2. Kali Linux 1.1.0 Rilis

  3. WireGuard di Kali