Using Components With Known Vulnerabilities And Their Prevention Mechanisms

This kind of attack happens when we are providing full privileges, whether knowingly or unknowingly, to the application components, such as  libraries, frameworks etc. In such cases, we are giving the opportunity to a hacker to perform a serious data breach.

Using components with the known vulnerabilities should be looked after, for the following reasons:

  • If the components, framework, etc. of an application are not properly designed in a secure way, then the attacker takes this as an advantage to break your system.
  • If the exposed service methods are not properly validated with strong tokens, the hacker has an opportunity to break your system.
  • If the application is not tested end to end properly, to validate such attacks, then the attacker may again take advantage and break your system.

Prevention Mechanisms

  • First of all, it's the architect's job to design a highly secure base model with nice design pattern as per the business needs. Then, it's the developer's responsibility to write the code in secured way. They should test the application end to end to validate such attacks.
  • As a developer, we should have a good knowledge on SOLID principles and their usage. For instance, let's say we are writing a new class or method, then, during creation, we have to think its accessibility for whether it should be private or protected or public. So, based on our need, you have to declare the access scope.
  • Maintain database objects access limit; let's say, for master tables, provide only read only permission to the outside world.
  • Maintain the standard and recommended testing tools for validating such vulnerabilities and update them on time.
  • Maintain the secured network and firewall. Monitor the network logs on daily basis. Conduct security audits on a monthly basis to make sure that your project is safe from vulnerabilities.
  • Maintain all the components, such as databases, project mailing server, etc., up to date.
  • Add security wrappers for components which are vulnerable in nature.
  • Where applicable, add security wrappers around components to secure vulnerable aspects of the component.
  • Obfuscate the sensitive information

    • Logs
    • Stack traces etc.

For reference, find the link for more details.