Tips from a security researcher to a QA engineer to enhance Software Quality Assurance

  • Blog
  • Tips from a security researcher to a QA engineer to enhance Software Quality Assurance
Tips from a security researcher to a QA engineer to enhance Software Quality Assurance

Are you a QA engineer? Are you looking forward to enhancing software quality assurance better than that of your competitors? Here are some tips from a security researcher that can help you enhance software quality assurance better than anyone.

  1. Make sure that all the input fields in a form don’t accept specific characters like <,>, “, ‘,`

Assuring that all the inputs fields in a form don’t accept specific characters like <,>, “, ‘,` helps prevent security vulnerabilities like XSS, SQLi. QA engineers must ensure other special characters is also checked.

Example:

We can see a form below here asking users to type their name and message.

Testing XSS

When a user adds specific characters like <,>, “, ‘,` it gets successfully stored in the database. Additionally, if user uses Javascript script like this “><script>alert(123)</script> in message field and signs in,

xss payload

then the javascript will execute and 123 will pop up.

xss alert

When we view the source of the message we can see the javascript is successfully added to the source code.

xss dom

An attacker can inject malicious js to this kind of web application and exploit all the users at once in some cases. Read one such case here.

2. Barring input of negative value in forms in the wallet-based platform

While transferring funds or loading funds in any wallet-based platform, security analysts can find vulnerability like stealing funds by adding negative value in the form, which leads to a critical vulnerability. QA engineers can help prevent this by making sure that no specific characters including negative value can be supplied from user input.

Example:

Let us assume a web application of a payment gateway where account A is transferring USD 100 to account B. If the negative value has not been sanitized, if user inputs USD -100, instead of the amount being transferred to account B, it will extract USD 100 from account B and add it to account A.

fund transfer

Here, Account A is transferring funds to nassec but funds will be transferred to account A by nassec since this web application accepts negative integer while transferring the funds.

Read a real case scenario article here.

3. Matching documentation with the software’s functionality

Privacy policy or documentation of software doesn’t always match with the software ‘s functionality resulting in leakage of crucial additional information. By matching the documentation with the software’s functionality, QA can assure that the software is working as per the documentation provided or not.

Example

Let’s assume that there are three users in the organization; editor, analyst, and admin. Here, according to the document editor cannot have any kind of permission to view other organization members, but in the platform, the editor can view all members of the organization. This can lead to serious security issues such as admin disclosure since according to the documentation or policy of the organization editor cannot view all member’s details.

4. Prevent sensitive information leakage through source code or documentation

When developers push source code to GitHub or when they make documentation accessible to the public, they often forget to hide sensitive information like login credentials, database credentials and API Key of high privileged user. Not only GitHub, this kind of leakage is also found in Trello and Slack. QA engineers can prevent sensitive information leakage through source code or documentation by reviewing it properly.

5. Blocking database credentials on the error page.

Error pages can expose database credentials, source code, and sensitive information when the debug mode is ON. QA engineers must be careful about it as if it comes in the image of a hacker the company’s whole data could be at risk.

Example

Whenever you go to a broken URL or the URLs that do not exist then we get an error. In laravel when we get such types of errors they show database credentials along with mail server details, source details and server details.

6. Use Rate Limiting and use of strong passwords

QA engineers can adopt rate-limiting method in login/submission forms to prevent brute force attacks. In addition to rate limiting, QA engineers should also suggest the use of strong passwords, i.e a mixture of alphabets, numbers, and symbols, to prevent guessing passwords.

7. Search for unused open ports through Nmap

QA engineers can simply install Nmap to view the unwanted open ports and services running in a server. Open ports at times could lead to critical vulnerabilities which a security researcher can easily find and exploit it if the server is using an older version of service. Learn more about Nmap here.

Last but not least, we suggest QA engineers to use the “Burp Suite” tool to check/intercept web application requests or scan basic web application vulnerabilities. If you want to know about more useful tools please read our previous article here.

Leave a Reply

Your email address will not be published. Required fields are marked *