| Title Page | 1 |
|---|
| Copyright Page | 2 |
|---|
| Contents at a Glance | 4 |
|---|
| Table of Contents | 5 |
|---|
| About the Authors | 15 |
|---|
| About the Technical Reviewer | 16 |
|---|
| Acknowledgments | 17 |
|---|
| Introduction | 18 |
|---|
| Security Beginnings: Policies | 18 |
| A Word About Network Images | 19 |
| Risk Management | 19 |
| How This Book Is Organized | 20 |
| Part 1: The Big Picture | 20 |
| Part 2: Securing the Ecosystem | 21 |
| Part 3: Securing the Network | 21 |
| Part 4: Securely Sharing Resources | 22 |
| Part 5: Securing the Workplace | 22 |
| Appendixes | 23 |
| Part I The Big Picture | 24 |
|---|
| Chapter 1 Security Quick-Start | 25 |
|---|
| Securing the Mac OS X Defaults | 25 |
| Customizing System Preferences | 26 |
| Accounts | 26 |
| Login Options | 28 |
| Passwords | 29 |
| Administrators | 30 |
| Security Preferences | 31 |
| General | 31 |
| FileVault | 33 |
| Firewall | 35 |
| Software Update | 36 |
| Bluetooth Security | 38 |
| Printer Security | 40 |
| Sharing Services | 42 |
| Securely Erasing Disks | 43 |
| Using Secure Empty Trash | 45 |
| Using Encrypted Disk Images | 46 |
| Securing Your Keychains | 47 |
| Best Practices | 49 |
| Chapter 2 Services, Daemons, and Processes | 50 |
|---|
| Introduction to Services, Daemons, and Processes | 50 |
| Viewing What s Currently Running | 52 |
| The Activity Monitor | 52 |
| The ps Command | 56 |
| The top Output | 57 |
| Viewing Which Daemons Are Running | 59 |
| Viewing Which Services Are Available | 60 |
| Stopping Services, Daemons, and Processes | 61 |
| Stopping Processes | 62 |
| Stopping Daemons | 64 |
| Types of launchd Services | 65 |
| GUI Tools for Managing launchd | 65 |
| Changing What Runs At Login | 66 |
| Validating the Authenticity of Applications and Services | 67 |
| Summary | 68 |
| Chapter 3 Securing User Accounts | 69 |
|---|
| Introducing Identification, Authentication, and Authorization | 69 |
| Managing User Accounts | 70 |
| Introducing the Account Types | 71 |
| Adding Users to Groups | 73 |
| Enabling the Superuser Account | 74 |
| Setting Up Parental Controls | 76 |
| Managing the Rules Put in Place | 82 |
| Advanced Settings in System Preferences | 84 |
| Working with Local Directory Services | 85 |
| Creating a Second Local Directory Node | 88 |
| External Accounts | 88 |
| Restricting Access with the Command Line: sudoers | 89 |
| Securing Mount Points | 94 |
| SUID Applications: Getting into the Nitty-Gritty | 95 |
| Creating Files with Permissions | 97 |
| Summary | 98 |
| Chapter 4 File System Permissions | 99 |
|---|
| Mac OS File Permissions: A Brief History of Time | 100 |
| POSIX Permissions | 101 |
| Modes in Detail | 102 |
| Inheritance | 104 |
| The Sticky Bit | 107 |
| The suid/sguid Bits | 107 |
| POSIX in Practice | 108 |
| Access Control Lists | 111 |
| Access Control Entries | 111 |
| Administration | 111 |
| Read Permissions | 112 |
| Write Permissions | 112 |
| Inheritance | 113 |
| Effective Permissions | 114 |
| ACLs in Practice | 115 |
| Administering Permissions | 117 |
| Using the Finder to Manage Permissions | 123 |
| Using chown and chmod to Manage Permissions | 124 |
| The Hard Link Dilemma | 127 |
| Using mtree to Audit File system Permissions | 129 |
| Summary | 131 |
| Chapter 5 Reviewing Logs and Monitoring | 132 |
|---|
| What Exactly Gets Logged? | 132 |
| Using Console | 134 |
| Viewing Logs | 134 |
| Marking Logs | 135 |
| Searching Logs | 136 |
| Finding Logs | 137 |
| Secure.log: Security Information 101 | 138 |
| appfirewall.log | 139 |
| Reviewing User-Specific Logs | 140 |
| Reviewing Command-Line Logs | 142 |
| Reviewing Library Logs | 143 |
| Breaking Down Maintenance Logs | 143 |
| daily.out | 145 |
| Yasu | 146 |
| Weekly.out | 147 |
| Monthly.out | 148 |
| What to Worry About | 148 |
| Virtual Machine and Bootcamp Logs | 149 |
| Event Viewer | 149 |
| Task Manager | 150 |
| Performance Alerts | 151 |
| Review Regularly, Review Often | 152 |
| Accountability | 152 |
| Incident Response | 153 |
| Summary | 154 |
| Part II Securing the Ecosystem | 155 |
|---|
| Chapter 6 Application Signing and Sandbox | 156 |
|---|
| Application Signing | 156 |
| Application Authentication | 158 |
| Application Integrity | 160 |
| Signature Enforcement in OS X | 161 |
| Keychain Access | 162 |
| The OS X Application Firewall | 164 |
| Client Management MCX and Parental Controls | 166 |
| Signing and Verifying Applications |
|