chap 6 - Software development security Flashcards
define Threat model approach STRIDE (6 steps)
- Spoofing
- Tampering
- Repudiation
- information disclosure
- Denial of service
- Elevation of privilege
what are type of threat modeling approach
- STRIDE
- PASTA
- Linddun
- Trike
what is the threat surface
the total of all of these crossing points for given perimeter or boundary. each boundary crossing is an opportunity to apply controls to mitigate attacks
what is a Simple Waterfall Software Lifecycle Development (SDLC)
the waterfall SDLC is the traditional software development methodology
phase incl.
1. concept (need identified)
2. requirement definition
3. system design
4. software and data systems coding
5. unit, subsystem and systems testing
6. acceptance testing
7. deployment to operational use
what is a source code
set of statements written in human-readable form that are implementation of given design
what is executable code (or object code)
is a binary representation of the machine language instruction set that the CPU directly execute
what is an intermediate code
in between source code and executable code
what is arbitrary code
attacker can fool the CPU into executing a different set of instructions then design for
what are the programming language generations
generation 1 : simple instruction directly to CPU
generation 2: symbols as abbreviation for major instructions
generation 3: words as part of commands
generation 4: very high-level language / report generation
generation 5: constraint-based or logic programming -> failed in 90s
what are Object-oriented language key characteristics
- encapsulating: data hiding
- inheritance: define subclass of data based on common characteristics
- polymorphism: Object can take many forms based on how it is used
- different data type: different data type can be processed differently
what is polyinstantiation
prevent inference possibilities by creating a new version of an object, using the same identifier or key
what is “distributed object-oriented systems”
distributed computing allows the sharing of resources
what is an example of approach of distributed architecture based on distributed object
COBRA / RMI / EJB / DCOM
COBRA is a set of standards that addresses the need for interoperability between hardware and software residing in different machine across network
COBRA uses an ORB (object request broker) security system to find objects
what does COBRA security service support
- access control
- data protection
- non-repudiation
- auditing
what is the IT supply chain (who write you source code)
Trusted
- major hardware & systems vendors
- applications software providers
- 3rd party developers
- in-house developers
Less secured/trustworthy
- Open-source providers
- citizen programmers
- mobile code
what are type of coding standard library, software reuse
- OSs and hardware libraries
- programming language libraries (IDE)
- development framework
- in-house, project specific, etc libraries
- third-party, open-source libraries from reputable sources
- third-party, open-source from unknown sources
what are common exploitable software source code errors
- Buffer overflow: buffer is contiguous area of storage used when transferring data
- Malformed input attack: leverage design errors in software by providing inconsistent data inputs to induce app malfunction
3.
what id defense programming
translates the business logic about acceptable and harmful input into code, which allow processing of the acceptable, but safely blocks attempts to input (or inject) harmful inputs
what is a covert channel
covert channel or cover path is a communication pathway between two or more processes that transfers information in ways that violate some security policy or requirement
what are types of covert channels
- covert storage channels (CSCs)
- Covert timing channels (CTCs)
what are common software attack vectors
- Social engineering
- TOCTOU (time of check vs time of use)
- Race condition : exist when 2 tasks each depend upon the other’s successful completion for their own input
- between the lines attack: tap lines and false data inserted
- trapdoor and backdoor: hidden mechanism to bypass security
what are threats to database and data warehouse architecture
- aggregation & inference
- bypass attack
- compromising database views used for access control
- exploits against alternative access routes
- data contamination
- deadlocking
- DoS
- Improper modification of information
- interception of data
- query attack
- physical or direct logical access to the server
- TOCTOU
- web-based attack
- unauthorized access
what is a data lake
refer to large collections of data that has not been put into a common format or structure for a data warehouse
what is a data farm
where predictive analytics and other techniques are used to generate data in between known or observed data points
what is a Database management system (BDMS)
a suite of application programs that typically manages database and their environment
what are the minimum requirements of any database model
- transaction persistence
- fault tolerance and recovery
- sharing by multiple users
- security controls
what is the difference between database model and data model
database model: build specific database to meet business needs (DBMS)
data model: specific type of data in terms of logical structure, type values, inherent meaning
what are type of database model
- hierarchical DB model (oldest)
- network DB mgmt model (COBOL / CODASYL)
- relational DB mgmt model (think excel table witch common factor)
- Object-oriented DB model
- Achieving data integrity in different DB model
what are 2 advantages of network DB mgmt model
- High-performance, high-volume storage mgmt
- graph database
what are common database interface language
- Structure query language (SQL)
- Markup Language & DB (HTML)
what are the 3 sublanguages of SQL
- data definition language (DDL)
- Data Manipulation Language (DML)
- Data Control Language (DCL)
what are common connecting application to database
- Extensible Markup Language (XML)
- Open DB Connectivity (ODBC)
- Java DB connectivity (JDBC)
- Object linking and embedding DB (OLE DB)
how are database access via internet
APIs -> application programming interfaces
others:
- tiered application approach
- ADO
- metadata
- OLAP
what are common mistakes making website vulnerable
- attempting to reinvent access control
- attempting to reinvent design
- hard coding of authentication
- poor access control mgmt
- rushing website / new apps