Chapter 6: Secure Coding

0.0(0)
studied byStudied by 0 people
0.0(0)
full-widthCall with Kai
GameKnowt Play
New
learnLearn
examPractice Test
spaced repetitionSpaced Repetition
heart puzzleMatch
flashcardsFlashcards
Card Sorting

1/51

encourage image

There's no tags or description

Looks like no tags are added yet.

Study Analytics
Name
Mastery
Learn
Test
Matching
Spaced

No study sessions yet.

52 Terms

1
New cards

Software Development Life Cycle

The process that a program goes through. It consists of the development, maintenance, and demise of a software system. The phases include analysis, design, coding, testing/verification, maintenance, and obsolescence

2
New cards

Feasibility Phase

The project phase that demonstrates that the client's requirement can be achieved, this phase identifies and evaluates the options to determine the one preferred solution.

3
New cards

analysis and requirements definition phase

customer input is sought to determine what the desired functionality is

4
New cards

Design Phase

Establishes descriptions of the desired features and operations of the system including screen layouts, business rules, process diagrams, pseudo code, and other documentation

5
New cards

Development Phase

Involves taking all of the detailed design documents from the design phase and transforming them into the actual system

6
New cards

testing and integration phase

-when development stage is complete to make sure it conforms to previous requirements of SDLC

7
New cards

User Acceptance Testing (UAT)

determine if the system satisfies the user and business requirements

8
New cards

Training and Transition Phase

acceptance, installation and deployment phase

9
New cards

Ongoing Operations and Maintenance

patching, updating, minor modifications

10
New cards

disposition phase

occurs when a product or system reaches the end of its life

11
New cards

Development Environment

An environment used to create or modify IT services or applications.

12
New cards

test environment

An environment containing hardware, instrumentation, simulators, software tools, and other support elements needed to conduct a test.

13
New cards

Staging Environment

A "production like" environment to test installation, configuration and migration scripts.

Performance testing, load testing, processes required by other teams, boundary partners, etc.

14
New cards

production environment

The environment for the actual system operation. It includes hardware and software configurations, system utilities, and communications resources. Also called the operational environment.

15
New cards

Waterfall Model

an SDLC approach that assumes the phases can be completed sequentially with no overlap

16
New cards

Spiral model

An abstract description of the systems life cycle where there are four defined quadrants - planning, risk analysis, use of design methods, client and management evaluation. Once one stage of development has gone full circle, the next please takes place, and so on until completion.

17
New cards

DevOps

Software development and information technology operations

18
New cards

toolchains

A collection of tools, to improve the coding, building and test, packaging, release, configuration and configuration management, and monitoring elements of a software development life cycle.

19
New cards

Continous Integration

A software development method where code updates are tested and committed to a development or build server/code repository rapidly

20
New cards

Continous Deployment (CD)

a software development model where application and platform updates are committed to production rapidly

21
New cards

Continuous validation

the extension of testing to support the continuous process of software development that occurs in DevOps

22
New cards

continous monitoring

Term used to describe a system that has monitoring built into it, so rather than monitoring being an external event that may or may not happen, monitoring is an intrinsic aspect of the action.

23
New cards

OWASP (Open Web Application Security Project)

Is an online community dedicated to web application security. This community works to create freely-available articles, methodologies, documentation, tools, and technologies that include web application flaws and a way to address and correct them.

24
New cards

Application programming interfaces

programming hooks, or guidelines, published by firms that tell other programs how to get a service to perform a task such as send or receive data

25
New cards

Pair Programming

agile software development technique in which two programmers work together at one workstation

26
New cards

Over the shoulder review

a form of peer review where two programmers sit down in front of the code and work through it together. One explains it to another.

27
New cards

Pass-Around Code Review

A code review process that relies on email or other distribution methods to distribute code for review.

28
New cards

Tool assisted code review

A type of peer review in which authors and reviewers use tools designed for peer code review.

29
New cards

formal code review

This type of code review is often called Fagan inspection and is common for projects that use the waterfall software development methodology. Requires a lot of meeting.

A modern adaptation is to have single meeting to review only the code changes. This way, the code can benefit from the live discussion amongst reviewers. This is sometimes known as a walkthrough.

30
New cards

Fagan inspection

A formal code review process that relies on specified entry and exit criteria for each phase

31
New cards

static code analysis

Analysis of source code carried out without execution of that software.Type of white ox tes

32
New cards

Dynamic Code Analysis

Examining code after the source code is compiled and when all components are integrated and running.

33
New cards

Fuzzing (Fuzz Testing)

A type of black box testing that enters random malformed data as inputs into software programs to determine if they will crash

34
New cards

Injection Vulnerability

A reference to a flaw in software and a common application vulnerability that would allow externally influenced (malicious) input to be used as part of the construction and subsequent execution of a command. Variations include SQL injection, OS command injection, and LDAP injection.

35
New cards

Blind SQL Injection

Is a form of SQL Injection that overcomes the lack of error messages. Without the error messages that facilitate SQL Injection, the attacker constructs input strings that probe the target through simple Boolean SQL expressions. The results are usually not visible to the attacker.

36
New cards

Blind Content-Based SQL Injection

the perpertrator sends input to the web application that tests whether the application is interpreting injected code before attempting to carry out an attack.

37
New cards

Lightweight Directory Access Protocol (LDAP)

A protocol used by various client applications when the application needs to query a database.

38
New cards

Extensible Markup Language (XML)

The markup language designed to transport and store data on the Web.

39
New cards

Cross-Site Scripting (XSS)

An attack that injects scripts into a Web application server to direct attacks at clients.

40
New cards

password authentication

Provides authentication of the user

41
New cards

Credential-stealing attacks

allow a hacker or penetration tester to authenticate directly to a service using a stolen account

42
New cards

Session Hijacking

An attack in which an attacker attempts to impersonate the user by using his session token.

43
New cards

man-in-the-middle attack

a hacker placing himself between a client and a host to intercept communications between them

44
New cards

Session Replay Attack

Attacker listens to the conversation between the user and the server and captures the authentication token of the user

45
New cards

Pass the hash

A password attack that captures and uses the hash of a password. It attempts to log on as the user with the hash and is commonly associated with the Microsoft NTLM protocol.

46
New cards

Unvalidated Redirects and Forwards

redirects: [A] can install malware or trick victims into disclosing. Attacks user

forwards: may allow access to control bypass. Attacks server

47
New cards

Unvalidated redirect

application allows redirection to any URL and attacker may use this to redirect the user to a malicious site

48
New cards

Insecure Direct Object Reference

Takes advantage of lack of checks to ensure a user requesting a resource actually has permissions to do so.

49
New cards

Directory Transversal/ Path Transversal

Read files from a web server that are outside of the websites file directory. Users shouldn't be able to browse the windows folder. Similar to Privilege escalation for for reading access.

50
New cards

Directory Transversal / Command Injection

allows the inclusion of opersators filesystem access controls dont properly restrict access to files stoed elsewhere on the server.

51
New cards

file inclusion attacks

An attack that executes the code contained within a file, allowing the attacker to fool the web server into executing arbitrary code.

52
New cards

Priviledge escalation

a network intrusion attack that takes advantage of programming errors or design flaws to grant the attacker elevated access to the network and its associated data and applications