Please enable JavaScript.
Coggle requires JavaScript to display documents.
SDLC - Coggle Diagram
SDLC
-
DBMS
-
-
-
Other terms
ODBC
Feature that allows applications to communicate with different types of databases without having to be directly programmed for interaction with each type.
Proxy between applications and backend database drivers, giving application programmers greater freedom in creating solutions without having to worry about the backend database system.
NOSQL
Many organizations are turning away from the relational model for cases where they require increased speed or their data does not neatly fit into tabular form. NoSQL databases are a class of databases that use models other than the relational model to store data.
-
Storage Types
Primary
-
Primary memory normally consists of volatile random-access memory (RAM) and is usually the most high-performance storage resource available to a system.
Secondary storage
consists of more inexpensive, nonvolatile storage resources available to a system for long-term use
magnetic and optical media, such as tapes, disks, hard drives, flash drives, and compact disc/digital versatile disc (CD/DVD) storage.
Virtual Memory
allows a system to simulate additional primary memory resources through the use of secondary storage
For example, a system low on expensive RAM might make a portion of the hard disk available for direct CPU addressing.
Virtual Storage
-
common example of virtual storage is the RAM disk that presents itself to the operating system as a secondary storage device but is actually implemented in volatile RAM
provides an extremely fast filesystem for use in various applications but provides no recovery capability.
Random Access Storage
allows the operating system to request contents from any point within the media. RAM and hard drives are examples of random access storage resources
Sequential Access Storage: requires scanning through the entire media from the beginning to reach a specific address. Eg. Magnetic tapes
Volatile Storage Loses
Loses its contents when power is removed from the resource. RAM is the most common type of volatile storage resource
-
Storage Threats
- Threat of illegitimate access to storage resources
Administrators should also protect against attacks that involve bypassing operating system controls and directly accessing the physical storage media to retrieve data. Use of an encrypted filesystem, which is accessible only through the primary operating system
Adequate controls to ensure that shared memory and storage resources are set up with fail-safe controls so that data from one classification level is not readable at a lower classification level. :
Amazon’s Simple Storage Service (S3), should take particular care to set strong default security settings that restrict public access and then to carefully monitor any changes to that policy that allow public access.
2.Covert channel attacks
Covert storage channels allow the transmission of sensitive data between classification levels through the direct or indirect manipulation of shared storage media
Complex covert storage channels might be used to manipulate the amount of free space available on a disk or the size of a file to covertly convey information between security levels.
Hierarchical Databases
A hierarchical data model combines records and fields that are related in a logical tree structure. This results in a one-to-many data model
Eg: NCAA March Madness bracket system and the hierarchical distribution of Domain Name System (DNS) records
Distributed Databases
Data stored in more than one database, but those databases are logically connected
Each field can have numerous children as well as numerous parents. Thus, the data mapping relationship for distributed databases is many-to-many.
-
DATABASE NORMALIZATION: The process of bringing a database table into compliance with normal forms is known as normalization. Each of the Normal forms 1NF, 2NF, 3NF adds requirements to reduce redundancy in the tables, eliminating misplaced data and performing a number of other housekeeping tasks
SDLC Life Cycle
-
- Functional Requirements Determination
- Control Specification Development
-
-
-
- Maintenance and Change Management
-
-
-
Software testing (product handle normal, valid input data, out-of-range values, other bounds and or conditions, stress testing)
Black Box Testing
testers dont have access to internal code, examines the program from a user perspective by providing a wide variety of input scenarios and inspecting the output.
Gray Box Testing
testers examine the software from a user perspective, analyzing inputs and outputs. They also have access to the source code and use it to help design their tests. They do not, however, analyze the inner workings of the program during their testing.
White Box Testing
examines the internal logical structures of a program and steps through the code line by line, analyzing the program for potential errors.
Static Testing
evaluates the security of software without running it by analyzing either the source code or the compiled application. Static analysis usually involves the use of automated tools designed to detect common software flaws, such as buffer overflows.
Dynamic Testing
common example of dynamic software testing is the use of web application scanning tools to detect the presence of cross-site scripting, Structured Query Language (SQL) injection, or other flaws in web applications.
-
Dynamic testing evaluates the security of software in a runtime environment and is often the only option for organizations deploying applications written by someone else
Dynamic tests on a production environment should always be carefully coordinated to avoid an unintended interruption of service.
Code Repositories
Eg: Github, Bitbucket, SourceForge
Take care not to include sensitive information in public code repositories. This is particularly true of API keys.
Developers write code that includes API keys and then upload that key to a public repository, anyone in the world can then gain access to their API key
Hackers have written bots that scour public code repositories searching for exposed API keys. These bots may detect an inadvertently posted key in seconds, allowing the hacker to quickly provision massive computing resources before the developer even knows of their mistake!
Developers should also be careful to avoid placing passwords, internal server names, database names, and other sensitive information in code repositories.
-
-
Tools
GANTT Charts
-
Graphical illustration of a schedule that helps to plan, coordinate, and track specific tasks in a project
PERT
Program Evaluation Review Technique (PERT) is a project scheduling tool used to judge the size of a software product in development and calculate the standard deviation (SD) for risk assessment.
PERT relates the estimated lowest possible size, the most likely size, and the highest possible size of each component.
PERT is used to direct improvements to project management and software coding in order to produce more efficient software.
As the capabilities of programming and management improve, the actual produced size of software should be smaller.
-
DevOps
-
DevOps closely aligned with the Agile development approach and aims to dramatically decrease the time required to develop, test, and deploy software changes