By: Shilpi
September 3 2019

Secure by Design: A Web Development Essential

The rise of the Internet and technology has expanded the realm of the digital world. Security is of prime concern for an Internet user besides a seamless user-friendly experience. Visitors or application users expect organizations to retain SSL certificates, use compliant payment services, and protect their data and information from getting leaked to the hackers.

illustartion image showing a number of locks in multiple colours in a selective focus photography portraying security by design


Security and user-experience are all-inclusive and balancing both will make the system controllable, reliable and usable. Better usability will limit confusion and reduction in unexpected user behaviors and thus will lead to better security outcomes. How can the security measures be maintained along with good customer experience? Secure by Design comes as an aid. 

What is Secure By Design?

For the purpose of maintaining the security of the software system or applications intact, pulling the plug from the start is necessary. The reason being the increase in the complexity of an application with the completion of each development stage.  

As the name proclaims, secure by design means designing a software system or application to be secure from the initiation and not compromising with the security parameters while heading towards its completion. 

For example, while developing an online banking application or an online shopping website, a tight hold on the security measures from the very beginning is necessary. A minute weak link will prove to be an advantage for an attacker. 

The concept is also known by many different names, like, security by design, secured by design, build-in-security and is addressed through measures such as continuous testing, authentication safeguards and adherence to best programming practices.

Critical Application Security Risks  

Numerous security design principles have been proposed to direct security design decisions. Viega & McGraw, OWASP (Open Web Application Security Project), NIST (National Institute of Standards and Technology), NCSC (National Cyber Security Center), Cliff Berg’s set are the few names comprising the collection of security design fundamentals.

From the earlier mentioned security principles list, OWASP is the most followed standard for addressing the security risks. Thus below are listed the security risks stated in the OWASP, the international non-profit organization abides by the concepts of web application security. It is recommended that all companies should implement the fundamentals into their project processes, so as to reduce the security risks. Top 10 critical web application risks are:

  1. Injection.
  2. Broken Authentication.
  3. Sensitive Data Exposure.
  4. XML External Entities (XEE).
  5. Broken Access Control.
  6. Security Misconfiguration.
  7. Cross-Site Scripting.
  8. Insecure Deserialization. 
  9. Using Components With Known Vulnerabilities.
  10. Insufficient Logging And Monitoring.

Key Security Principles for Safe Design


For the purpose of keeping the secure designing foundation intact, the below mentioned key security principles need to be followed

  • Limit the accessibility to the minimum, solely for the context.
  • Separation of responsibilities and providing control to the suitable.   
  • Frame a clear trust-building process and validation after each connection.
  • Propose a simple system design so as to facilitate easy analysis of the situation.
  • Examine sensitive events. 
  • Secure the failures and use secure defaults.
  • Never rely upon indefiniteness.  
  • Create a deep defense mechanism. 
  • Never formulate a new security technology. 
  • Always search for the weakest connection. 

Ways to Address Security Concerns

The following are the considerations with which software development teams and designers can together address the security concerns, eventually keeping users and their data safe.

#1 Injection 

In Injection attacks, untrusted data is supplied to a  code interpreter through form submission or any other input source to a web application. The input is processed by the interpreter as part of a command or query, altering the execution of a program or application.

To prevent injection, limit the length, and type of the text to be entered into an input field. Also, ensuring the escape and declining of few characters by entry fields will also work in favor.

#2 Cross-Site Scripting (XSS)

Cross-site scripting is another type of injection attack enabling attackers to inject client-side scripts into web pages that are being viewed by other users. XSS is used by the attackers to breach access controls such as the same-origin policy. 

In order to prevent  XSS, precautions need to be taken while rendering user input in the browser.

#3 Broken Authentication and Access Control

The main objective of an authentication system is to assure that any entity attempting to access a resource is genuine. A weak authentication system will lead to a system breach, allowing an attacker to access the user account or can compromise an entire system using an admin account. 

Two-factor authentication (2FA) and putting a limit or delaying repetitive login attempts will help in mitigating the authentication vulnerabilities. Also, enabling paste and drag and drop to enter passwords from password safes. Password safes allow users to create unique and strong passwords that would otherwise be impossible to remember. 

#4 Sensitive Data Exposure

Sensitive data like passwords, information related to finances (credit card numbers, passwords, personally identifiable information), need to be protected as it can be used by the attacker for foul purposes. For instance, in the Man-in-the-middle (MITM) attack, an offender either eavesdrop or impersonate to steal the valuable information making it look like a normal information exchange. 

Data encryption and not allowing data storage in the first place will help to protect users from the data breach. 

#5 Broken Access Control

In broken access control, an unauthorized user bypasses the authorization and performs tasks like privileged users. For instance, an employee from outside of the finance department is able to access or check the finance or transaction records. 

The old and obsolete pages are the major source of broken access vulnerability. So as to get a clear idea about where the attack might happen, it is suggested to involve the UX (user experience) staff to fully sketch-out user flows related to access permissions and get rid of the pages which are no longer needed by taking all the cases in consideration.

Furthermore, the focus should be given to the weak URL structure while creating the information architecture or SEO, such as keeping a check on the ways by which someone can manipulate the URL to get the access that they should not. 

#6 Security Misconfiguration

Security misconfiguration is the most common reason, making the system fragile and critical for attacks. These often result from configurations or excessive display of verbose errors. 
For example, displaying way too definite error message can reveal the system vulnerabilities, making it easier for attackers to take undue advantage of the system.

Removal of unused features from the code and displaying the generalized error messages will help in mitigating the risk. Along with that, a regular review and update of the account permissions, and backup authentication credentials by the users is vital. 

Conclusion

An application is viable to security attacks at every level of development and this is the reason why it is imperative for organizations to take measures and keep a guard against it. It can be done with loads of methods while keeping the immersive online customer experience intact.

What is your viewpoint on application security? Share your views on our social media channels: Facebook, LinkedIn, and Twitter