phphUxa5V

One of the pro­grams that man­age­ment wants us to look at for our kiosk imple­men­ta­tion is Microsoft Steadys­tate which is Microsoft’s all in one wiz­ard cre­ate a kiosk solution.

I’m not entirely con­vinced on the sce­nario that there is things in which you can do with this, that active direc­tory is not more suited for.   So while we work through this doc­u­ment we’ll be explor­ing the options of SteadyS­tate and com­par­ing it to group poli­cies that you can push down to a com­puter or user account from a cen­tral location.

Steadystate1

This is the start page of Microsoft SteadyS­tate from here there are 6 things you can do:

1. Set Com­puter Restrictions

2. Sched­ule Soft­ware Updates

3. Pro­tect the Hard Disk

4. Add a New User

5. Export a User

6. Import a User

Steadystate2

This is the “Set Com­puter Restric­tions” page.  This is bro­ken down to dif­fer­ent sec­tions and show you how lim­it­ing the com­puter set­tings are in group polices that can be applied to this state.   While there are still fur­ther win­dows com­puter poli­cies you can apply to the machine espe­cially if you wish to con­form to your com­pa­nies secu­rity plan, we’ll stick with Microsoft’s options for now.

Pri­vacy Settings:

1. Do not dis­play user names in the Log On to Win­dows dia­log box

Group Pol­icy equivalent:

Com­puter Configuration\Windows Settings\Security Settings\Local Policies\Security Options\Do Not Dis­play last user name in login screen

2. Pre­vent locked or roam­ing pro­files that can­not be found on the com­puter from log­ging on

Group Pol­icy Equivalent:

Dis­able inter­ac­tive logon for all accounts except the approved accounts for use with the kiosk machine

Reg­istry Equivalent:

“Com­puter Configuration\User Settings\Administrative Templates\System\User Profiles\Log users off when roam­ing pro­file fails”

[HKEY_LOCAL_MACHINE\Policies\Microsoft\Windows\System\ProfileErrorAction]

3. Do not cache copies of locked or roam­ing pro­files for users who have pre­vi­ously logged on to this computer -

Group Pol­icy Equivalent:

Dis­able inter­ac­tive logon for all accounts except the approved accounts for use with the kiosk machine

Reg­istry Equivalent:

[HKEY_LOCAL_MACHINE\Policies\Microsoft\Windows\System\DeleteRoamingCache]

Secu­rity Settings:

1. Remove the Admin­is­tra­tor user name from the Wel­come Screen

Group Pol­icy Equivalent:

The XP Wel­come screen is auto­mat­i­cally changed to the clas­sic logon screen after a com­puter is joined to a domain — no pol­icy change is needed unless this has been adjusted.

Reg­istry equivalent:

[HKEY_LOCAL_MACHINE\SOFTWARE\Windows NT\CurrentVersion\Winlogon\SpecialAccounts\UserList\Administrator]

2. Remove the Shut Down and Turn Off options from the Log On to Win­dows and the Wel­come Screen

Group Pol­icy Equivalent:

User Con­fig­u­ra­tion \ Admin­is­tra­tive Tem­plates \ Start Menu and Taskbar
Policy:Disable Logoff on the Start Menu
Description:Removes the "Logoff" button from the Start menu and prevents
users from adding the Logoff button to the Start menu.
Registry Value:"StartMenuLogoff"

Policy:Disable and remove the Turn Off Computer button
Description:Removes the "Turn Off Computer" button from the Start Menu and
prevents shutting down Windows using the standard shutdown user interface.
Registry Value:"NoClose"

3. Do not allow Win­dows to com­pute and store pass­words using LAN Man­ager Hash values

Group Pol­icy Equivalent:

Com­puter Configuration\Windows Settings\Security Settings\Local Policies\Security Options\Network Secu­rity: Do not store LAN Man­ager hash value on next pass­word change

4. Do not store user names or pass­words used to log on to Win­dows Live ID or the domain

Group Pol­icy Equivalent:

Com­puter Configuration\Windows Settings\Security Settings\Local Policies\Security Options\Network access: Do not allow stor­age of cre­den­tials or .NET Pass­ports for net­work Authentication

By dis­abling inter­ac­tive logins for all users accept the kiosk user acount — this isn’t an issue

5. Pre­vent users from cre­at­ing fold­ers and files on the drive c:\

Secu­rity con­fig­ured on the drive to give the kiosk only read access to infor­ma­tion it needs should han­dle this.

6. Pre­vent users from open­ing Microsoft Office doc­u­ments from within Inter­net Explorer

Reg­istry Equivalents:

[HKEY_LOCAL_MACHINE\SOFTWARE\Classes\Excel.Sheet.5\BrowserFlags]

[HKEY_LOCAL_MACHINE\SOFTWARE\Classes\Excel.Sheet.8\BrowserFlags]

[HKEY_LOCAL_MACHINE\SOFTWARE\Classes\MSProject.Project.8\BrowserFlags]

[HKEY_LOCAL_MACHINE\SOFTWARE\Classes\PowerPoint.Show.8\BrowserFlags]

[HKEY_LOCAL_MACHINE\SOFTWARE\Classes\Word.Document.6\BrowserFlags]

[HKEY_LOCAL_MACHINE\SOFTWARE\Classes\Word.Document.8\BrowserFlags]

7. Pre­vent write access to USB stor­age devices

Reg­istry Equivalent:

[HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\StorageDevicePolicies\WriteProtect]

Other Set­tings:

1. Turn off the Wel­come Screen

Group Pol­icy Equivalent:

The XP Wel­come screen is auto­mat­i­cally changed to the clas­sic logon screen after a com­puter is joined to a domain — no pol­icy change is needed unless this has been adjusted.

If you notice the Microsoft does have some under­stand­ing of using machines with this con­fig­u­ra­tion applied to them in a Domain envi­ron­ment since they pro­vide the not “In a Domain man­aged envi­ron­ment the Domain Group Pol­icy super­sedes any set­tings made here.

Steadystate3

This is the Sched­ule Soft­ware updates screen.  From you can con­fig­ure the inter­val in which you update the Win­dows Oper­at­ings and aux­il­lary pro­grams.  For updat­ing win­dows a SteadyS­tate com­puter sup­ports Microsoft Update, Win­dows update or Win­dowServer Update Ser­vices.

The sup­ported secu­rity pro­gram updates are lim­ited the only pro­grams that have native sup­port are Com­puter Asso­ciates eTrust 7.0, McAfee VirusS­can, and Trend­Mi­cro 7.0.  You have the option of cre­at­ing a cus­tom script to han­dle any other pro­gram updates you may need.   In a domain envi­ron­ment this can eas­ily be han­dled by cen­tral update servers such as SMS and AV servers.

Steadystate4

Win­dows disk pro­tec­tion allows the user to install any pro­grams they want or down­load what­ever they wish, but the hard drive will just wipe out the data.  I can’t seem to find a reg­istry or pol­icy equiv­a­lent that allows this, so it seems that this is one main ben­e­fit of steady state.

Steadystate5

The “Add a New User” screen only allows you to cre­ate local users which doesn’t really help you in a secure domain based envi­ro­ment.   It will how­ever check you domain’s pass­word policy’s that you may have pushed down to the machine via group pol­icy.  If you do use this wiz­ard to cre­ate accounts be aware that user poli­cies from the domain can not be applied.

ss8

The first screen of User Set­tings is the “Gen­eral” tab.   Here we get into some more unique set­tings to the SteadyS­tate prod­uct.   While it has the func­tion to pre­vent the user from mak­ing per­ma­nent changes the most inter­est­ing thing is the log off options,  The abil­ity to add a max­i­mum amount of use time or an idle time is done by the use of two helper appli­ca­tions that are installed with SteadyS­tate.   Being able to always dis­play the ses­sion count­down allows the user to see how much time they have left before the log off pro­ce­dure is invoked.   Restart com­puter after log off allows the Win­dows Disk Pro­tec­tion to kick in and reset the machine back to a clean state.   While this is nice, the same option could be invoked by cre­at­ing a log-off script.

ss9

The User Set­tings \ Win­dows Restric­tions tab allows you to hide dri­ves, set default restric­tion lev­els and takes the start menu restric­tions straight out of the secu­rity pol­icy.  This is sim­ple to repli­cate with a domain group policy.

ss10

Screen 2 of Win­dows Restrictions

ss11

Screen 3 of Win­dows Restrictions

ss12

Screen 4 of Win­dows Restrictions

ss13

Fea­ture restric­tions are more poli­cies that have been taken straight out of the local secu­rity pol­icy (domain pol­icy manager).

ss14

Screen 2 of Fea­ture Restrictions

ss15

Screen 3 of Fea­ture Restrictions

ss16

Screen 4 of Fea­ture Restrictions

ss17

While SteadyS­tate allows you to block cer­tain pro­grams, locally installed antivirus can nor­mally do this.  Nor­mally you wouldn’t want this in a kiosk envi­ron­ment.  A bet­ter sce­nario is using group poli­cies to allow only the pro­grams you spec­ify to run.  Using the SteadyS­tate sce­nario if some­one ran a rogue appli­ca­tion off their USB drive (if you’ve given them access) or renamed an EXE that was blocked that doesn’t need reg­istry access, well I doubt that SteadyS­tate could do any­thing to stop this.

Steadystate7

Import­ing users is done via a nor­mal win­dows save/open dia­logue box.   It loads files done with a sup­ported *.ssu extenstion.

Steadystate6

Export­ing is done in a pro­pri­etary *.ssu file exten­sion once again using the stan­dard win­dows open / save dia­logue box.

Can I rec­om­mend SteadyState?

For 90% of what it does I wouldn’t use SteadyS­tate at all but would per­son­ally rely on cen­trally con­trolled and main­tained group poli­cies within a domain envi­rone­ment.   What does shine though is the Win­dows Drive Pro­tec­tion and the helper util­i­ties that han­dle logoff  timers — though with the idle time out I would more likely just use a script I con­trolled which could be invoked by the screen­saver kick­ing in.

I didn’t go through each of the group poli­cies under the user restric­tions since it’s almost ver­ba­tim down the list under the pol­icy man­age­ment.  If you have any ques­tions on a set­ting to restrict with­out using the SteadyS­tate feel free to ask.   The biggest dis­ad­van­tage to SteadyS­tate is the fact that it uses local accounts that can’t be man­aged remotely with ease.   Being at a com­pany where every­thing is done to avoid using local accounts I can say this is bad mojo.

I may use the the drive pro­tec­tion and time­out appli­ca­tions, we’ll see when this project is truly finished.

Ref­er­ence Links:

Win­dows SteadyS­tate World­wide page

Win­dows SteadyS­tate Readme File

Win­dows SteadyS­tate Tech­ni­cal FAQ

Win­dows SteadyS­tate Handbook

The Desk­top Files: Shared Com­put­ing with Win­dows SteadyS­tate

The Kiosk Series:

The Kiosk Series — Part One — Choices For Your Envi­ron­ment

The Kiosk Series — Part Two — Man­age­ment Con­sid­er­a­tions For Your Environment

  • Andrew
    As an aside Steady state offers a group policy template. Install SteadyState on the machine you use for group policies and you can import the template into group policy. It has many of the same options and doesn't require as much fiddling with obscure settings. (Registry Keys and such)
  • Paul
    I want to remove all traces of SteadyState regarding logon especially. Also my SystemRestore no longer functions. I removed every file with regedit. But it's still present. OS is XP Pro.
  • To be honest - I haven't really attempted to actually remove steady state - on the machines I employ these on I would just do a system wipe. If I get a chance I'll attempt to go through and try it and see how it goes and what I find.
  • I haven't looked at Netkey's solution. I will be looking them up now and seeing what they have to offer, thanks for the tip.
  • Have you or your team looked at the platforms offered by companies like Netkey? They offer content distribution and quite a comprehensive suite of security and deployment tools. We've been looking very hard at them for some time during our project but haven't made up our minds yet as to whether to implement their software or not with our kiosks.
  • I still have to do 3 more parts on this series - might get another part done this weekend. That being said, at work we talked to MS on a conference call and we are partially implementing one of their solutions which is a mixture of GPO stuff, and steadystate (at least on the drawing board for right now).

    To automatically login in a user there is a registry entry that you can put in the user name and passwords and that will cache it for you and auto login. The problem with using steadystate with user accounts and auto login is that user accounts must be local and not domain accounts, and the session timer makes absolutely no sense with auto login.
  • Thanks so much for the work you've put into this series. I'm currently working on a similar project with a retail customer facing kiosk. This contrast between SteadyState (which I just ran across this afternoon) and GPO was just what I was looking for.

    This is probably a very simple question, but what methods are you looking at (or are you) to log in a restricted domain user account on startup?
blog comments powered by Disqus