CHAPTER 10_Software Development Security Flashcards
Explanations: Object-Oriented Concepts
Software development used to be done by classic input-processing-output methods. This development used an information flow model from hierarchical information structures. Data were input into a program, and the program passed the data from the beginning to end, performed logical procedures, and returned a result.
Emphasis: System Development Life Cycle
System Development Life CycleA life cycle is a representation of development changes. A person is conceived, born, matures (baby, toddler, teenager, middle age, elderly), and dies. Such is the circle of life. Projects have a life cycle: initiation, planning, execution and controlling, and closure. A system has its own developmental life cycle, which is made up of the following phases: initiation, acquisition/development, implementation, operation/maintenance, and disposal. Collectively these are referred to as a system development life cycle (SDLC). Here are the basic components of each phase:
Emphasis: Authentication and Access Control
Authentication and Access ControlIf you’ve used the Internet for banking, shopping, registering for classes, or working from home, you most likely logged in through a web-based application. From the consumer side or the provider side, the topic of authentication and access control is an obvious issue. Consumers want an access control mechanism that provides the security and privacy they would expect from a trusted entity, but they also don’t want to be too burdened by the process. From the service providers’ perspective, they want to provide the highest amount of security to the consumer that performance, compliance, and cost will allow. So, from both of these perspectives, typically usernames and passwords are still used to control access to most web applications.
Emphasis: Web Application Security Principles
Web Application Security PrinciplesConsidering their exposed nature, web sites are primary targets during an attack. It is, therefore, essential for web developers to abide by the time-honored and time-tested principles to provide the maximum level of deterrence to attackers. Web application security principles are meant to govern programming practices to regulate programming styles and strategically reduce the chances of repeating known software bugs and logical flaws.
Bullets: Development
Programming software code to meet specifications laid out in the design phase
Bullets: V-model
Emphasizes verification and validation at each phase and testing to take place throughout the project, not just at the end.
Bullets: Third-party evaluations
Reviewing the level of service and quality a specific vendor will provide if the system is to be purchased.
Explanation Bullets: A database is the mechanism that provides structure for the data collected. The actual specifications of the structure may be different per database implementation, because different organizations or departments work with different types of data and need to perform diverse functions upon that information. There may be different workloads, relationships between the data, platforms, performance requirements, and security goals. Any type of database should have the following characteristics:
- It centralizes by not having data held on several different servers throughout the network.
- It allows for easier backup procedures.
- It provides transaction persistence.
- It allows for more consistency since all the data are held and maintained in one central location.
- It provides recovery and fault tolerance.
- It allows the sharing of data with multiple users.
- It provides security controls that implement integrity checking, access control, and the necessary level of confidentiality.
Bullets: Parameter validation
The values that are being received by the application are validated to be within defined limits before the server application processes them within the system.
Explanation Bullets: As it pertains to security, the following items should be accomplished in this phase:
- Security requirements
- Security risk assessment
- Privacy risk assessment
- Risk-level acceptance
Explanation Bullets: 17. B. The characteristics and their associated definitions are listed as follows:
- Modularity Autonomous objects, cooperation through exchanges of messages.
- Deferred commitment The internal components of an object can be redefined without changing other parts of the system.
- Reusability Other programs using the same objects.
- Naturalness Object-oriented analysis, design, and modeling map to business needs and solutions.
Bullets: Mobile code
Code that can be transmitted across a network, to be executed by a system or device on the other end.
Bullets: Statement of Work (SOW)
Describes the product and customer requirements. A detailed-oriented SOW will help ensure that these requirements are properly understood and assumptions are not made.
Bullets: Repeatable
A formal management structure, change control, and quality assurance are in place. The company can properly repeat processes throughout each project. The company does not have formal process models defined.
Emphasis: Spyware and Adware
Spyware and AdwareSpyware is a type of malware that is covertly installed on a target computer to gather sensitive information about a victim. The gathered data may be used for malicious activities, e.g., identity theft, spamming fraud, etc. Spyware can also gather information about a victim’s online browsing habits, which are then often used by spammers to send targeted advertisements. It can also be used by an attacker to direct a victim’s computer to perform tasks such as installing software, changing system settings, transfer browsing history, logging key strokes, taking screenshots, etc.
Bullets: Schema
Database structure that is described in a formal language supported by the database management system (DBMS). It is used to describe how data will be organized.
Explanation Bullets: The following list illustrates the basic software programming language generations:
- Generation one: machine language
- Generation two: assembly language
- Generation three: high-level language
- Generation four: very high-level language
- Generation five: natural language
Bullets: Software escrow
Storing of the source code of software with a third-party escrow agent. The software source code is released to the licensee if the licensor (software vendor) files for bankruptcy or fails to maintain and update the software product as promised in the software license agreement.
Bullets: Client-side validation
Input validation is done at the client before it is even sent back to the server to process.
Bullets: Verification
Determines if the product accurately represents and meets the specifications.
Bullets: Probabilistic
Identifies data interdependencies and applies probabilities to their relationships.
Emphasis: tunneling virus
Another type of virus, called the tunneling virus, attempts to install itself “under” the antivirus program. When the antivirus goes around doing its health check on critical files, file sizes, modification dates, and so on, it makes a request to the operating system to gather this information. Now, if the virus can put itself between the antivirus and the operating system, when the antivirus sends out a command (system call) for this type of information, the tunneling virus can intercept this call. Instead of the operating system responding to the request, the tunneling virus responds with information that indicates that everything is fine and healthy and that there is no indication of any type of infection.
Bullets: Security plan
Documented security controls the system must contain to ensure compliance with the company’s security needs. This plan provides a complete description of the system and ties them to key company documents, as in configuration management, test and evaluation plans, system interconnection agreements, security accreditations, etc.
Bullets: Information gathering
Usually the first step in an attacker’s methodology, in which the information gathered may allow an attacker to infer additional information that can be used to compromise systems.