Windows Security by: Mark Lachniet Introductions • Mark Lachniet, • MCNE, MCSE, CCSE, LPIC-1 • Sr. Security Engineer @ Analysts International • Formerly a technician and then the IS director at Holt Public Schools • Formerly a MAEDS board member • New daddy What we have to work with: Agenda • • • • • • • • • • Risks Microsoft Tools to know about Policies and procedures Secure network designs Physical Security OS Security IIS Security Intrusion Detection / Prevention Vulnerability Assessments Questions and Answers History – Microsoft products • WFW, Win9x/ME are meant for single user implementations – no security to speak of (use desktop security if you need it) • Windows NT 3.5x / 4.x / 2000 / XP are multiuser systems that presumably enforce system and user security • None the less, still subscribe to the “kitchen sink” approach, rather than the “secure by default approach” (.NET may change this) • The new frontier - Internet Information Server, SQL server, programming interfaces such as ASP, VBScript,etc. History – Microsoft products • Many hackers consider it fun to pick on Microsoft • Some implementation issues such as NTLM hashing issues have come up • Many problems are due to ID-10-T errors. Easy configuration = easy mis-configuration • NIMDA, Code Red I / II, and numerous Outlook viruses have caused big problems and created bad publicity for the company • Closed-source products make it difficult for individuals to find and fix problems • Numerous patches, hotfixes, and service packs have created versioning and stability problems on production servers History – Microsoft’s response • Microsoft has made security a priority • Numerous service packs, hot fixes, and tools have been created and released • Response time for security issues has improved greatly and security reporting was formalized • Fewer reported vulnerabilities have fallen through the cracks • Have halted development and sent all of their developers to a security boot camp • A “letter from the top” by Bill Gates has formally stated that security is the direction that the company must go The current situation • Despite what some would say, it is possible to secure most Windows machines • It is, however, very time consuming and potentially complicated to do so • It requires constant vigilance to keep servers up to date • This all needs to be factored into the total cost of ownership, and not treated like a side cost Today’s presentation • • • • • • Will focus on NT4 / 2000 / XP Will focus on Internet servers (IIS) Will focus on “hardening” of servers Will attempt to be specific Assumes a technical audience Based on an internal Analysts International server hardening checklist • Will NOT cover the 100 other things you need to know about security Risks – a quick summary • To better qualify your risks, you need to perform a security analysis. Just securing servers is not enough • Computer security must be “defense in depth” supported on many levels • Physical security is critical, without it, nothing is secure (e.g. console, backups, etc.) • Risks from a poor network design (especially Internet servers) are significant • Poor policies and procedures can lead to risk (e.g. not coordinating hires/fires w/ H.R.) • Need monitoring and log analysis to find problems More risks • Remote access (VPN, dialup, wireless) to the network that bypass firewalls • Remote control of machines (PC Anywhere, VNC, Terminal Services) • Vendors and partners! Never trust a vendor, even me. Firewall them off, and make sure their servers are secure. • Students – bored, frequently smart, and tons of free time and motivation • Network sniffing and “man in the middle attacks” • Password cracking • Etc. etc. etc. Tools I use: hfnetchk.exe • If you aren’t using it, you should • Similar in functionality to Windows update, but more verbose and doesn’t install anything • Used to check for installed hotfixes and patches for the NT4, 2000, XP*, IIS, IE5+, SQL 7 / 2000 • Examines registry keys and file checksums to verify the installation of hotfixes and patches • Can be used across the network and can be scripted to automate security work • Cannot always verify all patches, so there is some uncertainty if you have correctly applied them • Does not support all Microsoft products • My favorite – its simple and it works Tools I never use: The IIS lockdown tool • Follows the “defense in depth” philosophy of security by addressing multiple security aspects • Meant to provide an easy way of locking down servers. Templates are provided for some profiles of server. • It may insulate you from the actual changes that it is making. Unless you know where to look, you have to take its word for it • It also includes the URLScan tool which is a type of IPS (Intrusion Protection System) Tools I never use: The Personal Security Advisor • http://www.microsoft.com/technet/mpsa/start.asp • Web based product to analyze the security of a workstation • Not designed for complicated installations, and not really suitable for servers or IIS • It is, however, pretty good at analyzing workstations for things like Internet zone settings, Outlook settings, Microsoft Office, etc. • A good way to protect end users from Internet naughtiness • Runs some simple security checks (weak passwords) • Would be a good tool to run before deploying a workstation or image Microsoft security checklists and hardening guides • • • • NT 4 server / workstation checklists Win 2k server / pro baseline checklists IIS 4.0 / 5.0 baseline checklists Domain controller checklists, etc. • In general, these are a good starting point, but are not really paranoid enough Good hardening guides • NSA hardening guides • If its good enough for them… • Multiple high-quality guides are free for download from: http://www.nsa.gov • Come in PDF format with lots of screen captures and step-by-step instructions • Have guides for Cisco routers, NT4, and many Windows 2000 guides – exchange, IIS5, group policy, kerberos, etc. • You probably aren’t going to want to do *everything* in them, so pick and choose what makes sense for your organization Good Hardening Guides • Guides from SANS.org (System Administration Networking and Security) • These are not free, but are based on the work of experts in the field • SANS offers the best security training around, if you can afford to go (~$3k/5days) • SANS also offers security certification tracks to prove your skills • As part of this certification, you have to write a “practical” or paper on a topic • These papers are free for all, and mostly good http://rr.sans.org/win2000/win2000_list.php The 5 minute tour… • Because of the amount of material to cover, I am going to discuss a lot of material very quickly • I will focus more on technical aspects that on administrative stuff • These are important, but I want to leave enough time for tangible action items you can take home with you • Please remember, just doing these things does not equal security Policies and Procedures • Subscribe to security listserves! You must know what the enemy knows • BugTraq and NT BugTraq at: http://online.securityfocus.com/archive • Microsoft Security Bulletins at: http://www.microsoft.com/technet/security/bulletin/notify.asp • SANS News at http://server2.sans.org/sansnews • And many others… Policies and Procedures • Document procedures for the configuration, usage, and maintenance of servers and workstations • Update these procedures regularly • Limit access to the server to minimum • Maintain a disaster recovery plan • Limit usage of the server to its core function (ie, a web server.) Do not use it as a browser or for routine work! This opens it up to the risk of malicious code or user error Network Security • Use a network design that has security in mind! • Use a firewall with a DMZ to host all Internet servers • Use an implicit “deny all” policy, and only open up the necessary ports to the outside (80, 443, 25, 110, etc.) Never NetBIOS stuff (135-139) • Similarly, create only the bare minimum rules for the DMZ server to talk to the inside network. Don’t allow any communication, if possible • Consider using Cisco private VLAN technology to limit communication between DMZ servers • Use encryption! SSL especially Physical Security • If you can physically access the machine, you can do almost anything • I have boot disks that can reset the administrator password in < 5mins • Once reset, the possibilities are endless – do a “reverse telnet shell”, log keystrokes (such as the real administrator trying to log in), etc. • Even without rebooting, removable media is an issue Physical Security • • • • • • • Physically lock up the servers Make lots of backups (just in case) Lock up Emergency Repair Disks Only allow a single OS on the system Password protect screen savers & BIOS Disable booting to floppy and CD Remove all modems and management tools (e.g. Compaq Insight Manager) • Beware of USB devices! During Installation • Do not connect to the Internet while installing (can be hacked during install) • Install the minimal number of packages • Make Internet servers standalone – not part of any domain or active directory • Format all volumes as NTFS • Install IIS on a separate volume or hard drive. (note that this requires an unattended installation and script) • Use strong administrator passwords Install all service packs • • • • Operating system Internet Information Server Internet Explorer SQL server, others as needed • hfnetchk.exe should come up clean* before the server is deployed Filesystem Security • The ‘everyone’ group has full access to all drives by default! This is dangerous and unnecessary • Carefully remove ‘everyone’ and add administrators, users, etc. to disks using descriptive groups • Create a ‘web user’ group that has READ access to IIS directories • Create a ‘web admin’ group that has WRITE access to IIS directories • Add IUSR~BOX and IWAM~BOX to ‘web users’ maybe ‘web admin’ Filesystem Security • Delete or remote access to dangerous programs to make hacking harder: ARP.EXE ATSVC.EXE CACLS.EXE CMD.EXE CSCRIPT.EXE DIALER.EXE EDLIN.EXE FTP.EXE HTIMAGE.EXE IPCONFIG.EXE MSIEXEC.EXE NET.EXE NETSH.EXE PING.EXE POSIX.EXE QFECHECK.EXE RDISK.EXE REGEDIT32.EXE ROUTE.EXE RUNAS.EXE SECFIXUP.EXE SYSKEY.EXE TFTP.EXE TSKILL.EXE WSCRIPT.EXE NETSTAT.EXE AT.EXE ATTRIB.EXE CLIPSRV.EXE COMMAND.COM DEBUG.EXE EDIT.EXE FINGER.EXE HYPERTRM.EXE IMAGEMAP.EXE ISSYNC.EXE NBTSTAT .EXE NET1.EXE NSLOOKUP.EXE POLEDIT.EXE QBASIC.EXE RCP.EXE REGEDIT.EXE REXEC.EXE RSH.EXE RUNONCE.EXE SYSEDIT.EXE TELNET.EXE TRACERT.EXE UNINST.EXE XCOPY.EXE Filesystem Security • Remove all resource kits and SDKs • Disable indexing of disks recursively • Never allow the emergency console to boot from the hard drive • Delete backup copies of the registry from X:\%System Root%\repair\ • Configure the recycle bin to immediately delete files • Configure the system swap file to be deleted at shutdown High-accountability logging • Enable auditing of filesystem accesses • Configure auditing to log all failed file accesses by the ‘everyone’ group • Increase the size of the event log to 512mb if possible • Set event viewer to delete events that are N days old, where N matches your backup schedule • Audit the use of privileges Monitor suspicious log events • Filter event logs for interesting events – – – – – – – – – – 529: Unknown Username or Bad Password 537: Unsuccessful Logon 530: Account Logon Time Restriction Violation 531: Account Currently Disabled 532: Account Has Expired 533: User Not Allowed to Log on 534: Logon Type Restricted 535: Password Expired 516: Some Audit Event Records Discarded 517: Audit Log Cleared More Suspicious Events – – – – – – – – – – – – 624: User Account Created 630: User Account Deleted 627: Change Password Attempt 636: Local Group Member Added 632: Global Group Member Added 642: User Account Changed 643: Domain Policy Changed 608: User Right Assigned 609: User Right Removed 612: Audit Policy Change 610: New Trusted Domain 611: Removing Trusted Domain Network Adapter Settings • Disable all bindings except TCP/IP • Use IP filters to limit incoming traffic to only required ports (80, 443, 25, etc.) • Disable remote access to the registry • Disable NetBIOS over TCP/IP • Disable IP routing • Do not make “dual-homed” hosts that connect insecure (external) networks to secure (internal) networks • Harden TCP/IP stack to DoS attacks Disable Unnecessary Services • • • • • • • • • Alerter Clipbook server Computer browser Distributed File System Distributed Link Tracking Systems Server Distributed Link Tracking Systems Client IPSEC policy agent (unless IPSEC is used) Licensing Logging Service Logical Disk Manager Administrator Service (needed for software RAID) • Messenger • Net Logon Disable Unnecessary Services • • • • • • • • • • • • Network DDE Network DDE DSDM Print Spooler Remote Registry Service Removable Storage Server Services (needed for SMTP services) Task Scheduler TCP/IP NetBIOS Helper Telephony (needed for terminal server) Windows Installer Windows Time Workstation Service (needed for some maintenance tasks) Accounts and User IDs • Configure password strength enforcement for users • Rename the administrator account • Create a bogus administrator account with no rights and log its use • Rename and disable the guest account • Remove ‘access this computer from the network’ rights from administrator and ‘everyone’ group Accounts and User IDs • Remove the ‘log on locally’ right from all users and groups that don’t need it • Perform periodic password cracking to find bad passwords (including products that log in and run as services) • Disable remote access to the registry • Disable anonymous access to NetBIOS services (used for anonymously iterating user IDs and other NetBIOS information across the network) IIS Security • • • • Don’t use Front Page extensions Disable the HTML administration site Store web content on a separate drive Bind the web server process to specific IP addresses (not all available) • Disable the WebDAV service • Remove all unneeded ISAPI mappings, especially IDA/IDC (indexing service) and .printer (Internet Printing) IIS Security • Remove support for Internet printing – Remove the /printers virtual directory – Delete files from %SystemRoot%\web\printers – Disable local or group policy options for “Web-Based Printing” • Delete default and sample IIS files – – – – – – \Inetpub\iissamples \Inetpub\AdminScripts \Program Files\Common Files\System\msadc\Samples %SystemRoot%\help\iishelp %SystemRoot\System32\Inetsrv\iisadmpwd %SystemRoot%\web\printers IIS Security • Use restrictive IIS permissions – On "Home Directory" tab, disable Read, Write, Directory browsing – Add specific rights as necessary – The Script Source Access IIS permission is not assigned to any folder – Use authentication on all folders with Write / Write-Execute access – If HTTP basic authentication is required, use SSL – If using NTLM authentication, require NTLM v2 IIS Security • Protect global.asa files – NTFS permissions set for System, Administrators and Operators = full control – NTFS permissions set for Authors = modify – NTFS permissions set to explicitly deny IUSR_server and IWAM_server accts. – All failed accesses to global.asa are logged • Protect the metabase.bin file – MetaBase.bin has full control for System and Administrators – MetaBase.bin has Modify for Operators – Audit all failed and successful NTFS access to MetaBase.bin • Enable the maximum level of logging • Set the UseHostName metabase value to hide the true IP address of the server Intrusion Prevention / Detection • Various products exist to detect and sometimes stop hack attacks • One such product is Entercept • These are usually installed on the host • Software components intercept API calls to the operating system • Can also filter HTTP web requests • Provide for reporting capabilities at the host and enterprise level • Can be somewhat costly • Like all IDS products, the value is in their configuration Vulnerability Assessments • Primarily a scripted process • Takes a “hackers point of view” of the network and attempts to find vulnerabilities in software (usually over TCP/IP) • Is useful as a before and after check • Is my preferred method of telling if security changes “took” properly. You’d be surprised • Vulnerability assessments need to be performed often with updated tools! • If possible, get expert help with vulnerability assessments – the tools can tell you a lot, but interpretation of results is critical Questions and Answers Mark Lachniet mlachniet@analysts.com Rob Dobson rdobson@analysts.com