Memilih akun layanan Windows — kapan memakai LocalSystem, akun virtual, dan gMSA

· Diperbarui pada: · · Windows, Layanan Windows, Akun layanan, gMSA, LocalSystem, Akun virtual, Keamanan, Active Directory, Hak minimum

Riwayat revisi (1 pembaruan, terakhir pada 31 Aug 2026)

Catatan perubahan yang dilakukan pada artikel ini. Jika versi sebelumnya telah diarsipkan, versi itu tetap dapat dibaca melalui tautan permanen dengan DOI.

Diterjemahkan ulang sebagai terjemahan lengkap dari naskah Jepang. Versi bahasa Indonesia sebelumnya adalah ringkasan yang hanya memindahkan sebagian naskah, sehingga bagian, tabel, gambar Mermaid, keterangan gambar, dan FAQ tidak ada. Semuanya dipulihkan sesuai naskah Jepang, dan klaim teknisnya sama dengan versi Jepang.
Publikasi pertama
Mengutip artikel ini(DOI (arsip terdaftar): 10.5281/zenodo.22176379)

DOI di bawah mengarah ke versi yang telah diarsipkan sebelumnya dan mungkin berbeda dari teks saat ini. Gunakan URL halaman ini untuk merujuk teks saat ini.

Go Komura (2026). Memilih akun layanan Windows — kapan memakai LocalSystem, akun virtual, dan gMSA. KomuraSoft LLC. https://comcomponent.com/id/blog/windows-service-accounts-gmsa-guide/

DOI (arsip terdaftar)
10.5281/zenodo.22176379
DOI (versi terakhir yang didaftarkan)
10.5281/zenodo.22176380

“Layanan internal yang selama ini dijalankan sebagai LocalSystem ditandai dalam audit keamanan sebagai ‘hak berlebih’. Harus diganti ke apa?” “Layanan tidak bisa mengakses folder berbagi, jadi dijalankan sebagai pengguna domain. Ketika kata sandi kedaluwarsa layanan berhenti, jadi dibuat tidak pernah kedaluwarsa dan ditulis dalam teks biasa di runbook.” — Di antara konsultasi seputar layanan Windows pelanggan, dua ini adalah yang paling sering muncul.

Yang sama di kedua lapangan adalah bahwa akun yang menjalankan layanan dibekukan sebagai “pengaturan yang kebetulan berhasil”, bukan sebagai keputusan desain. Layanan Windows selalu berjalan dalam konteks keamanan suatu akun, dan akun itu yang memutuskan seluruhnya: apa yang bisa dilakukan secara lokal, sebagai siapa ia tampil dari sisi jauh jaringan, dan siapa yang mengelola kata sandi. Jika dibiarkan pada default, kerentanan di satu layanan langsung menjadi pengambilalihan seluruh mesin, dan kata sandi teks biasa bertebaran di runbook dan skrip.

Tiga hal yang diputuskan akun eksekusiLayanan selalu berjalan dalam konteks keamanan suatu akun, dan akun itu memutuskan seluruhnya apa yang dapat dilakukan secara lokal, sebagai siapa ia tampil dari sisi jauh jaringan, dan siapa yang mengelola kata sandiAkun yang menjalankan layananApa yang dapat dilakukan secara lokalSebagai siapa ia tampil dari sisi jauh jaringanSiapa yang mengelola kata sandi

Gambar 1: Memilih akun eksekusi adalah keputusan desain yang sekaligus memutuskan hak lokal, identitas jaringan, dan pengelolaan kata sandi.

Ada enam pilihan yang efektif — LocalSystem, LocalService, NetworkService, akun virtual (NT SERVICE\), pengguna domain, dan gMSA (group Managed Service Account). Ditujukan kepada staf IT usaha kecil dan menengah serta pengembang aplikasi Windows, artikel ini merangkai hak, identitas jaringan, dan pengelolaan kata sandi keenamnya ke dalam satu tabel dan merangkum alur keputusan, berdasarkan sumber primer Microsoft Learn per Agustus 2026.

Cara membangun layanan itu sendiri (memilih antara Task Scheduler dan layanan, mengimplementasikan dengan .NET Worker Service) dibahas di “Cara membangun dan mengoperasikan layanan Windows”. Artikel ini berkonsentrasi pada “akun eksekusi”, tempat paling banyak terjadi insiden.

1. Kesimpulan dulu

  • Jika ragu, akun virtual adalah kandidat pertama untuk layanan yang selesai di dalam satu mesin, dan gMSA adalah kandidat pertama untuk layanan yang mengakses sumber daya di dalam domain dengan identitas khusus layanan. Microsoft juga memberi panduan memakai akun terkelola (MSA / akun virtual) sedapat mungkin.12
  • Jangan memilih LocalSystem hanya karena “berhasil”. Token mencakup SYSTEM dan BUILTIN\Administrators dan memegang hak kuat seperti SeDebugPrivilege, jadi pengambilalihan hampir berarti kehilangan semuanya di mesin itu. Default sc.exe create yang LocalSystem adalah tempat berkembang biaknya insiden ini.34
  • Perbedaan LocalService dan NetworkService adalah identitas jaringan. Hak lokal minimal untuk keduanya, tetapi ke sisi jarak jauh LocalService tampil anonim dan NetworkService tampil sebagai akun komputer.5
  • **Akun virtual (NT SERVICE\) adalah default modern yang memisahkan identitas per layanan tanpa pengelolaan kata sandi.** "NT SERVICE\\nama-layanan" dapat ditulis langsung pada ACL, dan akun layanan default SQL Server juga ini.[^understand-service-accounts][^sql-service-accounts]
  • Ketika LocalSystem, NetworkService, atau akun virtual keluar ke jaringan, identitasnya menjadi akun komputer (DOMAIN\nama-komputer$). Memberi PC$ pada ACL folder berbagi atau SQL Server sering memungkinkan tidak memakai pengguna domain.36
  • Konfigurasi yang memakai pengguna domain untuk layanan menjadi utang baik pada operasi kata sandi maupun Kerberoasting. SCM masuk dengan kata sandi tersimpan, jadi kedaluwarsa menjadi kegagalan mulai, dan “tidak pernah kedaluwarsa + catatan teks biasa” yang menghindari itu menjadi hadiah bagi penyerang.78
  • gMSA membuat Active Directory menghasilkan dan merotasi kata sandi secara otomatis. Persyaratannya adalah domain dan KDS root key, dan layanan diatur ke “DOMAIN\nama-akun$” dengan kolom kata sandi kosong. Ada aplikasi yang tidak mendukungnya, jadi validasi di muka diperlukan.910
  • Mengganti akun mengubah asumsi profil, %TEMP%, dan DPAPI. Data yang dilindungi dengan DPAPI akun lama tidak dapat didekripsi oleh akun baru.
  • Inventaris keadaan saat ini dapat dikonfirmasi dari akun eksekusi pada daftar layanan dan dari event ID 4624 (logon type 5).11

Dalam satu kalimat, kesimpulan artikel ini adalah: jadikan konfigurasi yang “tidak memberi kata sandi manusia kepada layanan” (akun built-in, akun virtual, gMSA) sebagai default, dan perlakukan pengguna domain sebagai pilihan terakhir.

Pada diagram, garis utuh menunjukkan relasi yang selalu berlaku dan garis putus-putus menunjukkan relasi bersyarat (syaratnya ada pada penjelasan masing-masing relasi di halaman rincian). Daftar lengkap relasi (total 19, beserta bukti dan tingkat kepastian) serta definisi konsep utama dikumpulkan di halaman rincian peta pengetahuan (dalam bahasa Jepang). Data: JSON-LD / Turtle

2. Gambaran besar pilihan — enam akun eksekusi dalam satu tabel

Satu langkah tinjauan dulu. Saat layanan mulai, Service Control Manager (SCM) masuk dengan akun yang dikonfigurasi dan, jika berhasil, membuat access token lalu menetapkannya ke proses layanan. Setelah itu, setiap akses sumber daya — berkas, pipe, dan sejenisnya — diputuskan dengan mencocokkan token ini terhadap ACL.7 Jadi memilih akun eksekusi adalah desain yang memutuskan isi token yang diberikan ke proses layanan. Berikut enam pilihannya.

Apa yang dilakukan SCM saat layanan mulaiSCM masuk dengan akun yang dikonfigurasi, jika berhasil membuat access token dan menetapkannya ke proses layanan, dan setelah itu akses sumber daya diputuskan dengan mencocokkan token terhadap ACLYaTidakSCMMasuk dengan akun yang dikonfigurasiBuat access tokenTetapkan ke proses layananAkses ke berkas atau pipeApakah ACL mengizinkan?Akses berhasilAkses ditolak

Gambar 2: Setiap akses sumber daya layanan diputuskan dengan mencocokkan token yang dibuat SCM saat mulai terhadap ACL.

Akun Hak lokal Identitas jaringan Pengelolaan kata sandi Penggunaan khas
LocalSystem Hampir tak terbatas (SYSTEM+Administrators) Akun komputer (PC$) Tidak perlu (tanpa kata sandi) Hanya layanan luar biasa yang berjalan sebagai satu dengan OS
LocalService Minimal (setara Users) Anonim Tidak perlu Pemrosesan lokal yang tidak butuh identitas jaringan
NetworkService Minimal (setara Users) Akun komputer (PC$) Tidak perlu Pemrosesan berhak rendah di mana identitas tingkat mesin cukup
Akun virtual NT SERVICE\ Minimal + beri secara individual pada ACL Akun komputer (PC$) Tidak perlu (dikelola otomatis) Default untuk layanan bisnis yang berjalan di satu server
Pengguna domain Hanya yang diberikan Pengguna itu sendiri Manual (kedaluwarsa, kebocoran, dan rotasi semuanya pada manusia) Pilihan terakhir untuk aplikasi yang tidak mendukung gMSA
gMSA Hanya yang diberikan gMSA itu sendiri AD menghasilkan dan merotasi otomatis Ketika lingkungan domain butuh identitas khusus layanan

LocalSystem, LocalService, NetworkService, dan akun virtual semuanya tidak punya konsep kata sandi sama sekali. Satu-satunya yang masuk dengan kata sandi tersimpan di SCM (= kedaluwarsa dan kebocoran mungkin) adalah pengguna domain dan pengguna lokal.73

Di bawah ini tabel ini digali satu baris demi satu baris.

3. Apa yang bermasalah dengan LocalSystem

3.1. Masih lebih kuat daripada “Jalankan sebagai administrator”

LocalSystem (nama tampilan Local System, NT AUTHORITY\SYSTEM) adalah akun yang telah ditentukan yang dipakai SCM, dan ia memegang hak luas di komputer lokal. Token mencakup SID NT AUTHORITY\SYSTEM dan BUILTIN\Administrators, dan ia dapat mengakses sebagian besar objek di sistem. Lebih jauh, SeDebugPrivilege, yang dapat men-debug proses lain, dan SeTcbPrivilege, yang bertindak sebagai bagian dari OS, diaktifkan secara default.3

Kekuatan ini sinonim dengan besarnya kerusakan ketika diambil alih. Jika layanan yang berjalan sebagai LocalSystem punya satu kerentanan eksekusi kode arbitrer, penyerang dalam satu napas sampai ke membaca dan mengubah berkas setiap pengguna di mesin itu (SYSTEM punya Full Control secara default pada NTFS5), membaca memori proses lain lewat SeDebugPrivilege, dan mencuri kredensial lalu bergerak lateral dari situ (titik awal Pass-the-Hash dan sejenisnya). Rantai pencurian kredensial dan pergerakan lateral seperti yang dibahas di “NTLM dan Kerberos dijelaskan dengan diagram” dan “Panduan praktis Windows LAPS”.

Kerusakan ketika layanan LocalSystem diambil alihJika layanan yang berjalan sebagai LocalSystem punya satu kerentanan eksekusi kode arbitrer, penyerang sampai ke membaca dan mengubah berkas setiap pengguna, membaca memori proses lain, dan mencuri kredensial lalu bergerak lateralSatu kerentanan eksekusi kode arbitrerPenyerang memperoleh hak SYSTEMMembaca dan mengubah berkasMembaca memori proses lainMencuri kredensialPergerakan lateral ke mesin lain

Gambar 3: Satu kerentanan pada layanan LocalSystem membuat penyerang dalam satu napas sampai ke penguasaan seluruh mesin dan titik awal pergerakan lateral.

3.2. Mengapa tetap dipilih

Alasannya sederhana: itu default, dan access denied tidak pernah muncul. Default ketika obj= dihilangkan pada sc.exe create adalah LocalSystem4, dan banyak kode sampel lama serta kerangka penginstal masih berasumsi LocalSystem. Karena pengembangan bebas dari error hak, struktur “berhasil, jadi dibiarkan” diproduksi massal. Dokumentasi Microsoft sendiri menyatakan bahwa sebagian besar layanan tidak membutuhkan tingkat hak setinggi ini, dan jika tidak diperlukan, LocalService atau NetworkService perlu dipertimbangkan.3

Struktur yang membuat LocalSystem terus dipilihDefault sc.exe create adalah LocalSystem, dan kode sampel lama serta kerangka juga berasumsi LocalSystem, sehingga access denied tidak muncul selama pengembangan dan konfigurasi "berhasil, jadi dibiarkan" diproduksi massalDefault sc.exe createDibuat sebagai LocalSystemSampel dan kerangka lamaAccess denied tidak muncul selama pengembanganBerhasil, jadi dibiarkanLayanan berhak berlebih diproduksi massal

Gambar 4: Default dan pengalaman pengembangan “tanpa access denied” memproduksi massal layanan yang tertahan sebagai LocalSystem.

3.3. Perbedaan dari TrustedInstaller — LocalSystem pun tidak tanpa batas

Selain itu, menyebut LocalSystem sebagai “akun terkuat Windows” tidak akurat. Windows Resource Protection (WRP) sejak Windows Vista hanya mengizinkan TrustedInstaller (layanan Windows Modules Installer) mengubah berkas sistem, folder, dan kunci registri penting OS; bahkan SYSTEM atau administrator menerima access denied saat menulis.12 “Izin TrustedInstaller diperlukan” di Explorer adalah mekanisme ini. Sebaliknya, LocalSystem hampir menjangkau semuanya di luar area yang dilindungi WRP, dan biasanya tidak ada alasan memberikannya kepada layanan bisnis.

Hubungan area terlindungi WRP dan TrustedInstallerPerubahan berkas sistem dan kunci registri penting yang dilindungi WRP hanya diizinkan untuk TrustedInstaller; bahkan SYSTEM atau administrator menerima access deniedDapat diubahAccess deniedHampir semua bolehTrustedInstallerBerkas sistem dll. yang dilindungi WRPSYSTEM / administratorDi luar area terlindungi WRP

Gambar 5: LocalSystem pun tidak tanpa batas; perubahan area terlindungi WRP hanya diizinkan untuk TrustedInstaller.

3.4. Kasus di mana LocalSystem masuk akal

Yang masuk akal secara pengecualian adalah layanan yang hak yang dimintanya memang sudah melampaui setara administrator, misalnya yang bekerja rapat dengan driver perangkat, yang mengoperasikan fondasi keamanan OS, atau yang mengelola layanan dan sesi lain. Perangkat lunak seperti agen cadangan dan EDR termasuk di sini. Meski begitu, ada nilai untuk mengonfirmasi apakah benar-benar ada jalur kode yang memakai hak itu, dan apakah pemrosesan yang membutuhkan hak dapat dipisah (cara menilainya ada di “Kapan hak administrator Windows benar-benar diperlukan”).

4. LocalService dan NetworkService — akun built-in hak minimum

LocalService (NT AUTHORITY\LOCAL SERVICE, SID: S-1-5-19) dan NetworkService (NT AUTHORITY\NETWORK SERVICE, SID: S-1-5-20) adalah akun built-in yang disiapkan untuk layanan berhak rendah. Keduanya hanya memegang hak minimal secara lokal, dan secara kasar hanya dapat mengakses setara anggota grup Users.51

Perbedaan keduanya hanya satu: sebagai siapa ia tampil dari sisi jauh jaringan.5

  • LocalService: menyambung ke sisi jarak jauh dengan kredensial anonim. Sumber daya yang meminta autentikasi tidak dapat diakses.
  • NetworkService: menyajikan kredensial komputer ke sisi jarak jauh (di lingkungan domain: DOMAIN\nama-komputer$).

Pemisahannya: LocalService jika “tidak keluar ke jaringan, atau keluar pun tidak butuh identitas”; NetworkService jika “ingin mengakses sumber daya di dalam domain dengan identitas mesin”.

Perbedaan LocalService dan NetworkServiceHak lokal minimal untuk keduanya, tetapi ke sisi jarak jauh LocalService menyambung dengan kredensial anonim, dan NetworkService menyajikan kredensial komputerLocalServiceMenyambung dengan kredensial anonimSumber daya yang meminta autentikasi tidak bisaNetworkServiceMenyajikan kredensial komputerDi lingkungan domain tampil sebagai PC$

Gambar 6: Hak lokal sama-sama minimal, tetapi identitas yang terlihat dari sisi jauh jaringan terbagi antara anonim dan akun komputer.

Namun, dari sudut pandang modern, keduanya punya kelemahan. Banyak layanan memakai akun yang sama. Jika lima layanan berjalan sebagai LocalService, selama ACL berunit akun, kelimanya dapat mengakses sumber daya satu sama lain. Alasan SQL Server tidak mendukung akun Local Service juga karena akun bersama, sehingga tidak dapat dipisah dari layanan lain.1

Akun bersama tidak dapat dipisahJika beberapa layanan memakai LocalService yang sama, selama ACL berunit akun mereka dapat mengakses sumber daya satu sama lainLayanan ALocalService yang samaLayanan BLayanan CDapat mengakses sumber daya satu sama lainKarena ACL berunit akun

Gambar 7: Layanan yang memakai akun yang sama tidak dapat dipisah dari sumber daya satu sama lain lewat ACL.

Yang menyelesaikan “tetap berhak rendah, tetapi ingin dipisah per layanan” adalah akun virtual berikut.

5. Akun virtual (NT SERVICE\) — default modern

5.1. Tanpa kata sandi, identitas per layanan

Akun virtual adalah “akun lokal terkelola” yang dapat dipakai sejak Windows Server 2008 R2 / Windows 7. Cirinya tiga.6

  • Akun dikelola otomatis; pembuatan dan pengaturan kata sandi tidak diperlukan
  • Namanya NT SERVICE\<nama-layanan>, dan menjadi identitas unik per satu layanan
  • Di lingkungan domain, akses ke jaringan memakai kredensial akun komputer (DOMAIN\nama-komputer$)

Dengan kata lain, kelebihan LocalService/NetworkService “tidak perlu pengelolaan kata sandi” tetap dipertahankan, sementara kelemahan “tidak dapat dipisah karena akun bersama” dihilangkan. Setup SQL Server memakai akun virtual seperti NT SERVICE\MSSQLSERVER secara default juga karena ini.1

Apa yang disatukan akun virtualAkun virtual mempertahankan kelebihan LocalService dan NetworkService yaitu tidak perlu pengelolaan kata sandi, menghilangkan kelemahan tidak dapat dipisah karena akun bersama, dan punya identitas unik per satu layananDipertahankanDihilangkanKelebihan (tidak perlu pengelolaan kata sandi)Akun virtualKelemahan (tidak dapat dipisah karena bersama)Identitas unik per layananPembuatan dan pengaturan kata sandi tidak perlu

Gambar 8: Akun virtual mempertahankan kelebihan akun built-in, dan hanya menghilangkan kelemahan tidak dapat dipisah karena bersama.

5.2. “NT SERVICE\nama-layanan” dapat ditulis langsung pada ACL

Kenyamanan praktisnya adalah hanya layanan itu yang dapat ditambahkan secara bernama pada ACL. “Folder data ini hanya dapat ditulis layanan ini” dapat diwujudkan tanpa membuat grup dan tanpa pengelolaan kata sandi.

# Ubah akun logon layanan ke akun virtual
# Nilai obj= adalah "NT SERVICE\nama-layanan". Jangan tentukan kata sandi
sc.exe config MyAppService obj= "NT SERVICE\MyAppService"

# Konfirmasi konfigurasi (periksa SERVICE_START_NAME)
sc.exe qc MyAppService

# Berikan hak ubah pada folder data hanya kepada layanan ini
icacls "C:\ProgramData\MyApp" /grant "NT SERVICE\MyAppService:(OI)(CI)M"

Jika lewat GUI, di services.msc buka properti layanan → tab “Log on” → masukkan NT SERVICE\nama-layanan pada “Account”, dan biarkan kolom kata sandi kosong (spesifikasi SCM adalah tidak menentukan kata sandi untuk akun virtual atau MSA). Setelah diubah, berlaku dengan memulai ulang layanan.

5.3. Batasan — di luar mesin, “layanan mana” tidak diketahui

Identitas akun virtual bersifat lokal-mesin, dan tidak dikenali dari domain. Di jaringan, seperti dibahas kemudian, identitasnya menyusut menjadi akun komputer, sehingga sisi jarak jauh tidak dapat membedakan “layanan mana”, dan identitas yang sama juga tidak dapat dibagi di beberapa server.10

Identitas akun virtual menyusut di luar mesinDi dalam mesin, akun virtual unik per layanan pun menyusut menjadi akun komputer di jaringan, dan sisi jarak jauh tidak dapat membedakan layanan manaAkun virtual AAkun komputer PC$Akun virtual BIdentitas yang terlihat dari sisi jarak jauhTidak dapat membedakan layanan mana

Gambar 9: Di dalam mesin identitasnya unik, tetapi di sisi jauh jaringan semua layanan tampil sebagai PC$ yang sama.

Batasan ini — identitas khusus layanan dibutuhkan di sisi jauh jaringan, atau identitas yang sama dibutuhkan di beberapa server — adalah saat gMSA (bab 8) masuk.

6. Identitas saat keluar ke jaringan — praktik akun komputer (PC$)

6.1. “Layanan tidak dapat mengakses folder berbagi” adalah kesalahpahaman

Pada mesin yang bergabung ke domain, ketika layanan yang berjalan sebagai LocalSystem, NetworkService, atau akun virtual mengakses sumber daya jarak jauh, ia diautentikasi sebagai akun komputer (DOMAIN\nama-komputer$).36 Banyak konsultasi di awal “tidak dapat mengakses folder berbagi jadi dipakai pengguna domain” sebenarnya selesai dengan ini. Hanya ACL tujuan yang tidak mengizinkan PC$.

Akses jarak jauh dengan akun komputerLayanan LocalSystem, NetworkService, atau akun virtual pada mesin yang bergabung ke domain diautentikasi ke sisi jarak jauh sebagai akun komputer, dan dapat mengakses jika ACL tujuan mengizinkan PC$YaTidakLayanan (LocalSystem, akun virtual, dll.)Autentikasi sebagai PC$ACL tujuan mengizinkan PC$?Akses ke folder berbagi atau DB berhasilAkses ditolak

Gambar 10: Di lingkungan domain, cukup memberi PC$ pada ACL tujuan agar akses jarak jauh tanpa pengguna domain terbentuk.

Pemberian di sisi file server sama dengan operasi ACL biasa: tentukan nama-komputer$ sebagai nama akun (di dialog pemilihan objek GUI, sertakan “Computers” pada Object Types).

# Sisi file server: beri hak ubah pada folder berbagi kepada layanan di APPSV01
# Perlu diberikan pada izin berbagi dan izin NTFS
Grant-SmbShareAccess -Name "AppData" -AccountName "CORP\APPSV01$" -AccessRight Change -Force
icacls "D:\Shares\AppData" /grant "CORP\APPSV01$:(OI)(CI)M"

SQL Server sama: buat akun komputer sebagai login, maka connection string tetap Integrated Security=true dan lolos tanpa kata sandi.

-- Sisi server DB: izinkan Windows integrated authentication dari layanan di APPSV01
CREATE LOGIN [CORP\APPSV01$] FROM WINDOWS;

6.2. Kenali batasan cara PC$

Cara ini punya dua batasan.

  1. Granularitasnya per mesin. Semua layanan LocalSystem, NetworkService, dan seluruh akun virtual yang berjalan di mesin yang sama, dari sisi jarak jauh tampil sebagai PC$ yang sama. Di tujuan, “hanya izinkan layanan ini” tidak bisa, dan layanan mana yang memakai akun itu juga tidak dapat diaudit.2
  2. Tidak dapat dipakai di lingkungan workgroup. Akun komputer adalah objek Active Directory, jadi tidak ada pada mesin yang tidak bergabung ke domain. Diperlukan rancangan yang menangani kredensial akun tujuan secara eksplisit.

Jika ingin melampaui batasan 1, jawabannya di 2026 bukan pengguna domain di bab berikutnya… melainkan melewati masalah itu dan maju ke gMSA.

Dua batasan cara PC$Autentikasi dengan PC$ granularitasnya per mesin sehingga izin dan audit per layanan tidak bisa, dan di lingkungan workgroup akun komputer itu sendiri tidak ada sehingga tidak dapat dipakaiCara PC$Batasan 1 (granularitas per mesin)Batasan 2 (workgroup tidak bisa)Izin dan audit per layanan tidak bisaKe rancangan kredensial eksplisitJika ingin melampaui, ke gMSA

Gambar 11: Jika ingin melampaui dua batasan — granularitas per mesin dan prasyarat domain — lewati pengguna domain dan maju ke gMSA.

7. Masalah memakai pengguna domain untuk layanan

7.1. Masalah struktural kata sandi

Jika pengguna domain (atau pengguna lokal) ditetapkan ke layanan, SCM menyimpan kata sandinya dan memakainya untuk logon setiap kali mulai. SCM tidak mengelola kedaluwarsa, jadi ketika kata sandi kedaluwarsa, logon gagal dan layanan tidak akan mulai.7

Dari sini, spiral negatif yang sering terlihat di lapangan dimulai.

  1. Terjadi insiden layanan berhenti karena kedaluwarsa
  2. Sebagai pencegahan, diatur “kata sandi tidak pernah kedaluwarsa”
  3. Prosedur perubahan tidak tertata, dan kata sandi yang sama tertulis dalam teks biasa di runbook, skrip, dan Task Scheduler beberapa server
  4. Meski ada orang yang keluar, kata sandi tidak berubah (jika diubah, tidak diketahui mana yang akan berhenti)
Spiral negatif operasi pengguna domainLayanan berhenti karena kata sandi kedaluwarsa, diatur tidak pernah kedaluwarsa sebagai pencegahan, kata sandi teks biasa menyebar ke runbook dan skrip, dan tidak dapat diubah meski ada orang yang keluar1. Layanan berhenti karena kedaluwarsa2. Diatur tidak pernah kedaluwarsa sebagai pencegahan3. Kata sandi teks biasa menyebarRunbook, skrip, tugas4. Tidak dapat diubah meski ada orang yang keluar

Gambar 12: Dimulai dari insiden kedaluwarsa, tidak-pernah-kedaluwarsa dan penyebaran kata sandi teks biasa menjadi tertahan.

Microsoft juga menunjukkan bahwa konfigurasi yang memakai akun domain untuk layanan menelan upaya operasi yang cukup besar untuk pengelolaan manual kata sandi dan SPN, dan pemeliharaan dapat berujung pada penghentian layanan.1

7.2. Kerberoasting — akun layanan menjadi sasaran

Serangan lain yang khas pada akun layanan pengguna domain adalah Kerberoasting. Layanan yang menerima autentikasi Kerberos mendaftarkan SPN (service principal name) pada akun eksekusi. Karena sembarang pengguna terautentikasi di domain dapat meminta service ticket ke akun yang SPN-nya terdaftar, penyerang mengambil tiket lalu mencoba brute-force kata sandi secara offline. Kata sandi 10–16 karakter yang ditentukan manusia tidak tahan terhadap serangan ini.

Alur KerberoastingService ticket ke akun layanan yang SPN-nya terdaftar dapat diminta sembarang pengguna terautentikasi, jadi penyerang mengambil tiket lalu mencoba brute-force kata sandi secara offlinePengguna terautentikasi di domainPermintaan tiket ke SPNMengambil service ticketBrute-force secara offlineSekitar 10–16 karakter akan dipecahkan

Gambar 13: Sembarang pengguna terautentikasi dapat meminta tiket, dan kata sandi sepanjang yang ditentukan manusia tidak tahan brute-force offline.

Mitigasi yang efektif adalah membuat kata sandi sekuat yang tidak dapat ditebak atau dipecahkan manusia. Microsoft juga menyebutkan memaksa kata sandi panjang dan memakai gMSA, yang kata sandinya menjadi nilai acak panjang yang dihasilkan mesin.8 Dokumen yang sama juga menyinggung Kerberos armoring (FAST), tetapi yang dilindungi FAST adalah data pra-autentikasi dan ketahanan terhadap peniruan KDC; permintaan service ticket ke SPN oleh pengguna terautentikasi itu sendiri tidak dicegah, jadi FAST bukan pengganti kekuatan kata sandi akun layanan. Hubungan SPN dan Kerberos, serta kondisi autentikasi jatuh ke NTLM, diilustrasikan di “NTLM dan Kerberos dijelaskan dengan diagram”.

7.3. Jika tetap memakai pengguna domain

Jika terpaksa memakai pengguna domain karena aplikasi tidak mendukung gMSA dan sejenisnya, jadikan berikut sebagai mitigasi minimum.

  • Kata sandi acak 25 karakter atau lebih, dan jangan tulis di luar alat pengelola kata sandi (runbook, skrip, Excel bersama)
  • Jadikan akun khusus layanan, dan pisahkan per layanan (jangan dipakai bersama akun manusia2)
  • Tolak logon interaktif dan Remote Desktop, dan hanya izinkan “Log on as a service”
  • Minimalkan grup keanggotaan (menambah ke Domain Admins di luar pembahasan)
  • Tata prosedur rotasi berkala, dan buat daftar tempat yang terdampak perubahan

Melakukan semua ini lebih tidak aman dan lebih merepotkan daripada bermigrasi ke gMSA — itu bab berikutnya.

8. gMSA — serahkan pengelolaan kata sandi kepada Active Directory

8.1. Mekanisme dan efek

gMSA (group Managed Service Account) adalah akun domain yang menyerahkan pengelolaan kata sandi kepada pengontrol domain. Kata sandi dihitung pengontrol domain dari root key KDS (Key Distribution Service), dan hanya host yang diizinkan yang mengambilnya.13

Mekanisme pengelolaan kata sandi gMSAPengontrol domain menghitung kata sandi dari root key KDS, hanya host yang diizinkan yang mengambilnya untuk menjalankan layanan, dan kata sandi dirutasi otomatis setiap 30 hari secara defaultKDS root keyDC menghitung kata sandiHost yang diizinkan mengambilDipakai untuk menjalankan layananRotasi otomatis setiap 30 hari secara default

Gambar 14: Pengontrol domain yang menanggung pembuatan, distribusi, dan pembaruan kata sandi, sehingga operasi berjalan tanpa manusia mengetahui kata sandi.

Efeknya jelas.9

  • Kata sandi acak 240 byte: brute-force dan serangan kamus menjadi tidak realistis, dan ketahanan Kerberoasting naik jauh
  • Rotasi otomatis setiap 30 hari secara default: manusia tidak perlu merencanakan perubahan, dan layanan tidak perlu dihentikan
  • Identitas yang sama dapat dibagi di beberapa server: farm server di bawah load balancing pun dapat saling mengautentikasi sebagai prinsipal yang sama
  • Pengelolaan SPN lebih sederhana: pendaftaran dan pengelolaan SPN juga dapat didelegasikan dan disederhanakan

Manusia dapat beroperasi tanpa mengetahui kata sandi — jika diposisikan sebagai mekanisme yang melakukan terhadap akun layanan apa yang dilakukan Windows LAPS terhadap kata sandi administrator lokal, letaknya mudah dipahami.

8.2. Persyaratan

gMSA punya prasyarat.10

  • Lingkungan domain Active Directory (workgroup tidak bisa)
  • Tingkat fungsional domain dan forest Windows Server 2012 atau lebih tinggi
  • KDS root key sudah dibuat
  • Nama gMSA unik di dalam forest, bukan hanya domain
  • Interval perubahan kata sandi hanya dapat diatur saat pembuatan

Pembuatan KDS root key adalah pekerjaan sekali, tetapi hingga 10 jam setelah pembuatan, gMSA tidak dapat dibuat karena menunggu replikasi ke semua pengontrol domain. Ini pengaman agar pengambilan kata sandi tidak gagal sebelum replikasi selesai.14

Dari pembuatan KDS root key sampai pembuatan gMSASetelah KDS root key dibuat, hingga 10 jam gMSA tidak dapat dibuat karena menunggu replikasi ke semua pengontrol domain; setelah replikasi selesai baru dapat dibuatBuat KDS root keyTunggu replikasi hingga 10 jamPengaman agar gagal ambil tidak terjadiReplikasi ke semua DC selesaigMSA dapat dibuat

Gambar 15: Hingga 10 jam setelah root key dibuat adalah waktu tunggu untuk mencegah gagal ambil sebelum replikasi selesai.

# Jalankan sebagai administrator domain, di pengontrol domain (atau terminal
# administrasi yang punya modul AD PowerShell)

# Periksa ada-tidaknya KDS root key, dan buat jika belum ada (sekali per forest)
Get-KdsRootKey
Add-KdsRootKey -EffectiveImmediately   # Baru dapat dipakai hingga 10 jam kemudian

8.3. Prosedur dari pembuatan sampai pengaturan

Prosedurnya empat tahap: “① buat grup yang diizinkan mengambil → ② buat gMSA → ③ instal di server → ④ atur ke layanan”.10

Empat tahap pengenalan gMSAPengenalan dalam empat tahap: membuat grup yang diizinkan mengambil kata sandi, membuat gMSA, menginstal di setiap server, dan mengatur ke akun eksekusi layanan① Buat grup yang diizinkan mengambil② Buat gMSATambahkan PC$ server③ Instal di setiap serverValidasi pengambilan dengan perintah Test④ Atur ke layanan

Gambar 16: Dari pembuatan grup sampai pengaturan layanan, pengenalan gMSA maju dalam empat tahap.

# ① Buat grup keamanan yang diizinkan mengambil kata sandi,
#    lalu tambahkan akun komputer server yang menjalankan layanan
New-ADGroup -Name "GG-SvcBatchHosts" -GroupScope Global
Add-ADGroupMember -Identity "GG-SvcBatchHosts" -Members "APPSV01$", "APPSV02$"
# Keanggotaan grup dievaluasi saat komputer logon,
# jadi setelah ditambah, me-restart server sasaran lebih pasti

# ② Buat gMSA
New-ADServiceAccount -Name "svc-batch" `
    -DNSHostName "svc-batch.corp.example.com" `
    -PrincipalsAllowedToRetrieveManagedPassword "GG-SvcBatchHosts"

# ③ Di setiap server yang menjalankan layanan, instal gMSA lalu validasi
Install-ADServiceAccount -Identity "svc-batch"
Test-ADServiceAccount -Identity "svc-batch"   # True berarti pengambilan berhasil

# ④ Atur sebagai akun eksekusi layanan. Tambahkan $ di akhir nama, jangan tentukan kata sandi
sc.exe config MyBatchService obj= "CORP\svc-batch$"
Restart-Service MyBatchService

Jika diatur dari services.msc, nama akun seperti CORP\svc-batch$ — tambahkan $ di akhir, dan biarkan kolom kata sandi kosong. Akun jenis MSA tidak dapat dipakai untuk masuk interaktif.1 Setelah itu, beri CORP\svc-batch$ pada ACL folder berbagi atau SQL Server sebagai ganti PC$, maka akses jaringan dengan identitas khusus layanan selesai tanpa kata sandi.

8.4. Ada aplikasi yang tidak mendukung

Perhatian: tidak semua perangkat lunak berjalan sebagai gMSA. Windows Service, kumpulan aplikasi IIS, tugas Task Scheduler, dan sejenisnya yang mengonfigurasi identitas logon dengan mekanisme standar secara luas mendukung, tetapi ada batasan seperti Failover Clustering sendiri yang tidak mendukung gMSA, dan jika aplikasi secara internal meminta kata sandi maka tidak dapat dipakai.10 Microsoft juga menyatakan secara eksplisit untuk mengonfirmasi perilaku sebagai gMSA di lingkungan uji sebelum produksi.9

Menilai apakah mendukung gMSAAplikasi yang mengonfigurasi identitas logon dengan mekanisme standar secara luas mendukung gMSA, tetapi Failover Clustering dan aplikasi yang secara internal meminta kata sandi tidak dapat memakainya, jadi konfirmasi di lingkungan uji sebelum produksiMekanisme standarMeminta kata sandiAplikasi yang ingin dipakaiCara konfigurasi logon?Mendukung gMSALayanan, IIS, tugas, dll.gMSA tidak bisaFailover cluster, dll.Konfirmasi di lingkungan uji sebelum produksi

Gambar 17: Aplikasi yang mengonfigurasi logon dengan mekanisme standar secara luas mendukung, tetapi ada rancangan yang tidak mendukung, jadi validasi sebelum produksi tidak bisa diabaikan.

Selain itu ada saudara: sMSA (standalone Managed Service Account) untuk satu server, dan dMSA (delegated Managed Service Account, diperkenalkan di Windows Server 2025; menautkan ke identitas perangkat untuk menahan pencurian kredensial). Untuk rancangan baru, jadikan gMSA sebagai dasar dan pertimbangkan sesuai persyaratan.6

9. Desain yang menyertai — hak logon, profil, DPAPI, audit

Empat hal lagi yang berubah bersama akun perlu dikuasai.

9.1. Hak “Log on as a service” (SeServiceLogonRight)

Untuk mulai sebagai layanan, akun membutuhkan hak pengguna “Log on as a service”. LocalSystem, LocalService, dan NetworkService memilikinya secara built-in, tetapi akun lain (pengguna domain, gMSA, dll.) membutuhkan penetapan eksplisit.15

Jika diatur dari tab “Log on” GUI services.msc, snap-in memberikan hak ini secara otomatis. Di sisi lain, CreateService/ChangeServiceConfig (API yang dipanggil sc.exe config) tidak memverifikasi apakah akun yang ditentukan memegang hak ini. Penyebab khas layanan yang dikonfigurasi skrip berhenti saat mulai dengan “Logon failure” adalah ini. Jangan andalkan efek samping alat; masukkan secara eksplisit ke prosedur deploy penambahan ke “Log on as a service” di Local Security Policy (secpol.msc), atau konfigurasi lewat GPO/Intune (di lingkungan yang mengonfigurasi hak ini dengan Group Policy, perlu diperhatikan bahwa pemberian lokal ditimpa saat kebijakan diterapkan). Sebaliknya, untuk akun khusus layanan, “Deny log on locally” juga diatur bersama sebagai praktik standar.

Perbedaan menurut jalur konfigurasi hak "Log on as a service"GUI services.msc memberikan hak secara otomatis, tetapi API yang dipanggil sc.exe config tidak memverifikasi hak, jadi akun tanpa hak membuat layanan berhenti karena gagal logon saat mulaiYaTidakDiatur di services.mscHak diberikan otomatisLayanan dapat mulaiDiatur dengan sc.exe configHak tidak diverifikasiMemegang hak?Layanan dapat mulaiBerhenti karena gagal logonBerikan secara eksplisit lewat secpol.msc atau GPO

Gambar 18: GUI memberikan hak otomatis, tetapi konfigurasi skrip tidak memverifikasi, jadi pemberian eksplisit perlu dimasukkan ke prosedur.

9.2. Profil, %TEMP%, dan HKEY_CURRENT_USER berubah

SCM memuat profil pengguna akun itu saat layanan mulai.7 Artinya, wujud %TEMP%, %APPDATA%, dan HKEY_CURRENT_USER berbeda per akun eksekusi; jika akun diganti, pengaturan dan cache yang tersimpan di profil akun lama tampak “hilang”.

Mitigasi desainnya sederhana: letakkan data layanan bukan di bawah profil, melainkan di jalur eksplisit seperti C:\ProgramData\<nama-aplikasi>, dan berikan ACL-nya kepada akun eksekusi. Dengan itu, penggantian akun tidak disertai migrasi data.

Ketergantungan profil dan mitigasi penempatan dataWujud profil berbeda per akun eksekusi, jadi mengganti akun membuat data profil lama tampak hilang; jika data diletakkan di jalur eksplisit dan ACL diberikan, migrasi tidak diperlukanMitigasiPenggantian akun eksekusiMemuat profil lainData lama tampak hilangTempatkan di bawah ProgramDataBerikan ACL kepada akun eksekusiPenggantian akun pun tanpa migrasi

Gambar 19: Jika data diletakkan di jalur eksplisit, bukan di bawah profil, penggantian akun tidak disertai migrasi data.

9.3. Data yang dilindungi DPAPI sepenanggungan dengan akun

Yang lebih sering terlewat adalah DPAPI. Data yang dienkripsi dengan DPAPI lingkup pengguna (CryptProtectData atau ProtectedData .NET) pada prinsipnya hanya dapat didekripsi oleh akun yang sama saat dilindungi. Begitu akun diganti, connection string dan kunci API yang tersimpan tidak dapat dibaca — itu DPAPI yang bekerja dengan benar, tetapi menjadi gangguan jika tidak masuk prosedur migrasi.

Hubungan data terlindungi DPAPI dan penggantian akunData yang dilindungi DPAPI lingkup pengguna hanya dapat didekripsi oleh akun yang sama saat dilindungi, jadi setelah akun eksekusi diganti, rahasia perlu dimasukkan ulangAkun lama yang samaAkun baruDilindungi DPAPI oleh akun lamaConnection string dll. yang sudah dilindungiAkun yang mendekripsi?Dapat didekripsiTidak dapat didekripsiMasukkan ulang rahasia

Gambar 20: Data terlindungi DPAPI sepenanggungan dengan akun saat dilindungi, jadi setelah akun diganti perlu dimasukkan ulang.

Tanggapannya adalah memasukkan prosedur “masukkan ulang rahasia setelah akun diganti” ke rencana migrasi (rancangan tempat penyimpanan ada di “Menyimpan rahasia di aplikasi Windows”). Selain itu, jika konfigurasi cukup dengan Windows integrated authentication lewat gMSA atau PC$, penyimpanan rahasia itu sendiri dapat dihilangkan. Urutan yang benar adalah mempertimbangkan “apakah perlu disimpan” sebelum “di mana disimpan”.

Juga, jika layanan ingin memproses “dengan hak pengguna pemanggil”, jangan kuatkan akun, melainkan pakai impersonation. Ini ada di “Menangani token impersonasi Windows dengan benar”.

9.4. Audit — lihat logon type 5 pada 4624

Mulainya layanan dicatat di log Security sebagai event ID 4624 (An account was successfully logged on) dengan logon type 5 (Service: SCM memulai layanan). Bidang “Virtual Account” dalam peristiwa menunjukkan apakah logon oleh MSA/akun virtual, jadi dapat dipakai juga untuk mengawasi pemakaian akun terkelola.11

Alur audit mulai layananMulainya layanan oleh SCM dicatat sebagai event ID 4624 logon type 5, dan bidang Virtual Account dapat mengidentifikasi apakah logon oleh akun terkelolaSCM memulai layananMencatat event ID 4624Logon type 5 (Service)Bidang Virtual AccountPengawasan akun terkelola

Gambar 21: Mulainya layanan dicatat sebagai 4624 logon type 5, dan pemakaian akun terkelola pun dapat dilacak.

Untuk inventaris keadaan saat ini, cara cepat adalah mengagregasi akun eksekusi pada daftar layanan.

# Agregasi layanan mana yang berjalan sebagai akun mana
Get-CimInstance Win32_Service |
    Group-Object StartName |
    Sort-Object Count -Descending |
    Select-Object Count, Name

# Inventarisasi layanan nonstandar yang berjalan sebagai LocalSystem (bedakan buatan sendiri/pihak ketiga dari jalur)
Get-CimInstance Win32_Service |
    Where-Object { $_.StartName -eq 'LocalSystem' -and $_.PathName -notlike '*\Windows\*' } |
    Select-Object Name, DisplayName, PathName

Jika keluaran ini berjajar “layanan bisnis yang berjalan sebagai LocalSystem” dan “layanan yang berjalan sebagai pengguna domain”, saatnya alur keputusan bab berikutnya.

10. Alur keputusan — tentukan dengan empat pertanyaan

Isi sampai di sini dirangkum sebagai prosedur pemilihan. Jawab empat pertanyaan secara berurutan.

Alur keputusan akun eksekusiTentukan akun eksekusi dengan menjawab berurutan empat pertanyaan: ada-tidaknya akses jaringan, bergabung ke domain, apakah identitas per mesin cukup, dan dukungan gMSATidakYaTidakYaYaTidakYaTidakMenyambung ke mesin lain dengan autentikasi Windows?Akun virtualJika hak istimewa wajib, LocalSystemBergabung ke domain?Lindungi dan simpan kredensialIdentitas per mesin cukup?Akun virtual + izinkan PC$Aplikasi mendukung gMSA?gMSAPengguna khusus + mitigasi

Gambar 22: Jika empat pertanyaan dijawab berurutan, mana dari enam pilihan yang harus dipakai menjadi jelas.

Pertanyaan 1: Apakah layanan itu mengakses mesin lain di jaringan (folder berbagi, DB, API, dll.) dengan autentikasi Windows?

Jika tidak, akun virtual adalah default. Hanya jika hak lokal khusus diperlukan, pertimbangkan LocalSystem setelah mengonfirmasi keperluan itu.

Pertanyaan 2: (Jika mengakses) Apakah mesin bergabung ke domain?

Jika workgroup, PC$ maupun gMSA tidak dapat dipakai. Rancang penanganan kredensial akun tujuan secara eksplisit (simpan dilindungi DPAPI dll.), atau pertimbangkan bergabung ke domain.

Pertanyaan 3: (Jika domain) Apakah identitas per mesin (PC$) cukup?

Jika cukup, selesai dengan akun virtual (atau NetworkService) + pemberian PC$ pada ACL tujuan. Jika identitas khusus layanan, atau identitas bersama di beberapa server, dibutuhkan, lanjut ke pertanyaan 4.

Pertanyaan 4: Apakah aplikasi mendukung gMSA?

Jika mendukung (SCM, kumpulan aplikasi IIS, Task Scheduler, dll. yang mengonfigurasi logon dengan mekanisme standar umumnya mendukung), gMSA. Jangan lupa konfirmasi perilaku di lingkungan uji. Jika benar-benar tidak mendukung, pakai pengguna domain khusus setelah menerapkan semua mitigasi di pasal 7.3.

Dalam tabel, sebagai berikut.

Situasi Rekomendasi Catatan
Selesai lokal, hak biasa Akun virtual Berikan ACL ke NT SERVICE\<nama>
Selesai lokal, hak istimewa di atas administrator wajib LocalSystem Validasi keperluan hak istimewa dulu
Pemrosesan lokal yang tidak butuh identitas jaringan LocalService Boleh untuk mempertahankan status layanan yang ada
Mengakses sumber daya di dalam domain dengan identitas mesin Akun virtual (atau NetworkService) Berikan PC$ pada ACL tujuan
Mengakses sumber daya di dalam domain dengan identitas khusus layanan gMSA KDS root key + konfirmasi dukungan
Identitas sama di beberapa server (load balancing dll.) gMSA Tidak bisa dengan akun virtual
Aplikasi tidak mendukung gMSA + identitas khusus dibutuhkan Pengguna domain khusus Mitigasi pasal 7.3 wajib
Workgroup + akses jarak jauh dibutuhkan Lindungi dan simpan kredensial eksplisit Pertimbangkan juga meninjau ulang rancangan

11. Ringkasan

  • Akun yang menjalankan layanan adalah keputusan desain yang sekaligus memutuskan hak lokal, identitas jaringan, dan pengelolaan kata sandi. Jangan biarkan pada default (LocalSystem).
  • LocalSystem memegang token SYSTEM+Administrators dan hak kuat, dan kerusakan ketika diambil alih dimaksimalkan. Sebagian besar layanan bisnis tidak membutuhkan hak ini.
  • LocalService dan NetworkService keduanya berhak rendah; perbedaannya adalah identitas jaringan (anonim, atau akun komputer). Karena akun dibagi oleh beberapa layanan, mereka tidak dapat dipisah.
  • Akun virtual (NT SERVICE\) adalah default modern yang memisahkan per layanan tanpa pengelolaan kata sandi. Dapat ditulis langsung pada ACL, dan konfigurasinya hanya mengganti nama akun logon.
  • LocalSystem, NetworkService, dan akun virtual keluar ke jaringan sebagai DOMAIN\PC$ di lingkungan domain. Memberi PC$ pada ACL folder berbagi atau SQL Server sering memungkinkan tidak memakai pengguna domain.
  • Memakai pengguna domain untuk layanan punya masalah struktural: berhenti karena kedaluwarsa, penyebaran kata sandi teks biasa, dan Kerberoasting. Jika memakainya, akun khusus + kata sandi acak panjang + pembatasan logon wajib.
  • gMSA adalah mekanisme di mana AD menghasilkan dan merotasi kata sandi secara otomatis; persyaratannya adalah domain, tingkat fungsional 2012 atau lebih tinggi, dan KDS root key. Atur layanan ke “DOMAIN\nama$” dengan kolom kata sandi kosong.
  • Ketika akun diganti, masukkan hak “Log on as a service”, perpindahan profil dan %TEMP%, dan memasukkan ulang data yang dilindungi DPAPI ke prosedur migrasi. Audit dapat dikonfirmasi dengan event ID 4624 logon type 5.

Lain kali layanan dipasang, berhenti sejenak di layar pengaturan logon dan tanyakan ini lagi. Sebagai siapa, dan sejauh mana, layanan ini harus dapat mengakses? Jawabannya mestinya suatu baris dari tabel keputusan artikel ini.

Artikel terkait

Area konsultasi terkait

KomuraSoft LLC menangani rancangan akun eksekusi dan pengerasan hak minimum untuk layanan Windows dan aplikasi residen, migrasi layanan yang ada yang dibangun dengan asumsi LocalSystem ke akun virtual atau gMSA, serta investigasi gangguan yang disebabkan access denied, DPAPI, dan profil setelah penggantian akun. Memulai dari tahap “ditandai dalam audit, tetapi tidak tahu dari mana mulai” tidak apa-apa.

Tautan referensi

  1. Microsoft Learn, Configure Windows service accounts and permissions. Bahwa akun layanan default SQL Server adalah akun virtual (NT SERVICE\MSSQLSERVER dll.), bahwa ketika menentukan akun virtual atau MSA kolom kata sandi dikosongkan, bahwa MSA adalah nama dengan $ di akhir dan tidak dapat dipakai untuk masuk interaktif, bahwa Local Service adalah akun bersama sehingga tidak dapat dipisah dan tidak didukung SQL Server, bahwa memakai akun domain menelan upaya dalam pengelolaan manual kata sandi dan SPN dan pemeliharaan dapat berujung pada penghentian layanan, dan bahwa layanan harus selalu dijalankan sebagai akun hak minimum. ↩ ↩2 ↩3 ↩4 ↩5 ↩6

  2. Microsoft Learn, Securing on-premises service accounts. Prioritas pertama gMSA untuk layanan on-premises, lalu sMSA jika itu tidak dapat dipakai, lalu akun komputer, dan akhirnya akun pengguna; bahwa ketika memakai akun komputer, layanan mana yang memakai akun itu tidak dapat dibedakan dan perubahan tidak dapat diaudit; dan peran akun layanan (mengidentifikasi, mengautentikasi, dan memulai layanan). ↩ ↩2 ↩3

  3. Microsoft Learn, LocalSystem Account. Bahwa LocalSystem memegang hak luas di komputer lokal dan token mencakup SID NT AUTHORITY\SYSTEM dan BUILTIN\Administrators, bahwa ia tidak punya kata sandi, bahwa ia menyajikan kredensial komputer ke server jarak jauh, daftar hak termasuk SE_DEBUG_NAME dan SE_TCB_NAME, dan bahwa sebagian besar layanan tidak membutuhkan tingkat hak ini serta LocalService/NetworkService perlu dipertimbangkan. ↩ ↩2 ↩3 ↩4 ↩5 ↩6

  4. Microsoft Learn, sc.exe config. Bahwa akun eksekusi layanan ditentukan dengan parameter obj=, bahwa default-nya adalah LocalSystem, dan parameter password= ketika memakai akun pengguna selain LocalSystem. ↩ ↩2

  5. Microsoft Learn, Local accounts. Bahwa SYSTEM (S-1-5-18) punya Full Control secara default pada volume NTFS, bahwa NETWORK SERVICE (S-1-5-20) menyajikan kredensial komputer ke server jarak jauh, dan bahwa LOCAL SERVICE (S-1-5-19) memegang hak minimal secara lokal dan menyajikan kredensial anonim ke jaringan. ↩ ↩2 ↩3 ↩4

  6. Microsoft Learn, Service accounts. Bahwa akun virtual adalah akun lokal terkelola otomatis yang tidak membutuhkan pengelolaan kata sandi, bahwa namanya dalam bentuk NT SERVICE<SERVICENAME>, bahwa di lingkungan domain ia mengakses jaringan dengan kredensial akun komputer (\$), dan kriteria memilih di antara sMSA, gMSA, dMSA, dan akun virtual. ↩ ↩2 ↩3 ↩4

  7. Microsoft Learn, Service User Accounts. Bahwa layanan berjalan dalam konteks keamanan akun pengguna, bahwa SCM masuk ke akun saat mulai dan mengaitkan access token dengan proses layanan, bahwa SCM memuat profil pengguna, dan bahwa SCM tidak mengelola kedaluwarsa kata sandi sehingga kedaluwarsa membuat logon gagal dan layanan tidak akan mulai. ↩ ↩2 ↩3 ↩4 ↩5

  8. Microsoft Learn, Protect SMB traffic from interception. Rekomendasi termasuk gMSA sebagai perlindungan akun layanan (kata sandi acak panjang yang dihasilkan mesin membuat pemecahan kata sandi dengan brute-force atau serangan kamus tidak realistis), memaksa kata sandi panjang, dan sebutan Kerberos armoring (FAST). ↩ ↩2

  9. Microsoft Learn, Secure group managed service accounts. Bahwa kata sandi gMSA adalah generasi acak 240-byte yang sulit di-brute-force atau diserang kamus, bahwa OS Windows mengubah kata sandi setiap 30 hari sehingga administrator tidak perlu merencanakan perubahan atau menghentikan layanan, penerapan ke farm server dan pengelolaan SPN yang lebih sederhana, bahwa jika layanan tidak mendukung gMSA dipakai sMSA dan jika itu juga tidak mungkin akun pengguna standar dengan pengelolaan kata sandi yang kuat, dan bahwa perilaku sebagai gMSA perlu dikonfirmasi di lingkungan uji sebelum produksi. ↩ ↩2 ↩3

  10. Microsoft Learn, Manage group Managed Service Accounts. Prasyarat gMSA (tingkat fungsional domain/forest 2012 atau lebih tinggi, pembuatan KDS root key), bahwa nama gMSA harus unik di forest, bahwa interval perubahan kata sandi hanya dapat diatur saat pembuatan, menentukan grup yang diizinkan mengambil kata sandi dengan -PrincipalsAllowedToRetrieveManagedPassword pada New-ADServiceAccount, prosedur Install-ADServiceAccount/Test-ADServiceAccount, bahwa identitas akun virtual bersifat lokal-mesin dan tidak dikenali dari domain, bahwa failover cluster tidak mendukung gMSA, dan bahwa SCM, kumpulan aplikasi IIS, dan Task Scheduler mendukung mengonfigurasi logon sebagai gMSA. ↩ ↩2 ↩3 ↩4 ↩5

  11. Microsoft Learn, 4624(S): An account was successfully logged on. Bahwa peristiwa 4624 dicatat di komputer yang diakses ketika sesi logon dibuat, bahwa logon type 5 berarti layanan (SCM memulai layanan), dan bahwa bidang “Virtual Account” dapat mengidentifikasi logon oleh MSA atau akun virtual dan dapat dipakai untuk mengawasi akun layanan terkelola. ↩ ↩2

  12. Microsoft Learn, About Windows Resource Protection. Bahwa Windows Resource Protection (WRP) mencegah penggantian berkas sistem penting, folder, dan kunci registri, bahwa akses penuh ke sumber daya yang dilindungi WRP dibatasi pada TrustedInstaller dan perubahan hanya dapat dibuat lewat mekanisme penggantian yang didukung via layanan Windows Modules Installer, dan bahwa aplikasi yang mencoba mengubah sumber daya terlindungi menerima access denied. ↩

  13. Microsoft Learn, Group Managed Service Accounts overview. Bahwa gMSA adalah akun domain yang menyerahkan pengelolaan kata sandi kepada Windows, bahwa pengontrol domain menghitung kata sandi dari rahasia bersama Key Distribution Service (kdssvc.dll) dan host anggota menanyakan pengontrol domain untuk kata sandi saat ini dan sebelumnya, dan bahwa ia memungkinkan autentikasi bersama sebagai prinsipal yang sama di farm server. ↩

  14. Microsoft Learn, Create a Key Distribution Service (KDS) root key. Bahwa root key dibutuhkan agar pengontrol domain mulai menghasilkan kata sandi gMSA, prosedur pembuatan dengan Add-KdsRootKey -EffectiveImmediately, bahwa hingga 10 jam setelah pembuatan gMSA tidak dapat dibuat karena menunggu replikasi AD berkumpul, dan bahwa replikasi yang tidak lengkap dapat membuat pengambilan kata sandi gagal. ↩

  15. Microsoft Learn, Policy CSP - UserRights: LogOnAsService. Bahwa hak “Log on as a service” memungkinkan prinsipal keamanan masuk sebagai layanan, bahwa Local System, Local Service, dan Network Service punya hak ini secara built-in, bahwa layanan yang dijalankan sebagai akun lain membutuhkan hak ini ditetapkan, dan jalur konfigurasi Group Policy. ↩

Artikel terbaru dengan tag yang sama untuk mendalami topik-topik terdekat.

Halaman-halaman ini menempatkan topik dalam konteks layanan dan keputusan yang lebih luas.

Artikel ini berkaitan langsung dengan layanan berikut.

Pertanyaan yang sering diajukan

Pertanyaan yang sering muncul dalam konsultasi tentang topik artikel ini.

Layanan yang selama ini dijalankan sebagai LocalSystem, apakah harus segera diganti?
Perubahan segera tidak selalu jawaban yang tepat untuk semua kasus. Pertama periksa apakah layanan itu benar-benar membutuhkan hak lokal setara LocalSystem (hak istimewa yang lebih kuat daripada administrator). Jika hanya baca/tulis berkas dan komunikasi jaringan, kandidat pertama adalah pindah ke akun virtual (NT SERVICE\nama-layanan). Saat migrasi, konfirmasikan pemberian izin ke folder dan registri yang diperlukan, penanganan data yang bergantung pada profil atau DPAPI, dan ada-tidaknya hak "Log on as a service". Pastikan mulai dan fungsi utama di lingkungan uji, baru kemudian alihkan produksi.
Mana yang harus dipilih, akun virtual atau NetworkService?
Untuk pilihan baru, akun virtual lebih disarankan. Di jaringan, keduanya tampil sebagai akun komputer (DOMAIN\nama-komputer$), dan hak lokal keduanya juga kecil. Namun NetworkService dipakai bersama oleh beberapa layanan, sehingga pemisahan lewat ACL "hanya izinkan layanan ini" tidak bisa dilakukan. Akun virtual punya identitas unik per layanan, dan NT SERVICE\nama-layanan dapat ditulis langsung pada ACL. Produk Microsoft mutakhir seperti SQL Server juga memakai akun virtual sebagai default.
Bisakah gMSA dipakai di lingkungan workgroup (tanpa domain)?
Tidak. gMSA adalah mekanisme di mana pengontrol domain Active Directory menghasilkan dan mengelola kata sandi; prasyaratnya adalah domain plus pembuatan KDS root key. Di lingkungan workgroup, dasarnya adalah menyelesaikan pemrosesan lokal dengan akun virtual atau LocalService/NetworkService. Jika perlu mengakses mesin lain, dibutuhkan rancangan lain, misalnya memakai kredensial akun yang disiapkan di tujuan secara eksplisit. Akses jaringan sebagai akun komputer (PC$) juga hanya berlaku di lingkungan domain.
Setelah akun logon layanan diganti, pengaturan dan kredensial yang tersimpan tidak bisa dibaca. Mengapa?
Karena setiap akun logon terikat pada profil pengguna, %TEMP%, HKEY_CURRENT_USER, dan kunci DPAPI-nya sendiri. Khususnya, data yang dilindungi dengan DPAPI lingkup pengguna (CryptProtectData dan sejenisnya) pada prinsipnya hanya dapat didekripsi oleh akun yang sama yang melindunginya. Berkas yang disimpan di bawah profil (AppData dan sejenisnya) juga menjadi jalur lain bagi akun baru. Sebelum mengganti akun, rencanakan prosedur membuat ulang data yang dilindungi DPAPI (memasukkan ulang kunci API dan sejenisnya) dan memigrasikan berkas di bawah profil.
Jika layanan hanya perlu mengakses folder berbagi, apakah pengguna domain diperlukan?
Dalam banyak kasus, tidak. Di lingkungan domain, layanan yang berjalan sebagai LocalSystem, NetworkService, atau akun virtual mengautentikasi ke sisi jarak jauh sebagai akun komputer (DOMAIN\nama-komputer$). Tambahkan PC$ itu ke izin berbagi dan izin NTFS folder berbagi, maka baca/tulis bisa dilakukan. Jika kontrol akses dengan identitas khusus layanan dibutuhkan, atau identitas yang sama di beberapa server, pertimbangkan gMSA, bukan pengguna domain.

Profil penulis

Halaman perkenalan penulis artikel.

Go Komura

Direktur KomuraSoft LLC

Berspesialisasi dalam pengembangan perangkat lunak Windows, konsultasi teknis, dan investigasi bug, terutama pada proyek dengan sistem yang sudah ada dan bug yang sulit direproduksi.

Kembali ke blog