Software Security Testing the Keys to Launching a Safe, Secure Application

Total Page:16

File Type:pdf, Size:1020Kb

Software Security Testing the Keys to Launching a Safe, Secure Application Software Security Testing The Keys to Launching a Safe, Secure Application White Paper June 2011 White Paper: Security Testing White Paper Security Testing The Keys to Launching a Safe, Secure Application Table of Contents • Introduction………………………………………….. 3 - State of Web and Mobile Security………………. 3 - The Goal of Security Testing……………...……… 4 “The tools and techniques are there, the information is readily available, • Software Security………………………………….. 3 but security still takes a lower 1. Know Your Enemy: Common Attacks……. 5 priority until an accident happens. 2. Security Testing Scenarios………………… 6 Just look at the breaches that appear 3. Building Your Security Team……………….. 7 4. Mobile App Security……………..………….. 8 on an almost daily basis.” 5. Security Testing Tools……….……………… 9 6. Summary and Next Steps…………………….10 - James Sivak, Former QA • About uTest………………………………………….. 11 Director of McAfee You might also like…. eBooks White Papers Case Studies Our whitepapers See how Read our new have everything companies of all collection of you need to sizes are software testing improve the way launching better eBooks, written you test your apps for less by some of the web, mobile and time and money industry’s leading desktop apps: with uTest experts. utest.com/ebooks utest.com/whitepapers utest.com/customers 2 White Paper: Security Testing Introduction The State of Web and Mobile Security “The flaw, which could enable a knowledgably criminal to use a computer to break Netscape’s security coding system in less than a minute, means that no one using the software can be certain of protecting credit card information, bank account numbers or other types of information that Netscape is supposed to keep private during on-line transactions.” – New York Times, 1995 Not much has changed in sixteen-odd years, as the fundamental threat of hackers, thieves and miscreants remains as real today as it did in 1995. Don’t take our word for it though; here are some eye-popping statistics from whitehatsec.com on the previous year in software insecurity: Most websites were exposed to at least one serious vulnerability every day of 2010). Only 16% of websites were vulnerable less than 30 days of the year During 2010, the average website had 230 serious vulnerabilities In 2010, 64% of websites had at least one information leakage vulnerability, which overtook cross-site scripting as the most prevalent vulnerability by a few tenths of a percent In other words, hardly a day goes by without a major security breach. And while intrusions at giant organizations like Citi, Sony and the US Senate receive the lion’s share of media attention, the truth is that everyone is at risk. With all that’s at stake, it’s puzzling to see security testing take a back seat to other forms of quality assurance, like functional or usability testing. Though still important to launching a high-caliber application, each of these practices can be rendered meaningless if a hacker is able to perform any number of common exploits. To quote software security guru James Whittaker, from his book How to Break Software Security: “Software can be correct without being secure. Indeed, software can meet every requirement and perform every specified action flawlessly yet still be exploited by a malicious user. This is because security bugs are different from traditional bugs. In order to locate security bugs, testers have to think differently too.” Though he was writing for an audience of software testers, the same applies to companies large and small: In order to improve the security of your application, you need to accept the fact that security testing is a much different animal – which brings us to the purpose of this brief whitepaper. By offering tips, tools and advice for companies of all sizes, we hope to lay out a few simple approaches to help you make your current and future applications more secure. 3 White Paper: Security Testing The Goal of Security Testing Despite the Hollywood stereotypes, the goal of security testing is NOT just to ensure that your application is safe from shady criminals hell bent on world domination (although we hope it is). In reality, security testing should first be thought of without any regard to hackers. To put you in the proper state of mind, here are a few important security-related questions to ask yourself: Confidentiality: Does your application keep your private data private? Integrity: Can the data from your app be trusted and verified? Authentication: Does your app check to see if you are who you say you are? Authorization: Does your application properly limit your privileges? Availability: Can an attacker take your application offline? Non-Reputation: Does your app keep records of events for later verification? As you can see, hackers are not necessarily a prerequisite to insecure software. The discipline is in fact much broader than commonly perceived. More on that in a second, but now, let’s now dive into some specifics for improving the security of your application. Software Security 1. Know Your Enemy: Common Attacks The list of security threats is exhaustive, but some are more prevalent than others. Here’s a quick look at some of the most common security exploits, along with a brief definition. Cross-Site Scripting: This exploit occurs when someone tricks a website into accepting malicious code, which will be shared with other visitors, thus compromising their security. The term “cross-site” applies to an entire family of attacks, where users are tricked into doing something on a site with their knowledge or consent. SQL Injection: With this breach, an attacker tricks a website into running an arbitrary SQL command on the database layer of an application, usually within queries, where user input is incorrectly filtered. Spoofing: Spoofing is when an attacker tricks an application into believing they are someone (or something) they’re not. For example, a hacker may duplicate an e-commerce site in an effort to get users to enter their credit card and personal information. Buffer Overflows: A complex attack to trick an app (desktop, mobile and occasionally web) into executing malicious code. Bugs like this are hard to discover without code review, mindless automation, or evil geniuses. A buffer overrun occurs when a program allows input to write beyond the end of the 4 White Paper: Security Testing allocated buffer. This can result in an attacker gaining control of an entire operating system. Many famous exploits are based off buffer overflows. Denial of Service: This attack involves someone performing a malicious action to prevent a computer from delivering an intended service. Here, it is most often a concerted effort on the part of multiple people to prevent a site from delivering a vital service. Targets for such attacks often include applications that are hosted on large web servers (i.e. banks, credit cards, government services). Social Engineering: Simply put, this exploit involves breaking computer security by tricking people, not software. This is one of the easiest ways to compromise security and one of the hardest to prevent. Examples of this breach include fake anti-virus software, which “alerts” users to recently discovered “vulnerabilities”. As noted, there are dozens (if not hundreds) of similar exploits, but these are the ones you should be watching out for. As further proof, here are the ten most dangerous and prevalent programming errors of 2011, as compiled by Common Weakness Enumeration: 1. Improper Neutralization of Special Elements used in an SQL Command (‘SQL Injection’) 2. Improper Neutralization of Special Elements used in an OS Command 3. Buffer Copy without Checking Size of Input (‘Classic Buffer Overflow’) 4. Improper Neutralization of Input During Web Page Generation (‘Cross-site Scripting’) 5. Missing Authentication for Critical Function 6. Missing Authorization 7. Use of Hard-coded Credentials 8. Missing Encryption of Sensitive Data 9. Unrestricted Upload of File with Dangerous Type 10. Reliance on Untrusted Inputs in a Security Decision Now that you’ve identified some of the biggest threats, let’s take a look at some ways to determine if your application is at risk. 2. Security Testing Scenarios Security testing isn’t easy, as the more complex aspects of security testing take years to learn. However, it’s relatively easy to put yourself in the proper state of mind to start identifying areas of weakness. Here are a few scenarios and practices to consider, courtesy of expert security tester Bill Ricardi. Note that the tips presented here have been written for novice security testers, yet the principles apply to anyone inside a company or organization who wants better insight into the security of their application. 5 White Paper: Security Testing On the outside looking in The first stage of intrusion testing is to assume the role of a kid with his nose pressed against the glass window of a candy store. You are determining your motives. Why would you want to break into this site, if you were an intruder? Certainly, the motives of anarchy and revenge are always appropriate. But is there financial gain available? Is there sensitive information that might be used to embarrass or blackmail the company? Is there confidential client information that needs to remain private? Your perceived motivations can be used to expand the range of standard attacks that you might mount against the test platform. Financial gain might mean a focus on the checkout stack. Sensitive internal information might mean mounting an attack on their internal email. Confidential client information means a focus on the client login scripts. You need to understand motivation, so that you can explain why security is important to your application. Often times (and this is especially true with start-up companies), a company won't understand why anyone would want to target them with an attack.
Recommended publications
  • Opentext Product Security Assurance Program
    The Information Company ™ Product Security Assurance Program Contents Objective 03 Scope 03 Sources 03 Introduction 03 Concept and design 04 Development 05 Testing and quality assurance 07 Maintain and support 09 Partnership and responsibility 10 Privavy and Security Policy 11 Product Security Assurance Program 2/11 Objective The goals of the OpenText Product Security Assurance Program (PSAP) are to help ensure that all products, solutions, and services are designed, developed, and maintained with security in mind, and to provide OpenText customers with the assurance that their important assets and information are protected at all times. This document provides a general, public overview of the key aspects and components of the PSAP program. Scope The scope of the PSAP includes all software solutions designed and developed by OpenText and its subsidiaries. All OpenText employees are responsible to uphold and participate in this program. Sources The source of this overview document is the PSAP Standard Operating Procedure (SOP). This SOP is highly confidential in nature, for internal OpenText consumption only. This overview document represents the aspects that are able to be shared with OpenText customers and partners. Introduction OpenText is committed to the confidentiality, integrity, and availability of its customer information. OpenText believes that the foundation of a highly secure system is that the security is built in to the software from the initial stages of its concept, design, development, deployment, and beyond. In this respect,
    [Show full text]
  • Secure by Design, Secure by Default: Requirements and Guidance
    Biometrics and Surveillance Camera Commissioner Secure by Design, Secure by Default Video Surveillance Products Introduction This guidance is for any organisation manufacturing Video Surveillance Systems (VSS), or manufacturing or assembling components intended to be utilised as part of a VSS. It is intended to layout the Biometrics and Surveillance Camera Commissioners (BSCC) minimum requirements to ensure such systems are designed and manufactured in a manner that assures they are Secure by Design. It also contains certain component requirements that will ensure a configuration that is Secure by Default when the component is shipped, thereby making it more likely that the system will be installed and left in a secure state. This guidance forms part of a wider suite of documentation being developed as part of the SCC Strategy, in support of the SCC Code of Practice. Background and Context The nature of the Internet means that connected devices can be subjected to a cyber attack from anywhere in the world. Widespread attacks on connected products is a current and real threat, and a number of highly publicised attacks have already occurred. The Mirai malware targeted devices such as internet-enabled cameras (IP cameras). Mirai was successful because it exploited the use of common default credentials (such as a username and password being set by the manufacturer as ‘admin’) and poor security configuration of devices. Ultimately, this facilitated attacks on a range of commercial and social media services and included an outage of streaming services such as Netflix. An evolution of Mirai, called Reaper, has also been discovered. Reaper used publicly and easily available exploits that remained unfixed (patched) and highlighted the problem around non patching of known security vulnerabilities, allowing attackers to utilise them to cause harm.
    [Show full text]
  • Principles for Software Assurance Assessment a Framework for Examining the Secure Development Processes of Commercial Technology Providers
    Principles for Software Assurance Assessment A Framework for Examining the Secure Development Processes of Commercial Technology Providers PRIMARY AUTHORS: Shaun Gilmore, Senior Security Program Manager, Trustworthy Computing, Microsoft Corporation Reeny Sondhi, Senior Director, Product Security Engineering, EMC Corporation Stacy Simpson, Director, SAFECode © 2015 SAFECode – All Rights Reserved. Principles for Software Assurance Assessment Table of Contents Foreword ��������������������������������������������������������������������������������������������������������������������������������� 3 Methodology �������������������������������������������������������������������������������������������������������������������������� 3 Problem Statement ���������������������������������������������������������������������������������������������������������������� 4 Framework Overview ������������������������������������������������������������������������������������������������������������� 5 Guiding Principles for Software Security Assessment ����������������������������������������������������������������������6 The SAFECode Supplier Software Assurance Assessment Framework ������������������������������ 7 What Are Your Risk Management Requirements? ����������������������������������������������������������������������������7 The Tier Three Assessment �����������������������������������������������������������������������������������������������������������������8 The Tier One and Tier Two Assessments ���������������������������������������������������������������������������������������������8
    [Show full text]
  • Model-Based Security Testing
    Model-Based Security Testing Ina Schieferdecker Juergen Grossmann Fraunhofer FOKUS Fraunhofer FOKUS Berlin, Germany Berlin, Germany Freie Universitaet Berlin [email protected] Berlin, Germany [email protected] Martin Schneider Fraunhofer FOKUS Berlin, Germany [email protected] Security testing aims at validating software system requirements related to security properties like confidentiality, integrity, authentication, authorization, availability, and non-repudiation. Although security testing techniques are available for many years, there has been little approaches that allow for specification of test cases at a higher level of abstraction, for enabling guidance on test identification and specification as well as for automated test generation. Model-based security testing (MBST) is a relatively new field and especially dedicated to the sys- tematic and efficient specification and documentation of security test objectives, security test cases and test suites, as well as to their automated or semi-automated generation. In particular, the com- bination of security modelling and test generation approaches is still a challenge in research and of high interest for industrial applications. MBST includes e.g. security functional testing, model-based fuzzing, risk- and threat-oriented testing, and the usage of security test patterns. This paper provides a survey on MBST techniques and the related models as well as samples of new methods and tools that are under development in the European ITEA2-project DIAMONDS. 1 Introduction The times of rather static communication in strictly controlled, closed networks for limited purposes are over, while the adoption of the Internet and other communication technologies in almost all domes- tic, economic and social sectors with new approaches for rather dynamic and open networked environ- ments overwhelmingly progresses.
    [Show full text]
  • Guidelines on Minimum Standards for Developer Verification of Software
    Guidelines on Minimum Standards for Developer Verification of Software Paul E. Black Barbara Guttman Vadim Okun Software and Systems Division Information Technology Laboratory July 2021 Abstract Executive Order (EO) 14028, Improving the Nation’s Cybersecurity, 12 May 2021, di- rects the National Institute of Standards and Technology (NIST) to recommend minimum standards for software testing within 60 days. This document describes eleven recommen- dations for software verification techniques as well as providing supplemental information about the techniques and references for further information. It recommends the following techniques: • Threat modeling to look for design-level security issues • Automated testing for consistency and to minimize human effort • Static code scanning to look for top bugs • Heuristic tools to look for possible hardcoded secrets • Use of built-in checks and protections • “Black box” test cases • Code-based structural test cases • Historical test cases • Fuzzing • Web app scanners, if applicable • Address included code (libraries, packages, services) The document does not address the totality of software verification, but instead recom- mends techniques that are broadly applicable and form the minimum standards. The document was developed by NIST in consultation with the National Security Agency. Additionally, we received input from numerous outside organizations through papers sub- mitted to a NIST workshop on the Executive Order held in early June, 2021 and discussion at the workshop as well as follow up with several of the submitters. Keywords software assurance; verification; testing; static analysis; fuzzing; code review; software security. Disclaimer Any mention of commercial products or reference to commercial organizations is for infor- mation only; it does not imply recommendation or endorsement by NIST, nor is it intended to imply that the products mentioned are necessarily the best available for the purpose.
    [Show full text]
  • Testing the Security of Your Applications 2 Application Security Testing Cybersecurity the Way We Do It
    the way we see it Testing the Security of your Applications 2 Application Security Testing Cybersecurity the way we do it Safeguarding Business Critical Systems and Applications Organizations are under increased pressure to innovate, rapidly develop new applications, and adopt new technologies such as social, mobile, analytics, cloud and the Internet of Things (SMACT). This increases the security risk to business applications and systems. It is a very real and present risk. The number of security all web and mobile applications before release, particularly if breaches reported is escalating – between 2013 and 2014 they are highly regulated. Yet the right people to carry out this 1 alone attacks grew by 120% – and the threat of an attack testing are both difficult to find and costly to employ, plus their from hacktivists or criminal organizations is more pertinent work isn’t scalable nor repeatable. We offer a comprehensive today than ever before. solution designed to address this growing threat to your The average yearly cost of cybercrime for large organizations business applications. in 2014 was US$7.6m – a 10.4% net increase over the Powered by HPE Fortify on Demand, our Application 2 previous year . Combine this with data breach incidents Security Testing solution makes it simple and fast to initiate costing companies $194 on average per compromised record fundamental security controls, whether you have just a few and it’s clear that major attacks could potentially result in applications or are looking to launch a comprehensive security losses totaling tens or even hundreds of millions. This accrues program across your organization without large upfront not only through lost revenue, but as a result of reputational investment.
    [Show full text]
  • A Guide for Running an Effective Penetration Testing Programme
    A guide for running an effective Penetration Testing programme April 2017 A guide for running an effective Penetration Testing programme Published by: CREST Tel: 0845 686-5542 Email: [email protected] Web: http://www.crest-approved.org/ Principal Author Principal reviewer Jason Creasey, Ian Glover, President, CREST Managing Director, Jerakano Limited DTP notes For ease of reference, the following DTP devices have been used throughout the Penetration Testing Guide. Acknowledgements CREST would like to extend its special thanks to those CREST member organisations who took part in interviews and to those clients who agreed to be case studies. Warning This Guide has been produced with care and to the best of our ability. However, CREST accepts no responsibility for any problems or incidents arising from its use. A Good Tip ! A Timely Warning An insightful Project Finding Quotes are presented in a box like this. © Copyright 2013. All rights reserved. CREST (GB). 2 A guide for running an effective Penetration Testing programme Contents Part 1 – Introduction and overview • About this Guide ................................................................................................................................................4 • Purpose ..............................................................................................................................................................4 • Scope .................................................................................................................................................................5
    [Show full text]
  • Oracle Software Security Assurance Oracle’S Methodology for the Development and Maintenance of Security in Its Products
    ORACLE BRIEF Oracle Software Security Assurance Oracle’s methodology for the development and maintenance of security in its products As organizations increasingly rely on software controls to protect their computing environments and data, ensuring that these controls operate in the way they were intended has become a paramount concern. Software security assurance encompasses all the activities involved in ensuring that software operates at an expected and predictable level of security. Managing security incidents, meeting complex regulatory and auditing requirements, and keeping current with security releases can add tremendous costs to an organization’s IT budget; thus organizations must give careful consideration to how their software providers approach software security assurance. Security built in, not bolted on S T A T I C CODE ANALYSIS Encompassing every phase of the product development lifecycle, Oracle Software Static security analysis of source code Security Assurance is Oracle's methodology for building security into the design, build, is used during the entire product testing, delivery, and maintenance of its products. Oracle's goal is to ensure that development cycle. This type of analysis works very well for identifying Oracle's products, as well as the customer systems that leverage those products, buffer overflows and memory leaks in remain as secure as possible. C/C++ code, resource handling issues Secure Coding Standards in J2EE and .NET, finding improper Secure software does not happen by itself. It requires consistently applied credentials handling, various injections, incorrect system configurations, etc. methodologies across each organization; methodologies that conform to stated policies, objectives, and principles. D Y N A M I C C O D E ANALYSIS Oracle Secure Coding Standards are a guide for developers in their efforts to produce Dynamic analysis activity always takes secure code.
    [Show full text]
  • Network Security Testing
    White Paper Network Security Testing 26601 Agoura Road, Calabasas, CA 91302 | Tel: 818.871.1800 | Fax: 818.871.1805 | www.ixiacom.com | 915-1785-01 Rev C January, 2011 2 Table of Contents The Current State of Network Security ...................................................... 4 Sources of Vulnerabilities ........................................................................... 9 Denial of Service Attacks ............................................................................ 9 Making Money from Malware. ....................................................................14 Network Security Testing. ..........................................................................15 Testing Security Devices ............................................................................18 Ixia’s IxLoad-Attack.....................................................................................19 3 Security is a discipline concerned with protecting networks and computer systems against threats such as exploits, malware, data leakage, spam, and denial of service (DoS) attacks, as well as ensuring trusted access through mechanisms such as IPsec or SSL. Enterprises have deployed security devices of all types to defend against threats, and to prevent unintended data leakage. Network security devices consist of one or more security functions, including firewall, intrusion prevention/detection systems (IPS/IDS), data leakage prevention (DLP), and content security filtering functions (e.g. anti-spam, antivirus, URL filtering). Those functions have
    [Show full text]
  • Testing the Social-Mobile- Analytics-Cloud Pack: the Way Forward
    VIEW POINT TESTING THE SOCIAL-MOBILE- ANALYTICS-CLOUD PACK: THE WAY FORWARD “The whole is greater than the sum of its parts” - Aristotle This paper highlights the need for an integrated testing approach for Social-Mobile-Analytics-Cloud pack Convergence of Social Media, Mobile, Analytics, & Cloud is one of the hottest trends these days. This convergence of technologies provides opportunities for organizations to create newer products, services and customers. It is a major business agenda for a large number of organizations. The deep inroads made by these technologies are changing the enterprise technology landscape, thereby forcing organizations to rethink their strategies and increase technology investments in this direction. According to various Industry Associations, the outlook for Social-Mobile-Analytics-Cloud technologies is very bright. This throws up multiple revenue opportunities for vendors to offer related IT services, including offering the right testing services to the Social-Mobile-Analytics-Cloud pack. Testing services are witnessing growth in mobile testing, testing for cloud, social media etc., with each evolving independently. Presently, the testing of services for each element in the Social-Mobile-Analytics-Cloud pack is more silo-based. Organizations are yet to strategize for the Social-Mobile-Analytics-Cloud pack as a whole. There is a need for an integrated end-to-end testing approach. The intent of this paper is to provide a brief background on different testing techniques for each element of the Social-Mobile-Analytics-Cloud pack. It will further focus on how an integrated testing approach is important for organizations to attain a higher Return on Investment (ROI) on their Social-Mobile-Analytics-Cloud initiatives.
    [Show full text]
  • A Survey on Software Security Testing Techniques
    International Journal of Computer Science and Telecommunications [Volume 4, Issue 4, April 2013] 14 A Survey on Software Security Testing Techniques ISSN 2047-3338 Abdullah Saad AL-Malaise AL-Ghamdi Department of Information Systems, Faculty of Computing & Information Technology, King Abdulaziz University, Kingdom of Saudi Arabia [email protected] Abstract– This article briefs a survey on software security software can be exploited by intruders to open security holes. techniques. Software security testing is not the identical as With the development of the Internet, software security testing the correctness and competence of security functions problems are becoming even more ruthless and excruciating. implemented by software, which are most frequently verified Many critical software applications and services need through requirements-based testing. These tests are important; integrated security measures against malicious attacks. The they expose only a small piece of the depiction needed to verify the security of the software. Security testing is necessary because purpose of security testing of these systems include it has a distinct relationship with software quality. Software identifying and removing software flaws that may potentially meets quality requirements related to functionality and guide to security violations, and validating the effectiveness performance, it does not necessary mean that the software is of security measures. secure. A vulnerability tools is a program that performs the analytical phase of a vulnerability analysis, and assessment. Index Terms– Software Security, Assurance, Reliability and Vulnerability analysis defines, identifies, and classifies the Recoverability security holes and their weakness in computer systems includes network, server, or communications channel. Also vulnerability analysis can predict the effectiveness of I.
    [Show full text]
  • Application Security: Safeguarding Data, Protecting Reputations
    • Cognizant 20-20 Insights Application Security: Safeguarding Data, Protecting Reputations Assessing IT systems and network vulnerabilities in today’s interconnected digital world is a daunting endeavor. By embracing penetration testing’s best practices and procedures, organizations can proactively and affordably address security loopholes before hackers undermine customer confidence, brand reputation and financial well-being. Executive Summary there is a grave concern about security, reinforced by recent events: In today’s connected digital ecosystem, applica- tions are center stage, influencing all the ways • In January 2016, a large Belgian bank was in which we interact and communicate. These attacked by cybercriminals that cost the bank applications contain sensitive data and deliver 70 million euros, although no customers were business-critical information services, and as affected by the breach. This type of attack is a result even the smallest security loophole is called a whaling attack or spear-phishing.2 exploited by cybercriminals looking to wreak havoc. While numerous cybercrime incidents have • In August 2015, the U.S. Internal Revenue occurred over the years that damaged customer Service reported that about 300,000 taxpayers’ confidence and brand reputation, solving inherent personal information was compromised when information security challenges remains a work in hackers cracked the agency’s multi-step progress for many organizations. authentication process and were able to make fraudulent claims for tax refunds using stolen The hacking challenge is so steep, that born- identities.3 digital companies Yahoo and Google recently 1 • In November 2015, a Switzerland-based partnered to create an encrypted e-mail system encrypted e-mail provider’s Internet connection that allegedly cannot be decrypted even by the was held for ransom by hackers in what could companies themselves.
    [Show full text]