Mengapa PowerShell menggunakan sertifikat untuk memverifikasi skrip? Apakah lebih berbahaya daripada cmd / bat?

0

Ini mungkin pertanyaan bodoh tapi saya bertanya-tanya mengapa saya tidak bisa menjalankan skrip PowerShell saja ( ps1) karena saya akan menjalankan batfile?

Bahkan jika PS memiliki beberapa tambahan (di-aman) perintah maka saya dapat selalu memotong pengaturan keamanan dan menjalankan ini dari kelelawar: Powershell.exe -executionpolicy remotesigned -File .\do_whatever.ps1. Jika saya bisa dengan mudah menipu pengguna untuk menjalankan skrip yang tidak ditandatangani, lalu apa gunanya konsep skrip penandatanganan?

Tentunya saya kehilangan beberapa masalah keamanan ... Benar?

Nux
sumber
Ya, itu berfungsi seperti itu, tetapi untuk menjalankannya dengan benar, khususnya jarak jauh, Anda memerlukan kredensial yang tepat. Itulah satu-satunya bagian keamanan yang saya lihat.
Overmind

Jawaban:

0

Ini pemeriksaan kesetiaan.

Pikirkan tentang "Peringatan Sertifikat" yang Anda lihat di situs HTTPS - Anda bisa 'berikutnya' melewati peringatan, tetapi peringatan itu akan mengingatkan Anda akan sesuatu yang serba salah.

Salah satu hal yang berguna dengan penandatanganan adalah Anda tahu jika skrip Anda telah diubah. Pertimbangkan ini:

Anda membuat skrip untuk menjalankan pembersihan ClearIISLogs.ps1 dan mengatur Tugas Terjadwal yang ditingkatkan untuk menjalankannya setiap hari. (powershell.exe clearIISLogs.ps1)

Dalam hal ini, jika pengguna dengan akses tulis pada ClearIISLogs.ps1 mencoba untuk mengubah skrip, tugas yang dijadwalkan akan gagal dieksekusi. Skrip harus ditandatangani oleh penerbit tepercaya lagi, sebelum eksekusi diizinkan.

Jika Anda mengkonfigurasi Tugas Terjadwal untuk mem-bypass keamanan powershell (-setexecuitionpolicy unrestricted), ClearIISLogs.PS1 yang dimodifikasi akan dieksekusi tanpa repot ...

James Finch
sumber
Mari pertimbangkan skenario Anda. OK, saya tidak akan bisa dengan mudah berubah clearIISLogs.ps1. Tetapi jika saya memiliki akses ke clearIISLogs.ps1dan memiliki sertifikat penandatanganan kode saya masih dapat mengganti Anda clearIISLogs.ps1dengan apa pun. Anda bahkan tidak akan memperhatikan.
Nux
@Nux - Saya yakin ini hanya benar jika sertifikat penandatanganan kode Anda tepercaya (yaitu dari penerbit tepercaya / root CA). Jika saya salah, dan tanda tangan sertifikat apa pun diizinkan, beri tahu saya!
James Finch