Bekerja dengan Keupayaan Linux

Pengenalan

Keupayaan Linux adalah atribut khas dalam kernel Linux yang memberikan proses dan binari yang boleh digunakan khusus keistimewaan yang biasanya digunakan untuk proses yang ID pengguna yang berkesan adalah 0 (Pengguna root, dan hanya pengguna root, mempunyai UID 0).

Artikel ini akan menerangkan beberapa keupayaan yang ada, kegunaan mereka dan cara menetapkan dan membuangnya. Sila ambil perhatian bahawa keupayaan penetapan pada laku laku boleh berpotensi untuk menjejaskan keselamatan sistem anda. Oleh itu, anda harus mempertimbangkan ujian pada sistem bukan pengeluaran sebelum melaksanakan keupayaan dalam pengeluaran.

Prasyarat

  • Sistem Linux di mana anda mempunyai akses root (sama ada melalui pengguna root atau pengguna dengan akses sudo).

Penjelasan

Pada asasnya, tujuan keupayaan adalah untuk membahagikan kekuatan 'root' menjadi hak istimewa, sehingga jika proses atau binari yang memiliki satu atau lebih kemampuan dieksploitasi, potensi kerosakan terbatas jika dibandingkan dengan proses yang sama seperti root.

Keupayaan dapat ditetapkan pada proses dan fail yang dapat dilaksanakan. Proses yang dihasilkan daripada pelaksanaan fail boleh mendapatkan keupayaan fail tersebut.

Keupayaan yang dilaksanakan di Linux banyak, dan banyak yang telah ditambahkan sejak dilancarkan asalnya. Sebahagian daripada mereka adalah seperti berikut:

  • CAP_CHOWN: Buat perubahan pada ID Pengguna dan ID Kumpulan fail
  • CAP_DAC_OVERRIDE: Ganti DAC (Kawalan Akses Discretionary). Contohnya, vto memintas membaca / menulis / melaksanakan pemeriksaan kebenaran.
  • CAP_KILL: Bypass cek kebenaran untuk menghantar isyarat kepada proses.
  • CAP_SYS_NICE: Naikkan kebaikan proses ( Penjelasan mengenai kebaikan boleh didapati di sini )
  • CAP_SYS_TIME: Tetapkan sistem dan jam perkakasan masa nyata

Untuk senarai penuh, jalankan man 7 capabilities.

Keupayaan diberikan dalam kumpulan, iaitu "dibenarkan", "diwarisi", "berkesan" dan "ambien" untuk utas, dan "dibenarkan", "diwarisi" dan "berkesan" untuk fail. Set ini mentakrifkan tingkah laku yang berbeza, penjelasan lengkapnya adalah di luar skop artikel ini.

Semasa menetapkan keupayaan pada fail, kita akan selalu menggunakan "dibenarkan" dan "berkesan", misalnya CAP_DAC_OVERRIDE+ep. Perhatikan +ep, yang menandakan set tersebut di atas.

Bekerja dengan keupayaan fail

Pakej yang diperlukan

Terdapat dua alat utama, getcapdan setcapmasing-masing boleh melihat dan menetapkan sifat-sifat ini.

  • Di Debian dan Ubuntu, alat ini disediakan oleh libcap2-binpakej yang boleh dipasang dengan:apt install libcap2-bin
  • Di CentOS dan Fedora, libcappakej diperlukan:yum install libcap
  • Di Arch Linux, mereka juga disediakan oleh libcap:pacman -S libcap

Keupayaan membaca

Untuk melihat jika fail mempunyai apa-apa keupayaan yang ditetapkan, anda hanya boleh menjalankan getcap /full/path/to/binary, contohnya:

 root@demo:~# getcap /usr/bin/ping
 /usr/bin/ping = cap_net_raw+ep
 root@demo:~# getcap /usr/bin/rcp
 /usr/bin/rcp = cap_net_bind_service+ep

Sekiranya anda ingin mengetahui keupayaan mana yang sudah ditetapkan pada sistem anda, anda boleh mencari keseluruhan sistem fail anda secara berulang dengan arahan berikut:

getcap -r /

Oleh kerana fakta bahawa sistem fail maya (seperti /proc) tidak menyokong operasi ini, arahan di atas akan menghasilkan ribuan kesilapan, jadi untuk output yang lebih bersih gunakan yang berikut:

getcap -r / 2>/dev/null 

Menugaskan dan membuang keupayaan

Untuk menetapkan kemampuan tertentu pada fail, gunakan setcap "capability_string" /path/to/file.

Untuk membuang semua keupayaan dari fail, gunakan setcap -r /path/to/file.

Untuk demonstrasi kami akan membuat fail kosong di direktori semasa, memberikannya kemampuan, dan menghapusnya. Mulakan dengan yang berikut:

root@demo:~# touch testfile
root@demo:~# getcap testfile

Perintah kedua tidak menghasilkan output, yang bermaksud fail ini tidak mempunyai kemampuan.

Seterusnya, tetapkan keupayaan untuk fail:

root@demo:~# setcap "CAP_CHOWN+ep" testfile
root@demo:~# getcap testfile
testfile = cap_chown+ep

"CAP_CHOWN + ep" digunakan sebagai contoh, tetapi mana-mana yang lain boleh ditugaskan dengan cara ini.

Sekarang, alih keluar semua keupayaan dari testfile:

root@demo:~# setcap -r testfile
root@demo:~# getcap testfile

Sekali lagi, tidak akan ada output, kerana "CAP_CHOWN + ep" telah dikeluarkan.

Kesimpulannya

Keupayaan mempunyai banyak potensi penggunaan dan dapat membantu memperketat keselamatan sistem anda. Jika anda menggunakan bit SUID pada executable anda, pertimbangkan untuk menggantikannya dengan keupayaan khusus yang diperlukan.



Leave a Comment

Pandangan tentang 26 Teknik Analisis Data Besar: Bahagian 1

Pandangan tentang 26 Teknik Analisis Data Besar: Bahagian 1

Pandangan tentang 26 Teknik Analisis Data Besar: Bahagian 1

6 Perkara Yang Sangat Menggila Tentang Nintendo Switch

6 Perkara Yang Sangat Menggila Tentang Nintendo Switch

Ramai daripada anda tahu Switch akan keluar pada Mac 2017 dan ciri baharunya. Bagi yang tidak tahu, kami telah menyediakan senarai ciri yang menjadikan 'Tukar' sebagai 'gajet yang mesti ada'.

Janji Teknologi Yang Masih Tidak Ditepati

Janji Teknologi Yang Masih Tidak Ditepati

Adakah anda menunggu gergasi teknologi memenuhi janji mereka? semak apa yang masih belum dihantar.

Fungsi Lapisan Seni Bina Rujukan Data Besar

Fungsi Lapisan Seni Bina Rujukan Data Besar

Baca blog untuk mengetahui lapisan berbeza dalam Seni Bina Data Besar dan fungsinya dengan cara yang paling mudah.

Bagaimana AI Boleh Mengambil Automasi Proses ke Tahap Seterusnya?

Bagaimana AI Boleh Mengambil Automasi Proses ke Tahap Seterusnya?

Baca ini untuk mengetahui cara Kecerdasan Buatan semakin popular di kalangan syarikat berskala kecil dan cara ia meningkatkan kebarangkalian untuk menjadikan mereka berkembang dan memberikan pesaing mereka kelebihan.

CAPTCHA: Berapa Lama Ia Boleh Kekal Sebagai Teknik Berdaya maju Untuk Perbezaan Manusia-AI?

CAPTCHA: Berapa Lama Ia Boleh Kekal Sebagai Teknik Berdaya maju Untuk Perbezaan Manusia-AI?

CAPTCHA telah menjadi agak sukar untuk diselesaikan oleh pengguna dalam beberapa tahun kebelakangan ini. Adakah ia dapat kekal berkesan dalam pengesanan spam dan bot pada masa hadapan?

Keunikan Teknologi: Masa Depan Tamadun Manusia yang Jauh?

Keunikan Teknologi: Masa Depan Tamadun Manusia yang Jauh?

Apabila Sains Berkembang pada kadar yang pantas, mengambil alih banyak usaha kita, risiko untuk menundukkan diri kita kepada Ketunggalan yang tidak dapat dijelaskan juga meningkat. Baca, apakah makna ketunggalan bagi kita.

Teleperubatan Dan Penjagaan Kesihatan Jauh: Masa Depan Ada Di Sini

Teleperubatan Dan Penjagaan Kesihatan Jauh: Masa Depan Ada Di Sini

Apakah teleperubatan, penjagaan kesihatan jauh dan impaknya kepada generasi akan datang? Adakah ia tempat yang baik atau tidak dalam situasi pandemik? Baca blog untuk mencari paparan!

Pernahkah Anda Terfikir Bagaimana Penggodam Mendapatkan Wang?

Pernahkah Anda Terfikir Bagaimana Penggodam Mendapatkan Wang?

Anda mungkin pernah mendengar bahawa penggodam memperoleh banyak wang, tetapi pernahkah anda terfikir bagaimana mereka memperoleh wang seperti itu? Mari berbincang.

Kemas Kini Tambahan macOS Catalina 10.15.4 Menyebabkan Lebih Banyak Isu Daripada Penyelesaian

Kemas Kini Tambahan macOS Catalina 10.15.4 Menyebabkan Lebih Banyak Isu Daripada Penyelesaian

Baru-baru ini Apple mengeluarkan macOS Catalina 10.15.4 kemas kini tambahan untuk menyelesaikan masalah tetapi nampaknya kemas kini itu menyebabkan lebih banyak masalah yang membawa kepada pemusnahan mesin mac. Baca artikel ini untuk mengetahui lebih lanjut