CIS SQL2000 Benchmark v1.0
CIS SQL2000 Benchmark v1.0
0
Table of Contents
Background.
CIS provides benchmarks, scoring tools, software, data, information, suggestions, ideas, and other services and materials from the CIS
website or elsewhere (Products) as a public service to Internet users worldwide. Recommendations contained in the Products
(Recommendations) result from a consensus-building process that involves many security experts and are generally generic in
nature. The Recommendations are intended to provide helpful information to organizations attempting to evaluate or improve the
security of their networks, systems and devices. Proper use of the Recommendations requires careful analysis and adaptation to
specific user requirements. The Recommendations are not in any way intended to be a quick fix for anyones information security
needs.
CIS makes no representations, warranties or covenants whatsoever as to (i) the positive or negative effect of the Products or the
Recommendations on the operation or the security of any particular network, computer system, network device, software, hardware, or
any component of any of the foregoing or (ii) the accuracy, reliability, timeliness or completeness of any Product or Recommendation.
CIS is providing the Products and the Recommendations as is and as available without representations, warranties or covenants of
any kind.
User agreements.
By using the Products and/or the Recommendations, I and/or my organization (we) agree and acknowledge that:
1. No network, system, device, hardware, software or component can be made fully secure;
2. We are using the Products and the Recommendations solely at our own risk;
3. We are not compensating CIS to assume any liabilities associated with our use of the Products or the Recommendations, even risks that result from CISs
negligence or failure to perform;
4. We have the sole responsibility to evaluate the risks and benefits of the Products and Recommendations to us and to adapt the Products and the
Recommendations to our particular circumstances and requirements;
5. Neither CIS, nor any CIS Party (defined below) has any responsibility to make any corrections, updates, upgrades or bug fixes or to notify us if it chooses
at it sole option to do so; and Neither CIS nor any CIS Party has or will have any liability to us whatsoever (whether based in contract, tort, strict liability or
otherwise) for any direct, indirect, incidental, consequential, or special damages (including without limitation loss of profits, loss of sales, loss of or damage
to reputation, loss of customers, loss of software, data, information or emails, loss of privacy, loss of use of any computer or other equipment, business
interruption, wasted management or other staff resources or claims of any kind against us from third parties) arising out of or in any way connected with
our use of or our inability to use any of the Products or Recommendations (even if CIS has been advised of the possibility of such damages), including
without limitation any liability associated with infringement of intellectual property, defects, bugs, errors, omissions, viruses, worms, backdoors, Trojan
horses or other harmful items.
1 / 23
2 / 23
Grant of limited rights.
CIS hereby grants each user the following rights, but only so long as the user complies with all of the terms of these Agreed Terms of Use:
1. Except to the extent that we may have received additional authorization pursuant to a written agreement with CIS, each user may download, install and
use each of the Products on a single computer;
2. Each user may print one or more copies of any Product or any component of a Product that is in a .txt, .pdf, .doc, .mcw, or .rtf format, provided that all such
copies are printed in full and are kept intact, including without limitation the text of this Agreed Terms of Use in its entirety.
The Products are protected by copyright and other intellectual property laws and by international treaties. We acknowledge and agree that we are
not acquiring title to any intellectual property rights in the Products and that full title and all ownership rights to the Products will remain the
exclusive property of CIS or CIS Parties. CIS reserves all rights not expressly granted to users in the preceding section entitled Grant of limited
rights.
Subject to the paragraph entitled Special Rules (which includes a waiver, granted to some classes of CIS Members, of certain limitations in this
paragraph), and except as we may have otherwise agreed in a written agreement with CIS, we agree that we will not (i) decompile, disassemble,
reverse engineer, or otherwise attempt to derive the source code for any software Product that is not already in the form of source code; (ii)
distribute, redistribute, encumber, sell, rent, lease, lend, sublicense, or otherwise transfer or exploit rights to any Product or any component of a
Product; (iii) post any Product or any component of a Product on any website, bulletin board, ftp server, newsgroup, or other similar mechanism or
device, without regard to whether such mechanism or device is internal or external, (iv) remove or alter trademark, logo, copyright or other
proprietary notices, legends, symbols or labels in any Product or any component of a Product; (v) remove these Agreed Terms of Use from, or
alter these Agreed Terms of Use as they appear in, any Product or any component of a Product; (vi) use any Product or any component of a
Product with any derivative works based directly on a Product or any component of a Product; (vii) use any Product or any component of a
Product with other products or applications that are directly and specifically dependent on such Product or any component for any part of their
functionality, or (viii) represent or claim a particular level of compliance with a CIS Benchmark, scoring tool or other Product. We will not facilitate
or otherwise aid other individuals or entities in any of the activities listed in this paragraph.
We hereby agree to indemnify, defend and hold CIS and all of its officers, directors, members, contributors, employees, authors,
developers, agents, affiliates, licensors, information and service providers, software suppliers, hardware suppliers, and all other
persons who aided CIS in the creation, development or maintenance of the Products or Recommendations (CIS Parties) harmless
from and against any and all liability, losses, costs and expenses (including attorneys' fees and court costs) incurred by CIS or any CIS
Party in connection with any claim arising out of any violation by us of the preceding paragraph, including without limitation CISs
right, at our expense, to assume the exclusive defense and control of any matter subject to this indemnification, and in such case, we
agree to cooperate with CIS in its defense of such claim. We further agree that all CIS Parties are third-party beneficiaries of our
undertakings in these Agreed Terms of Use.
3 / 23
Special rules.
The distribution of the NSA Security Recommendations is subject to the terms of the NSA Legal Notice and the terms contained in the NSA
Security Recommendations themselves (http://nsa2.www.conxion.com/cisco/notice.htm).
CIS has created and will from time to time create special rules for its members and for other persons and organizations with which CIS has a
written contractual relationship. Those special rules will override and supersede these Agreed Terms of Use with respect to the users who are
covered by the special rules.
CIS hereby grants each CIS Security Consulting or Software Vendor Member and each CIS Organizational User Member, but only so long as
such Member remains in good standing with CIS and complies with all of the terms of these Agreed Terms of Use, the right to distribute the
Products and Recommendations within such Members own organization, whether by manual or electronic means. Each such Member
acknowledges and agrees that the foregoing grant is subject to the terms of such Members membership arrangement with CIS and may,
therefore, be modified or terminated by CIS at any time.
We acknowledge and agree that these Agreed Terms of Use will be governed by and construed in accordance with the laws of the State of
Maryland, that any action at law or in equity arising out of or relating to these Agreed Terms of Use shall be filed only in the courts located in the
State of Maryland, that we hereby consent and submit to the personal jurisdiction of such courts for the purposes of litigating any such action. If
any of these Agreed Terms of Use shall be determined to be unlawful, void, or for any reason unenforceable, then such terms shall be deemed
severable and shall not affect the validity and enforceability of any remaining provisions.
We acknowledge and agree that we have read these Agreed Terms of Use in their entirety, understand them and agree to be bound by them in all
respects.
4 / 23
Introduction
This document is derived from research conducted utilizing the SQL Server 2000 environment on Windows 2000 servers and desktops and Windows 2003
servers. This document provides the necessary settings and procedures for the secure installation, setup, configuration, and operation of an MS SQL Server 2000
system. With the use of the settings and procedures in this document, an SQL Server 2000 database may be secured from conventional out of the box threats.
Recognizing the nature of security cannot and should not be limited to only the application; the scope of this document is not limited to only SQL Server 2000
specific settings or configurations, but also addresses backups, archive logs, best practices processes and procedures that are applicable to general software
and hardware security.
5 / 23
1. Operating System and Network Specific Configuration
6 / 23
Item Configuration Item Action / Recommended Parameters Comments Level
#
1.9.3 Disk subsystem Use RAID for critical data files Raid Level 10 is recommended. Use the level of 1
RAID which will provide the best reliability and
performance for your environment.
1.9.4 Separate partitions Create separate volumes for SQL program files and 1
SQL data files
1.10 Services Disable the following services on a SQL Server The disabling of services has to be balanced with 1
machine application requirements, since certain
applications require the use of certain services to
function correctly.
1.10.1 Alerter 1
1.10.2 Clipbook Server 1
1.10.3 Computer Browser 1
1.10.4 DHCP Client 1
1.10.5 Distributed Transaction Service 1
1.10.6 Distributed File System 1
1.10.7 Fax Service 1
1.10.8 Internet Connection Sharing 1
1.10.9 IPSec policy agent Unless IPSec policies will be used 1
1.10.10 License Logging Service 1
1.10.11 Logical Disk Manager Administrator Service 1
1.10.12 Messenger 1
1.10.13 NetMeeting Remote Desktop Sharing 1
1.10.14 Network DDE 1
1.10.15 Network DDE DS DM 1
1.10.16 Print Spooler 1
1.10.17 Remote Access Connection Manager 1
1.10.18 Remote Registry Service Unless network management software requiring 1
remote registry access will be used
1.10.19 Removable Storage 1
1.10.20 RunAs Service 1
1.10.21 Smart Card 1
1.10.22 Smart Card Helper 1
1.10.23 Task Scheduler Unless batch jobs scheduled with the SQL Server 1
Agent or scheduled tasks will be used
1.10.24 Telephony 1
1.10.25 Telnet 1
1.10.26 Windows Installer 1
1.11 MSSQL Server Service Use a low-privileged Local or Domain account for the If SSL is implemented, the service account must 2
Account MSSQLServer service. be a local administrator. See 1.6.
7 / 23
Item Configuration Item Action / Recommended Parameters Comments Level
#
1.12 SQLServerAgent Use a low-privileged domain account for Replication and other inter-server 1
Service Account SQLServerAgent if replication, DTS, or other inter- communications require the SQLServerAgent
server connection is required. service account to be a domain account. Proxy
Account usage requires that the SQLServer
Agent be run under a local admin account (post
sp3a).
1.13 Local users group Assign the local service account a member of only 1
membership the Users group
1.14 Domain users group Make a domain service account a member of only 1
membership the Domain Users group
1.15 SQL Server services Grant the SQL Server services account(s) the These rights may be assigned by default. 1
account rights following rights: Log on as a service, Act as part of Possibly, the Logon as a Batch job will be needed.
the operating system, Lock pages in memory,
Bypass traverse checking, Increase Quotas, Access
this Computer from the network and Replace a
process level token.
1.16 SQL Server services Deny the service account the Log on locally right. The service accounts do not have a need to log 1
account rights on to the console. This will prevent a brute force
attack on the service account.
1.17 SQL Server services If a service account is a domain account, configure This, combined with the recommendation in item 1
account rights the account to Log on to the database server only. 1.16, will prevent an attempt to logon to any
domain computer using the services account.
8 / 23
2. SQL Server Installation and Patches
9 / 23
3. SQL Server Settings
10 / 23
Item Configuration Item Action / Recommended Parameters Comments Level
#
3.5 Replication Do not enable replication. Section 7 covers security recommendations if 1
replication is required.
3.6 Other SQL Server Scan for startup procedures = 0 (disabled) 1
Configuration Options
3.7 Other SQL Server Save a maximum of 14 SQL error logs . Truncate logs on a regular schedule, weekly, bi- 1
Configuration Options weekly etc. to prevent oversize logs.
3.8 Other SQL Server Do not enable SQlAgent Mail. As an alternative consider SMTP agent with less 1
Configuration Options vulnerability than Outlook.
3.9 Trace Messages Error Log/Include execution trace messages = off 1
3.10 User-defined stored Ensure that all user-defined stored procedures are 1
procedures stored in encrypted format .
3.11 User-defined extended Avoid using user-defined extended stored 1
stored procedures procedures
3.12 SQLMail extended Delete the sqlmap70.dll file that implements the 1
stored procedures SQLMail extended stored procedures.
3.13 Extended stored Drop the following extended stored procedures: The dropping of stored procedures has to be
procedures balanced with application requirements, since
certain applications require the use of external
stored procedures to either export or import data.
11 / 23
Item Configuration Item Action / Recommended Parameters Comments Level
#
3.13.17 xp_sprintf 1
3.13.18 xp_sscanf 1
3.13.19 xp_subdirs 1
3.13.20 xp_unc_to_drive 1
3.14 SQLmail extended Drop the following SQLMail extended stored
stored procedures procedures:
3.14.1 xp_deletemail 1
3.14.2 xp_findnextmsg 1
3.14.3 xp_get_mapi_default_profile 1
3.14.4 xp_get_mapi_profiles 1
3.14.5 xp_readmail 1
3.14.6 xp_sendmail 1
3.14.7 xp_startmail 1
3.14.8 xp_stopmail 1
3.15 WebTask extended Drop the following WebTask extended stored
stored procedures procedures. Delete the xpweb70.dll file that
implements the following Web Task extended stored
procedures:
3.15.1 xp_cleanupwebtask 1
3.15.2 xp_convertwebtask 1
3.15.3 xp_dropwebtask 1
3.15.4 xp_enumcodepages 1
3.15.5 xp_makewebtask 1
3.15.6 xp_readwebtask 1
3.15.7 xp_runwebtask 1
3.16 SNMP extended stored Drop the following SNMP extended stored
procedures procedures:
3.16.1 xp_snmp_getstate 1
3.16.2 xp_snmp_raisetrap 1
3.17 OLE Automation stored Drop the following OLE Automation stored
procedures procedures:
3.17.1 sp_OACreate 1
3.17.2 sp_OADestroy 1
3.17.3 sp_OAGetErrorInfo 1
3.17.4 sp_OAGetProperty 1
3.17.5 sp_OAMethod 1
3.17.6 sp_OASetProperty 1
12 / 23
Item Configuration Item Action / Recommended Parameters Comments Level
#
3.17.7 sp_OAStop 1
3.18 Registry access Drop the following Registry access extended stored
extended stored procedures:
procedures
3.18.1 xp_regaddmultistring 1
3.18.2 xp_regdeletekey 1
3.18.3 xp_regdeletevalue 1
3.18.4 xp_regenumvalues 1
3.18.5 xp_regremovemultistring 1
3.18.6 xp_regwrite 1
3.19 Advanced Setting SQL Server Event forwarding/Forward events to a 1
different server = off
13 / 23
4. Access Controls
15 / 23
Item Configuration Item Action / Recommended Parameters Comments Level
#
4.14 Database Owners Ensure the database owner (dbo) owns all user-created Avoid changing the ownership of system- 1
Permissions database objects. created objects in the system databases. (Report)
These objects may be owned by
INFORMATION_SCHEMA and
SYSTEM_FUNCTION_SCHEMA. Changes to
these objects could severely impact
applications.
4.15 Low-privileged users Do not grant object permissions to PUBLIC or GUEST. Do not grant the REFERENCES object 1
permission to an application user, application (Report)
administrator, or application role.
4.16 PUBLICs permissions Remove PUBLICs permissions to the system tables in each 1
database.
4.17 Stored Procedure Grant execute permissions on stored procedures to database 1
Permissions roles (not users). (Report)
4.18 Use of Roles Assign roles to local groups for database permissions. Create Local groups for database users, 1
assign Global group from Domain to Local
group. If there are different classes of users
use separate groups for them.
4.19 Using the GRANT option Do not assign the GRANT option of object permission to a user 1
or role.
4.20 Limit Job Steps Restrict the use of CmdExec and Active Scripting job steps to 1
DBAs
4.21 User-defined Database Create user-defined database roles to assign permissions to 1
Roles objects in the database when a pre-defined database role does
not supply the appropriate permissions to a group of users.
4.22 Database Roles Avoid nesting database roles. 1
4.23 Users and Roles Ensure that the members of the roles exist as users / groups or 1
other roles in the target database.
4.24 Application Roles Use application roles to limit access to data to users of specific The password for the application role is 1
applications. Use encryption to protect the role name and embedded in the connection string, so the user
password in the connection string. is unaware of the password and can only
access the data when using the specific
application that initiates the connection string.
4.25 Use of Predefined Roles Avoid assigning predefined roles to PUBLIC or GUEST. 1
4.26 Linked or Remote Servers Use linked servers rather than remote servers. Remote servers are available for backward 1
compatibility purposes only. Applications that
must execute stored procedures against
remote instances of SQL Server should use
linked servers instead.
16 / 23
Item Configuration Item Action / Recommended Parameters Comments Level
#
4.27 Linked or Remote Servers Configure linked or remote servers to use Windows When linking SQL Server databases, the 1
authentication. users current identity will be used to
authenticate the connection.
4.28 Linked Server logins Allow linked server access only to those logins that need it. 1
(Report)
4.29 Ad Hoc Data Access Disable ad hoc data access on all providers except SQL OLE Allow ad hoc data access only to trusted 1
DB, for all users except members of the sysadmin fixed role. providers. Limit adhoc connections using MS
Use network segmentation to prevent or limit desktop clients Office applications (Excel, Access, Word, etc.).
making direct adhoc connections.
17 / 23
5. Auditing and Logging
18 / 23
Item Configuration Item Action / Recommended Parameters Comments Level
#
5.5.16 Audit Object Derived Permissions CREATE, ALTER or drop command for a specific 1
object
5.5.17 Audit Object GDR GRANT, DENY and REVOKE actions on objects 1
5.5.18 Audit Object Permission Successful or unsuccessful use of object 1
permissions
5.5.19 Audit Server Starts and Stops Shutdown, Start and Pause activities for services 1
5.5.20 Audit Statement GDR Use of GRANT, DENY, REVOKE statements 1
5.5.21 Audit Statement Permission Use of statement permissions 1
19 / 23
6. Backup and Disaster Recovery Procedures
20 / 23
Item Configuration Item Action / Recommended Parameters Comments Level
#
6.10 Recommended periodic Run the SQL Best Practices Analyzer regularly and
administrative procedures note any changes to the environment.
6.11 Periodic scan for Periodically scan for accounts with NULL 1 (Report)
password security passwords and remove the accounts or assign a
strong password.
6.12 Periodic scan of Role Periodically scan fixed server and database roles 1 (Report)
Members to ensure that only trusted individuals are
members.
6.13 Periodic scan of stored Verify stored procedures that have been set to 1 (Report)
procedures AutoStart are secure.
21 / 23
7. Replication
22 / 23
8. Application Development Best Practices
8.1 Ownership Chaining Use ownership chaining within as single database to Avoid using cross database ownership.
simplify permissions management..
8.2 Role Assignments Assign permissions to roles rather than users. Ensure that roles, rather than users own objects
to avoid application changes when a user is
dropped.
8.3 Encrypted connections Enable encrypted connections between the user and Consider allowing only encrypted connections.
the server. When allowing SQL Server authentication,
encrypt either the network layer with IPSec or the
session with SSL
8.4 Error Handling Do not propagate errors back to the user. Log errors or transmit them to the system
administrator.
8.5 User Input Prevent SQL injection by validating all user input Only permit minimally privileged accounts to send
before transmitting it to the server. user input to the server.
8.6 Developer awareness Increase awareness of issues such as cross-site
scripting, buffer overflows, SQL injection and
dangerous APIs.
8.7 Developer awareness Identify categories of threats that apply to your
application, such as denial of service, escalation of
privileges, spoofing, data tampering, information
disclosure and repudiation.
8.8 Security reviews Add security reviews to all stages of the application
development lifecycle (from design to testing).
8.9 Distributing MSDE If you distribute MSDE, install MSDE using Windows Never install a blank sa password. Use the
security mode as the default. Microsoft Installer to install MSDE.
8.10 Net-Libraries If MSDE will operate as a local data store, disable
the Server Net-Libraries.
8.11 Customer awareness Let your customers know that your product includes
MSDE so that they can be prepared to install or
accept MSDE-specific software updates.
8.12 SQL Server Agent Change the SQL Server Agent Startup Type to MSDE installs SQL Server Agent by default and
Disabled. the Service startup type is Manual.
23 / 23
References
10 Steps to Help Secure SQL Server 2000. Microsoft Corporation. Last accessed at:
http://www.microsoft.com/sql/techinfo/administration/2000/security/securingsqlserver.mspx
Database Security Technical Implementation Guide version 7, release1, October 2004. Developed by DISA for the DOD.
Guide to the Secure Configuration and Administration of Microsoft SQL Server 2000. Network Applications Team of the Systems and Network Attack Center
SQL Server 2000 SP3 Security Features and Best Practices: Security Best Practices Checklist. May 2003. Microsoft Corporation. Last accessed at:
http://www.microsoft.com/technet/prodtechnol/sql/2000/maintain/sp3sec04.mspx
24 / 23