Domain 8: Software Development Security Flashcards
Types of programming languages
- Interpreted Languages: such as Python, R, and Javascript. This is where the source code itself is distributed and the interpreter executes the source code on their system.
- Compiled Languages: Such as C and Java, they must be compiled before use in an executable
Key phases of SDLC
5 Key Phases:
- Initiation
- Development/acquisition
- Implementation/assessment
- Operation/maintenance
- Disposal
What is initiation (SDLC)?
Process of determining feasibility, cost, risk analysis, getting management approval, and establishing basic security objectives
What is development/acquisition phase (SDLC)?
Define security architecture, perform risk assessment, determine initial security controls and countermeasures, and document security controls and concept of operations
What is implementation/assessment (SDLC)?
Test, evaluate and deploy the new system into operations. This includes performing a security assessment to determine security posture, implementing corrective actions to weak security controls, and getting certification and accreditation for the new system.
What is the software development life cycle? (conceptually)
A process designed for the planning, creating, testing, and deploying of an information system.
What is operations/maintenance phase (SDLC)?
System maintenance, includes readiness review to ensure everything is ready to go. Also focuses on configuration management and change control.
What is disposal phase (SDLC)?
System is decommissioned or taken out of operations for termination, upgrade, or replacement. Focus is on the planning for the transfer, protection, or proper destruction of documentation, hardware, and/or software.
Three key phases of Change Management process?
- Request control,
- Change control
- Release control
Explain Request Control
Provides an organisation framework within which users can request modifications, managers can conduct cost/benefit analysis, and developers can prioritise tasks
Explain Change Control (Change Management)
Provides an organised framework within which multiple developers can create and test a solution prior to rolling it out into a production environment.
Explain Release Control (Change Management)
Once the changes are finalised, they must be approved for release through the release control procedure. Focus is on removing programming aides (such as back doors) and ensure acceptance testing is performed before release.
What is the purpose of the Configuration Management Process?
Used to control the version(s) of software used throughout an organisation and formally track and control changes.
Define Configuration Identification (Configuration Management process)
Administrators document the configuration of covered software products throughout the organisation
Define Configuration Control (Configuration Management process)
Ensures that changes to software versions are made in accordance with the change control and configuration management policies. Updates can be made only from authorised distributions in accordance with these policies.
Configuration Status Accounting
Formalised procedures are used to keep track of all authorised changes that take place.
What is a Configuration Audit?
Periodic configuration audit should be conducted to ensure that the actual production environment is consistent with the accounting records and that no unauthorised configuration changes have taken place.
Define Software Capability Maturity Model (SW CMM)
It is a 5 level software development maturity model that describes procedures, principles, and practices that underlie software development process maturity.
Define 5 levels of SW CMM
- Initiating: competent people, informal processes, ad-hoc, absence of formal process
- Repeatable: project management processes, basic life-cycle management processes
- Defined - engineering processes, presence of basic life-cycle management processes and reuse of code, use of requirements management, software project planning, quality assurance, configuration management practices.
- Managed: product and process improvement, quantitatively controlled
- Optimising: continuous process improvement works with an IDEAL model
Define IDEAL model
Organizational improvement tool/model, including:
I: Initiate, begin effort. Outline business reasons behind change, support is built for the initiative, and the appropriate infrastructure is put in place.
D: Diagnose, perform assessment of current state and make recommendations.
E: Establish an action plan
A: Implement action plan, including develops solutions and then tests, refines, and implements them.
L: Leverage assessments, and continuously improve
Define Gantt Chart and PERT
Gantt Charts are a bar chart for project planning timings (including when things are planned to happen). While, PERT is Program Evaluation Review Technique for project scheduling used to judge the size of a software product in development and calculate the standard deviation (SD) for risk assessment. PERT is used to direct improvements to project management and software coding in order to produce more efficient software.
Define DevOps
An approach which aims to resolve issues by bringing the three functions of Software Development, Quality Assurance, and IT Operations together. It is not focused on security.
Types of Software Development Models
- Simplistic: model of continual steps in order
- Waterfall: System Requirements –> Software Requirements –> Analysis –> Program Design –> Coding –> Testing –> Operations and Maintenance
- Waterfall including Validation and Verification (V&V):. Validation = doing the right job, and verification=doing the job right. This model allows the validation and verification of software at all levels during production.
- Spiral Model: Encapsulates a number of iterations of the Waterfall model, including, determining objectives, alternatives, and constraints –> evaluate alternatives, identify and resolve risks –> plan next phases –> and develop and verify next-level product.
- Cleanroom: write code correctly first time, quality through design
Agile Software Development
It is an approach to delivering software, with working software being a primary measure of success
Define database
General mechanism for defining, storing and manipulating data without writing specific programs
DBMS
Database Management System, is a suite of software programs that maintains and provides controlled access to data components stored in rows and columns of a table
Types of databases
Hierarchical= tree (sons with only one parent), one to many relationship
Network=tree (all interconnected)
Relational= one-to-one relationships, has has tuples and attributes (rows and columns)
DDL and DML
DDL=Data definition language which defines strucutre and schema
DML=Data Manipultion Manguage: view, manipulate, and use the database via VIEW, ADD, MODIFY, SORT, and DELETE commands
Degree of DB
Number of attributes (columns) in table
Tuple
Row or record
DDE
Dynamic Data Exchange: enables applications to work in a client/server model by providing the inter-process communications mechanism (IPC)
DCL
Data control language: subset of SQL used to control access to data in a database, using GRANT and REVOKE statements
Semantic integrity
Makes sure that the structural and semantic rules are enforced on all data types, logical values that could adversely affect the structure of the database. Only allows allowable data to be entered into a row.
Referential integrity
All foreign keys reference existing primary keys
Candidate Key
An attribute (column) that is a unique identifier, that could be chosen to be a primary key
Primary Key
A unique attribute to identify a record in a database.
Foreign Key
Represents a record in another table
Main components of DB
Schemas (blueprints), tables, and views
Incorrect summaries
When one transaction is using an aggregate function to summarise data stored in a DB while a second transaction is making modifications to a DB
Dirty reads
When one transactions reads a value from a DB that was written by another transaction that did not commit
Lost updates
When one transaction writes a value to the DB that overwrites a value needed by transactions that have earlier precedence
Dynamic Lifetime Objects
Objects created on the fly by software in a OOP environment. An object is preassembled code that is a self-contained module.
ODBC
Open database connectivity is a DB feature that allows applications to communicate with different types of DBs without having to be directly programmed for interaction with each type. ODBC acts as a proxy
Multilevel security
Keeping data with different security requirements separate
Database contamination
Mixing data with different classification levels andor need to know requirements and is a significant challenge.
Database partitioning
process of splitting a single database into multiple parts, each with a unique and distinct security level or type of content
Polyinstantiation
Occurs when two or more rows in the same relational database table appear to have identical primary key elements but contain different data for use at differing classification levels. it is often used as a defense against inference attacks
What is the ACID Model? (conceptually)
Critical database theory model to create reliable databases
Atomicity
Database transactions must be atomic - they must be an ‘all or nothing’ affair. If any part of the transaction fails, the entire transaction must be rolled back as if it never occurred.
Consistency
All transactions must begin operating in an environment tht is consistent with all of the database’s rules (for example, all records must have a unique primary key).
Isolation
Transactions operate separately from each other, in order.
Durability
Database transactions must be durable, once they are committed to the database, they must be preserved, such as through the use of backups
Expert Systems: Knowledge Management
Embody accumulated knowledge of experts on a particular subject and apply it in a consistent fashion to enter decisions. Expert system = inference engine + knowledge base - degree of uncertainty
Two components of expert system
Knowledge base and inference engine
Knowledge base
Set of rules such as if-then statements
Inference system
Analyses information in the knowledge base to arrive at the appropriate decision.
Two modes of expert systems
Forward Chaining: acquires info and comes to a conclusion
Backward Chaining: backtracks to determine IF a hypothesis is correct