Mitigate Software Vulnerabilities and Attacks Flashcards
The processes of planning, analysis, design, implementation, and maintenance
that governs software and systems development
Software Development Life Cycle (SDLC)
A software development model where the phases of the SDLC cascade so that
each phase will start only when all tasks identified in the previous phase are
complete
Waterfall Method
A software development model that focuses on iterative and incremental
development to account for evolving requirements and expectations
Agile Method
Microsoft’s security framework for application
development that supports dynamic development processes
Security Development Life (SDL)
A security analyst receives no privileged information about the software
Black Box Testing (or Blind Testing)
A security analyst receives privileged information about the software, such as the
source code and credentials
A security analyst receives no privileged information about the software
A security analyst receives partial disclosure of information about the software
Gray Box Testing
A charity and community that publishes a number of secure
application development resources
Open Web Application Security Project (OWASP)
A company specializing in cybersecurity and secure web
application development training and sponsors the Global
Information Assurance Certification (GIAC)
SysAdmin, Network, and Security (SANS) Institute
Attacks against software code attempt to allow the execution of the attacker’s code
Execution and Escalation
A vulnerability that allows an attacker to run their own code or a
module that exploits such a vulnerability
Arbitrary Code Execution
A vulnerability that allows an attacker to transmit code from a remote
host for execution on a target host or a module that exploits such a
vulnerability
Remote Code Execution
Occurs when a user accesses or modifies specific resources that they
are not entitled to normally access
Privilege Escalation
A class of malware that modifies system files (often at the kernel level) to conceal
its presence
Rootkit
A kernel mode rootkit is able to gain complete control over the
system
Kernel mode
A user mode rootkit might have administrator-level privileges
but uses OS features for persistence
User mode
An attack in which data goes past the boundary of the destination buffer and
begins to corrupt adjacent memory
Buffer Overflow
Occurs when an attacker fills up the buffer with NOP so that the return
address may hit a NOP and continue on until it finds the attacker’s code
to run
“Smash the Stack”
A software vulnerability where input is allowed to overwrite memory locations
within the area of a process’ memory allocation used to store dynamically-sized
variable
Heap Overflow
An attack in which a computed result is too large to fit in its assigned storage
space, which may lead to crashing or data corruption, and may trigger a buffer
overflow
Integer Overflow
A software vulnerability when the resulting outcome from execution processes is
directly dependent on the order and timing of certain events, and those events
fail to execute in the order and timing intended by the developer
Race Conditions
A software vulnerability that occurs when the code attempts to remove the
relationship between a pointer and the thing it points to
Dereferencing
Errors could be caused by invalid user input, a loss of network connectivity, or another
server/process failing
Improper Error Handling
Coding methods to anticipate and deal with exceptions thrown during execution
of a process
Error Handler
Vulnerabilities often arise from the general design of the software code
Design Vulnerabilities
Any code that is used or invoked outside the main program development process
▪ Code Reuse
▪ Third-party Library
▪ Software Development Kit (SDK)
Insecure Components
Any program that does not properly record or log detailed enough information for
an analyst to perform their job
Insufficient Logging and Monitoring
Any program that uses ineffective credentials or configurations, or one in which
the defaults have not be changed for security
Weak or Default Configurations
An application where part of the application is a client software program that is
installed and run on separate hardware to the server application code and
interacts with the server over a network
Client/Server Applications
An application which uses a generic web browser as a client and standard
network protocols (HTTP/HTTPS) to communicate with the server
Web Applications
An application which is deployed and run on a smartphone, tablet, or other
mobile operating system
Mobile Applications
An application which is designed to run on a dedicated hardware platform
Embedded Applications
Generally considered a type of embedded application that contains the block of
embedded code that runs first at startup, performing “low-level” input/output
device functions, plus bootstrapping of an OS or application
Firmware
A type of embedded application commonly used in mobile devices which contains
integrated CPU, memory, graphics, audio, network, storage controllers, and
software on one chip
System-on-Chip (SoC)