1. Data Center and Network Infrastructure
Complect’s platform is deployed and the network infrastructure managed by Heroku, a PaaS company that manages our infrastructure, scaling, and security. Heroku itself is hosted and managed by Amazon Web Service (AWS) technology within Amazon’s secure data centers which are housed in nondescript facilities, and critical facilities have extensive setback and military grade perimeter control berms as well as other natural boundary protection. Physical access is strictly controlled both at the perimeter and at building ingress points by professional security staff utilizing video surveillance, state-of-the-art intrusion detection systems, and other electronic means. Authorized staff must pass two-factor authentication no fewer than three times to access data center floors. All visitors and contractors are required to present identification and are signed in and continually escorted by authorized staff.
Amazon only provides data center access and information to employees who have a legitimate business need for such privileges. When an employee no longer has a business need for these privileges, his or her access is immediately revoked, even if they continue to be an employee of Amazon or Amazon Web Services. All physical and electronic access to data centers by Amazon employees is logged and audited routinely.
Together, Heroku and AWS provide Complect with built-in protections that include, but are not limited to:
1. Network Security
2. Data Security
3. System Security
4. Vulnerability Management
For additional information regarding Heroku and AWS security, please visit: https://www.heroku.com/policy/security and https://aws.amazon.com/security.
2. Network Security
To free up our time to focus on developing a great platform for you, we rely on Heroku to provide key network management services. They employ firewalls to restrict access to systems from external networks and between systems internally. By default, all access is denied and only explicitly allowed ports and protocols are allowed based on business need. Each system is assigned to a firewall security group based on the system’s function. Security groups restrict access to only the ports and protocols required for a system’s specific function to mitigate risk.
Host-based firewalls restrict customer applications from establishing local host connections over the loopback network interface to further isolate customer applications. Host-based firewalls also provide the ability to further limit inbound and outbound connections as needed. The managed firewalls prevent IP,MAC, and ARP spoofing on the network and between virtual hosts to ensure spoofing is not possible. Packet sniffing is prevented by infrastructure including the hypervisor which will not deliver traffic to an interface which it is not addressed to. Heroku utilizes application isolation, operating system restrictions, and encrypted connections to further ensure risk is mitigated at all levels.
In addition, their infrastructure also provides DDoS mitigation techniques including TCP Syn cookies and connection rate limiting in addition to maintaining multiple backbone connections and internal bandwidth capacity that exceeds the Internet carrier supplied bandwidth.
Port scanning is prohibited and every reported instance is investigated. When port scans are detected, they are stopped and access is blocked by Heroku.
3. Data Security
Our application runs within its own isolated environment on the Heroku platform and cannot interact with other applications or areas of their system. This restrictive operating environment is designed to prevent security and stability issues. These self-contained environments isolate processes, memory, and the file system using LXC while host-based firewalls restrict applications from establishing local network connections. The data is stored in separate access-controlled databases per application. Each database requires a unique username and password that is only valid for that specific database and is unique to a single application. Our connection to Postgres databases require SSL encryption to ensure a high level of security and privacy. Complect ensures our customer information is always protected in transit and at rest with advanced industry standard 265-bit encryption.
4. System Security
System configuration and consistency is maintained through standard, up-to-date images, configuration management software, and by replacing systems with updated deployments. Systems are deployed using up-to-date images that are updated with configuration changes and security updates before deployment. Once deployed, existing systems are decommissioned and replaced with up-to-date systems. Complect’s self-contained environment isolates processes, memory, and file systems while host-based firewalls restrict applications from establishing local network connections. Meanwhile, the operating system access is limited to Heroku staff and requires username and key authentication. Operating systems do not allow password authentication to prevent password brute force attacks, theft, and sharing.
5. Vulnerability Management
Complect’s vulnerability management process is automated through Heroku’s fully managed services and is designed to remediate risks without our interaction or impact. Heroku conducts continuous testing of vulnerabilities through internal and external assessments, such as, penetration tests, vulnerability assessments, and source code reviews to assess the security of its application, architecture, and implementation. Their third party security assessments coverall areas of their managed platform services including testing for OWASP Top 10web application vulnerabilities and customer application isolation, system patch monitoring, and third party mailing lists and services. Each vulnerability is reviewed to determine if it is applicable to Heroku’s environment, ranked based on risk, and assigned to the appropriate team for resolution. New systems are deployed with the latest updates, security fixes, and Heroku configurations and existing systems are decommissioned as customers are migrated to the new instances. This process allows Heroku to keep the environment up-to-date. Since Complect’s application is run in an isolated environment, we are unaffected by these core system updates.
6. Availability & Business Continuity
Complect’s platform is backed up as part of our deployment process on secure, access controlled, and redundant storage provided by Heroku. They use these backups to deploy our application across their platform and to automatically bring our application back online in the event of an outage. Continuous protection keeps data safe on their Heroku Postgres. Every change to our data is written to write-ahead logs, which are shipped to multi-datacenter, high-durability storage. In the unlikely event of unrecoverable hardware failure, these logs can be automatically 'replayed' to recover the database to within seconds of its last known state. Complect’s configuration and meta-information is backed up every minute to the same high-durability, redundant infrastructure used to store our database information. These frequent backups allow capturing changes made to the running application configuration added after the initial deployment. From our instance images to our databases, each component is backed up to secure, access-controlled, and redundant storage. Complect can recover databases to within seconds of the last known state, restoring system instances from standard templates, and deploying customer applications and data. In addition to standard backup practices, our Heroku provided infrastructure is designed to scale and be fault tolerant by automatically replacing failed instances and reducing the likelihood of needing to restore from backup. Heroku will automatically restore Complect’s application and Postgres databases in the case of an outage. Their platform is designed to dynamically deploy applications within the cloud, monitor for failures, and recover failed platform components including customer applications and databases. In addition, their stability and scaling, inherently mitigates common issues that lead to outages while maintaining recovery capabilities. Complect has redundancies that prevent single points of failure, we are able to replace failed components, and rely on multiple data centers designed for resiliency. In the case of an outage, our platform is deployed across multiple data centers using current system images and data is restored from backups. Heroku reviews platform issues on our behalf to understand the root cause, impact to us, and improve the platform and processes.