Security Heroku

Heroku's platform is designed to secure users from threats by adding security controls at the physical layer up to the application layer. By isolating the client's applications, security updates can be performed very quickly without the client noticing.

Datacenters

Heroku's physical infrastructure is hosted and maintained within Amazon's secure data centers and it uses Amazon Web Service (AWS) technology. These are the standards:

  • ISO 27001
  • SOC 1 & SOC 2/ SSAE 16 / ISAE 3402
  • PCI level 1
  • FISMA moderate
  • Sarbanes-Oxley(SOX)

Penetration Testing

Heroku hires external consultations to check their security. The results are reviewed and organized by risk.

Heroku uses ISO 27001 and FISMA certified data centers maintained by Amazon. Amazon has a lot of experience and so this experience has been applied to the AWS platform and infrastructure. The AWS data centers are located in inconspicuous buildings, critical buildings have extensive military perimeters and also protection of natural boundaries.

Physical access is very limited and controlled when entering the building but also at the boundary of the area. Physical protection is also added by the latest technologies to ensure that your data is well protected. Both physically and virtual.

Physical Protection

Not only can something go wrong in the inside, but something can also go wrong from the outside. This could be a fire or a power outage, for example. This, fortunately, is where Heroku comes in. In the data centers, there is automatic fire detection. Along with fighting against the fire the fire is reported by the usage of smoke detecors that catch the smoke before a fire even starts.

The electricity is designed to provide power to the servers 24/7, even when there is maintenance going on. An Uninterruptible Power Supply (USP) provides backup power in case that something goes wrong with the normal network, keeping essential machines running. Climate control is necessary to maintain a constant temperature for the servers and hardware. This prevents processors and the like from overheating, which in turn reduces problems with servers breaking down because they are too hot.

De staff van het datacenter monitoren alle elektrische en mechanische activiteit en zorgen ervoor dat het materiaal. Preventief onderhoud wordt uitgevoerd om de continuïteit vol te houden. The data center staff monitors all electrical and mechanical activity and ensures that the equipment maintenance is performed preventive to keep continuity at it's fullest.

Network Security

Firewalls are used to control access to systems from external sources. By default, all access is blocked and only specified ports are allowed. Each system is assigned to a firewall security group based on the function of the system. These groups allow access to only the ports and protocols required by the system's specific needs.

Heroku's infrastructure provides DDos mitigation techniques including TCP syn cookies and connection rate limiting. Heroku works closely with providers to intervene quickly should an event occur.

Firewalls stop IP, MAC, ARP spoofing between virtual hosts to ensure that spoofing is not possible. Packet sniffing is stopped by the hypervisor and the hypervisor monitors traffic and stops packets that are going to an interface where they are not supposed to go. Port scanning is prohibited and any attempt is reported and investigated by the infrastructure provider. If the scan is detected it is stopped and access blocked.

Data Security

Each application on the heroku platform runs in its own isolated environment and cannot perform any action on other applications of the system. The environment is designed to isolate processes, memory and the filesytem, also because of the firewalls it is not possible to make local network connections.

Heroku Postgres

Herkoku uses Postgres to store the data, the data is stored in separate databases per application with access control. Each database needs a unique username and password, these login details are therefore only valid with the correct database.

The connections between the client and the database can only be made if there is an SSL encryption. This is a high level of privacy and security. The stored data can be encrypted by the user's application to comply with data security.

Vulnerability Management

The process is designed to resolve the risk without requiring the customer to do anything. Heroku is notified when a vulnerability is discovered. New systems have the latest updates, security fixes and configurations from Heroku itself.

There also is a plan for systems that are retiring. The customer is migrated to a new device that is up-to date. Because the applications are isolated, they do not notice any system updates.

To further reduce the risk, the various components are put into a security group. This group then ensures that the ports and such have access.

Back ups

Customer applications are automatically backed up as part of the application deployment. They use this backup for in case something had to go wrong. This backup is then deployed automatically.

Postgres also deployed a good system. Every change in the data is written in a write-ahead log. This log can be used when the data is no longer available. The log file is played back and the data can be retrieved. It is also possible that you set your own back up requirements and then Heroku will take that into account.