Jawaban sebelumnya tampaknya tidak menjawab pertanyaan secara langsung, jadi saya pikir saya akan menambahkannya.
- Rencana saya adalah menjalankan layanan sebagai akun "Layanan Lokal" default. Saya akan secara eksplisit menetapkan hak istimewa "Kontrol Penuh" untuk akun "Layanan Lokal" pada folder yang saya baca / tulis dari dan ke. Saya percaya hal di atas adalah rencana yang bagus.
Secara pribadi, saya tidak melihat masalah besar dengan rencana ini. Dengan BUILTIN, pilihannya adalah antara:
- Berjalan sebagai LOCALSYSTEM - jadi jika layanan ini dikompromikan, penyerang memiliki Semuanya , dan segera.
- Berjalan sebagai LOCALSERVICE - jadi jika layanan ini, atau salah satu dari banyak layanan lain yang berjalan di bawah akun ini, dikompromikan, penyerang memiliki akses ke satu direktori tambahan. *
Lebih disukai, menambahkan beberapa ACL tambahan untuk dapat menggunakan opsi kedua lebih disukai. Ya, opsi teraman untuk layanan dengan privilege rendah tetapi sangat peka terhadap keamanan akan dijalankan di bawah akun layanan khusus dengan privilege rendah. Tetapi kecuali jika Anda ingin membuat akun baru / mengelola kata sandi untuk setiap layanan yang Anda gunakan, menggunakan LocalService untuk tugas-tugas kecil yang tidak sensitif bukanlah hal yang mengerikan. Anda hanya perlu membuat keputusan yang bertanggung jawab berdasarkan pertimbangan-pertimbangan ini, seperti apa yang ada di direktori itu atau basis data itu, dampaknya jika dilanggar dll.
Meskipun sekali lagi, per prinsip privilege, Anda hanya boleh menetapkan Full Control
jika Modify
benar-benar tidak memadai.
2. Pertanyaan saya adalah, untuk folder tempat saya membaca dan menulis, apakah saya perlu mengatur peran "Layanan Jaringan" dengan akses kontrol penuh? Saya ingin tahu karena layanan saya menggunakan konektivitas database ke server lain, apakah saya memerlukan pengaturan akun "Layanan Jaringan".
Jika database Anda memerlukan login Windows Integrated / SSPI, maka ya, Anda harus menggunakan NetworkService (atau akun layanan domain) di mana-mana, misalnya, RunA dan izin direktori. Dengan asumsi Anda juga memberikan $ komputer atau akun domain Anda akses ke database ini. Saya ragu Anda melakukan itu, jadi jika menggunakan otentikasi nama pengguna / pwd normal, Anda harus dapat melakukan semuanya dengan LocalService. Anda hanya perlu memberikan satu hak akun pada direktori itu, mana yang Anda gunakan dalam RunA Anda, tidak keduanya.
3. Saya mungkin salah paham tentang apa yang dilakukan akun "Layanan Jaringan".
LocalService / NetworkService adalah akun yang hampir identik di komputer lokal. Perbedaan utamanya adalah apa yang dapat mereka lakukan pada jaringan. NS dapat mengakses beberapa sumber daya jaringan karena muncul di jaringan sebagai akun (komputer) nyata. Tetapi LS akan muncul sebagai ANONYMOUS, jadi sebagian besar jaringan akan ditolak.
Omong-omong, Anda harus menggunakan Tugas Terjadwal untuk ini, bukan layanan.
* Dari Vista dan seterusnya, karena isolasi layanan , satu proses LocalService yang dikompromikan tidak dapat dengan mudah menyerang yang lain. Setiap proses layanan / instance LocalService / NetworkService mendapatkan sesi logon uniknya sendiri SID (pemilik unik), tidak seperti Windows 2003. Tapi saya tidak yakin ini sempurna dan sepenuhnya mengurangi kerentanan DACL pada file dan sumber daya. SID terbatas dan token terbatas tulis disebutkan dalam konteks ini.