COD 107 Secure Software Deployment

You might also like

You are on page 1of 24

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

Course Overview and Objectives

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

Course Overview and Objectives.

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

• An example of secure deployment using the principle of least privilege


• Techniques for defending the operating system, web servers, and databases

Page 4 of 24
COD 107 – Secure Software Deployment

Attack Surface Reduction

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

Attack Surface Reduction

Attack Surface Reduction

• Design application to use only components and services required

Page 5 of 24
COD 107 – Secure Software Deployment

• Strategy reduces total number of areas to defend


• Defend all possible ways an attacker can compromise a system
• Attacker only needs to find one overlooked weakness
• Use secure configuration if disabling a feature is not feasible

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

• All software can and will be compromised by a malicious user


• Design with minimal set of privileges to reduce the impact of a compromise
• Elevate privileges and release the elevation as they are no longer needed

Page 9 of 24
COD 107 – Secure Software Deployment

Least Privilege 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

Least Privilege Deployment

Least Privilege Deployment

• 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

• All systems fail at some point


• Strategy mitigates risk
• Form a comprehensive defense posture
• Layering defenses reduces the chance of an attack

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

Defending the Operating System

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

Defending the Operating System

Some key approaches to hardening the operating system (OS) include:


• 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
• 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 15 of 24
COD 107 – Secure Software Deployment

Defending the Web Server

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

Defending the Web Server

Key approaches to improving the security of web servers include:


• 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 17 of 24
COD 107 – Secure Software Deployment

Defending the Database

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

Defending the Database

Page 18 of 24
COD 107 – Secure Software Deployment

Key approaches to improving the security of database servers include:

• 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

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

Defense in Depth: Other 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

Identify Deployment Processes

Narration
Which processes allow for least-privilege software deployment? Drag the correct tiles to the right to
complete.
On screen text

Identify Deployment Processes


Which processes allow for least-privilege software deployment? Drag the correct tiles to the right to
complete.

Options Deploying Configuring Configuring software An attacker Compiled


software with software so that to run as services compromises a
Boundaries
minimal the least number with least amount of user account, the
admin of features are privileges attacker’s
accounts enabled privileges will be
limited

Answers Incorrect. Correct! Correct! Correct! Incorrect

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

In this course, we discussed application security principles relevant to secure deployment.

• Secure deployment using the principle of least privilege


• Reviewed techniques for defending critical software infrastructure

Page 23 of 24
COD 107 – Secure Software Deployment

Thank You

Narration

Thank You

This concludes Secure Software Deployment course. Thank you.


Click the “Take the Exam” button to proceed to the exam.

Page 24 of 24

You might also like