Software Development Security (DEV) Flashcards
ACID test
set of best practices for programmers to seek in all application or database design: Atomicity, Consistency, Isolation, Durability
Active X
Authenticode, relies on digital signatures, annoying dialogs people click away
Application Programming Interface
a library of commands maintained by a system for other programs to use, provides consistency and integrity for the programs
Assembler
is the tool that converts a high level language into machine language
Assembler - DEV
Converts machine-code into binary machine instructions. Translate assembly language into machine language.
Assembly Code
low-level programming language with a few simple operations this code is harder to maintain, less readable, and has the potential to be substantially longer
Atomicity
indivisible, data field must contain only one value that either all transactions take place or none do
Backdoor
Program installed by an attacker to enable him to come back on a later date without going through the proper authorization channels, maintenance hook for developers sometimes
Behavior
Results exhibited by an object in response to a msg
Big Endian
Most significant byte is stored first. SPARC uses this architecture.
Blue Screen of Death
When a Windows system experiences a dangerous failure and enters a full secure state (reboot)
Boot sector
Moves or overwrites the boot sector with the virus code
boot sector infector
Attacks the MBR - the portion of bootable media that the computer uses to load the operating system during the boot process. MBR viruses store the majority of their code on another portion of the storage media
Botnet
organized group of compromised computers
Buffer
an area of memory allocated with a fixed size. It is commonly used as a temporary holding zone when data is transferred between two devices that are not operating at the same speed or workload.
Buffer Overflow
Occurs when an area that has been allocated a specific storage space has more data copied to it than it can handle. Two classes include heap and stack overflow.
Byte Code
program code that is in between the high level language code understood by humans and machine code read by computers.
Candidate Key
An attribute that is a unique identifier within a given table, one is chosen to be the primary and the others are alternate. Subset of attributes that can be used to uniquely identify any record in a table. No two records in the same table will ever contain the same values for all attributes. Each table may have one or more, which are chosen from column headings.
CASE
Tool for development, if concerned about security
Change Management Process
a business managers and software engineer’s process to protect the organization from development-related issues. Has three components: Request, Change, and Release Control
Checkpoint
part of a transaction control for a database which informs the database of the last recorded transaction
Class
OOP concept of a template that consist of attributes and behaviors
compiler
converts source code to an executable
Cleanroom
Write code correctly first time, quality thru design
Closed source
Is an opposing coding stance that keeps source code confidential. Can be reverse engineered or decompiled
Closed system
Is one that is proprietary with no third-party product support, does not define if it’s code can be viewed
Code Review
Peer-driven process that includes multiple developers, may be automated, may review several hundred lines an hour, done after it’s developed
Cohesion
Ability to perform without use of other programs, strength of the relationship between the purposes of methods within the same class
COM, Common Object Model
Support exchange of objects amongst programs. This used to be called OLE. DCOM is the network variant (distributed)
Companion virus
infected code is stored not in the host program, but in a separate files. Takes advantage of search order of an OS
Compiler
converts source code to an executable
Compiler - DEV
Translates higher level program into an executable file
Compression
Appended to executables
Configuration Audit
Periodic, should be conducted to ensure that the actual production environment is consistent with the accounting records and that no unauthorized changes have taken place.
Configuration Control
Ensures that changes to software versions are made in accordance with policies. Updates can be made only from authorized distributions in accordance with those policies.
Configuration Identification
Administrators document covered software products throughout the organization.
Configuration Management Process
Used to control the version( s) of software used throughout an organization and formally track and control changes
Consistency
property that data is represented in the same manner at all times
CORBA, Common object request
Broker architecture enables programs written in different languages and using different platforms and OS’s through IDL (Interface Definition Language)
Coupling
Effect on other modules. Level of interaction between objects
Covert channels
Is a way to receive information in an unauthorized manner, information flood that is not protected by a security mechanism
Covert Storage Channel
Processes communicate via storage space on the system; Writing to storage by one process and reading by another of lower security level.
Covert timing channel
One process relays to another by modulating its use of system resources. Typing rhythm of Morse Code is an example
Cross-site scripting
malware that uses the trust on a website to redirect users to untrusted websites which captures data or installs more malware
CSRF (XSRF)
Cross site request forgery: attacks exploit the trust that sites have in a user’s browser by attempting to force the submission of authenticated request to third-party sites.
Dangling Pointer
false memory reference
Data dictionary
a description of a database
Data Diddler
malware that makes small random changes to many data points
Data Hiding
a feature of object oriented programming languages. Classes and variables may be marked private, which restricts outside access to the internal workings of a class.
Data marts
small data warehouse
Data Type
specifies the way data will be stored in memory
Database Contamination
z-Mixing data with different classification levels and/ or need-to-know requirements and is a significant security challenge. Often, administrators will deploy a trusted front end to add multilevel security to a legacy or insecure DBMS
Database Partitioning
Process of splitting a single database into multiple parts, each with a unique and distinct security level or type of content
Data warehouse
a copy of transaction data, designed for querying and reporting
Databases
a collection of information designed to reduce duplication and increase integrity
DB main components
Schemas, blueprints; tables, views
DBMS
Refers to a suite of software programs that maintains and provides controlled access to data components stored in rows and columns of a table
DCL
Data Control Language: subset of SQL used to control access to data in a database, using GRANT and REVOKE statements
DDE
Dynamic Data Exchange: enables applications to work in a client/server model by providing the inter-process communications mechanism (IPC)
DDL
Data Definition Language: defines structure and schema
Deadlock
a condition in which neither party is willing to stop their activity for the other to complete
Delegation
Forwarding a request to another object
Denial of Service
an availability attack, to consume resources to the point of exhaustion
DevOps
a combination of Development and Operations, symbolizing that these functions must merge and cooperate to meet business requirements
Directory Traversal Attack
Attempt to force the web application to navigate up the file hierarchy and retrieve a file that should not normally be provided to a web user
Dirty Reads
When one transaction reads a value from a Db that was written by another transaction that did not commit, Db concurrency issue
Disassembler
software tool is used to convert compiled programs in machine code to assembly code
Distributed Denial of Service
an availability attack, to consume resources to the point of exhaustion from multiple vectors
DML
Data Manipulation Language: view, control and use the database via VIEW, ADD, MODIFY, SORT and DELETE commands
Durability
what is will remain, persistence
Dynamic Lifetime Objects
Created on the fly by software in an Object Oriented Programming environment. Preassembled code that is a self-contained module
Dynamic Link Library
a programming component that runs on Win32 systems and contains functionality that is used by many other programs
Encapsulation
a feature of object-oriented programming, provides a logical structure to a program and allows for easy methods of inheritance
Expert Systems
Seek to embody accumulated knowledge on a particular subject and apply it in a consistent fashion to future decisions. Has two main components: the knowledge base and the inference engine.
Exploit
causes a software vulnerability to be triggered and leveraged by the attacker
Fifth-Generation Languages (5GL)
Allow programmers to create code using visual interfaces
First-generation languages (1GL)
Include all machine languages
Foreign Key
Represents a reference to an entry in some other table that is a primary key there. Link between the foreign and primary keys represents the relationship between the tuples. Enforces referential integrity Main Components of a Db using Db - Schemas; blueprints - tables - views
Fourth-generation languages (4GL)
Attempt to approximate natural languages and include SQL, which is used by databases
Function
a miniature program
Functional Analysis and Planning
Define need, requirements, review proposed security controls
Gantt Chart
Bar type; shows the interrelationships over time between projects and schedules. Graphical illustration of a schedule that helps plan, coordinate, and track specific project tasks. WBS a subpart
Hardware segmentation
Is similar to process isolation in purpose. Difference is that hardware segmentation enforces these requirements through the use of physical hardware controls rather than the logical process isolation controls imposed by an operating system
Heap
an area of memory utilized by an application and is allocated dynamically at runtime. Static variables are stored on the stack along with data allocated using the malloc interface.
Heuristic ANTI-Virus
Behavioral can detect new malware
High coupling
Module largely affects many more modules
HOAXES
False warnings
Hotfix, update, Security fix
Single patch, patches provide updates to operating systems and applications
HTTP Response Splitting
uncheck data input which results in redirection
Incorrect Summaries
When one transaction is using an aggregate function to summarize data stored in a Db while a second transaction is making modifications to a Db, causing incorrect information
Inference
to jump to a conclusion
Inheritance
object-oriented organization and encapsulation allow programmers to easily reuse previously written code. It saves time since programmers do not have to recode previously implemented functionality.
Instance
OOP concept of an object at runtime
Integer Wrapping
in the case of unsigned values, this occurs when an overly large unsigned value is sent to an application that “passes” the integer back to zero or a small number
Interpreter
line by line translation from a high level language to machine code
Interpreter - DEV
Reads higher level code, one line at the time to produce machine instructions
Isolation
another subject cannot see an ongoing or pending update until it is complete
Java
modern, object oriented programming language. It combines a similar syntax to C and C++ with features such as platform independence and automatic garbage collection.
JavaScript
Interpreted language that does not make use of a complier to transform code into an executable state. Java, C, and C++ are all compiled languages
Kernel Mode
Used by processor to execute instructions from OS
Layering processes
Implement a structure similar to the ring model used for operating modes and apply it to each operating system process
Little Endian
the least significant byte is stored first
Logic bomb
a program that waits for a condition or time to occur that executes an inappropriate activity
Logic Bomb/Code Bomb
Executes when a certain event happens (like accessing a bank account or employee being fired) or a data/time occurs
LOKI
Tool used for covert channel that writes data directly after the ICMP header
Lost Updates
When one transaction writes a value to the Db that overwrites a value needed by transactions that have earlier precedence
MAC
the hardware address of a particular computer system
Machine language
program instructions based upon the CPU’s specific architecture
Macro Virus
Most common in office productivity documents .doc/.docx
Malformed input
inappropriate data
Malloc
a function call dynamically allocates n number of bytes on the heap. Many vulnerabilities are associated with the way this data is handled.
Man-made Threats
Bombing, strikes, toxin spills
MDM, Mobile device management
Software solution to manage the myriad mobile devices that employees use to access company resources. Goals are to improve security, provide monitoring, enable remote management, and support troubleshooting