2.3 - Secure Application Development Flashcards

1
Q

Define Sandboxing.

A

An isolated testing environment that has no connection to the real world or production system. It is a technological safe space.

It is used during the development process.

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
2
Q

List out the steps to building an application.

A

1) Development
- Secure Environment -Writing Code
- Developers test in their sandboxes
2) Test
3) Quality Assurance (QA)
- Verifies features are working as expected
- Validates new functionality
- Verifies old errors don’t reappear
4) Staging
- Works and feels exactly like the production
environment
- Run performance tests
5) Production

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
3
Q

What are some logistical challenges to deploying a new application for the onsite IT team and the users?

A

Users: New application to learn

IT: New Servers?, New Software, Restart or interrupt of service

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
4
Q

What are two measures you should take once the application is deployed? (Baseline)

A

Establish security baselines

Measure integrity for secure baselines

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
5
Q

What might you need to provision an application?

A

To deploy:
Web server, database server, middleware server, user workstation configurations, certificate updates, etc.

Application software security (OS and application)

Network Security:
Secure VLAN, internal access, external access

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
6
Q

Define Scalability.

A

The ability to increase the workload in a given infrastructure.

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
7
Q

Define Elasticity.

A

The ability to increase or decrease available resources as the work load changes.

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
8
Q

Define Orchestration.

A

The process of automating the tasks needed to manage connections and operations of workloads on private and public clouds.

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
9
Q

Define Deprovisioning.

A

Dismantling and removing an application instance.

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
10
Q

Define Provisioning.

A

Bringing up an application instance.

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
11
Q

Define Stored procedures.

A

Procedures that limit the client interactions with databases. This prevents users from being able to modify client requests.

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
12
Q

Define Obfuscation in terms of application development.

A

Taking readable code and turning it into a format that is not readable. This prevents the user from being able to probe the code for security holes.

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
13
Q

What are some cons of reusing code? (Code reuse)

A

The new code will exhibit the same security flaws as the old code.

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
14
Q

Define Dead Code.

A

Code that provides no functionality. It might run calculations that aren’t used.

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
15
Q

How can you ensure that all that you are receiving only expected input? (Input validation)

A

Document all input methods (forms, fields, type)

Check and correct all input (normalization)
- A zip code should only be X characters
- Fix any data with improper input

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
16
Q

Define Server-side validation.

A

When the user input is validated by the server after it is received by the browser. The safer validation.

17
Q

Define Client-side validation.

A

The end-user’s app makes the validation decisions.

18
Q

Which is safer, server-side validation or client-side validation?

A

Server-side validation

19
Q

What is a major consequence of improper memory management?

A

Buffer overflows are a security risk that can be manipulated by a bad actor.

20
Q

What is a major risk of using third-party libraries and SDKs?

A

You don’t know how secure it is. You don’t know the code base.

21
Q

How can you protect an application against data exposure?

A

Check all input and output processes for data exposure

Encryption when stored

Encryption across the network

22
Q

Define Version Control.

A

The practice of tracking and managing changes to software code. Keep information concerning versions safe.

23
Q

Define Software Diversity.

A

Evolving one program into a population of diverse programs that all provide similar services to users, but with a different code. This diversity of code enhances the protection of users against one single attack that could crash all programs at the same time.

24
Q

Define Continuous Integration (CI).

A

Code is constantly written and merged into the central repository many times a day.

25
Q

How can you secure an application during continuous integration?

A

1) Basic set of security checks during development
- Documented security baselines as the bare
minimum
2) Large- scale security analysis during the testing
phase

26
Q

Define Continuous deliver/ deployment (CD).

A

Continuous delivery
- Automate the testing process
- Automate the release process
- Click a button and deploy the application
Continuous deployment
- Even more automation
- Automatically deploy to production
- No human integration of manual checks

27
Q
A