To understand security in our application, we broadly classify into Data Security and Application Security
Data security is concerned with the user and process data that our customers entrust us with in order to meet their business requirements. The primary means to ensure data security is to guarantee that the data is never managed in plain text outside of the application context. We ensure this in the following manner:
- Our application is served over HTTPS. This ensure that all the data transfers between the client browser and our servers happen over an encrypted channel. And the certificate information can be validated to make sure it is assigned to our application.
- The database in which the data is stored is encrypted at rest. In simpler terms, gaining access to the database server machine or hard disk would lead to encrypted data which cannot be decrypted without appropriate keys.
- The encryption keys are stored as part of a keychain provided by the cloud provider.
- To access the cloud provider key chain, a malicious actor would need to access our cloud provider account. This is protected by a 2FA (two factor authentication) requiring our mobile devices.
- This also implies that all database backups are encrypted as well.
- The link between the database server and the application server is also secured via a SSL connection (similar to the browser connection). In other terms, gaining access to our network would not divulge any usable database related data.
Application security is concerned with gaining unauthorized access to the application in an elevated role. This can happen due to compromised user passwords or a compromised code that was injected into the application. We address this in the following manner:
- Our technical stack is built on top of very robust, highly maintained projects with a large community of users as well as well funded, industry leading organizations backing them up.
- We continuously monitor and update the stack to ensure all the latest patches to the various aspects of our system are applied and are up-to-date.
- All our code follows strict best practices guidelines both in terms of performance and in terms of security.
- We frequently run vulnerability scans on all our application code and on our server infrastructure to ensure they are robust.
- We have enabled a lot of monitoring on the infrastructure to ensure any unexpected activity such as repeated attempts to access the servers are flagged and notified immediately for us to block them appropriately.
- One of our basic tenets is to write as little code as is needed to achieve a given function. This ensures better maintainability of our code as well as reduces what is known as the “attack surface” of our code.
- Only the secured port is opened up to the external world. All the other servers and ports are accessible only within our network. We continuously monitor and patch the operating systems to ensure there are no unaddressed vulnerabilities.
While all these methods sufficiently mitigate a chance of a security incident, we do understand that no system is fully secure. We will work to ensure that any untoward incident is detected early and mitigated quickly to reduce the overall impact of such incidents.
In the age of social media and the variety of data privacy violations cropping up all around us, privacy is a serious issue that all cloud solutions seek to address. The issue is even more critical for us since we are providing services in the healthcare domain where breaches have severe impacts. Our approach to this problem is as follows:
- We do not own the data. All the data recorded by the system is owned by the respective clients. So any processing of data is only done on behalf of the client in order to meet their patient safety requirements.
- We adhere to both the GDPR guidelines and multiple regional PDPA requirements prevalent in the region. These guidelines have good measures to ensure we do not process the data other than for what we agree to, without explicit consents.
- All our clients are isolated at the database level to ensure there are no accidental clashes of data between our various clients.
One of the major advantages of choosing a cloud based solution is the scalability that is implicit in the architecture. This is true of our offering as well. Our application can scale seamlessly as you grow: to accommodate more users, to accommodate more information and process them, to meet burst demands which arise from time to time, say for reports. The application framework is architected for best cloud performance and to benefit from the underlying infrastructure scalability (elasticity) that our vendor extends to us.
Additionally, our application and infrastructure is architected for very minimal downtime. We achieve this continuous monitoring and auto-spawning servers to meet demands or address any failures in the services. The servers are periodically backed up to ensure business continuity.
Integration and Interoperability
A question that we frequently hear from our customers is whether we can integrate with their existing systems, say their HR system for user data or their existing identity management systems like active directory etc. While the application or the architecture poses no limitation in enabling these limitations, we currently do not offer integrations off-the-shelf. Please do check with us as we have mechanisms to address each of these requests on a case-basis.
At the moment, there may be a strong case against integrating a critical on-premise system such as an IDMS with a cloud based solution. Technology to address these integrations are evolving everyday. When we see a promising solution that offers these integrations with minimal security exposure, we would be amongst the first to leverage these for our customers.