COD 107 Secure Software Deployment
COD 107 Secure Software Deployment
COD 107 Secure Software Deployment
Table of Contents
Course Overview and Objectives ............................................................................................................................... 3
Attack Surface Reduction............................................................................................................................................. 5
Secure by Default ........................................................................................................................................................... 7
Least Privileges ............................................................................................................................................................... 9
Least Privilege Deployment ....................................................................................................................................... 10
Defense in Depth........................................................................................................................................................... 11
Compartmentalization ................................................................................................................................................ 12
Defending the Operating System ............................................................................................................................ 14
Defending the Web Server ........................................................................................................................................ 16
Defending the Database ............................................................................................................................................ 18
Configuration Strategies ........................................................................................................................................... 20
Identify Deployment Processes ............................................................................................................................... 22
Course Summary ......................................................................................................................................................... 23
Thank You ..................................................................................................................................................................... 24
Page 1 of 24
COD 107 – Secure Software Deployment
Narration
On screen text
COD 107
Secure Software Deployment
Page 2 of 24
COD 107 – Secure Software Deployment
Narration
This course is designed to cover the deployment phase of the software development lifecycle in which
software deployment teams install the software in the environment in which it will run.
The focus of this phase is to create a secure environment for protecting software. Part of creating a
secure environment means adhering to application security principles and defending critical software
infrastructure such as the operating system, web servers, and databases.
In this phase, we will look at application security principles relevant to secure deployment, an example
of secure deployment using the principle of least privilege, and techniques for defending critical
software infrastructure.
On screen text
This course is designed to cover the deployment phase of the software development lifecycle.
On successful completion of this course, learners should have the knowledge and skills required to
create a secure environment for the deployment phase of the software development lifecycle:
• Application security principles relevant to secure deployment
Page 3 of 24
COD 107 – Secure Software Deployment
Page 4 of 24
COD 107 – Secure Software Deployment
Narration
Let’s discuss the first application security principle, attack surface reduction.
To reduce your application’s attack surface, design your application to use only the components and
services needed for correct operation, and disable all other features.
This reduces the total number of areas in your application that require defending.
Remember, you must defend all possible ways to compromise a system, but attackers only have to find
one weakness that was overlooked.
If you do not want to turn off certain features, you can reduce the attack surface by using more secure
configurations of those features, rather than their insecure defaults.
This leads to the next application security principle: secure defaults.
On screen text
Page 5 of 24
COD 107 – Secure Software Deployment
Page 6 of 24
COD 107 – Secure Software Deployment
Secure by Default
Narration
The principle of “Secure by Default” means your application cannot contain any insecure settings when
it is released.
Instead, you need to ensure that you’ve designed your application to use the most secure settings by
default.
Users are often unaware of certain features, or they do not know how to configure them to the most
secure settings.
Designing an application with secure defaults reduces the likelihood that an attacker can exploit
insecure settings left in place by users.
For example, communicate with encrypted communications instead of unprotected TCP.
It might not eliminate attacks against your applications, but it removes one attack vector.
On screen text
Secure by Default
Page 7 of 24
COD 107 – Secure Software Deployment
Secure by Default
• Don’t leave insecure settings within your application
• Design application with the most secure settings by default
• Users are unaware how to configure most secure settings
• Strategy reduces the likelihood that an attacker can exploit your application
Page 8 of 24
COD 107 – Secure Software Deployment
Least Privileges
Narration
In the least privilege principle, begin with the idea that all software can and will be compromised by a
malicious user.
To reduce the impact of a compromise, applications should be designed using the minimal set of
privileges required to function correctly. If higher privileges are needed, elevate privileges at that point
and then release those elevated privileges as soon as they are no longer needed.
By applying the least privileges principle, you limit the potential damage that can be caused by a
malicious user who compromises the application.
On screen text
Least Privileges
Least Privileges
Page 9 of 24
COD 107 – Secure Software Deployment
Narration
Let’s look at least privilege deployment.
As you learned in the Design phase, least privilege can be used to design applications so that they use
the least amount of privileges needed for the application to function. You can also leverage the principle
of least privilege in the Deployment phase.
Deploy applications using the minimal privileges needed for the application to function. This way, if an
attacker compromises a user account, the attacker’s privileges, and ability to inflict damage are limited.
On screen text
• Can be used to design applications so they use the least amount of privileges
• Leverage the principle of least privilege in deployment
• Deploy applications with minimal privileges
• If a user account is compromised, then the attacker’s privileges are limited
Page 10 of 24
COD 107 – Secure Software Deployment
Defense in Depth
Narration
At some point, all systems and defenses will fail.
To mitigate this risk, implement the defense in depth strategy.
Layer a series of defenses to form a more comprehensive defense posture.
If one layer of defense fails, the other layers continue to provide protection.
Layering defenses reduces the chance of a successful attack.
It is much more difficult for an attacker to successfully compromise two or more layers of defense than
to compromise only one.
On screen text
Defense in Depth
Defense in Depth
Page 11 of 24
COD 107 – Secure Software Deployment
Compartmentalization
Narration
Compartmentalization is similar to defense in depth and least privilege.
Instead of building one system, you build separate components in your application.
This way, you can design trust boundaries to isolate internal components from one another.
To access different components, you can require re-authentication, or that data be re-validated.
Compartmentalization helps ensure that a breach of one component does not lead to a breach of the
entire system or network.
For example, if you implement compartmentalization at the network layer, an attacker who succeeds in
breaching a client will not necessarily be able to gain access to the server.
Similarly, an attacker who breaches the interface might not necessarily gain access to the underlying
service.
On screen text
Compartmentalization
Page 12 of 24
COD 107 – Secure Software Deployment
Compartmentalization
• Similar to defense in depth and least privilege
• Build separate components instead of just one system
• Design trust boundaries to isolate internal components
• Require re-authentication or data re-validation to access different components
• Isolate impact of a breach to a component instead of the entire system
Page 13 of 24
COD 107 – Secure Software Deployment
Narration
Here are some key approaches to hardening the operating system (OS).
Take a minimalist approach and only install what is necessary for your purpose.
Strictly limit user accounts and disable or rename default accounts.
Establish strong password policies for the OS and all installed applications.
Use a packet filter or firewall to restrict access and isolate the machine on the network.
Keep the system up-to-date with the latest operating system, web server, database, and other software
patches.
Set file and directory permissions to the least necessary to run the required applications.
Review OS settings that can improve system security.
Ensure that proper system auditing and log file management is in place.
Avoid installing software development and debugging tools on the server.
Install anti-virus and other security software as appropriate.
Consider using a hardening guide or tool appropriate for your operating system.
Ensure that the server is physically secure.
Page 14 of 24
COD 107 – Secure Software Deployment
On screen text
Page 15 of 24
COD 107 – Secure Software Deployment
Narration
Let’s now look at how you can improve the security of web servers.
Install only the modules or services necessary for your application.
Use appropriate file and directory permissions to strictly control access to web content directories.
Disable directory browsing. Review web server settings that can improve platform security.
Remove default, demo, backup, temporary, and other directories not appropriate for a production
server.
Remove, rename, or restrict IP address access to administrative directories.
Disable or reconfigure error reporting features so that users never see detailed error messages.
Disable or block HTTP methods not needed for your application.
Modify server headers to not reveal server platform and version.
Review script interpreter and application framework settings to ensure that proper limits and security
settings are in place.
Consider using a hardening guide or tool appropriate for your web server and application framework.
Ensure that the server is physically secure.
Page 16 of 24
COD 107 – Secure Software Deployment
On screen text
Page 17 of 24
COD 107 – Secure Software Deployment
Narration
So far, we have looked at how we can improve the security of the operating system and web servers.
Now let’s look at how we can defend database servers.
Remove or disable unnecessary database features or services.
Strictly limit user accounts and disable or rename default accounts.
Use a packet filter or firewall to tightly restrict access to database ports.
Remove any demo, testing, training, and all other databases not necessary for the web application.
Carefully configure user roles and permissions to strictly limit access for web application accounts.
Never use DBA, root, or system accounts for general database access.
Consider using a hardening guide or tool appropriate for your database platform.
Disable stored procedures that are not required for the application.
Ensure that the server is physically secure.
On screen text
Page 18 of 24
COD 107 – Secure Software Deployment
Page 19 of 24
COD 107 – Secure Software Deployment
Configuration Strategies
Narration
Are there additional ways to improve the system security? Yes!
Here are measures you can take to further mitigate security misconfiguration.
Regularly audit the full system configuration.
Use software to perform regular vulnerability scanning of the web server.
Where possible, manage system configuration settings with version control software.
Deploy intrusion detection systems to identify any overlooked misconfigurations.
Monitor search engines to identify changes made to your web application and identify possible
information leaks.
Utilize log analysis or event management software to identify unusual system activity.
On screen text
Configuration Strategies
Page 20 of 24
COD 107 – Secure Software Deployment
Following are key measures you can take to further mitigate security misconfigurations:
• Regularly audit the full system configuration
• Use software to perform regular vulnerability scanning of the web server
• Where possible, manage system configuration settings with version control software
• Deploy intrusion detection systems to identify any overlooked misconfigurations
• Monitor search engines to identify changes made to your web application and identify possible
information leaks
• Utilize log analysis or event management software to identify unusual system activity
Page 21 of 24
COD 107 – Secure Software Deployment
Narration
Which processes allow for least-privilege software deployment? Drag the correct tiles to the right to
complete.
On screen text
Page 22 of 24
COD 107 – Secure Software Deployment
Course Summary
Narration
We have learned that security vigilance in the software development lifecycle extends through the
deployment phase.
In this course, we discussed application security principles relevant to secure deployment, looked at an
example of secure deployment using the principle of least privilege, and reviewed techniques for
defending critical software infrastructure.
On screen text
Course Summary
Page 23 of 24
COD 107 – Secure Software Deployment
Thank You
Narration
Thank You
Page 24 of 24