First Principles Vulnerability Assessment ∗ James A

Total Page:16

File Type:pdf, Size:1020Kb

First Principles Vulnerability Assessment ∗ James A First Principles Vulnerability Assessment ∗ James A. Kupsch Barton P. Miller Eduardo Cesar´ Elisa Heymann University of Wisconsin Universitat Autonoma` de Barcelona {kupsch,bart}@cs.wisc.edu {Eduardo.Cesar,Elisa.Heymann}@uab.es September 2009 Abstract Vulnerability assessment is a key part of deploying secure software. As part of a our effort to secure critical middleware, we have developed a new approach called First Principles Vulnerability Assessment (FPVA). FPVA is a primarily analyst-centric (manual) approach to assessment, whose aim is to focus the analyst’s attention on the parts of the software system and its resources that are mostly likely to contain vulnerabilities that would provide access to high-value assets. In addition, our approach is designed to find new threats to a system, and is not dependent on a list of known threats. We have applied FPVA to several large and widely-used middleware systems, including the Con- dor high-throughput scheduling system, the Storage Resource Broker (SRB) data grid management system from San Diego Supercomputer Center, and the MyProxy public key credential management system. The FPVA studies of these software systems produced a significant list of serious vulnerabil- ities (and fixes), which were then fed back to the development teams to remediate the vulnerabilities. In addition, we used this opportunity to help improve the development teams’ coding strategies and develop vulnerability reporting, response, patch and release strategies. Manual assessment is a labor-intensive activity, and therefore the development and use of auto- mated assessment tools is quite attractive. Unfortunately, while these tools can find common prob- lems in a program’s source code, they miss a significant number of serious vulnerabilities found by FPVA. When we compared the results of our FPVA to that of the top commercial tools, we found that these tools miss most of the serious vulnerabilities found by FPVA. As a future effort, we will use the results of this comparison study to guide our future research into improving the automated software assessment. In summary, the key findings from our study include: • A new architecture- and resource-based analysis that is not dependent on known vulnerabilities. • A clear reminder that assessment must be an independent activity, done by analysts separate from the software development team. In addition, assessment must be part of the normal software development lifecycle. • A demonstration of the strengths and weaknesses of automated assessment tools by comparing their results against those of a thorough FPVA study (and not just comparing the automated tools against each other). • Several assessment activities of key middleware systems, resulting in significant improvements in the security of these systems, and similar improvements by creating a security-aware atmo- sphere among the software developers. • A foundation and new approach for future research into improved automated vulnerability assessment tools. • Tutorial materials to help train a new generation of software security analysts. ∗This research funded in part by National Science Foundation grant OCI-0844219, NATO grant CLG 983049, the National Science Foundation under contract with San Diego Supercomputing Center, and National Science Foundation grants CNS- 0627501 and CNS-0716460. 1 Table of Contents 1 Introduction 3 2 Methodology 4 3 Integration with Software Development and Release 6 3.1 The Assessment Activity . 6 3.2 Integration into the Release Cycle . 7 3.3 Notification . 7 4 Manual Assessment Test Cases 7 4.1 Condor . 8 4.1.1 Architectural Analysis . 8 4.1.2 Controlled/Accessed resources . 11 4.1.3 Trust and Privileges . 12 4.1.4 Component Analysis . 12 4.2 SRB . 15 4.2.1 Architectural Analysis . 15 4.2.2 Controlled/Accessed resources . 17 4.2.3 Trust and Privileges . 18 4.2.4 Component Analysis . 18 4.3 MyProxy . 20 4.3.1 Architectural Analysis . 20 4.3.2 Controlled/Accessed resources . 22 4.3.3 Trust and Privileges . 23 4.3.4 Component Analysis . 24 4.4 GLExec . 25 4.4.1 Architectural Analysis . 25 4.4.2 Controlled/Accessed resources . 27 4.4.3 Trust and Privileges . 27 4.4.4 Component Analysis . 27 4.5 Quill . 28 4.5.1 Architectural Analysis . 29 4.5.2 Controlled/Accessed resources . 31 4.5.3 Trust and Privileges . 32 4.5.4 Component Analysis . 32 5 Comparison with Automatic Tools 33 5.1 Methodology . 33 5.2 Coverity and Fortify . 34 5.3 Analysis of Results . 36 6 Agenda 37 6.1 Research . 37 6.2 Transition and Dissemination Agenda . 38 7 Related Work 38 7.1 Microsoft Methodology . 38 7.2 Related Projects . 39 7.3 Analysis Tools . 40 8 Conclusions 42 9 Acknowledgments 43 References 43 Appendix A Condor Vulnerability Reports 48 Appendix B SRB Vulnerability Reports 80 Appendix C MyProxy Vulnerability Reports 112 Appendix D GLExec Vulnerability Reports 122 2 1 Introduction Middleware ties together the critical Internet computing resources of commerce, government, and sci- ence. The components of this middleware communicate over high speed networks and span many or- ganizations, forming complex distributed systems. This middleware has a diverse and potentially large number of components, often with a myriad of interactions. The security of middleware directly effects the safety and integrity of these organizations and their computer systems. Assessment of the middleware is a key part of securing these systems. In this paper, we describe a new approach to manual (analyst cen- tric) vulnerability assessment, called First Principles Vulnerability Assessment (FPVA). This technique allows us to evaluate the security of a system in depth. We assume access to the source code, docu- mentation, and, when available, the developers. While FPVA is certainly a labor intensive approach to vulnerability assessment, it has been shown to be effective in real systems, finding serious vulnerabilities that were not discoverable through the use of the best automated tools of today [56]. Rather than working from known vulnerabilities, the starting point for FPVA is to identify high value assets in a system, i.e., those components (for example, processes or parts of processes that run with high privilege) and resources (for example, configuration files, databases, connections, and devices) whose exploitation offer the greatest potential for damage by an intruder. From these components and resources, we work outward to discover execution paths through the code that might exploit them. This approach has a couple of advantages. First, it allows us to find new vulnerabilities, not just exploits based on those that were previously discovered. Second, when a vulnerability is discovered, it is likely to be a serious one whose remediation is of high priority. FPVA starts with an architectural analysis of the source code, identifying the key components in a distributed system. It then goes on to identify the resources associated with each component, the privilege level of each component, the value of each resource, how the components interact, and how trust is delegated. The results of these steps are documented in clear diagrams that provide a roadmap for the last stage of the analysis, the manual code inspection. In addition, the results of this step can also form the basis for a risk assessment of the system, identifying which parts of the system are most immediately in need of evaluation. After these steps, we then use code inspection techniques on the critical parts of the code. Our analysis strategy targets the high value assets in a system and focuses attention on the parts of the system that are vulnerable to not only unauthorized entry, but unauthorized entry that can be exploited. We describe the FPVA methodology in more detail in Section 2. In addition to the analysis task, there needs to be a way to integrate the detection and repair of security flaws into the software development and release process. The software development process must now include vulnerability reporting, release integration, and a policy on public dissemination of the vulnerabilities. Open source software offers specials challenges for this last item. We discuss the effect of vulnerability assessment on the development process in Section 3. We have applied FPVA to several major systems, including the Condor high-throughput scheduling system [15, 59, 88], the Storage Resource Broker (SRB) data grid management system from San Diego Supercomputer Center [85, 8], and the MyProxy public key credential management system [66, 69]. In these analyses, significant vulnerabilities were found, software development teams were educated to the key issues, and the resulting software was made more resistant to attack. The details of these assessments and a summary of current ongoing assessments are reported in Section 4. A major question when evaluating a technique such as FPVA is: why not use an automated code analysis tool? To address this question, we surveyed security practitioners in academia, industry, and government laboratories to identify which tools were consider “best of breed” in automated vulnerability assessment. Repeatedly, two commercials software packages were named, Coverity Prevent [17] and Fortify Source Code Analyzer (SCA) [32]. To evaluate the power of these tools and better understand our new FPVA, we compared the results of our largest assessment activity (on Condor) to the results gathered 3 from applying these automated tools. As a result of these studies, we found that the automated tools found few of the vulnerabilities that we had identified in Condor (i.e., had significant false negatives) and identified many problems that were either not exploitable or led to minor vulnerabilities (i.e., had many false positives). The results from these studies are presented in Section 5. Our current work is just the start of a longer term effort to develop more effective assessment tech- niques. We are using our experiences with these techniques to help design tools that will simplify the task of manual assessment.
Recommended publications
  • Static Analysis the Workhorse of a End-To-End Securitye Testing Strategy
    Static Analysis The Workhorse of a End-to-End Securitye Testing Strategy Achim D. Brucker [email protected] http://www.brucker.uk/ Department of Computer Science, The University of Sheffield, Sheffield, UK Winter School SECENTIS 2016 Security and Trust of Next Generation Enterprise Information Systems February 8–12, 2016, Trento, Italy Static Analysis: The Workhorse of a End-to-End Securitye Testing Strategy Abstract Security testing is an important part of any security development lifecycle (SDL) and, thus, should be a part of any software (development) lifecycle. Still, security testing is often understood as an activity done by security testers in the time between “end of development” and “offering the product to customers.” Learning from traditional testing that the fixing of bugs is the more costly the later it is done in development, security testing should be integrated, as early as possible, into the daily development activities. The fact that static analysis can be deployed as soon as the first line of code is written, makes static analysis the right workhorse to start security testing activities. In this lecture, I will present a risk-based security testing strategy that is used at a large European software vendor. While this security testing strategy combines static and dynamic security testing techniques, I will focus on static analysis. This lecture provides a introduction to the foundations of static analysis as well as insights into the challenges and solutions of rolling out static analysis to more than 20000 developers, distributed across the whole world. A.D. Brucker The University of Sheffield Static Analysis February 8–12., 2016 2 Today: Background and how it works ideally Tomorrow: (Ugly) real world problems and challenges (or why static analysis is “undecideable” in practice) Our Plan A.D.
    [Show full text]
  • List of Requirements for Code Reviews
    WP2 DIGIT B1 - EP Pilot Project 645 Deliverable 9: List of Requirements for Code Reviews Specific contract n°226 under Framework Contract n° DI/07172 – ABCIII April 2016 DIGIT Fossa WP2 – Governance and Quality of Software Code – Auditing of Free and Open Source Software. Deliverable 9: List of requirements for code reviews Author: Disclaimer The information and views set out in this publication are those of the author(s) and do not necessarily reflect the official opinion of the Commission. The content, conclusions and recommendations set out in this publication are elaborated in the specific context of the EU – FOSSA project. The Commission does not guarantee the accuracy of the data included in this study. All representations, warranties, undertakings and guarantees relating to the report are excluded, particularly concerning – but not limited to – the qualities of the assessed projects and products. Neither the Commission nor any person acting on the Commission’s behalf may be held responsible for the use that may be made of the information contained herein. © European Union, 2016. Reuse is authorised, without prejudice to the rights of the Commission and of the author(s), provided that the source of the publication is acknowledged. The reuse policy of the European Commission is implemented by a Decision of 12 December 2011. Document elaborated in the specific context of the EU – FOSSA project. Reuse or reproduction authorised without prejudice to the Commission’s or the authors’ rights. Page 2 of 51 DIGIT Fossa WP2 – Governance and Quality of Software Code – Auditing of Free and Open Source Software. Deliverable 9: List of requirements for code reviews Contents CONTENTS............................................................................................................................................
    [Show full text]
  • Book of Abstracts
    |zchhppts||jj fivétqrujznéqjsvkÂîñüìîé Ìåæäóíàðîäíî髯®µ¦±¦®·©© ±¡¨±¡¢¯³¸©«¯£©°¯¬½¨¯£¡³¦¬¦ª ²£¯¢¯¥®¯¤¯ °±¯¤±¡­­®¯¤¯¯¢¦²°¦¸¦®©À /LQX[9DFDWLRQ(DVWHUQ(XURSH2 ¤±¯¥®¯07Ĕ10èþíÿ2¤ ±¦²³ l¬½³¦±®¡³©£¡| 2 ÏbÇ ÈÈǹ Ì ºąº­Ë®¯ËąÈ}ĆÒË®ikzº°Ċ}È cËąÈ}ĆÒºÓÓÈ«}ºããËĄÒ«ikzº°Ċ}sslȯÎÈÓ ik©Óĉ}ÒÓk|bÈą¯È cËĆËÓÏËÓ© Ñ.Ñ. Äåðå÷åííèê, êàíäèäàò òåõíè÷åñêèõ íàóê, äîöåíò, çàâåäóþùèé êàôåäðîé ýëåêòðîííûõ âû÷èñëèòåëüíûõ ìàøèí è ñèñòåì Áðåñòñêîãî ãîñóäàðñòâåííîãî òåõíè÷åñêîãî óíèâåðñèòåòà À.Â. Îòâàãèí, êàíäèäàò òåõíè÷åñêèõ íàóê, äîöåíò êàôåäðû ýëåêòðîííûõ âû÷èñëèòåëüíûõ ìàøèí Áåëîðóññêîãî óíèâåðñèòåòà èíôîðìàòèêè è ðàäèîýëåêòðîíèêè Ì |}¯©©ËË²ÓºãºĄÒÒñ¢¯±®©«­¡³¦±©¡¬¯£Âîñüìîé̦§¥´- ®¡±¯¥®¯ª «¯®µ¦±¦®·©© ±¡¨±¡¢¯³¸©«¯£ ©°¯¬½¨¯£¡³¦¬¦ª²£¯- ¢¯¥®¯¤¯ °±¯¤±¡­­®¯¤¯ ¯¢¦²°¦¸¦®©À /LQX[ 9DFDWLRQ (DVWHUQ (XURSH2±¯¥®¯0710èþíÿ 2¤ °¯¥ ¯¢º¦ª ±¦¥ ¯²³¿«¡Ĕ±¦²³¬½³¦±®¡³©£¡Ĕ160² ,6%13070 Æxivétqrkv¡squjznéqjs, ïðåäñòàâëåííûå àâòîðàìè íà Âîñüìóþ Ìåæäóíàðîäíóþ êîíôåðåíöèþ ðàçðàáîò÷èêîâ è ïîëüçîâàòåëåé ñâîáîäíîãî ïðîãðàììíîãî îáåñïå÷åíèÿ Linux Vacation / Eastern Europe 2012, âêëþ÷àÿ âûåçäíóþ çèìíþþ ñåññèþ êîíôåðåíöèè LVEE Winter 2012. Ìàòåðèàëû äîêëàäîâ ïðåäñòàâëåíû íà ñàéòå êîíôåðåíöèè http://lvee.org è ðàñïðîñòðàíÿþòñÿ ïîä ëèöåíçèåé Creative Commons Attribution-ShareAlike 3.0. Ñòàòüè ïîñâÿùåíû íîâûì òåõíîëîãèÿì è ðàçðàáîòêàì â ñôåðå ñâîáîäíîãî (îòêðûòîãî) ïðîãðàììíîãî îáåñïå÷åíèÿ è çàòðàãèâàþò øèðîêèé ñïåêòð ïëàòôîðì – îò ðàáî÷èõ ñòàíöèé è ñåðâåðîâ, âêëþ÷àÿ ðåøåíèÿ íà áàçå âèðòóàëèçàöèè, äî âñòðàèâàåìûõ ñèñòåì è ìîáèëüíûõ óñòðîéñòâ. Ñáîðíèê ìîæåò áûòü èíòåðåñåí ñïåöèàëèñòàì â îáëàñòè èíôîðìàöè-
    [Show full text]
  • Code Review Guide
    CODE REVIEW GUIDE 2.0 RELEASE Project leaders: Larry Conklin and Gary Robinson Creative Commons (CC) Attribution Free Version at: https://www.owasp.org 1 F I 1 Forward - Eoin Keary Introduction How to use the Code Review Guide 7 8 10 2 Secure Code Review 11 Framework Specific Configuration: Jetty 16 2.1 Why does code have vulnerabilities? 12 Framework Specific Configuration: JBoss AS 17 2.2 What is secure code review? 13 Framework Specific Configuration: Oracle WebLogic 18 2.3 What is the difference between code review and secure code review? 13 Programmatic Configuration: JEE 18 2.4 Determining the scale of a secure source code review? 14 Microsoft IIS 20 2.5 We can’t hack ourselves secure 15 Framework Specific Configuration: Microsoft IIS 40 2.6 Coupling source code review and penetration testing 19 Programmatic Configuration: Microsoft IIS 43 2.7 Implicit advantages of code review to development practices 20 2.8 Technical aspects of secure code review 21 2.9 Code reviews and regulatory compliance 22 5 A1 3 Injection 51 Injection 52 Blind SQL Injection 53 Methodology 25 Parameterized SQL Queries 53 3.1 Factors to Consider when Developing a Code Review Process 25 Safe String Concatenation? 53 3.2 Integrating Code Reviews in the S-SDLC 26 Using Flexible Parameterized Statements 54 3.3 When to Code Review 27 PHP SQL Injection 55 3.4 Security Code Review for Agile and Waterfall Development 28 JAVA SQL Injection 56 3.5 A Risk Based Approach to Code Review 29 .NET Sql Injection 56 3.6 Code Review Preparation 31 Parameter collections 57 3.7 Code Review Discovery and Gathering the Information 32 3.8 Static Code Analysis 35 3.9 Application Threat Modeling 39 4.3.2.
    [Show full text]
  • Introduction to Yasca
    Introduction To Yasca Presented at NYPHP 24 February 2009 Michael V. Scovetta Agenda . Who Am I? . What is Yasca? . How does it work? . Requirements . How should I use it? . The Future of Yasca . Demonstration . Questions? 2 Who Am I? . Development . CA ~2002 . Perl, Java, PHP . Information Security . UBS ~2005 . Security Consulting . Cigital ~2008 . Architecture . CA ~2008 3 What is Yasca? . Yasca started as a set of perl scripts that grepped through source code looking for XSS vulnerabilities. <%=request.getParameter("foo")%> . <?=$_REQUEST["foo"]?> . Then I needed to do multi-line searches: . String s = request.getParameter("foo"); out.println(s); . As I wrote more rules, I found other scanners that already had many of them. So I made calls out to them. Then everything got nasty and I wrote it all from scratch again in PHP. 4 What is Yasca? . Yasca is an open-source tool that can help you analyze program source code. It leverages several static analysis tools. PMD (http://pmd.sourceforge.net/) . J-Lint (http://artho.com/jlint/) . Pixy (http://pixybox.seclab.tuwien.ac.at/pixy/) . FindBugs (http://findbugs.sourceforge.net/) . It can be used to scan virtually any file type, not only traditional source code. Yasca is written in command-line PHP and released under the BSD license. 5 How Does it Work? . Architecture based on plug-ins. "Major Plug-in" => calls another tool to do the scan . e.g. PMD, J-Lint, FindBugs, Pixy, Grep . "Minor Plug-in" => uses embedded logic . Relatively easy to write, extremely flexible Report Plug-in Yasca Plug-in Generator Plug-in Output /tmp/my_source_code 6 How Does it Work .
    [Show full text]
  • Partitioners Track: Generating Security Vulnerabilities in Source Code
    M. Meier,D.Reinhardt, S. Wendzel (Hrsg.): Sicherheit 2016, Lecture Notes in Informatics (LNI), Gesellschaft fur¨ Informatik, Bonn 2016 177 Partitioners Track: Generating Security Vulnerabilities in Source Code Felix Schuckert1 Abstract: This paper describes aframework, which modifies existing source code to generate secu- rity issues. An example plugin for generating SQL injection in Java source code is described. The generation process is based on static code analysis techniques likedataflowanalysis and abstract syntax trees. The framework is evaluated with the help of Java projects from GitHub.One modified project wassuccessfully used in acapture the flag event as achallenge. Keywords: Software security,sql injection, generating, static code analysis 1Introduction Modern software products usually have aconnection to the internet. All of them are ex- posed to attackers that want to exploit the software. The top security issues remained the same overthe last years. Software developers have to protect their software from attackers by developing secure software. As stated in the paper [PE09], software security can’tbe provided only by the operating system. The software must have no vulnerabilities as well. Developers usually write tests, if common security vulnerabilities in their programs do exist, butthis will not guarantee the security of the developed software. Instead it will ve- rify the defined function requirements [Ba]. Static code analyzer tools help to find existing security issues in source code. These issues have to be reviewed and fixed manually by software developers. Fixing such issues requires ahigh amount of skill in software secu- rity.Another problem is that some security issues might not be detected by using code analyzer.Atbest all software developers should have software security skills to prevent software security issues preemptively in the development process.
    [Show full text]
  • Evaluation of Automated Static Analysis Tools Cathleen L
    GSTF Journal on Computing (JoC) Vol.2 No.1, April 2012 Performance Evaluation of Automated Static Analysis Tools Cathleen L. Blackmon, Daisy F. Sang, and Chang-Shyh Peng Abstract—Automated static analysis tools can perform as memory corruption, memory leaks and race conditions, efficient thorough checking of important properties of, and of software during execution. Since defects will not be extract and summarize critical information about, a source discovered until late in the software development program. This paper evaluates three open-source static lifecycle, dynamic analysis can be costly. On the other analysis tools; Flawfinder, Cppcheck and Yasca. Each tool hand, static analysis tools perform analysis on source is analyzed with regards to usability, IDE integration, performance, and accuracy. Special emphasis is placed on code or byte code modules. It does not require any the integration of these tools into the development instrumentation or development of test cases, and can be environment to enable analysis during all phases of utilized upon the availability of the code. Static analysis development as well as to enable extension of rules and other tools can go through all paths of the code and uncover improvements within the tools. It is shown that Flawfinder significantly more and wider range of defects, including be the easiest to modify and extend, Cppcheck be inviting to detect logic errors, dead code, security vulnerabilities, and novices, and Yasca be the most accurate and versatile. so on. Index Terms—static, code, analysis, automation. Static analysis techniques range widely. Simple style checkers identify poorly written code that may violate coding standards or consistency rules.
    [Show full text]
  • Luís Filipe Silva De Oliveira Web Security Analysis an Approach to HTML5 Risks and Pitfalls
    Universidade do Minho Escola de Engenharia Luís Filipe Silva de Oliveira Web Security Analysis An approach to HTML5 risks and pitfalls Outubro de 2013 Universidade do Minho Escola de Engenharia Luís Filipe Silva de Oliveira Web Security Analysis An approach to HTML5 risks and pitfalls Dissertação de Mestrado Mestrado em Engenharia Informática Trabalho realizado sob orientação de Professor António Nestor Ribeiro Outubro de 2013 I would like to thank my parents for all the support and for providing me the oportunity to be here. I thank all my closest friends, specially Beatriz Almeida for all the support. A special thanks for maincheck and to Joao Ribeiro, which gave me the theme, oportunity and help in every way possible. Finally, I would like to thank my tutor, for the patient and support, and for helping me through this final stage of my academic life. ii ABSTRACT Web applications have become increasingly important in the last years. As more and more applications deal with sensitive and confidential data, the quantity and negative impact of security vulnerabilities has grown as well. To understand this impact, this work presents a study over the most common and risky security vulnerabilities seen on web applications today. Also, with the emerging of the new HTML5 specification, an approach is made on how HTML5 will impact web security. The goal is to describe the new features of HTML5 and demonstrate how they may, or may not, introduce new security vulnerabilities to web applications. Understanding the vulnerabilities is only the first step, as that knowledge is worth- less if not applied into the software development life cycle.
    [Show full text]
  • Developer Companion: a Framework to Produce Secure Web Applications
    Developer Companion: A Framework to Produce Secure Web Applications Mamdouh Alenezi Yasir Javed College of Computer & Information Sciences College of Computer & Information Sciences Prince Sultan University Prince Sultan University Riyadh 11586, Saudi Arabia Riyadh 11586, Saudi Arabia [email protected] [email protected] Abstract—Software engineering and development is a very inspection or reviews), static Analysis, dynamic analysis, and complex endeavor that contends with limited resources, poten- security testing [8], [9]. tially causing software to behave in an unexpected manner. Software developers often lack secure coding skills and its a From 1988 to 2016 total vulnerabilities recorded by Na- major reason behind development of insecure web applications. In tional Vulnerability Database (NVD) are 72,855 out of which this work, we propose a developer companion as an integrated 6,488 are just reported in 2015. Probable security vulnerabili- framework that can be integrated to any IDE to educate and ties can be detected using static analysis tools. These tools also help developers produce more secure code. This framework provide details about each flaw like which line has flaw, type can be adopted and can be made more intelligent by focusing of flaw, what possible vulnerability can cause etc. Based on on historical security flaws in the development team. expert several studies, it was expected that 90 percent of security developers practices to overcome the security vulnerabilities. incidents are results of exploiting defects in the design or Keywords—web applications, source code, security, static anal- code of commonly used software [10]. The main purpose of ysis static analysis tools is to find coding errors before they can be exploited.
    [Show full text]
  • Evaluation of Static Analysis Tools for Finding Vulnerabilities in Java and C/C++ Source Code
    Evaluation of Static Analysis Tools for Finding Vulnerabilities in Java and C/C++ Source Code Rahma Mahmood, Qusay H. Mahmoud Department of Electrical, Computer & Software Engineering University of Ontario Institute of Technology Oshawa, ON, Canada {rahma.mahmood1,qusay.mahmoud}@uoit.net Keywords: static analysis tools; bugs; software security. Abstract The rest of this paper is organized as follows. Section 2 discusses It is quite common for security testing to be delayed until after the the related work. Java source code analyzers are evaluated in software has been developed, but vulnerabilities may get noticed Section 3, and C/C++ code analyzers are discussed in Section 4. throughout the implementation phase and the earlier they are discovered, the easier and cheaper it will be to fix them. Software Conclusions are presented in Section 5. development processes such as the secure software development lifecycle incorporates security at every stage of the design and 2 Related Work development process. Static code scanning tools find vulnerabilities in code by highlighting potential security flaws and offer examples on There have been many studies on static analysis tools focusing how to resolve them, and some may even modify the code to remove on their functionality or performance evaluation, such as those the susceptibility. This paper compares static analysis tools for Java covered in [1, 3, 5, 7, 13]. Many of the studies focus on and C/C++ source code, and explores their pros and cons. evaluation of a specific tool, for example in [7] the focus is on FindBugs. Other studies, such as previous work with the second 1 Introduction author [5] cover several tools where they also evaluated tools using the Common Weakness Enumeration (CWE), which is a Ensuring security from the early stages of software development list of software security vulnerabilities found throughout the will save time, money and ensure a secure application software development industry, and is a community-driven environment.
    [Show full text]
  • Outil D'audit De Code Source
    OUTIL D’AUDIT DE CODE Yasca Ce guide décrit l’installation et l’utilisation de l’outil d’audit de code source « yasca » sur un système windows XP/Vista/7. Yasca est un analyseur de code source qui intègre d’autres outils open- source (PMD, FindBugs, jlint) afin de générer un rapport. Agence National e de la Sécurité Informatique Gestion des versions du document Version Date Modification apportée 1.0 27 /08/2010 Première version Document Publique Document Interne 1 PLAN 1. Presentation ......................................................................................................................................................................... 3 2. Fonctionnement .................................................................................................................................................................. 4 3. Installation ........................................................................................................................................................................... 4 3.1.3.1.3.1. Prérequis ...................................................................................................................................................................... 4 3.2.3.2.3.2. Yasca .............................................................................................................................................................................. 4 3.3.3.3.3.3. Plugins .........................................................................................................................................................................
    [Show full text]
  • Pentest + Pen-Test Tools
    Pentest + Pen-test Tools Author: Joseph Lee Email: joseph@ ripplesoftware.ca Mobile: 778-725-3206 Tool Use Cases • Reconnaissance • Enumeration • Vulnerability scanning • Credential attacks • Persistence • Configuration compliance • Evasion • Decompilation • Forensics • Debugging • Software assurance Categories of Pentest Software Tools • Documentation • Reconnaissance • Scanners • OSINT • Remote Access • Credential Testing • Wireless • Networking • Debuggers • Web proxies • Mobile Tools • Software Assurance Testing • Social Engineering • Exploitation Frameworks Specific Tools By Category Documentation • XML documentation ◦ WSDL – Web Services Description Language ▪ RFC – https://www.w3.org/TR/2001/NOTE-wsdl-20010315 ▪ XML format for describing functionality of network services ▪ Contains either document-oriented or procedure-oriented information ▪ WSDL is extensible to work with any endpoint / protocol ◦ SOAP – Simple Object Access Protocol ▪ Info: https://www.w3schools.com/xml/xml_soap.asp ▪ SOAP APIs work over HTTP / HTTPS ▪ Documentation can describe the API ◦ XSD – XML Schema Definition Language ▪ W3C: https://www.w3.org/TR/xmlschema11-1/ ▪ Specifies how to formally describe the elements in an Extensible Markup Language (XML) document ▪ Can provide detailed information about how a specific XML syntax works • API – Application Programming Interface documentation ◦ Various API standards come with their own syntax ◦ Swagger ▪ https://swagger.io ▪ Open-source API tools ◦ Oracle Apiary ▪ https://apiary.io/ ▪ API Design Stack ◦ RAML ▪
    [Show full text]