Menjatuhkan akun NT AUTHORITY dan NT SERVICE yang dibuat secara otomatis

8

Jadi saya baru saja pindah pekerjaan - sepotong kode saya telah melihat dalam skrip build kami untuk instalasi SQL Server baru di bawah ini.

IF EXISTS ( SELECT  *
            FROM    [sys].[syslogins]
            WHERE   [name] = N'NT AUTHORITY\SYSTEM' )
    BEGIN
        DROP LOGIN [NT AUTHORITY\SYSTEM];
    END

IF EXISTS ( SELECT  *
            FROM    [sys].[syslogins]
            WHERE   [name] = N'NT SERVICE\SQLWriter' )
    BEGIN
        DROP LOGIN [NT SERVICE\SQLWriter];
    END

IF EXISTS ( SELECT  *
            FROM    [sys].[syslogins]
            WHERE   [name] = N'NT SERVICE\Winmgmt' )
    BEGIN
        DROP LOGIN [NT SERVICE\Winmgmt];
    END
GO

Akun ini dibuat selama proses instalasi SQL Server secara default.

Apakah menjatuhkan login di atas direkomendasikan? Adakah efek samping yang bisa ditimbulkan? Untuk apa login ini?

Saya membaca Dapatkah saya menghapus login NT SERVICE \ SQLWriter dan NT SERVICE \ Winmgmt? tapi itu tidak cukup konkret - saya bisa melihat apa yang mereka butuhkan tetapi sangat sedikit. Apakah mereka memerlukan akses sysadmin? dll.

Sebagai contoh (diambil dari Mengkonfigurasi Akun dan Izin Layanan Windows ):

Sistem Lokal adalah akun bawaan yang sangat istimewa. Ini memiliki hak istimewa yang luas pada sistem lokal dan bertindak sebagai komputer di jaringan. Nama sebenarnya dari akun tersebut adalah NT AUTHORITY\SYSTEM.

Bagaimana saya harus membaca ini? Haruskah dibiarkan dengan hak istimewa "tinggi" ini?

George. Palacios
sumber
Lihat pertanyaan terkait sebelumnya ini . Secara pribadi saya merasa bahwa ini adalah sesuatu yang harus dilakukan hanya jika (a) ada manfaat nyata untuk melakukannya dan (b) ada bukti bahwa efek samping tidak akan mempengaruhi Anda.
Aaron Bertrand

Jawaban:

2

Sebelum Anda downvote, berikut adalah dokumentasi formal yang dapat Anda rujuk untuk alasan yang sah mengapa akun ini akan dituliskan seperti yang Anda lihat: STIG Rule SV-53421r2_rule . Kontrol ini adalah versi SQL Server khusus, tetapi ada sejumlah kontrol lain di versi yang lebih baru juga. Jika Anda bekerja untuk organisasi yang berada di bawah kendali ini dan juga mematuhi beberapa yang lebih ketat, seperti mencabut Hibah bawaan yang diberikan kepada peran publik, berbagai hal dapat menjadi rumit dengan cukup cepat.

Karena saya memiliki pengalaman dalam lingkungan yang berada di bawah kontrol ini, saya dapat mengatakan bahwa Anda dapat menonaktifkan / menjatuhkan akun NT SERVICE\SQLWriterdan NT SERVICE\Winmgmtsekaligus, tetapi Anda perlu memastikan Layanan SQL Server Anda berjalan di bawah akun layanan yang sesuai dengan tingkat OS yang cukup izin, seperti Akun Layanan Domain yang dikunci cukup, atau bahkan lebih baik, Akun Layanan Dikelola mandiri atau grup . Sekali lagi, izin OS perlu diperlakukan dengan hati-hati karena ini memasuki wilayah kartu jika Anda tidak melakukan pengujian yang memadai.

Adapun NT AUTHORITY\SYSTEMakun, ini BUKAN akun yang ingin Anda jatuhkan jika Anda akan menjalankan Grup Ketersediaan apa pun. Bahkan, STIG SV-93835r1_rule menyebutkan bahwa Anda harus menyimpannya hanya dengan CONNECT SQLizin yang diberikan secara default. Jika Anda memiliki grup Ketersediaan, akun ini juga harus memiliki izin tambahan berikut ini:

  • ALTER KELOMPOK KETERSEDIAAN APA SAJA
  • LIHAT NEGARA SERVER
  • EXECUTE ON [sys]. [Sp_server_diagnostics]
  • EXECUTE ON [sys]. [Sp_available_group_command_internal]

Pembatasan ini bisa menjadi masalah besar, tetapi ada alasan sah yang Anda butuhkan untuk membatasi penggunaan dan izin mereka. Jika Anda tidak termasuk dalam pedoman ini, bantulah diri Anda sendiri dan komentari langkah-langkah itu.

Semoga itu bisa membantu!

John Eisbrener
sumber