APPROACHES, TOOLS AND TECHNIQUES FOR SECURITY TESTING

INTRODUCTION TO SECURITY TESTING


Security testing is a procedure that is executed with the purpose of revealing defect in security mechanisms and detecting the vulnerabilities or imperfection of software web app. We all knows that recent security breaches increase the awareness regarding the security testing process.

Recent Cyber attacks at systems of retailers like Target and Home Depot, as well as Apple Pay competitor Current C, underline the value of assuring that your security testing efforts are up to date.

The main aim of security testing is to look out how insecure a system may be and to find whether its data and resources are secured from potential irrupt. As the world is going towards online business, so online transactions also increasing and the security breaches also. And these transactions made security testing as one of the most essential sectors in the technology world. Security testing is more effective in identifying potential vulnerabilities when performed regularly.

Usually, security testing has the following properties:

  • Authentication
  • Authorization
  • Confidentiality
  • Availability
  • Integrity
  • Non-repudiation
  • Resilience

WHY SECURITY TESTING

System testing, in the current technology situation, is a must to determine and address web application security vulnerabilities to avoid listed below attributes:
  • Loss of customer trust.
  • Disturbance to your online means of revenue generation/collection.
  • Website downtime/uptime, time loss and expenditures in recovering from damage (reinstalling services, restoring backups, etc.)
  • Related legal implications and fees for having lax security measures in place.
  • Cost linked with securing software apps against future cyber attacks.

CLASSES OF THREATS

Listed below are some of the important threats that can be use to take benefit of security vulnerability:

Privilege Authority

Privilege authority is a class of cyber attack where a hacker has an record on a system and uses it to enhance his system privileges to a higher level than he/she was not meant to have. If processed successfully then this kind of attack can result in a hacker gaining advantage as high as root on a UNIX system. Once a hacker have the super-user privileges, he is capable to run code with this level of privilege and the entire system is effectively compromised.

SQL Injection

SQL injection is considered as the most common web application layer attack method used by hackers, in which malicious SQL statements are inserted into an entry field for execution. SQL injection attacks are very dangerous as a hacker can get critical information from the server database. It is a type of attack which takes the advantage of loopholes present in the implementation of web applications that permits a hacker to hack the system in an effective manner. To check the SQL injection we have to take care of input fields like text boxes, comments, etc. To prevent injections, special characters should be either properly handled or skipped from the input.

Unauthorized Data Access

Another popular types of attacks is gaining unlicensed permissions to data within an application. Data can be accessed on servers or on a network.

Unauthorized access comprise of following points:
  • Unauthorized access to data via data-fetching operations
  • Unauthorized access to reusable client authentication information by monitoring the access of others
  • Unauthorized access to data by monitoring the access of others 

URL Manipulation

URL manipulation is the procedure of changing the website URL query strings & capture of the vital information by hackers. This type of attacks happens when the web apps uses the HTTP GET method to pass data between the client end and the server end. The tester can modify a parameter value in the query string to check if the server accepts it.

Denial of Service

A denial-of-service (DoS) attack is an definitive attempt to make any network resource or node unavailable to its lawful users. Applications can also be attacked in ways that render the application, and sometimes the entire machine, unusable.
Cross-Site Scripting (XSS)

Cross-site scripting is a computer security vulnerability found in web applications. XSS enables attackers to inject client-side script into Web pages viewed by other users and trick a user into clicking on that URL. Once executed by the other user’s browser, this code could then perform actions such as completely changing the behavior of the website, stealing personal data, or performing actions on behalf of the user.

Data Manipulation

In data manipulation, a hacker changes data used by a website in order to gain some advantage or to embarrass the website’s owners. Hackers will often gain access to HTML pages and change them to be satirical or offensive.



SECURITY TESTING TECHNIQUES

To prevent form these security cyber attacks always prefer to hire security testing services for your web app as it is required to have good knowledge of  HTTP protocol and an understanding of client (browser) – server communication through HTTP.

The following method will help in implementing quality security testing:

Cross Site Scripting (XSS):

The tester must additionally check the web application for XSS (Cross site scripting). Any HTML e.g. <HTML> or any script e.g. <SCRIPT> should not be accepted by the application. If it is, the application can be prone to an attack by Cross Site Scripting.

Attackers can use this method to execute malicious scripts or URLs on a victim’s browser. Using cross-site scripting attackers can use scripts like JavaScript to steal user cookies and information stored in the cookies.

Cross Site Scripting Testing can be done for:
  • Apostrophe
  • Greater-Than Sign
  • Less-Than Sign
  • Ethical Hacking

Password Cracking

While doing system testing, password cracking is considered as the most critical part. In order to approach the private section of an application, hackers can use a password cracking tool or can guess a common username/password. Common usernames and passwords are easily accessible online along with open source password cracking web applications. Until a web app enforces a complex password (e.g. a long password with a combination of numbers, letters, and special characters), it is easy to crack the username and password.

Penetration Testing

A penetration test is an attack on a computer system with the intention of finding security loopholes, potentially gaining entree to it, its functionality and data.

Risk Assessment

This is a procedure of assessing and determining on the risk involved with the kind of loss and the prospect of vulnerability happening. This is observed within the company by various interviews, discussions and analysis.

Security Auditing

A security audit is a systematic valuation of the security of a company’s information system by measuring how well it conforms to a set of established criteria.

Security Scanning

This is a program which communicates with a web application through the web front-end in order to identify potential security vulnerabilities in the web application, OS and Networks.

SQL Injection

The next thing that should be checked is SQL injection. Entering a single quote (‘) in any textbox should be rejected by the application. Instead, if the tester encounters a database error, it means that the user input is inserted in some query which is then executed by the application.

SQL Injection Testing can be done for following attributes:

  • Commas
  • Quotation marks
  • Vulnerability Scanning
  • Apostrophes
  • Brackets

SECURITY TESTING APPROACH:



If you are serious on security testing procedure, then listed below is the approach and planning of security testing process:

Security Architecture Study: 
The very first step in website security testing approach is to understand the business needs, security goals and objectives in terms of the security compliance of the company. And remember the security test plan must consider all the important factors of security testing process in order to achieve PCI compliance.

Security Architecture Analysis:  
Prefer to determine and then analyze the need of the web application under test.

Classify Security Testing: 
Gather all system setup information in a paper taht is used for development of Software and Networks like Operating Systems, technology, hardware. Make out the list of Vulnerabilities and Security Risks.

Threat Modelling:
Based on above step, prepare Security Threat profile.

Test Planning: 
Based on the above analysis threat, Vulnerabilities and Security Risks prepare test plan to address these issues.

Traceability Matrix Preparation: 
For each identified Threat, Vulnerabilities and Security Risks prepare Traceability Matrix.

Security Testing Tool Selection: 
We all knows that if we have big project then all security testing cannot be executed manually, so determine the tool to implement all security test cases faster & more reliably.

Test Case Preparation: 
Prepare the Security tests case document properly.

Test Case Execution: 
Execute the Security Test cases execution and retest the defect fixes. Execute the Regression Test cases.

Reports: 
Prepare detailed report of Security Testing which contains Vulnerabilities and Threats contained, detailing risks, and still open issues etc.

Comments

Post a Comment

Popular posts from this blog

Top 5 Selenium Testing Trends that Shapes the Future of Software Testing Industry

Software Qa Services: The Real World Of QA Testing

Outsourcing Software Testing- Cost Effective Way To Test Your Software