Application Software Security Test

Application Software Security Test

Introduction

Complexity in software often introduces security vulnerabilities that may not be apparent to the software developer. Cyber-criminals and other adversaries, however, often are able to test your software in their own environment to identify security flaws that may affect your organisation or your customers.

What do we cover?

The scope of a Software Security Test is very specific to the software being tested. The following are some examples of common attack targets that are part of security testing of a software product:

  • File format and protocol parsing security issues
  • The application logic of security sensitive software operations
  • Analysis of authentication mechanisms
  • Analysis of the security of custom network protocols
  • Bypassing of security protection mechanisms (for example, access control)
  • Usage of encryption, keys and other secrets
  • Security issues related to API calls (e.g. business logic security issues)
  • Injection issues (e.g. SQL injection and XXE vulnerabilities, that are not limited to web applications)
  • Buffer overflow / memory corruption issues / format string vulnerabilities
  • Remote code execution and command injection
  • Web interface security testing, as described on the Web Application Penetration Test page

Which methodology is used?

We have developed our methodology which is adaptable to the scope of the target application. This often includes the following approaches:

  • Security analysis of network protocols in use and network exposure of the application
  • Reverse engineering of the applications in scope to better understand security critical functionality
  • Fuzzing of file formats or network protocols by making use of custom and publicly available tools
  • Source code review where applicable
  • Custom tool development to simulate parts of the target application and modify behaviour

How does the process look like?

Most of our engagements follow these steps:

  1. First step is that you contact us
  2. We ask you a number of questions to understand what you have in mind, the goals for the exercise and the scope
  3. We perform a scoping exercise to better understand the size of the project; in the case of a software penetration test, the scoping exercise often involves setting up an environment to see the application on test in action, to understand the exposure and therefore tailor our proposed work to your needs
  4. We verify with you our scope where appropriate
  5. We work on a proposal which describes the goals, the scope, the methodology, deliverables, dates allocated for the project, terms and conditions and the price
  6. The actual work takes place during the allocated dates; your IT staff involved in the project may need to be available during the tests
  7. Upon completing the tests, we work on the reports and often provide a brief report of the main findings so that your staff are informed of the results immediately
  8. The deliverables are provided to you
  9. Often the process also includes testing of the security fixes once applied

What are the deliverables?

At the end of the project, the client usually receives the following:

  • Executive report, which is an easy to follow 4 page report that includes information about the penetration test, list of the findings and a short explanation of the security fixes or mitigation techniques
  • Technical report, which includes the following sections:
    • Introduction, which describes the scope, methodology and purpose of the work
    • Methodology, which describes our tests to explain what was covered and how; this would include both tests that led to vulnerability discoveries, and also those that did not
    • Findings and recommendations which are categorised as High security threats, Other security threats and Other concerns and recommendations
    • Each finding that is considered a security threat includes:
      • A description of the security issue as it affects the target system
      • Our assessment of the impact of the vulnerability
      • Details on how to reproduce the issue found
      • Solutions and recommendations, which are tailored for the target audience and can go into quite some detail
  • Other material is sometimes provided such as:
    • Video demonstrations showing exploitation of your systems
    • Dedicated exploit code to reproduce the security issues found
    • When the tests are done on-site, we often brief the involved executives and/or technical team and discuss solutions to the security issues found
    • Similarly, conference calls can be used when the work is done remotely

What costs can one expect?

Cost is dependent on the size and complexity of the system on test and the level of rigor in which testing is to be performed. This is determined through pre-sale client discussions and scoping questionnaires. The price of an engagement will be delivered as a fixed bid quote.

Get in touch