Discuss the various security testing techniques required to test desktop and web Applications security.
We are at present living in the age of technology and the internet has matured to new heights during the decade.
All the work, whether it be purchasing merchandise like software, books etc or booking a railway or flight ticket is now generally done via the internet. This shows the amount of security which is there and is required for keeping the applications safe from unwanted loss or modification.Security means restricting the unauthorized access and granting private data access to authorized requests.
There are certain areas to test to make an application secure and there are several techniques to test it:
1. Data security:
The data of any application is one of the most important thing to be secured, so users with proper access should be granted proper permissions and proper encryption techniques should be there so that the data is secured properly.
2. Mechanisms to contain Brute-Force Attack:
Brute-Force Attack is a type of attack where the software tries to match the password by applying matching passwords so web servers restrict that by restricting the entry of wrong passwords to a specific number of times.
3. Accessing the data which a user is entitled to:
For example a specific type of user is concerned to a specific type of data and (s)he should be entitled to access that data, for that mechanisms like multilevel password protection is there.
4. Data Protection:
All the important data in Database must be encrypted. Tester should query database for passwords, credit card numbers & bank information and make sure that they are encrypted. S/he should also confirm that private data which is transmitted over internet is in encrypted format and successfully gets decrypted when it reach its destination.
5.Brute-Force Attack:
In this, attacker tries to find the password of a UserID by attempting to login again and again with different combinations of password using some software. Tester should confirm security by making sure that application blocks the access to account for some time in case multiple invalid login attempts has been made.
6. XSS (cross site scripting) and SQL Injection:
In this, attacker manipulate the websites by using malicious scripts. Tester should confirm security against these kind of attacks by making sure that input fields length are small enough so that attacker cannot input any script in it. Tester should also verify that proper validation are applied to fields which require long inputs i.e. user should not be allowed to use special characters like ‘<’ in these fields.
7. Access to Application:
Access to either desktop or web applications should be grated to only authorize requests. To test this, tester can create several user accounts with single and multiple roles and then can use these accounts to test the application. S/he should make sure that every account is only allowed to access its own module and access to other modules is prohibited.