[PDF] [PDF] Software Security Testing - Purdue Computer Science

building risk-based security test plans; • wielding static analysis tools; • performing security tests; • performing penetration testing in the final environment; and • 



Previous PDF Next PDF





[PDF] OWASP Testing Guide - OWASP Foundation

ment organizations do not include security testing as part of their standard software policies/privacy/docs/95-46-ce/dir1995-46_part1_en pdf [11] NIST, Risk 



[PDF] Security Testing - assetskpmg

kpmg ch /cyber Security Testing Cyber Defense Services 10 Web Application Security Testing Actual security testing is performed to identify risk and



[PDF] Security testing basics

Functional Security Prepare Analyze docs, play with software Test Expected result Expected fault Tools “Replace tester” Help tester Result Test Docs 



[PDF] Technical guide to information security testing and assessment

Appendix C— Application Security Testing and Examination less than annually ” FISMA is available at http://csrc nist gov/drivers/documents/FISMA-final pdf



[PDF] Software Security Testing - Purdue Computer Science

building risk-based security test plans; • wielding static analysis tools; • performing security tests; • performing penetration testing in the final environment; and • 



[PDF] Security Testing of Web Based Applications - CORE

Elicit a security testing methodology for Web applications based on certain defined criteria www acunetix com/vulnerability-scanner/wvsmanual pdf Last date



[PDF] SP 800-42 Guideline on Network Security Testing

Specifically, security testing results can be used in the following ways: 6 See http ://csrc nist gov/publications/nistpubs/800-26/sp800-26 pdf 7 National Institute 



[PDF] A guide for running an effective Penetration Testing - CREST

A penetration test is an ethical attack simulation that is intended to demonstrate or validate the effectiveness of security controls in a particular environment by 



[PDF] Application Security Testing - Govuk

30 mar 2020 · Testing (SS-027) Chief Security Office Date: March 2020 Proactive Security Testing Activities and Techniques 8 dard_3 0 1 pdf



[PDF] Penetration Testing - Zenk - Security

10 nov 2015 · Penetration testing : a hands-on introduction to hacking / Georgia PDF readers, Java, Microsoft Office—they all have been subject to security

[PDF] security testing tools comparison

[PDF] security testing tools for web application free download

[PDF] security testing tools free

[PDF] security testing tools free download

[PDF] security testing tools open source

[PDF] securitytrails

[PDF] sed and awk pdf

[PDF] sedentary lifestyles australia

[PDF] see 444 angel meaning

[PDF] seeing 1 and 4 combinations

[PDF] seeing 111 angel number meaning

[PDF] seeing 111 meaning twin flame

[PDF] seeing 111 spiritual meaning

[PDF] seeing 1111 meaning bible

[PDF] seeing 1111 meaning love

Building Security In

Editor: Gary McGraw, gem@cigital.com

testing done properly goes deeper than simple black-box probing on the presentation layer (the sort performed by so-called application security tools) - and even beyond the func- tional testing of security apparatus.

Testers must use a risk-based ap-

proach, grounded in both the sys- tem's architectural reality and the at- tacker's mindset, to gauge software security adequately. By identifying risks in the system and creating tests driven by those risks, a software se- curity tester can properly focus on areas of code in which an attack is likely to succeed. This approach pro- vides a higher level of software secu- rity assurance than possible with classical black-box testing. What's so differentabout security?

Software security is about making

software behave in the presence of a malicious attack, even though in the real world, software failures usually happen spontaneously - that is, without intentional mischief. Not surprisingly, standard software test- ing literature is only concerned with what happens when software fails, regardless of intent. The difference between software safety and software security is therefore the presence of an intelligent adversary bent on breaking the system.Security is always relative to the information and services being pro- tected, the skills and resources of ad- versaries, and the costs of potential assurance remedies; security is an ex- ercise in risk management. Risk analysis, especially at the design level, can help us identify potential secu- rity problems and their impact.1

Once identified and ranked, soft-

ware risks can then help guide soft- ware security testing.

A vulnerability is an error that an

attacker can exploit. Many types of vulnerabilities exist, and computer security researchers have created tax- onomies of them.2

Security vulnera-

bilities in software systems range from local implementation errors (such as use of the gets()function call in C/C++), through interpro- cedural interface errors (such as a race condition between an access control check and a file operation), to much higher design-level mis- takes (such as error handling and re- covery systems that fail in an insecure fashion or object-sharing systems that mistakenly include transitive trust issues). Vulnerabilities typically fall into two categories - bugs at the implementation level and flaws at the design level.3

Attackers generally don't care

whether a vulnerability is due to a flaw or a bug, although bugs tend tobe easier to exploit. Because attacks are now becoming more sophisti- cated, the notion of whichvulnera- bilities actually matter is changing.

Although timing attacks, including

the well-known race condition, were considered exotic just a few years ago, they're common now.

Similarly, two-stage buffer overflow

attacks using trampolines were once the domain of software scientists, but now appear in 0day exploits. 4

Design-level vulnerabilities are

the hardest defect category to han- dle, but they're also the most preva- lent and critical. Unfortunately, as- certaining whether a program has design-level vulnerabilities requires great expertise, which makes finding such flaws not only difficult, but par- ticularly hard to automate.

Examples of design-level prob-

lems include error handling in ob- ject-oriented systems, object sharing and trust issues, unprotected data channels (both internal and exter- nal), incorrect or missing access con- trol mechanisms, lack of auditing/ logging or incorrect logging, and or- dering and timing errors (especially in multithreaded systems). These sorts of flaws almost always lead to security risk.Risk managementand security testing

Software security practitioners per-

form many different tasks to manage software security risks, including • creating security abuse/misuse cases; • listing normative security re- quirements; • performing architectural risk analysis;

BRUCEPOTTER

Booz Allen

Hamilton

G ARY M CGRAW

Cigital

S ecurity testing has recently moved beyond the realm of network port scanning to include probing software behavior as a critical aspect of system be- havior (see the sidebar). Unfortunately, testing software security is a commonly misunderstood task. Security

Software Security Testing

32PUBLISHED BY THE IEEE COMPUTER SOCIETY ?1540-7993/04/$20.00 © 2004 IEEE ?IEEE SECURITY & PRIVACY

Building Security In

• building risk-based security test plans; • wielding static analysis tools; • performing security tests; • performing penetration testing in the final environment; and • cleaning up after security breaches.

Three of these are particularly

closely linked - architectural risk analysis, risk-based security test plan- ning, and security testing - because a critical aspect of security testing relies on probing security risks. Last issue's installment 1 explained how to ap- proach a software security risk analy- sis, the end product being a set of se- curity-related risks ranked by business or mission impact. (Figure 1 shows where we are in our series of articles about software security's place in the software development life cycle.)

The pithy aphorism, "software se-

curity is not security software" pro- vides an important motivator for secu- rity testing. Although security features such as cryptography, strong authenti- cation, and access control play a criti- cal role in software security, security it- self is an emergent property of the entire system, not just the security mechanisms and features. A buffer overflow is a security problem regard- less of whether it exists in a security feature or in the noncritical GUI.

Thus, security testing must necessarily

involve two diverse approaches:

1. testing security mechanisms to

ensure that their functionality is properly implemented, and

2. performing risk-based security

testing motivated by under- standing and simulating the at- tacker's approach.

Many developers erroneously

believe that security involves only the addition and use of various secu- rity features, which leads to the in- correct belief that "adding SSL" is tantamount to securing an applica- tion. Software security practitioners bemoan the over-reliance on "magic crypto fairy dust" as a reaction to thisproblem. Software testers charged with security testing often fall prey to the same thinking.

How to approachsecurity testing

Like any other form of testing, secu-

rity testing involves determining who should do it and what activities they should undertake. Who

Because security testing involves two

approaches, the question of who should do it has two answers. Stan- dard testing organizations using a traditional approach can perform functional security testing. For ex- ample, ensuring that access control mechanisms work as advertised is a classic functional testing exercise.

On the other hand, traditional

QA staff will have more difficulty

performing risk-based security test- ing. The problem is one of expertise.

First, security tests (especially those

resulting in complete exploit) are difficult to craft because the designer must think like an attacker. Second, security tests don't often cause direct security exploit and thus present an observability problem. A security test could result in an unanticipated outcome that requires the tester to perform further sophisticated analy- sis. Bottom line: risk-based security testing relies more on expertise and experience than we would like. How Books like How to Break Software Secu-rityand Exploiting Softwarehelp edu- cate testing professionals on how to think like an attacker. 4,5

Nevertheless,

software exploits are surprisingly so- phisticated these days, and the level of discourse found in books and articles is only now coming into alignment.

White- and black-box testing and

analysis methods both attempt to un- derstand software, but they use differ- ent approaches depending on whether the analyst or tester has ac- cess to source code. White-box analysis involves analyzing and under- standing source code and the design.

It's typically very effective in finding

programming errors (bugs when au- tomatically scanning code and flaws when doing risk analysis); in some cases, this approach amounts to pat- tern matching and can even be auto- mated with a static analyzer (the sub- ject of a future installment of this department). One drawback to this kind of testing is that it might report a potential vulnerability where none actually exists (a false positive). Nev- ertheless, using static analysis methods on source code is a good technique for analyzing certain kinds of soft- ware. Similarly, risk analysis is a white- box approach based on a deep under- standing of software architecture.

Black-box analysis refers to ana-

lyzing a running program by probing it with various inputs. This kind of testing requires only a running pro- gram and doesn't use source-code analysis of any kind. In the security paradigm, malicious input can be supplied to the program in an effort www.computer.org/security/?IEEE SECURITY & PRIVACY 33 Abuse casesSecurity requirements Risk analysisExternal review

Risk-based

security testsStatic analysis (tools) Risk analysisPenetration testing

Security

breaks

Requirements

and use casesDesign Test plansCode Test resultsField feedback Figure 1. The software development life cycle. Throughout this series, we'll focus on specific parts of the cycle; here, we're examining risk-based security testing.

Building Security In

to break it: if the program breaks during a particular test, then we might have discovered a security problem. Black-box testing is possi- ble even without access to binary code - that is, a program can be tested remotely over a network. If the tester can supply the proper input (and observe the test's effect), then black-box testing is possible.

Any testing method can reveal

possible software risks and potential exploits. One problem with almost all kinds of security testing (regard- less of whether it's black or white box) is the lack of it - most QA or- ganizations focus on features andspend very little time understanding or probing nonfunctional security risks. Exacerbating the problem, the

QA process is often broken in many

commercial software houses due to time and budget constraints and the belief that QA is not an essential part of software development.

An example: JavaCard security testing

Doing effective security testing re-

quires experience and knowledge.

Examples and case studies like the

one we present now are thus useful tools for understanding the approach. In an effort to enhance paymentcards with new functionality - such as the ability to provide secure card- holder identification or remember personal preferences - many credit- card companies are turning to multi- application smart cards. These cards use resident software applications to process and store thousands of times more information than traditional magnetic-stripe cards.

Security and fraud issues are criti-

cal concerns for the financial institu- tions and merchants spearheading smart-card adoption. By developing and deploying smart-card technol- ogy, credit-card companies provide important new tools in the effort to lower fraud and abuse. For instance, smart cards typically use a sophisti- cated crypto system to authenticate transactions and verify the identities of the cardholder and issuing bank.

However, protecting against fraud

quotesdbs_dbs17.pdfusesText_23