How to Address Website Security Vulnerabilities?

It is generally observed that web security is treated as a problem by the companies only when there is a breach. A defensive strategy should be used to secure your website. The organizations need a way to substitute fragmented, manual pen testing with the, automated scanning in order to protect their global application substructures without having to employ more specialists or install added scanners and servers. Here is a web application vulnerabilities list and the ways to prevent them and help in avoiding data breaches.

Important Data Exposure

The vulnerability of data exposure is all about resource and data protection. Important data must be encrypted always, even when at rest or transit. Passwords and credit card details must never be stored unencrypted and hash should be added to passwords. You cannot afford to have a frail hashing/crypto algorithm. The sensitive cookies must always have secure flag and important data and session ID’s must not travel in URL’s.

How to Prevent this Vulnerability?

In Storage – The storage needs to be lowered and the important data if not required should be shred. Something that is not stored cannot be stolen. Never store credit card information else you would have to deal with PCI complaint. Signing up with a payment processor is a smart choice. Encrypt and hash important data if you need to store it.

In Transit – Cookies should have the secure flag. Https with an appropriate certificate should be used and nothing over non-Https connection should be accepted.

Broken Authentication

Another problem in the web application vulnerabilities list is broken authentication. There are several issues which could arise with broken authentication, however the cause for each of them could be different.  Here are some of them:

  • Encryption of passwords may not happen in both transit and storage.
  • Session Fixation
  • The session id might be contained in the URL and could be leaked to someone through the referrer header.
  • Time-outs will not be properly applied which would lead to session hijacking.
  • Session ids may be expectable, so gaining access is inconsequential.

How to Prevent this Vulnerability?

Using a framework is the best way to prevent broken authentication. If you are planning to roll your own code, you should be educated on what could be the drawbacks.

Forwards and Redirects that are not Validated

This is an issue of input filtering. For instance if the target website has a redirect.php which takes a URL as a GET parameter, a targetsite.com URL which redirects the browser to malwareinstall.com can be created if the parameter is manipulated. The operator sees the link as targetsite.com/aaaaaaaaaaaaa, and thinks it to be safe to open unaware of the fact that it would redirect them to a malicious page. The invader could also transfer the browser to targetsite.com/deleteprofile?confirm=1.

How to Prevent this Vulnerability?

There are three ways to dodge this problem.

  • There should be a fixed list of valid locations for redirection
  • The user-defined parameter could be whitelisted.
  • Skip the redirecting completely.

Injection Flaws

Injection flaws are next in the web application vulnerabilities list and it is a resultant of failing to filter untrusted input. This usually happens when you let through unfiltered data to the LDAP server,  SQL server, browser or elsewhere. The hacker can easily inject commands that could lead to hijack of client’s browsers and data loss.

All that is untrusted and received by your application should be filtered, according to a whitelist. A blacklist is not only hard to get right but can be easily circumvented.  Pattern matching is not effective.

How to Prevent this Vulnerability?

Simply by filtering the input correctly and keeping an eye on the inputs will help you safeguard against injection. Nothing can be left out every input needs to be filtered. There is nothing that is trustworthy, every input should be filtered, even a single input could bring your system. If some are wondering if they should put an SQL query result to another query, as the database is trustworthy, but if the perimeter is untrusted, the input comes from those whose intentions are not good. This is known as Second Order SQL Injection.

Filtering is not an easy job and everyone cannot get it right. Framework filtering functions are reliable as they are meticulously scrutinized and have been seen to function appropriately.

Security Misconfiguration

Misconfigured web servers and applications lead to security breaches and some of the examples of such misconfigurations could be as below:

  • The default passwords and keys are not changed.
  • The application is run when the debug is enabled in production.
  • The error handling information like the stack traces is bared to the invaders.
  • The software that is running is obsolete.
  • If the directory listing is enabled on your server, it will definitely give away important information.
  • Excessive services that are not required are running on the machine.

How to Prevent this Vulnerability?

A good automated build and deploy process that can run tests on deploy will help in keeping this vulnerability at bay.  Post commit hooks help to codes with default passwords going out.

Missing Function Level Access Control

This vulnerability happens when a server is asked to perform a function, without proper authorization being done. Many times the developers think that the server side generated the UI and that the client would be unable to access any functionality that is not delivered by the server.  An invader can easily fake requests to the ‘hidden functionality’. The fact that the UI will not make it difficult to give access this functionality will also not discourage them.

How to Prevent this Vulnerability?

Authorization from the server has to be performed. There are no exclusions to this; any deviations would lead to grave problems.

The above web application vulnerabilities list will help to keep a check on your web security. Adhering to it will help you to keep out of problems and lower security risks on your server. It is important that you keep yourself updated with the regular happenings on web security to avoid all security issues.

Leave a Reply