Password must meet complexity requirementsTable 2.7: Settings
Domain Member Default Legacy Client Enterprise Client High Security
Enabled Enabled Enabled Enabled
The Password must meet complexity requirements policy option checks all new
passwords to ensure that they meet basic requirements for strong passwords.
Complexity requirements are enforced when passwords are created. The Windows
Server 2003 policy rules cannot be directly modified. However, you can create a new
version of passfilt.dll to apply a different set of rules. For the source code for passfilt.dll,
see the Microsoft Knowledge Base article 151082: "HOW TO: Password Change Filtering
& Notification in Windows NT."
A password of 20 or more characters can actually be set so that it is easier for a user to
remember — and more secure — than an eight-character password. The following 27 –
character password: I love cheap tacos for $.99, for example. This type of password,
really a pass-phrase, might be simpler for a user to remember than a shorter password
such as P@55w0rd.
37
This recommended value, combined with a Minimum password length set to 8,
includes upper and lowercase letters and numbers in the keyspace, which increases it
from 26 to 62 characters. An eight – character password then has 2.18 x 1014 possible
combinations. At 1,000,000 attempts per second, it would take 6.9 years to cycle through
all possible permutations. Using these settings in conjunction makes it very difficult to
mount a brute force attack. For these reasons, this is the recommendation the three
environments defined in this guide.
Store password using reversible encryption
Table 2.8: Settings
Domain Member Default Legacy Client Enterprise Client High Security
Disabled Disabled Disabled Disabled
The security setting for Store password using reversible encryption determines
whether the operating system stores passwords using reversible encryption or not.
This policy supports applications using protocols requiring the user's password for
authentication purposes. Passwords stored using reversible encryption can be retrieved
more easily than passwords stored without this option, increasing vulnerability. For this
reason, never enable this policy unless application requirements outweigh the need to
protect password information.
Challenge-Handshake Authentication Protocol (CHAP) through remote access or IAS
and Digest Authentication in IIS both require this policy.
How to Prevent Users from Changing a Password Except
When Required
In addition to the password policies above, some organizations require centralized control
over all users. This section describes how to prevent users from changing their
passwords except when they are required to do so.
Centralized control of user passwords is a cornerstone of a well – crafted Windows Server
2003 security scheme. You can use Group Policy to set minimum and maximum
password ages as discussed previously. But bear in mind that requiring frequent
password changes can enable users to circumvent the password – history setting for your
environment. Requirements for passwords that are too long may also lead to more calls
to the help desk due to users forgetting passwords.
Users can change their passwords during the period between the minimum and
maximum password age settings. However, the High Security environment design
requires that users change their passwords only when the operating system prompts
them to after the 42 days, as configured in the Maximum password age setting. To
prevent users from changing their passwords (except when required), you can disable
the Change Password option in the Windows Security dialog box that appears when
you press CTRL+ALT+DELETE.
You can implement this configuration for an entire domain by using a Group Policy, or
implement it for one or more specific users by editing the registry. For more detailed
instructions on this configuration, see the Microsoft Knowledge Base article 324744,
"How To: Prevent Users from Changing a Password Except When Required in Windows
Server 2003," at
http://support.microsoft.com/default.aspx?scid=324744.
38
Account Lockout Policy
The Account lockout policy is a Windows Server 2003 security feature that locks a user
account after a number of failed logon attempts occur within a specified time period. The
number of attempts allowed and the time period are based on the values configured for
the security policy lockout settings. A user cannot log on to a locked account. Windows
Server 2003 tracks logon attempts, and the server software can be configured to respond
to this type of potential attack by disabling the account for a preset number of failed
logins.
When configuring the Account lockout policy in Windows Server 2003, an administrator
can set any value for the attempt and time period variables. However, if the value for
Reset account lockout counter after setting is greater than the value for Account
lockout duration setting, Windows Server 2003 automatically adjusts the value of the
Account lockout duration to the same value as Reset account lockout counter after
setting. In addition, if the value of Account lockout duration is lower than the value set
for Reset account lockout counter after, Windows Server 2003 automatically adjusts
the value of the Reset account lockout counter after to the same value of the Account
lockout duration setting. Therefore, if the Account lockout duration is defined, the
Reset account lockout counter after must be less than or equal to the Account
lockout duration.
Windows Server 2003 does this to avoid conflicting setting values in the security policy. If
an administrator configures the Reset account lockout counter after setting to a value
that is greater than the value for the Account lockout duration setting, then
enforcement of the Account lockout duration setting will expire first, thus making it
possible for the user to log back on to the network. However, the Reset account lockout
counter setting would continue to count down. Because of this, the account lockout
threshold would remain at the maximum of three invalid attempts, and the user would not
be able to log on.
To avoid this situation, Windows Server 2003 automatically resets the value for the Reset
account lockout counter after setting to be equal to the value for the Account lockout
duration setting.
These security policy settings help prevent attackers from guessing user passwords, and
they decrease the likelihood of successful attacks on your network environment. The
values in the following sections can be configured in the Domain Group Policy at the
following location:
Computer Configuration\Windows Settings\Security Settings\Account
Policies\Account Lockout Policy
Account Lockout Duration
Table 2.9: Settings
Domain Member Default Legacy Client Enterprise Client High Security
Not Defined 30 minutes 30 minutes 15 minutes
The Account lockout duration setting determines the length of time before an account
is unlocked and a user can try to log on again. The setting does this by specifying the
number of minutes a locked out account will remain unavailable. Setting the value for the
Account lockout duration setting to 0, keeps the accounts locked out until an
administrator unlocks them. The Windows Server 2003 default value for this setting is
Not Defined.
39
While configuring the value for this setting to never automatically unlock may seem like a
good idea, doing so may increase the number of calls the help desk in your organization
receives to unlock accounts that were locked by mistake. Setting the value for this setting
to 30 minutes for the Legacy and Enterprise Client environments and 15 minutes for High
Security level decreases the amount of operation overhead during a denial of service
(DoS) attack. In a DoS attack, the attacker maliciously performs a number of failed logon
attempts on all users in the organization, locking out their accounts. This setting value
also gives locked out users the chance to log on again in 30 minutes, a period of time
they are more likely to accept without resorting to the help desk.
This guide recommends setting the value to 15 minutes in the High Security environment.
Account lockout threshold
Table 2.10: Settings
Domain Member Default Legacy Client Enterprise Client High Security
0 invalid login attempts 50 invalid login
attempts
50 invalid login
attempts
10 invalid login
attempts
The Account lockout threshold setting determines the number of attempts that a user
can make to log on to an account before it is locked.
Authorized users can lock themselves out of an account by incorrectly entering their
password, or by changing their password on one computer while logged on to another
computer. The computer with the incorrect password may continuously try to authenticate
the user, and because the password it is using to authenticate is incorrect, the user
account is eventually locked out. To avoid locking out authorized users, set the account
lockout threshold to a high number.
Because vulnerabilities can exist both for when the value for this setting is configured and
when and it is not, distinct countermeasures for each of these possibilities are defined.
Your organization should weigh the choice between the two based on the identified
threats and the risks you are trying to mitigate.
40
? To prevent account lock outs, set the value for Account lockout threshold setting
to 0. Setting the Account Lockout Threshold setting to 0 helps reduce help desk
calls because users can not accidentally lock themselves out of their accounts and
it will prevent a DoS attack aimed at intentionally locking out accounts in your
organization. Because it will not prevent a brute force attack, choose this setting
only if both of the following criteria are explicitly met:
? The password policy forces all users to have complex passwords made up of
eight or more characters.
? A robust auditing mechanism is in place to alert administrators when a series
of account lockouts are occurring in the environment. For example, the
auditing solution should monitor for security event 539 which is, "Logon failure.
The account was locked out at the time the logon attempt was made". This
event means that the account was locked out at the time the logon attempt
threshold was made. However, event 539 only shows an account lockout, not
a failed password attempt. Therefore, your administrators should also monitor
for a series of bad password attempts.
? If these criteria are not met, the second option is to configure the Account lockout
threshold setting to a high enough value to provide users with the ability to
accidentally mistype their password several times without locking themselves out
of their accounts, while ensuring that a brute force password attack will still lock out
the account. In this case, setting the invalid logon attempts to a high number such
as 50 ensures adequate security and acceptable usability. This setting value will
prevent accidental account lockouts and reduce help desk calls, but will not
prevent a DoS attack as mentioned above.
This guide recommends setting the value to 10 invalid login attempts in the High Security
environment.
Reset account lockout counter after
Table 2.11: Settings
Domain Member Default Legacy Client Enterprise Client High Security
Not defined 30 minutes 30 minutes 15 minutes
The Reset account lockout counter after setting determines the length of time before
the Account lockout threshold resets to 0 and the account is unlocked. If you define an
Account lockout threshold, then this reset time must be less than or equal to the value
for the Account lockout duration setting.
In coordination with the other values configured as part of this guide, leaving this setting
at its default value, or configuring the value at an interval that is too long, could make
your environment vulnerable to an account lockout DoS attack. Without a policy to reset
the account lockout, administrators would have to manually unlock all accounts.
Conversely, if there is a reasonable time value for this setting, users would be locked out
for a set period until all of the accounts are unlocked automatically. The recommended
setting value of 30 minutes defines a time period users are more likely to accept without
resorting to the help desk. Leaving this setting at its default only opens you up to an
account lockout DoS if you leave it at defaults but change the other ones in the way we
recommend. Lowering the level decreases the amount of operation overhead during a
denial of service (DoS) attack. In a DoS attack, the attacker maliciously performs a
number of failed logon attempts on all users in the organization, locking out their
accounts.
This guide recommends setting the value to 15 minutes in the High Security environment.
41
Kerberos Policy
Kerberos policies are used for domain user accounts. These policies determine Kerberos
version 5 protocol – related settings, such as ticket lifetimes and enforcement. Kerberos
policies do not exist in the local computer policy. Reducing the lifetime of Kerberos tickets
decreases the risk of an attacker stealing passwords and then impersonating legitimate
user accounts. However, maintaining these policies increases the authorization
overhead. In most environments the default values for these policies should not be
changed. The Kerberos settings are include in the Default Domain Policy and enforced
there, therefore, this guide does not include them in the security templates that
accompany this guide.
This guide does not provide any changes for the default Kerberos policy. For more detail
on these settings, please refer to the companion guide, "Threats and Countermeasures:
Security Settings in Windows Server 2003 and Windows XP.”
42
Security Options
The account policy must be defined in the Default Domain Policy and is enforced by the
domain controllers that make up the domain. A domain controller always obtains the
account policy from the Default Domain Policy GPO, even if there is a different account
policy applied to the OU that contains the domain controller.
There are two policies in Security Options that also behave like account policies and
should be considered at the domain level. You can configure the Domain Group Policy
values in the following table at the following location:
Computer Configuration\Windows Settings\Security Settings\Local
Policies\Security Options
Microsoft network server: Disconnect clients when logon
hours expire
Table 2.12: Settings
Domain Member Default Legacy Client Enterprise Client High Security
Not Defined Enabled Enabled Enabled
The Microsoft network server: Disconnect clients when logon hours expire security
setting determines whether to disconnect users who are connected to the local computer
outside their user account's valid logon hours. This setting affects the server message
block (SMB) component. When this policy is enabled, it causes client sessions with the
SMB service to be forcibly disconnected when the client's logon hours expire. If this
policy is disabled, an established client session is allowed to be maintained after the
client's logon hours have expired. When enabling this setting, you should also enable
Network security: Force logoff when logon hours expire.
If your organization has configured logon hours for users, then it makes sense to enable
this policy, otherwise, users who are assumed to be unable to access network resources
outside of their logon hours may actually be able to continue to use those resources with
sessions that were established during allowed hours.
If logon hours are not used in your organization, enabling this setting will have no impact.
If logon hours are used, then existing user sessions will be forcibly terminated when their
logon hours expire.
Network Access: Allow anonymous SID/NAME translation
Table 2.13: Settings
Domain Member Default Legacy Client Enterprise Client High Security
Not Defined Disabled Disabled Disabled
The Network Access: Allow anonymous SID/NAME translation setting determines if
an anonymous user can request the SID for another user.
43
If this policy is enabled on a domain controller, a user who knows an administrator's SID
attributes could contact a computer that also has this policy enabled and use the SID to
obtain the administrator's name. That person could then use the account name to initiate
a password guessing attack. Disabled is the default setting on member computers;
therefore it will have no impact on them. However, the default setting for domain
controllers is Enabled. Disabling this setting may cause legacy systems to be unable to
communicate with Windows Server 2003 based domains such as:
? Windows NT 4.0 – based Remote Access Service servers.
? When a Web application on IIS is configured to allow Basic authentication and at
the same time has Anonymous access disabled, the built-in Guest user account
cannot access the Web application. Also, if you rename the built-in Guest user
account to another name, the new name cannot be used to access the Web
application.
? Remote Access Service servers running on Windows 2000 – based computers that
are located in Windows NT 3.x domains or Windows NT 4.0 domains.
Network Security: Force Logoff when Logon Hours expire
Table 2.14: Settings
Domain Member Default Legacy Client Enterprise Client High Security
Disabled Enabled Enabled Enabled
The Network Security: Force Logoff when Logon Hours expire setting determines
whether to disconnect users who are connected to a local computer outside their user
account's valid logon hours. This setting affects the SMB component.
Enabling this policy forcibly disconnects client sessions with the SMB server when the
client's logon hours expire and the user will be unable to log on to the system until his or
her next scheduled access time. Disabling this policy maintains an established client
session after the client's logon hours expire. To affect domain accounts, this setting must
be defined in the Default Domain Policy.
44
Summary
There are several design considerations to make when reviewing a forest, domain, and
an Organizational Unit (OU) design to secure an environment.
It is important to research and document any specific autonomy and isolation
requirements for the organization. Political autonomy, operational isolation, and legal or
regulatory isolation are all valid reasons to consider complex forest designs.
Understanding how to control service administrators is important. Malicious service
administrators can present a great risk to an organization. At a lower level, malicious
domain administrators can access data in any domain in the forest.
While it may not be easy to change the forest or domain design in an organization, it may
be necessary to remediate some security risks for the enterprise. Planning the OU
deployment in the organization according to the needs of the service administrators and
the data administrators is also important. This chapter went into detail on creating an OU
model that will support using GPOs for the ongoing management of different server roles
in the enterprise.
Finally, the chapter points out the importance of reviewing all domain – wide settings in
the organization. Only one set of password, account lockout, and Kerberos version 5
authentication protocol policies can be configured for each domain. Other password and
account lockout settings will only affect the local accounts on member servers. Plan to
configure settings that will apply to all member servers of the domain, and ensure that
these provide an adequate level of security across your organization.