Genus

View Original

Can you create secure enterprise applications with no-code?


As enterprises navigate the complexities of digital innovation, no-code platforms stand out for their agility and simplicity. They promise to bridge the gap between business demands and the availability of technical expertise. Yet, amid the rush to adopt these accessible tools, a pivotal concern arises: the assurance of application security. This is not just a feature but a cornerstone—security cannot be an afterthought in enterprise-grade software solutions.

Introduction

Embarking on the no-code journey offers myriad operational benefits—accelerating development timelines, enhancing productivity, bridging the IT – business gap, and reducing dependence on scarce coding skills.

But the conversation inevitably turns to the inherent security of the applications produced. Some low-code and no-code platforms pose security risks, while others are secure by design.

This article explores the secure design principles of the latter to help you choose a platform you can trust for robust and secure applications.

Code generation and code injection in no-code

No-code platforms are designed to simplify application development. To implement complex functionality, some vendors allow technically savvy users to inject custom code or modify generated source code. While these options may seem beneficial, they come with downsides:

  • Changing the source code or adding new code increases the risk of introducing security vulnerabilities.

  • Adding new functionality often requires regenerating the source code, which can disrupt previous changes and introduce new security risks, adding to maintenance costs.

Instead of choosing a code-generating vendor, opt for a true model-driven platform. This approach separates business logic from the software that interprets it, resulting in a single, identical code base across applications. These platforms gain robustness and security from wide use across customers and use cases.

If you choose a model-driven platform, pay close attention to its capabilities or expressiveness: Can it fully replace traditional coding methods? Confirm this by asking for examples and demos of existing applications.

Additionally, even enterprise-grade no-code platforms, while bolstering security, are not a silver bullet. Even the most advanced platforms can result in applications with security flaws. Opting for a true model-driven, enterprise-focused platform that prohibits code injection and code generation can minimize these risks. Nevertheless, this doesn't eliminate the need for a comprehensive Secure Development Life Cycle (SDLC) during creation and deployment. A model-driven approach does, however, streamline the process of crafting secure enterprise software.

Citizen or professional developers?

No-code is frequently seen as a software development approach that removes the need for coding expertise, empowering "citizen developers" to construct software. These platforms typically address straightforward issues, including web form development, website creation, or crafting modest software applications.

Some organizations opt to provide a no-code platform to a broad swath of their workforce. The idea is that the user-friendliness of these tools empowers any employee — the citizen developers — to tackle their business challenges directly. Yet, this democratization of software creation within an enterprise often ushers in a set of new vulnerabilities and security challenges.

Although not strictly falling under the category of shadow IT — which is generally characterized as unauthorized tech resources deployed by users to bypass their IT department — the risks associated with widespread no-code adoption resemble those of shadow IT:

  • Applications crafted by citizen developers frequently go unmonitored and lack security measures, yet they still have the capability to collect, analyze, and share data. This lack of management can lead to data being shared with the wrong people. For organizations governed by strict laws and regulations, such breaches could seriously impact the business.

  • These applications often exist independently, disconnected from the oversight of the IT department, raising compliance risk related to policy violations and increasing the likelihood of introducing new vulnerabilities.

  • Storing crucial data on platforms developed outside the IT department poses business continuity risks, as these platforms generally aren't covered by existing storage and backup policies.

  • A major drawback with citizen-developed solutions is the restricted access to the software and its data, often limited to the individual developer. When that employee departs, securing access to this vital information can become problematic.

  • Citizen developers usually disregard interoperability, resulting in applications that might solve immediate issues but fail to integrate effectively with core enterprise systems.

Citizen developers can offer agility and speed but may compromise security. Some companies counteract this by placing no-code platforms under strict IT supervision. Nonetheless, for maximum security and control, enterprises must continue to lean on professional developers.

Because model-driven no-code decouples programming languages and syntax from business logic, professional no-code developers do not need traditional coding skills. What you need are employees well-versed in institutional knowledge and business requirements. They must grasp business logic and commit time to mastering the no-code platform. State-of-the-art no-code platforms can fully replace traditional coding, but to unlock their full potential, these platforms require professional developers immersed in your business context. To this end, professionals adept at navigating both business and technical realms earn the title of Business Engineers, exemplifying IT Professionals with a dual focus.

Implementing advanced security requirements

Enterprise applications must meet advanced security requirements. When evaluating no-code development platforms, confirm their ability to design, implement, and sustain your security needs:

  • Use permissions and privileges to specify allowable actions and accessible data. Ensure the platform accommodates security groups and configuration of both users and groups.

  • Employ conditional security to grant access rights dynamically. For example, a user may gain read access for a limited time based on current roles or responsibilities or exclusively when assigned to a particular task. Incorporating conditional security is vital when handling confidential information.

  • Maintain data validation and consistency: Verify the platform's ability to create and store data accurately.

  • Implement delete constraints to safeguard data integrity and availability. Such controls allow or deny data deletion.

  • Maintain an audit trail that logs all vital Create, Read, Update, and Delete (CRUD) database operations. Store these logs in a persistent database.

  • Integrate with Microsoft Entra ID (formerly Active Directory or Azure AD) and other authentication protocols. Verify support for your two-factor authentication mechanisms.

  • All constraints, validations, rules, and security must be enforced on the server side, while UX convenience and nice-to’s can be added on the inherently untrustworthy client.

Transparent and open architecture that integrates with any data and any system

When evaluating a no-code platform, delve into the platform’s underlying architecture as well as the governing principles and philosophy shaping its development. Confirm that the platform is sustainable and designed for enterprise use.

Here are some concluding recommendations:

  • Expressiveness – Assess whether the platform has the capabilities to replace traditional coding methods to address both current and future business challenges.

  • Integrations – Determine if the platform has any limitations in integrating with external vendors and outside data sources like APIs and cloud services. Opt for a platform boasting well-documented, transparent, and open architecture.

  • Automation – Ascertain the platform's capability to automate and digitize business processes efficiently.

  • Deployment – Select a cloud-agnostic platform. If you still rely on an on-premises data center, ensure the platform offers dual deployment options: on-premise and cloud-based.

  • Scaling – Confirm that the platform utilizes a modern, microservices-based architecture optimized for cloud scalability. Make sure it can scale both up and out to meet future demands.

  • Secure – Verify that the platform is secure and can implement enterprise-grade security designs.

See this form in the original post