Programming Windows Security (Paperback)
This is one of only a few security books that target software developers. Most are directed at network administrators who want to configure their systems to avoid attacks. Yet Windows programmers have lots of tools at their disposal for securing their applications and most are completely unaware that these tools exist. The first part of the book identifies the crucial elements that a developer must master (e.g. cryptography, authentication, access control, credentials) in order to understand NT security. The second part of the book deals with application of these elements to various tools and programming techniques (COM(+), MTS, MSMQ, Active Directory).
I. MODEL 1.1. The Players.
Machines as Principals.
2. The Environment.
The System Logon Session.
Discovering Authorization Attributes.
Objects and Security Descriptors.
Access Control Strategies.
Choosing a Model.
4. Logon Sessions.
Daemon Logon Sessions.
Network Logon Sessions.
Interactive Logon Sessions.
Memory Allocation and Error Handling Strategies.
Restricting Authorization Attributes.
Terminating a Logon Session.
5. Window Stations and Profiles.
Window Station Permissions.
Natural Window Station Allocation.
Daemons in the Lab.
Other Window Stations.
Exploring Window Stations.
Closing Window Station Handles.
Window Stations and Access Control.
6. Access Control and Accountability.
Anatomy of a Security Descriptor.
Where Do Security Descriptors Come From?
Security Descriptor Usage Patterns.
How ACLs Work.
Security Descriptors and Built-in Objects.
Security Descriptors and Private Objects.
Hierarchical Object Models and ACL Inheritance.
7. Network Authentication.
The Kerberos v5 Authentication Protocol.
SPNEGO: Simple and Protected Negotiation.
8. The File Server.
Lan Manager Sessions.
Clients and Sessions.
Dealing with Conflict.
Drive Letter Mappings.
The COM Security Model.
More COM Interception: Access Control.
Plugging Obscure Security Holes.
Security in In-Process Servers?
Surrogates and Declarative Security.
COM Servers Packaged as Services.
Legacy Out-of-Process Servers.
Launching Servers via the COM SCM.
A Note on Choosing a Server Identity.
Access Checks in the Middle Tier.
The COM+ Security Model: Configured Components.
Applications and Role-Based Security.
Making Sense of COM+ Access Checks.
Which Components Need Role Assignments?
Security in COM+ Library Applications.
Fine-Grained Access Control: IsCallerInRole.
Call Context Tracking.
Tips for Debugging COM Security Problems.
Public Key Cryptography.
Secure Sockets Layer.
From Theory to Practice: Obtaining and Installing a Web Server Certificate.
Requiring HTTPS via the IIS Metabase.
Managing Web Applications.
IIS as a Gateway into COM+.
Where to Get More Information.
Appendix: Some Parting Words.
Printing SIDs in Human Readable Form.
Adding Domain Principals in Windows 2000.
Adding Groups in Windows 2000.
Adding Local Accounts and Aliases.
Privileges and Logon Rights.
Secrets: The Windows Password Stash.