CISSP Domain 8 Flashcards
Aggregate Vs Inference
Aggregate requires multiple small pieces
Inference requires a single data point
Waterfall method
Very linear, each phase leads
Once phase done can’t go back
Sequential steps
Can be improved by adding validation and verification
Type of program language
Machine language
Assembly language
High level language
Machine language
Man had to manually calculate and allot memory address
Complete binary
Assembly language
Users mnemonic like ADD, PUSH, POP instead of binary codes
Uses assemblers to convert assembly codes to binary codes
High level language
Uses abstract statements like Excel IF - Then- ELSE function
It’s processor independent
Code written in high level language can be converted to machine language using compiler and interpreters
4 Gen - Very high level language
More abstraction
Natural language
Eliminate need of programming expertise like AI
Assemblers Vs Compilers Vs Interpreters
No matter what language is used institutions and data have to end up in binary for processor to understand
Interpreter - Convert high level to machine level code
What is libraries used for?
Software libraries contains reusable code
Integrated development environment
Environment where they can write their code, write it, test it, debug it and compile it
What happens in OOP ? And how does it work?
Devloper doesn’t develop each and every object
Works with class, subject and objects
Class - Set of attributes associated with it, when an object is generated, it inherits these attributes example: Furniture
From security pov provides a black box
Polymorphism
Characteristic of an object that allows is to respond with different behaviours to same message or method because of change in external conditions
Properties of OOP
Encapsulation
Messaging - Communication between objects
Reusability
Abstraction
Cohesion
How many different types of tasks a module carry out
Should high in nature
Coupling
How much interaction one module requires to carry out it’s tasks
Should be low in nature
Steps in OOP ( FYI)
Devloper creates a class which outlines specifications
Object is initiated it inherits these attributes
User inputs in a software - Addition
Objects is initiated
Object A interacts with B using API
Input validation - Limit check and Escaping input
Remove risky inputs
Always occurs on the server side
Properties of session management
Cookies to be secure
Expire after a certain time and user to authenticate again
Identifiers to be long and randomly generated
Error handling
Devloper love long detailed error messages but those might contain sensitive info hence disable it
SDLC steps
Conceptual definition
Functional requirements determination
Control specifications devlopment
Design review
Coding
Code Review walk through
System test review
Maintanence and change management
Conceptual definition
Project charter - Top level understanding
Designers identity classification of data to be processed
Functional requirements determination
How parts of system interoperate
Characteristics:
Input
Behaviour
Output
Control specifications determination
Analyse system from security perspective
- Access control
- Confidentiality using data encryption
- Audit trail - Accountability
- Availability and fault tolerance
Design review
Once functional and control is completed let system designers do their thing
Code Review walk through
Devloper starts writing code
Testing
System testing
Regression testing
UAT
Then deployed
Maintanence and change management
Maintanence tasks
Spiral model
prototype and incremental model
Determine objectives
Evaluate alternatives, identify and resolve risks
Devlop and verify next level product
Plan next phases
Agile software development - 12 principle
Satisfying customer
Welcome change
Devlop working software, couple of weeks
Have face to face conversation
Working software primary measure of progress
Agile methodology
Scrum
Kanban
RAD
AUP
XP
Scrum
Daily team meetings
Scrum master
Sprint: Organize work into shorter sprints of activity
Short term objectives that contribute to broader goals of the project
CMMI
Initial - Chaotic
Repeatable - Reuse of code
Defined- Operate what is documented
Managed - Quantitative Process management
Optomizing - Continuous improvement
Software Assurance Maturity model business functions
Governance - Stratergy and metrics , policy and compliance, education and guidance
Design - Threat assessment , security requirements and security architecture
Implementation - Secure build, Secure deployment, Defect management
Verification - Architecture analysis, Req driven testing, security testing
Operations - Incident management, environment management, operational management
IDEAL model
Initiation
Diagnosis: Current state of org and make general recommendation of change
Establishing
Acting: Walk the talk
Learning
Change management process and 3 basic components
Request change
Change control: test and analyse
Release control: Only approved changes into prod
Also include acceptance testing
Software configuration management
Control the version of the software used throughout an organisation and to formally track and control changes to software configuration
Configuration identification
Configuration control: Changes to software in accordance with change control and configuration management policies. Updates
Configuration status accounting - Formalized procedures to keep track of all authorised Changes they takes place
Configuration audit - Periodic audit
Devops model Vs CI/CD model
Software development+ QA+ Operations
Often deploy code several times per day
Code roll out dozens or several times per day: - Security also should move
1.High degree of automation
2. Code repositories
3. SCM process
4. Movement of code between development, testing and prod environments
API’s and what a devloper needs to consider ?
Bypass traditional web pages and interact directly with underlying service through function calls
Secure authentication and Authorization to make specific call
Software testing when is best time ? And types of test
Aa models are designed
Reasonableness check: Inputs gives desired output
Misuse case test: Code will perform under normal activity and when subjected to extreme conditions
White box, Grey box and Black box testing
Access to source code, logical structures of program, inner workings of program
Have access to source code+ analyse inputs and outputs
Do not have access to source code
Code repositories
Central storage point for developers
Version control
Bug tracking
Web hosting
Release management
Used to manage and distribute code libraries