Warning: iconv_mime_decode() [function.iconv-mime-decode]: Malformed string in /home/secureg/public_html/lib/standard.lib.php on line 2251
Account Lockout Policies
Account Lockout Policies

Account Lockout Policies

Secure Home | Search | About
 Microsoft Applications Security    Post an article   get this group's latest topics as an RSS feed add this group's latest topics to your My MSN content add this group's latest topics to your My Yahoo content add this group's latest topics to your Google content
Subject Author Date
Account Lockout Policies bm 08-30-2007
Posted by Roger Abell [MVP] on August 31, 2007, 1:48 am
If you were  Registered and logged in, you could reply and use other advanced thread options
> Roger Abell [MVP] wrote:
>
> [snip]
>
>> Perhaps your more direct option would be to adjust the days of nonuse
>> and password change intervals so they are the same, and then nightly
>> read accounts with expired passwords and verify they are disabled.
>
> Roger,
>
> Slight flaw there. Imagine a user who last used the system just before the
> password change reminder. Let's assume 14 days. Now, that user will have
> an expired password in 14 days, not 30 days. Now remember that most users
> (IMO) won't change their password until they absolutely positively have
> to....
>
> Bogwitch.

Well observed Bogwitch, and stated.
The solution to poster's is either being overlooked
or it is even more deeply messy, as you show.

One's nightly process would need to track the age
of first expiry of the pwd, disabling only upon an
uninterrupted 16 days (per your example) in expired
pwd state, so it is soluble. The use of this delay
counter might even work with the need to adjust the
"lockout" threshold and the pwd aging settings
(age and prewarn) toward each other. But still,
needing to persist info, being no longer a stateless
simple script, raises the bar for the nightly's code.

Good catch; thanks.

Is there really no direct, reliable, way to determine
accounts qualifying for the poster's scenario ?

Roger



Posted by Bogwitch on September 3, 2007, 9:05 am
If you were  Registered and logged in, you could reply and use other advanced thread options
Roger Abell [MVP] wrote:

[snip]

>> Slight flaw there. Imagine a user who last used the system just before the
>> password change reminder. Let's assume 14 days. Now, that user will have
>> an expired password in 14 days, not 30 days. Now remember that most users
>> (IMO) won't change their password until they absolutely positively have
>> to....
>
> Well observed Bogwitch, and stated.
> The solution to poster's is either being overlooked
> or it is even more deeply messy, as you show.
>
> One's nightly process would need to track the age
> of first expiry of the pwd, disabling only upon an
> uninterrupted 16 days (per your example) in expired
> pwd state, so it is soluble. The use of this delay
> counter might even work with the need to adjust the
> "lockout" threshold and the pwd aging settings
> (age and prewarn) toward each other. But still,
> needing to persist info, being no longer a stateless
> simple script, raises the bar for the nightly's code.
>
> Good catch; thanks.
>
> Is there really no direct, reliable, way to determine
> accounts qualifying for the poster's scenario ?

The problem is the OP is looking for a technical solution that should be
addressed by policy.
Deleting user accounts after 30 days of inactivity allows a windows of
opportunity of 30 days for an ex-user to re-use the network. The ex-user
could have left the organisation in question and could have left under
unfavourable circumstances. Allowing accounts to remain dormat for 30
days is simply not good business practice.

If a technical solution is unavoidable due to a lack of management
buy-in, there are a few ways that it can be achieved.

1. Extract login details from the security logs. Ascertain from those
logs when users last logged in and add 30 days. This would be messy and
combersome. ADGP will have to be configured to recod the logins and it
may be necessary to collect the security event log from multiple
servers/ workstations. It will also introduce a risk of DOS if the
device that has the latest logons is missed for any reason.

2. From the users logon script, touch a unique (to the user) file in a
common area. If the file becomes older than 30 days, delete the account.
Correct permissions will need to be set on the common area to prevent
anyone from modifying the data contained therein.
There are utilities available that can identify files that are more than
30 days old.

3. Florian suggested using the last logon date from AD. While there are
several utilities that will extract the relevant information I have had
some issues with the scripts I have found that report some erroneous
information back.

One flaw with the above examples: These will only detect a logon within
tha last 30 days. It is possible for a user to log on and lock their
workstation every night. (Some won't even do that!) If they continue to
do this for 30 days, the login will become 'stale' and will be listed by
each of the above methods as ready for deletion.

Personally, I would try to get the administratove control in place
first. If necessary, one of the other solutions could be implemented as
a detective control.

Bogwitch.

--
Posted via a free Usenet account from http://www.teranews.com


Posted by Roger Abell [MVP] on September 4, 2007, 10:47 am
If you were  Registered and logged in, you could reply and use other advanced thread options

> Roger Abell [MVP] wrote:
>
> [snip]
>
>>> Slight flaw there. Imagine a user who last used the system just before
>>> the password change reminder. Let's assume 14 days. Now, that user will
>>> have an expired password in 14 days, not 30 days. Now remember that most
>>> users (IMO) won't change their password until they absolutely positively
>>> have to....
>>
>> Well observed Bogwitch, and stated.
>> The solution to poster's is either being overlooked
>> or it is even more deeply messy, as you show.
>>
>> One's nightly process would need to track the age
>> of first expiry of the pwd, disabling only upon an
>> uninterrupted 16 days (per your example) in expired
>> pwd state, so it is soluble. The use of this delay
>> counter might even work with the need to adjust the
>> "lockout" threshold and the pwd aging settings
>> (age and prewarn) toward each other. But still,
>> needing to persist info, being no longer a stateless
>> simple script, raises the bar for the nightly's code.
>>
>> Good catch; thanks.
>>
>> Is there really no direct, reliable, way to determine
>> accounts qualifying for the poster's scenario ?
>
> The problem is the OP is looking for a technical solution that should be
> addressed by policy.

I pretty much agree. However, I also see such a techincal routine as
a good safety against human error in the identity management / human
resources account control processes.

> Deleting user accounts after 30 days of inactivity allows a windows of
> opportunity of 30 days for an ex-user to re-use the network. The ex-user
> could have left the organisation in question and could have left under
> unfavourable circumstances. Allowing accounts to remain dormat for 30 days
> is simply not good business practice.
>
> If a technical solution is unavoidable due to a lack of management buy-in,
> there are a few ways that it can be achieved.
>
> 1. Extract login details from the security logs. Ascertain from those logs
> when users last logged in and add 30 days. This would be messy and
> combersome. ADGP will have to be configured to recod the logins and it may
> be necessary to collect the security event log from multiple servers/
> workstations. It will also introduce a risk of DOS if the device that has
> the latest logons is missed for any reason.
>

yes, but this is likely unworkable in a larger environment where
login success auditing is prohibitively resource expensive


> 2. From the users logon script, touch a unique (to the user) file in a
> common area. If the file becomes older than 30 days, delete the account.
> Correct permissions will need to be set on the common area to prevent
> anyone from modifying the data contained therein.
> There are utilities available that can identify files that are more than
> 30 days old.
>

interesting alternative


> 3. Florian suggested using the last logon date from AD. While there are
> several utilities that will extract the relevant information I have had
> some issues with the scripts I have found that report some erroneous
> information back.
>

as mentioned in my initial post, this timestamp does not reflect all
login types; ok if one wants to require an interactive login within
some number of days as the criterion

> One flaw with the above examples: These will only detect a logon within
> tha last 30 days. It is possible for a user to log on and lock their
> workstation every night. (Some won't even do that!) If they continue to do
> this for 30 days, the login will become 'stale' and will be listed by each
> of the above methods as ready for deletion.
>

yep

> Personally, I would try to get the administratove control in place first.
> If necessary, one of the other solutions could be implemented as a
> detective control.
>

Yes, but I still see the techincal cleaner/alerter/pruner as a good thing.
How many environments have you been called in to work on where you
notice a string of (no longer used, forgotten) test accounts some admin
defined once on a time ?

Roger



Posted by Bogwitch on September 4, 2007, 11:35 am
If you were  Registered and logged in, you could reply and use other advanced thread options
Roger Abell [MVP] wrote:

>> The problem is the OP is looking for a technical solution that should be
>> addressed by policy.
>
> I pretty much agree. However, I also see such a techincal routine as
> a good safety against human error in the identity management / human
> resources account control processes.

Absolutely. An audit is essential to ensure all account are removed in a
timely manner. Results of the audit should be fed back into the
management chain to ensure orphan accounts do not re-occur.

>> 1. Extract login details from the security logs. Ascertain from those logs
>> when users last logged in and add 30 days. This would be messy and
>> combersome. ADGP will have to be configured to recod the logins and it may
>> be necessary to collect the security event log from multiple servers/
>> workstations. It will also introduce a risk of DOS if the device that has
>> the latest logons is missed for any reason.
>>
> yes, but this is likely unworkable in a larger environment where
> login success auditing is prohibitively resource expensive

Agreed. The network I am currently using is configured for HEAVY logging
and sweeping the event logs up takes several hours per week.

>> 2. From the users logon script, touch a unique (to the user) file in a
>> common area. If the file becomes older than 30 days, delete the account.
>> Correct permissions will need to be set on the common area to prevent
>> anyone from modifying the data contained therein.
>> There are utilities available that can identify files that are more than
>> 30 days old.
>>
> interesting alternative

But prone to errors as I highlighted below. It may be useful to produce
a list that the admin will then manually parse but risky for an
automated delete that the OP wanted.

>
>> 3. Florian suggested using the last logon date from AD. While there are
>> several utilities that will extract the relevant information I have had
>> some issues with the scripts I have found that report some erroneous
>> information back.
>>
> as mentioned in my initial post, this timestamp does not reflect all
> login types; ok if one wants to require an interactive login within
> some number of days as the criterion

I suspect the OP would only be looking at interactive accounts rather
than service logons. It is possible that they would be in a seperate OU
and therefore easily distinguishable from the service accounts. But I'm
second guessing the OP now....

>> One flaw with the above examples: These will only detect a logon within
>> tha last 30 days. It is possible for a user to log on and lock their
>> workstation every night. (Some won't even do that!) If they continue to do
>> this for 30 days, the login will become 'stale' and will be listed by each
>> of the above methods as ready for deletion.
>
> yep
>
>> Personally, I would try to get the administratove control in place first.
>> If necessary, one of the other solutions could be implemented as a
>> detective control.
>
> Yes, but I still see the techincal cleaner/alerter/pruner as a good thing.
> How many environments have you been called in to work on where you
> notice a string of (no longer used, forgotten) test accounts some admin
> defined once on a time ?

Worse still, test accounts with full admin privs. I suspect the proper
solution would be a combination of policy controls with an alerter
rather than the pruner for all the reasons you have stated above.

Bogwitch.

--
Posted via a free Usenet account from http://www.teranews.com


Posted by Roger Abell [MVP] on September 4, 2007, 6:20 pm
If you were  Registered and logged in, you could reply and use other advanced thread options

> Roger Abell [MVP] wrote:
>
>>> The problem is the OP is looking for a technical solution that should be
>>> addressed by policy.
>>
>> I pretty much agree. However, I also see such a techincal routine as
>> a good safety against human error in the identity management / human
>> resources account control processes.
>
> Absolutely. An audit is essential to ensure all account are removed in a
> timely manner. Results of the audit should be fed back into the management
> chain to ensure orphan accounts do not re-occur.
>
>>> 1. Extract login details from the security logs. Ascertain from those
>>> logs when users last logged in and add 30 days. This would be messy and
>>> combersome. ADGP will have to be configured to recod the logins and it
>>> may be necessary to collect the security event log from multiple
>>> servers/ workstations. It will also introduce a risk of DOS if the
>>> device that has the latest logons is missed for any reason.
>>>
>> yes, but this is likely unworkable in a larger environment where
>> login success auditing is prohibitively resource expensive
>
> Agreed. The network I am currently using is configured for HEAVY logging
> and sweeping the event logs up takes several hours per week.
>
>>> 2. From the users logon script, touch a unique (to the user) file in a
>>> common area. If the file becomes older than 30 days, delete the account.
>>> Correct permissions will need to be set on the common area to prevent
>>> anyone from modifying the data contained therein.
>>> There are utilities available that can identify files that are more than
>>> 30 days old.
>>>
>> interesting alternative
>
> But prone to errors as I highlighted below. It may be useful to produce a
> list that the admin will then manually parse but risky for an automated
> delete that the OP wanted.
>
>>
>>> 3. Florian suggested using the last logon date from AD. While there are
>>> several utilities that will extract the relevant information I have had
>>> some issues with the scripts I have found that report some erroneous
>>> information back.
>>>
>> as mentioned in my initial post, this timestamp does not reflect all
>> login types; ok if one wants to require an interactive login within
>> some number of days as the criterion
>
> I suspect the OP would only be looking at interactive accounts rather than
> service logons. It is possible that they would be in a seperate OU and
> therefore easily distinguishable from the service accounts. But I'm second
> guessing the OP now....
>
>>> One flaw with the above examples: These will only detect a logon within
>>> tha last 30 days. It is possible for a user to log on and lock their
>>> workstation every night. (Some won't even do that!) If they continue to
>>> do this for 30 days, the login will become 'stale' and will be listed by
>>> each of the above methods as ready for deletion.
>>
>> yep
>>
>>> Personally, I would try to get the administratove control in place
>>> first. If necessary, one of the other solutions could be implemented as
>>> a detective control.
>>
>> Yes, but I still see the techincal cleaner/alerter/pruner as a good
>> thing.
>> How many environments have you been called in to work on where you
>> notice a string of (no longer used, forgotten) test accounts some admin
>> defined once on a time ?
>
> Worse still, test accounts with full admin privs. I suspect the proper
> solution would be a combination of policy controls with an alerter rather
> than the pruner for all the reasons you have stated above.
>

Given my preference we could put a forest into "Kerberos only"
authentication mode, and we would have hooks at the KDC such
as one to let us "extinguish" the ticket grants for a principal without
regard to their having a then unexpired TGT. Similarly we would
have a Kerberos log (not the current or the events admixed in the
security log) with fairly fine grained control over what is logged
(in this case we would just watch for new/renewed TGTs issued,
and if none in 30 days + lifespan of TGT then the account is deemed
unused per poster's scenario).

Roger



Similar ThreadsPosted
Re: Account Lockout Policies September 4, 2007, 12:45 am
Account lockout October 20, 2006, 4:22 am
Account Lockout threshold June 12, 2005, 11:31 pm
Account Lockout event log only recorded ... sometimes December 14, 2007, 12:33 pm
Administrator account and lockout policy July 15, 2008, 12:35 pm
User account lockout connecting to Exchange August 22, 2007, 12:28 pm
Changing lockout in XP Pro SP 2 January 9, 2007, 9:05 pm
Password Lockout April 26, 2008, 2:16 pm
policies November 13, 2008, 12:59 pm
Making changes to policies April 13, 2006, 9:21 am

The site map in XML format XML site map

Contact Us | Privacy Policy