Selama pengaturan server virtual saya, saya memerlukan beberapa aplikasi yang akan dibangun menggunakan make
. Apakah ada risiko keamanan yang terkait dengan make
pemasangan? Atau haruskah saya membersihkannya sebelum instance digunakan?
Saya juga memiliki gcc
kompiler di server yang saya gunakan untuk membangun aplikasi sebelum penyebaran.
Jawaban:
Beberapa orang akan berpendapat bahwa kehadiran alat pengembangan pada mesin produksi akan membuat hidup lebih mudah bagi penyerang. Namun ini adalah penghalang kecil bagi penyerang, sehingga argumen lain yang dapat Anda temukan atau tidak menginstal alat pengembangan akan lebih berat.
Jika penyerang mampu menembus sistem sejauh ini, bahwa mereka dapat meminta alat apa pun yang ada di server, maka Anda sudah memiliki pelanggaran keamanan yang serius. Tanpa alat pengembangan ada banyak cara lain untuk menulis data biner ke file dan kemudian menjalankan chmod pada file itu. Seorang penyerang yang ingin menggunakan custom build dapat dieksekusi pada sistem pada saat ini bisa juga membangunnya di mesin mereka sendiri dan mentransfernya ke server.
Ada hal-hal lain yang jauh lebih relevan untuk diwaspadai. Jika perangkat lunak yang terinstal berisi bug keamanan, ada beberapa cara itu bisa terkena penyerang:
Saya tidak akan mengharapkan alat pengembangan untuk mencocokkan salah satu di atas, dan karena itu bukan paket berisiko tinggi.
Jika Anda memiliki alur kerja di mana Anda akan menggunakan alat pengembangan, maka Anda pertama-tama harus memutuskan apakah itu alur kerja yang masuk akal, dan jika ada, Anda harus menginstal alat pengembangan.
Jika ternyata Anda tidak benar-benar membutuhkan alat-alat itu di server, Anda harus menahan diri untuk tidak menginstalnya karena beberapa alasan:
Jika Anda memutuskan bahwa karena alasan keamanan, Anda tidak akan mengizinkan pengguna yang tidak memiliki hak untuk menempatkan executabel mereka sendiri di server, maka yang harus Anda hindari bukanlah alat pengembangan, melainkan direktori yang dapat ditulis oleh para pengguna pada sistem file yang dipasang dengan izin pelaksanaan. Mungkin masih ada gunanya untuk alat pengembangan bahkan di bawah keadaan itu, tetapi itu tidak terlalu mungkin.
sumber
gcc
tidak menyajikan risiko yang lebih tinggi daripada ini. Seperti yang Anda katakan, seorang penyerang dalam posisi untuk menggunakan kompiler yang diinstal pada suatu sistem umumnya akan berada dalam posisi untuk melakukan hal-hal yang lebih buruk, seperti mengunggah executable mereka sendiri (mungkin terhubung secara statis) yang dapat dieksekusi.echo
pernyataan selanjutnya ke dalam file. Seluruh proses diotomatisasi dengan skrip yang ditemukan di tautan yang sama.make
adalah shell yang memiliki sintaks yang berbeda daribash
.Seperti kompiler
gcc
adalah yang kuatawk
dikonfigurasikan dengan serangkaian pergantian yangawk
tidak didukung standar . Ini adalah non-POSIX-compliantsort
ataucat
yang menyuntikkan sampah di output. Ini adalah editor teks interaktif (thinkvi
) yang dikonfigurasi untuk melakukan beberapa pengeditan saat startup, kemudian keluar sebelum menampilkan antarmuka pengguna.Tidak ada yang secara inheren tidak aman di dalamnya, mereka tidak membuat mesin Anda lebih tidak aman daripada yang Anda miliki dengan bash +
cat
+ shell redirection.sumber
make
itu sendiri baik-baik saja.make
hanyalah kerangka kerja pelacakan dan otomatisasi ketergantungan. Ini biasanya digunakan bersama dengan kompiler, dan yang lebih disukai tidak harus tersedia pada sistem produksi, karena mereka sama sekali tidak diperlukan. Hal yang sama berlaku untuk semua paket yang tidak diperlukan, apakah itu adalah shared library, interpreter, dll. Perangkat lunak yang diinstal pada sistem produksi harus dikontrol secara ketat, dan hanya paket-paket yang diperlukan oleh aplikasi yang harus hadir.Anda harus membangun aplikasi di server build, mengemasnya, dan kemudian menggunakan paket biner ke sistem produksi Anda.
Catatan: alat pengemasan asli menyedot . Jangan repot-repot mencoba menggosok mereka. Sebagai gantinya, periksa Jordan Sissel's
fpm
. Itu membuat pengemasan menjadi sukacita mutlak.sumber
echo
danbase64
. Bahkan, Anda bahkan dapat melakukannya dengan serangkaianecho
pernyataan dan tanpa alat lain .Sebaliknya, masalah potensial tidak ada
make
pada server produksi, masalah potensial adalah dengan membangun aplikasi pada server produksi alih-alih menggunakan gambar pra-bangun yang teruji. Mungkin ada alasan yang masuk akal untuk metodologi ini, tapi itu salah satu yang saya akan bantah dengan keras seandainya saya diminta untuk menerapkannya.sumber
Anda bertanya apakah
make
harus diinstal pada server produksi, tetapi pertanyaan saya yang sebenarnya adalah: Siapa yang memiliki akses ke server produksi itu & perlindungan apa yang Anda miliki untuk menangani serangan? Jikamake
tidak diinstal tetapi seseorang mendapatkanroot
akses, coba tebak? Mereka dapat menginstal secara manualmake
dan apa pun yang mereka inginkan.Kenyataan pahit tentang keamanan komputer adalah sebanyak yang Anda inginkan untuk mencegah akses yang tidak diinginkan, terobsesi dengan pemblokiran akses tidak sepenting:
Ini semua tergantung pada jenis pekerjaan yang Anda lakukan. Saya bekerja terutama di dunia server web & sikap saya pada dasarnya, siapa pun yang mendapatkan akses server produksi dari saya perlu membuktikan keterampilan, pengetahuan & kedewasaan. Itu dia. Terkadang butuh beberapa hari. Terkadang butuh berbulan-bulan. Tetapi pada dasarnya, garis keamanan terbaik Anda di server produksi adalah mengontrol akses di atas berbagai hal lain yang kami lakukan untuk mengeraskan server.
sumber
make
itu sendiri tidak berbahaya. Semua yang dilakukannya adalah menjalankan aplikasi dalam urutan yang ditetapkan, tergantung pada dependensi yang Anda tentukan dan file apa yang sudah ada dalam sistem. Itu bahkan dapat berguna sebagai bagian dari proses instalasi: Anda dapat menggunakannya untuk meletakkan file prebuilt ke mana mereka harus pergi, atau menjalankan tes unit, atau hal-hal lain.Namun, Anda perlu mempertimbangkan apa yang sebenarnya Anda ingin menggunakannya untuk. Ini sering digunakan bersama dengan kompiler dan alat lain untuk membangun aplikasi, dan itu dapat digunakan untuk meniadakan beberapa lini pertahanan Anda. Tetapi
make
tidak dapat melakukan hal-hal ini jika alat tidak tersedia.sumber