ebook img

Securing SQL Server: DBAs Defending the Database PDF

354 Pages·2018·10.38 MB·English
Save to my drive
Quick download
Download
Most books are stored in the elastic cloud where traffic is expensive. For this reason, we have a limit on daily download.

Preview Securing SQL Server: DBAs Defending the Database

Securing SQL Server DBAs Defending the Database — Second Edition — Peter A. Carter Securing SQL Server DBAs Defending the Database Second Edition Peter A. Carter Securing SQL Server: DBAs Defending the Database Peter A. Carter London, UK ISBN-13 (pbk): 978-1-4842-4160-8 ISBN-13 (electronic): 978-1-4842-4161-5 https://doi.org/10.1007/978-1-4842-4161-5 Library of Congress Control Number: 2018963673 Copyright © 2018 by Peter A. Carter Tis work is subject to copyright. All rights are reserved by the Publisher, whether the whole or part of the material is concerned, specifcally the rights of translation, reprinting, reuse of illustrations, recitation, broadcasting, reproduction on microflms or in any other physical way, and transmission or information storage and retrieval, electronic adaptation, computer software, or by similar or dissimilar methodology now known or hereafter developed. Trademarked names, logos, and images may appear in this book. Rather than use a trademark symbol with every occurrence of a trademarked name, logo, or image we use the names, logos, and images only in an editorial fashion and to the beneft of the trademark owner, with no intention of infringement of the trademark. Te use in this publication of trade names, trademarks, service marks, and similar terms, even if they are not identifed as such, is not to be taken as an expression of opinion as to whether or not they are subject to proprietary rights. While the advice and information in this book are believed to be true and accurate at the date of publication, neither the authors nor the editors nor the publisher can accept any legal responsibility for any errors or omissions that may be made. Te publisher makes no warranty, express or implied, with respect to the material contained herein. Managing Director, Apress Media LLC: Welmoed Spahr Acquisitions Editor: Jonathan Gennick Development Editor: Laura Berendson Coordinating Editor: Jill Balzano Cover image designed by Freepik (www.freepik.com) Distributed to the book trade worldwide by Springer Science+Business Media New York, 233 Spring Street, 6th Floor, New York, NY 10013. Phone 1-800-SPRINGER, fax (201) 348-4505, e-mail Tis book is for Danielle Carter–my favorite Disney villain Table of Contents About the Author ����������������������������������������������������������������������������������������������������� xi About the Technical Reviewer ������������������������������������������������������������������������������� xiii Acknowledgments ���������������������������������������������������������������������������������������������������xv Introduction �����������������������������������������������������������������������������������������������������������xvii Part I: D atabase Security �������������������������������������������������������������������������������� 1 Chapter 1: T hreat Analysis and Compliance ������������������������������������������������������������� 3 Threat Modeling ���������������������������������������������������������������������������������������������������������������������������� 4 Understanding Threat Modeling ���������������������������������������������������������������������������������������������� 4 Identifying Assets �������������������������������������������������������������������������������������������������������������������� 6 Creating an Architecture Overview ������������������������������������������������������������������������������������������ 6 Creating a Security Profle ������������������������������������������������������������������������������������������������������� 9 Identifying Threats ����������������������������������������������������������������������������������������������������������������� 11 Rating Threats ����������������������������������������������������������������������������������������������������������������������� 13 Creating Countermeasures ���������������������������������������������������������������������������������������������������� 17 Compliance Considerations �������������������������������������������������������������������������������������������������������� 18 Introducing SOX for SQL Server ��������������������������������������������������������������������������������������������� 19 Introducing GDPR For SQL Server ����������������������������������������������������������������������������������������� 20 Summary������������������������������������������������������������������������������������������������������������������������������������� 20 Chapter 2: S QL Server Security Model �������������������������������������������������������������������� 23 Security Principal Hierarchy �������������������������������������������������������������������������������������������������������� 24 Instance Level Security ��������������������������������������������������������������������������������������������������������������� 26 Logins ������������������������������������������������������������������������������������������������������������������������������������ 27 Server Roles �������������������������������������������������������������������������������������������������������������������������� 35 Credentials ���������������������������������������������������������������������������������������������������������������������������� 39 v Table of ConTenTs Database-Level Security ������������������������������������������������������������������������������������������������������������� 39 Users ������������������������������������������������������������������������������������������������������������������������������������� 39 Database Roles ���������������������������������������������������������������������������������������������������������������������� 47 Summary������������������������������������������������������������������������������������������������������������������������������������� 49 Chapter 3: S QL Server Audit ����������������������������������������������������������������������������������� 51 Understanding SQL Server Audit ������������������������������������������������������������������������������������������������� 51 SQL Server Audit Actions and Action Groups ������������������������������������������������������������������������� 52 Implementing SQL Server Audit �������������������������������������������������������������������������������������������������� 64 Creating a Server Audit���������������������������������������������������������������������������������������������������������� 64 Create a Server Audit Specifcation ��������������������������������������������������������������������������������������� 70 Create a Database Audit Specifcation ���������������������������������������������������������������������������������� 71 Creating Custom Audit Events ����������������������������������������������������������������������������������������������������� 74 Creating the Server Audit and Database Audit Specifcation ������������������������������������������������� 74 Raising the Event ������������������������������������������������������������������������������������������������������������������� 75 Summary������������������������������������������������������������������������������������������������������������������������������������� 76 Chapter 4: D ata-Level Security ������������������������������������������������������������������������������� 77 Schemas ������������������������������������������������������������������������������������������������������������������������������������� 77 Ownership Chaining �������������������������������������������������������������������������������������������������������������������� 80 Impersonation ����������������������������������������������������������������������������������������������������������������������������� 83 Row-Level Security ��������������������������������������������������������������������������������������������������������������������� 85 Security Predicates ��������������������������������������������������������������������������������������������������������������� 86 Security Policies �������������������������������������������������������������������������������������������������������������������� 87 Implementing RLS ����������������������������������������������������������������������������������������������������������������� 87 Dynamic Data Masking ��������������������������������������������������������������������������������������������������������������� 91 Summary������������������������������������������������������������������������������������������������������������������������������������� 96 Chapter 5: E ncryption in SQL Server ���������������������������������������������������������������������� 97 Generic Encryption Concepts ������������������������������������������������������������������������������������������������������ 97 Defense in Depth ������������������������������������������������������������������������������������������������������������������� 97 Symmetric Keys��������������������������������������������������������������������������������������������������������������������� 98 vi Table of ConTenTs Asymmetric Keys ������������������������������������������������������������������������������������������������������������������� 98 Certifcates ���������������������������������������������������������������������������������������������������������������������������� 98 Self-Signed Certifcates ��������������������������������������������������������������������������������������������������������� 98 Windows Data Protection API ������������������������������������������������������������������������������������������������ 98 SQL Server Encryption Concepts ������������������������������������������������������������������������������������������������ 99 Master Keys ��������������������������������������������������������������������������������������������������������������������������� 99 EKM and Key Stores ������������������������������������������������������������������������������������������������������������ 102 SQL Server Encryption Hierarchy ���������������������������������������������������������������������������������������� 102 Encrypting Data ������������������������������������������������������������������������������������������������������������������������ 103 Encrypting Data With a Password or Passphrase ���������������������������������������������������������������� 103 Encrypting Data with Keys and Certifcates ������������������������������������������������������������������������ 109 Transparent Data Encryption ����������������������������������������������������������������������������������������������������� 114 Considerations for TDE With Other Technologies ����������������������������������������������������������������� 115 Implementing TDE ��������������������������������������������������������������������������������������������������������������� 116 Administering TDE ��������������������������������������������������������������������������������������������������������������� 118 Always Encrypted ��������������������������������������������������������������������������������������������������������������������� 119 Implementing Always Encrypted ����������������������������������������������������������������������������������������� 121 Summary����������������������������������������������������������������������������������������������������������������������������������� 130 Chapter 6: S ecurity Metadata ������������������������������������������������������������������������������� 133 Security Principal Metadata ������������������������������������������������������������������������������������������������������ 133 Finding a User’s Effective Permissions ������������������������������������������������������������������������������� 134 Securable Metadata ������������������������������������������������������������������������������������������������������������������ 137 Code Signing ����������������������������������������������������������������������������������������������������������������������� 138 Permissions Against a Specifc Table ���������������������������������������������������������������������������������� 141 Audit Metadata �������������������������������������������������������������������������������������������������������������������������� 142 Encryption Metadata ����������������������������������������������������������������������������������������������������������������� 145 Always Encrypted Metadata ������������������������������������������������������������������������������������������������ 145 TDE Metadata ���������������������������������������������������������������������������������������������������������������������� 148 Credentials Metadata ���������������������������������������������������������������������������������������������������������������� 152 vii Table of ConTenTs Securing Metadata �������������������������������������������������������������������������������������������������������������������� 154 Risks of Metadata Visibility ������������������������������������������������������������������������������������������������� 156 Summary����������������������������������������������������������������������������������������������������������������������������������� 157 Chapter 7: I mplementing Service Accounts for Security �������������������������������������� 159 Service Account Types �������������������������������������������������������������������������������������������������������������� 159 Virtual Accounts ������������������������������������������������������������������������������������������������������������������� 160 Managed Service Accounts ������������������������������������������������������������������������������������������������� 161 SQL Server Services ����������������������������������������������������������������������������������������������������������������� 162 How Service Accounts Can Become Compromised ������������������������������������������������������������������ 171 Designing a Pragmatic Service Account Strategy ��������������������������������������������������������������������� 172 Summary����������������������������������������������������������������������������������������������������������������������������������� 174 Chapter 8: P rotecting Credentials ������������������������������������������������������������������������ 175 Protecting the sa Account ��������������������������������������������������������������������������������������������������������� 175 DBA Steps to Mitigate the Risks ���������������������������������������������������������������������������������������� 176 Protecting User Accounts ���������������������������������������������������������������������������������������������������������� 188 Auditing Passwords Susceptible to Word List Attacks ��������������������������������������������������������� 189 Protecting Windows Accounts ��������������������������������������������������������������������������������������������������� 191 Summary����������������������������������������������������������������������������������������������������������������������������������� 192 Chapter 9: R educing the Attack Surface �������������������������������������������������������������� 193 Network Confguration �������������������������������������������������������������������������������������������������������������� 193 Understanding Ports and Protocols ������������������������������������������������������������������������������������� 193 Firewall Requirements for SQL Server �������������������������������������������������������������������������������� 199 Miscellaneous Considerations �������������������������������������������������������������������������������������������������� 205 Ensuring that Unsafe Features Remain Disabled ���������������������������������������������������������������������� 206 Confguring the Surface Area Manually ������������������������������������������������������������������������������� 207 Managing Features With Policy-Based Management ���������������������������������������������������������� 208 Summary����������������������������������������������������������������������������������������������������������������������������������� 216 viii Table of ConTenTs Part II: T hreats and Countermeasures �������������������������������������������������������� 219 Chapter 10: S QL Injection ������������������������������������������������������������������������������������� 221 Preparing the Environment ������������������������������������������������������������������������������������������������������� 221 Performing SQL Injection Attacks ��������������������������������������������������������������������������������������������� 230 Spoofng a User Identity ������������������������������������������������������������������������������������������������������ 230 Using SQL Injection to Leak Information ����������������������������������������������������������������������������� 232 Destructive Attacks�������������������������������������������������������������������������������������������������������������� 236 Attacking the Network ��������������������������������������������������������������������������������������������������������� 238 Preventing SQL Injection Attacks ���������������������������������������������������������������������������������������������� 240 Using an Abstraction Layer �������������������������������������������������������������������������������������������������� 241 Access via Stored Procedures Only ������������������������������������������������������������������������������������� 242 Summary����������������������������������������������������������������������������������������������������������������������������������� 244 Chapter 11: H ijacking an Instance������������������������������������������������������������������������ 247 Hijacking an Instance ���������������������������������������������������������������������������������������������������������������� 247 Protecting Against Hijacking ����������������������������������������������������������������������������������������������������� 252 Understanding Logon Triggers ��������������������������������������������������������������������������������������������� 253 Using Logon Triggers to Prevent Instance Hijacking ����������������������������������������������������������� 254 Understanding Server Agent ������������������������������������������������������������������������������������������������ 260 Putting it all Together����������������������������������������������������������������������������������������������������������� 273 Summary����������������������������������������������������������������������������������������������������������������������������������� 274 Chapter 12: D atabase Backup Theft ��������������������������������������������������������������������� 275 Overview of Backups ���������������������������������������������������������������������������������������������������������������� 275 Recovery Modes ������������������������������������������������������������������������������������������������������������������ 275 Backup Types ����������������������������������������������������������������������������������������������������������������������� 279 Backup Media ���������������������������������������������������������������������������������������������������������������������� 280 Securing Backup Media ������������������������������������������������������������������������������������������������������������ 284 Physical Security ����������������������������������������������������������������������������������������������������������������� 284 Encrypting Backups ������������������������������������������������������������������������������������������������������������� 285 ix Table of ConTenTs Attempting to Steal an Encrypted Backup �������������������������������������������������������������������������������� 295 Administrative Considerations for Encrypted Backups ������������������������������������������������������������� 302 Key Management ����������������������������������������������������������������������������������������������������������������� 302 Backup Size ������������������������������������������������������������������������������������������������������������������������� 303 Summary����������������������������������������������������������������������������������������������������������������������������������� 306 Chapter 13: C ode Injection ����������������������������������������������������������������������������������� 307 Understanding Code Injection ��������������������������������������������������������������������������������������������������� 307 Understanding EXECUTE AS ������������������������������������������������������������������������������������������������� 308 Using EXECUTE AS to Perform a Code Injection Attack ������������������������������������������������������� 310 Protecting Against Code Injection ��������������������������������������������������������������������������������������������� 312 DevOps �������������������������������������������������������������������������������������������������������������������������������� 313 Using Policy-Based Management to Protect Against Code Injection ����������������������������������� 313 Code Signing ����������������������������������������������������������������������������������������������������������������������������� 321 Summary����������������������������������������������������������������������������������������������������������������������������������� 324 Chapter 14: W hole Value Substitution Attacks ����������������������������������������������������� 325 Understanding Whole Value Substitution Attacks ��������������������������������������������������������������������� 325 Salary Manipulation Example ���������������������������������������������������������������������������������������������� 326 Credit Card Fraud Example �������������������������������������������������������������������������������������������������� 329 Protecting Against Whole Value Substitution Attacks���������������������������������������������������������������� 332 Performance Considerations ����������������������������������������������������������������������������������������������������� 335 Summary����������������������������������������������������������������������������������������������������������������������������������� 339 Index ��������������������������������������������������������������������������������������������������������������������� 341 x

See more

The list of books you might like

Most books are stored in the elastic cloud where traffic is expensive. For this reason, we have a limit on daily download.