click below
click below
Normal Size Small Size show me how
CH1NecessityofAuditi
Software Vulnerability Fundamentals_Introduction : The Art of Software Security
| Question | Answer |
|---|---|
| What is the conflict between user expectations and reality regarding software vendor guarantees? | Expectation: Users assume vendors provide software integrity assurance. Reality: Vendors offer very few quality guarantees. |
| What evidence from commercial software packages supports the fact that vendors offer few quality guarantees? | End User License Agreement Accompanies almost every piece Contains explicit liability disclaimers |
| Why do vendor quality assurance (QA) measures historically leave security overlooked? | Vendors prioritize marketable concerns Examples: features, availability, stability Goal: Keep clients happy Result: Security is haphazardly applied or ignored |
| Do all industries face the same security requirements? | No. Some impose unique standards. They target specialized environments. They involve regulatory interests. |
| How are industry-specific security requirements changing over time? | Historically limited to specialized environments. Driven by regulatory interests. Now becoming more proactive. Shift caused by high-profile incidents. |
| How are vendor attitudes and business processes regarding security changing recently? | Attitudes: Shifting positively toward security. Processes: Adopting more rigorous security testing. |
| What are three commonplace approaches to code security, and which one does this book focus on? | Automated code analysis Security unit testing Manual code audits (Book focus) |
| What is application auditing? | Analyzing application code (source or binary) to find exploit-ready vulnerabilities. |
| What is application auditing? | Definition: Analyzing code (source or binary). Purpose: Uncovering security vulnerabilities. Benefit: Closing risk holes. Goal: Protecting sensitive data. |
| What is the primary security benefit of performing an application audit? | It identifies and closes security holes that put sensitive data and business resources at risk. |
| code auditing makes sense in what situations | company developing in house software, in house software audit prerelease, in house software audit post release, third party product range comparison, third party evaluation, third party preliminary evaluation, independent research |
| describe the code auditing situation for an in-house software audit prerelease | a software company performs code audits of a new product before its release |
| what are the advantages of performing a code audit for an in-house software audit prerelease | design and implementation flaws can be identified and remedied before the product goes to market, saving money in developing and deploying updates. it also saves the company from potential embarrassment |
| describe the code auditing situation for an in-house software audit post release | a software company performs code audits of a product after its release |
| what are the advantages of performing a code audit for an in-house software audit post release | Security vulnerabilities can be found and fixed before malicious parties discover the flaws. This process allows time to perform testing and other checks as opposed to doing a hurried release in response to a vulnerability disclosure. |
| describe the code auditing situation for a third party product range comparison | a third party performs audits of a number of competing products in a particular field |
| what are the advantages of performing a code audit for a third party product range comparison | An objective third party can provide valuable information to consumers and assist in selecting the most secure product |
| describe the code auditing situation for third party evaluation | a third party performs an independent software audit of a product for a client |
| what are the advantages of performing a code audit for a third party evaluation | the client can gain an understanding of the relative security of an application it's considering deploying. This might prove to be the deciding factor between purchasing one technology over another. |
| describe the code auditing situation for a third party preliminary evaluation | a third party performs an independent review of a product before it goes to market |
| what are the advantages of performing a code audit for a third party preliminary evaluation | Venture capitalists can get an idea of the viability of a prospective technology for investment purposes. Vendors might also conduct this type of evaluation to ensure the quality of a product they intend to market. |
| describe the code auditing situation for independent research | a security company or consulting firm performs a software audit independently |
| what are the advantages of performing a code audit for independent research | Security product vendors can identify vulnerabilities&implement protective measures n scanners/other security devices. Independent research functions as industry watchdog&provides way 4 researches/security companies to establish professional credibility |
| What is the primary challenge regarding the availability of professionals qualified to perform high-standard audits? | High market demand. Severe shortage of training. Lack of field experience. |
| What is black box testing? | A software evaluation method using only exposed interfaces. |
| What is the typical process of black box testing when trying to find security vulnerabilities or flaws? | Generating specially crafted inputs. Target unexpected behaviors. Examples: crashing, data exposure. |
| What security flaw can be triggered during black-box testing of an HTTP server by sending requests with abnormally large field sizes? | A memory corruption bug. |
| What is an example of black-box testing an HTTP server to uncover memory corruption bugs? | Method: Send requests with abnormally large field sizes (long strings of chars). Valid Request Example: GET A...A HTTP/1.0 Invalid Request Example: GET / A..A/1.0 Indicator of Success: Any server crash implies serious vulnerability buffer overflow |
| What makes automated black box testing highly appealing to development teams? | The availability of tools that completely automate the testing process. |
| What is automated black box testing called? | Fuzz-testing |
| What are the two main types of fuzz-testing tools based on their awareness of protocol structures? | Generic "dumb" fuzzers (no knowledge of protocol structure).Protocol-aware "intelligent" fuzzers (understand format and constraints). |
| what is fuzz-testing tools primary benefit? | Primary Benefit: They automate test generation. You run the tool instead of manually trying every case. |
| What is a major advantage of black box testing regarding speed and results? | Done quickly Immediate results |
| What is the primary limitation of black-box testing regarding code coverage? | You cannot see the internal code, meaning you may leave hundreds of code paths completely untested. |
| Why is manual code auditing necessary when automated security tools like black-box and fuzz-testing tools already exist? | Automated tools frequently miss basic vulnerabilities and complex code paths. Manual code auditing is essential to: Assess constructs intelligently. Analyze paths automation misses. Locate vulnerabilities scanners cannot catch. |
| What is the most time-efficient way to achieve maximum results when uncovering software vulnerabilities? | Combining code auditing (white-box) with black-box testing. |
| What is the most efficient way to maximize vulnerability discovery in the shortest time, and what does this book teach you to achieve it? | The Method: Combine code auditing with black box testing. The Book's Goal: Teaches thorough application analysis for standard vulnerabilities. The Human Element: Explains how to use understanding and creativity to find unique flaws. |
| What is the primary value of an application security assessment? | It protects the application against risks from malicious users. |
| When can you perform a security audit during the Systems Development Life Cycle (SDLC)? | Timing: At any stage. Impact: Cost to find and fix vulnerabilities varies widely depending on the phase. |
| what are the following phases of the SDLC | 1.Feasibility study 2. Requirements definition 3. Design 4. Implementation 5. Integration and testing 6. Operation and maintenance |
| what does SDLC stand for? | systems development life cycle |
| What happens in the SDLC during the feasibility study | This phase is concerned with identifying the needs the project should meet and determining whether developing the solution is technologically and financially viable. |
| What happens in the SDLC during the requirements definition phase | In this phase, a more in-depth study of requirements for the project is done, and project goals are established. |
| What happens in the SDLC during the design phase | The solution is designed and decisions are made about how the system will technically achieve the agreed-on requirements. |
| What happens in the SDLC during the Implementation phase | The application code is developed according to the design laid out in the previous phase. |
| What happens in the SDLC during the Integration and testing phase | The solution is put through some level of quality assurance to ensure that it works as expected and to catch any bugs in the software. |
| What happens in the SDLC during the Operation and maintenance phase | The solution is deployed and is now in use, and revisions, updates, and corrections are made as a result of user feedback. |
| What model does every software development process follow to some degree? | The SDLC (Software Development Life Cycle). |
| How does the classical waterfall model view the system's life span iteration? | Strict interpretation of the SDLC Single iteration only |
| How do newer methodologies (like agile development) refine an application compared to older methods? | By going through repeated iterations of the Systems Development Life Cycle (SDLC) phases. |
| How does the application of the SDLC model affect its basic concepts and vulnerability classification? | Core phases: Remain consistent despite application variances. Vulnerability classification: Standardized by stable phase distinctions. Review timing: Phase distinctions dictate optimal review classes. |
| How do classical waterfall and newer agile methodologies differ in their application of the Software Development Life Cycle (SDLC)? | Waterfall: Single iteration. Agile: Repeated iterations. Consistency: Both share the same basic core phases. Security Purpose: Helps classify vulnerabilities and schedule reviews. |