Essentials of Application Security

Reviews
Essentials of Application Security Name Job Title Company What We Will Cover The Importance of Application Security Secure Application Development Practices Security Technologies Secure Development Guidelines Session Prerequisites Development experience with Microsoft Visual Basic® , Microsoft Visual C++® , or C# Level 200 Agenda The Importance of Application Security Secure Application Development Practices Security Technologies Secure Development Guidelines Trustworthy Computing “Trustworthy Computing has four pillars: Reliability means a computer system is dependable, is available when needed, and performs as expected and at appropriate levels. Security means a system is resilient to attack, and the confidentiality, integrity, and availability of both the system and its data are protected. Privacy means that people can control their personal information and organizations that use the information faithfully protect it. Business integrity is about companies in our industry being responsible to customers and helping them find appropriate solutions for their business issues, addressing problems with products or services, and being open in interactions with customers.” - Bill Gates July 18, 2002 Connection Scenarios and Security Concerns Connection scenarios: Traditional wired networks Mobile workforces Public wireless networks Security concerns: Application reliance on the Internet Business reliance on the Internet Internal security attacks Common Types of Attacks Organizational Attacks Attackers Restricted Data DoS Connection Fails Automated Attacks Accidental Breaches In Security Viruses, Trojan Horses, and Worms Denial of Service (DoS) Examples of Security Intrusions CodeRed ILoveYou Nimda Virus Attacker Consequences of Poor Security Stolen intellectual property System downtime Lost productivity Damage to business reputation Lost consumer confidence Severe financial losses due to lost revenue Challenges When Implementing Security Attacker needs to understand only one vulnerability Defender needs to secure all entry points Attackers have unlimited time Attackers vs. Defenders Defender works with time and cost constraints Secure systems are more difficult to use Complex and strong passwords are difficult to remember Users prefer simple passwords Security vs. Usability Do I need security … Developers and management think that security does not add any business value Addressing vulnerabilities just before a product is released is very expensive Security As an Afterthought The Developer Role in Application Security Developers must: Work with solution architects and systems administrators to ensure application security Contribute to security by: Adopting good application security development practices Knowing where security vulnerabilities occur and how to avoid them Using secure programming techniques Agenda The Importance of Application Security Secure Application Development Practices Security Technologies Secure Development Guidelines Holistic Approach to Security Security must be considered at: All stages of a project Design Development Deployment All layers Network Host Application “Security is only as good as the weakest link” Security Throughout Project Lifecycle Analyze threats Secure questions during interviews External review Learn and refine Determine security sign-off criteria Security push Concept Designs Complete Test Plans Complete Code Complete Ship Post-Ship Train team members Review old defects, check-ins checked secure coding guidelines, use tools Security team review Data mutation and least privilege tests =ongoing The SD3 Security Framework SD3 Secure by Design Secure architecture and code Threat analysis Vulnerability reduction Attack surface area reduced Unused features turned off by default Minimum privileges used Protection: Detection, defense, recovery, management Process: How to guides, architecture guides People: Training Secure by Default Secure in Deployment Threat Modeling Threat modeling is: A security-based analysis of an application A crucial part of the design process Threat modeling: Reduces the cost of securing an application Provides a logical, efficient process Helps the development team: Identify where the application is most vulnerable Determine which threats require mitigation and how to address those threats Ongoing Education Provide training about: How security features work How to use the security features to build secure systems What security vulnerabilities look like in order to identify flawed code How to avoid common security vulnerabilities How to avoid repeating mistakes Input Validation Buffer overruns SQL injection Cross-site scripting “All input is evil until proven otherwise!” Demonstration 1 Buffer Overruns Bypassing Security Checks Practices for Improving Security Practice Adopt Threat Modeling Train development team Benefit Identifies of security vulnerabilities Increases awareness of application architecture Avoids common security defects Correct application of security technologies Secures code that Accesses the network Runs by default Uses unauthenticated protocols Runs with elevated privileges Code Review Use tools Use infrastructure solutions Use component solutions Migrate managed code More consistent testing for vulnerabilities More secure with SSL/TLS and IPSec More robust with CAPICOM and .NET Cryptography namespace Avoids common vulnerabilities Agenda The Importance of Application Security Secure Application Development Practices Security Technologies Secure Development Guidelines Overview of Security Technologies Developers need to use and apply: Encryption Hashing Digital signatures Digital certificates Secure communication Authentication Authorization Firewalls Auditing Service packs and updates Encryption Encryption is the process of encoding data To protect a user’s identity or data from being read To protect data from being altered To verify that data originates from a particular user Encryption can be: Asymmetric Symmetric Symmetric vs. Asymmetric Encryption Algorithm Type Uses one key to: Symmetric Encrypt the data Decrypt the data Description Is fast and efficient Uses two mathematically related keys: Public key to encrypt the data Private key to decrypt the data Asymmetric Is more secure than symmetric encryption Is slower than symmetric encryption Verifying Data Integrity with Hashes User A User B Data Hash Algorithm Hash Value If hash values match, data is valid Hash Algorithm Data Hash Value User A sends data and hash value to User B Data Hash Value Digital Signatures User A Hash Algorithm User B Data Hash Algorithm Data User A Public Key Hash Value Hash Value User A Private key Hash Value If hash values match, data came from the owner of the private key and is valid How Digital Certificates Work User Computer Private Key Private/Public Key Pair Public Key Application Service Certification Authority Certified Administrator Secure Communication Technologies Technologies include: IPSec SSL TLS RPC encryption SSL/TLS IPSec RPC Encryption Secure Communication How IPSec Works IPSec Policy IPSec Policy Security Association Negotiation TCP Layer IPSec Driver TCP Layer IPSec Driver Encrypted IP Packets Secure Communication How SSL Works 2 Secure Browser Web Server Root Certificate Message Secure Web Server 3 4 1 1 2 3 4 HTTPS The user browses to a secure Web server by using HTTPS The browser creates a unique session key and encrypts it by using the Web server’s public key, which is generated from the root certificate The Web server receives the session key and decrypts it by using the server’s private key After the connection is established, all communication between the browser and Web server is secure Demonstration 2 SSL Server Certificates Viewing a Web Site on a Non-Secure Server Generating a Certificate Request Requesting a Trial Certificate Installing the SSL Certificate Testing the SSL Certificate Authentication Purpose of Authentication Verifies the identity of a principal by: Accepting credentials Validating those credentials Secures communications by ensuring your application knows who the caller is Encrypting the data is not enough! Authentication Authentication Methods Basic Digest Digital signatures and digital certificates Integrated The Kerberos version 5 protocol NTLM Microsoft Passport Biometrics Authentication Basic Authentication Is simple but effective Is supported by all major browsers and servers Is easy to program and set up Manages user credentials Requires SSL/TLS Authentication How Digest Authentication Works Server Password 5 Active Directory 1 6 Request Challenge X$!87ghy5 2 4 Client Password X$!87ghy5 Digest Algorithm 3 Authentication Client Digital Certificates Used in Web applications Server secures communications using SSL/TLS with a X.509 server certificate Server authenticates clients using data in client X.509 certificate, if required Certificate authority issues a certificate for which the server holds a root certificate Used in distributed applications Application uses SSL/TLS communication channel Client and server applications authenticate using certificates Can be deployed on smartcards Authentication When to Use Integrated Authentication Firewall Intranet? Client Yes No Cannot use Integrated Authentication Windows 2000 Or later? Windows Integrated No NTLM Server Authentication Yes Active Directory Domain? Yes No Kerberos Client and Server Authentication Authentication How to Use Kerberos Version 5 Initial Logon KDC Service Request KDC 2 2 ST TGT 1 TGT 1 3 3 ST Target Server 4 Client ST Session established Client TGT cached locally TGT Ticket-Granting Ticket Service Ticket Demonstration 3 IIS Authentication Techniques Using Anonymous Authentication Using Basic Authentication Using Integrated Windows Authentication Authorization Authorization: What is Authorization? Occurs after your client request is authenticated Is the process of confirming that an authenticated principal is allowed access to specific resources Checks rights assigned to files, folders, registry settings, applications, and so on Can be role-based Can be code-based Authorization Common Authorization Techniques IIS Web permissions (and IP/DNS restrictions) .NET role-based security .NET code access security NTFS access control lists (ACL) SQL Server logins SQL Server permissions Authorization Impersonation/Delegation Model Client identity is used to access downstream resources Web or Application Server Database or other resource server A B C A B C Authorization Trusted Subsystem Model Clients are mapped to roles Dedicated Windows service accounts are used for each role when accessing downstream resources Web or Application Server Database or other resource server A B C Role 1 Role 2 1 2 Demonstration 4 Trusted Subsystem Model Authorization Techniques Reviewing the Application Setting Authentication on the Web Server Creating Service Accounts on the Web Server Setting Authorization on the Database Server Firewalls Firewalls can provide: Secure gateway to the Internet for internal clients Packet filtering Circuit-level filtering Application filtering Auditing Firewalls cannot provide: Protection against application-level attacks over HTTP or HTTPS Auditing Auditing actions include tracking: Resource access and usage Successful and unsuccessful logon attempts Application failures Auditing benefits include: Help for administrators to detect intrusions and suspicious activities Traceability for legal, non-repudiation disputes Diagnosis of security breaches Service Packs and Updates Security update Hotfix Description Address a single issue or a small number of issues Can be combined by using QChain Security rollup package Multiple hotfixes packaged for easy installation Provide major updates Cumulative set of previous updates May contain previously unannounced fixes May contain feature changes Service pack Agenda The Importance of Application Security Secure Application Development Practices Security Technologies Secure Development Guidelines Proactive Security Development Integrate security improvements throughout the development process Focus on security and ensure your code can withstand new attacks Promote the key role of education Raise awareness within your team Learn from your mistakes and other’s mistakes Adopt the SD3 Security Framework Secure by Design Build threat models Conduct code reviews, penetration tests Run code with minimal privileges Minimize your attack surface Enable services securely Secure by Default Secure in Deployment Leverage the security best practices Create security guidance Build tools to assess application security Microsoft Java Virtual Machine End of Support Alert Java Support Alert! MSJVM no longer ships with Windows XP SP1a or Windows Server 2003 Microsoft will discontinue support Sept 30, 2004 No security fixes will be made after that date Security issues after that date may require removal of MSJVM Developers should Update MSJVM dependent applications Offer upgrades to customers For more information: http://www.microsoft.com/java Session Summary The Importance of Application Security Secure Application Development Practices Security Technologies Secure Development Guidelines Next Steps 1. Stay informed about security  Sign up for security bulletins: http://www.microsoft.com/security/security_bulletins/alerts2.asp  Get the latest Microsoft security guidance: http://www.microsoft.com/security/guidance/ 2. Get additional security training  Find online and in-person training seminars: http://www.microsoft.com/seminar/events/security.mspx  Find a local CTEC for hands-on training: http://www.microsoft.com/learning/ For More Information Microsoft Security Site (all audiences) http://www.microsoft.com/security MSDN Security Site (developers) http://msdn.microsoft.com/security TechNet Security Site (IT professionals) http://www.microsoft.com/technet/security Questions and Answers

Related docs
Essentials of Application Security
Views: 41  |  Downloads: 14
The Essentials of Spirituality
Views: 13  |  Downloads: 0
EasyLanguage Essentials
Views: 1228  |  Downloads: 102
Essentials of the Internet
Views: 31  |  Downloads: 1
ESSENTIALS OF FIREFIGHTING
Views: 114  |  Downloads: 0
Essentials of Database Security Workshop
Views: 42  |  Downloads: 7
database essentials
Views: 9  |  Downloads: 0
essentials of pragmatism
Views: 2  |  Downloads: 0
Router Essentials
Views: 4  |  Downloads: 2
IT Essentials Final Exam From 1 - 10
Views: 1321  |  Downloads: 41
premium docs
Other docs by student19
adopt225
Views: 123  |  Downloads: 1
Form 8283 Noncash Charitable Contributions
Views: 527  |  Downloads: 7
pos030
Views: 180  |  Downloads: 0
Transmittal Letter to IRS Enclosing Form SS-4
Views: 1022  |  Downloads: 3
TRAVEL ITINERARY
Views: 562  |  Downloads: 46
r491
Views: 317  |  Downloads: 3
I Have A Dream Speech
Views: 413  |  Downloads: 8
TRAVEL CHECKLIST
Views: 523  |  Downloads: 57
Sample UCC1 Financing Statement
Views: 1298  |  Downloads: 9