Prefinery Security Policy

Last revised: September 6, 2020

Overview

At Prefinery we take the protection of customer data extremely seriously. This Prefinery Security Policy describes the measures Prefinery implements platform wide designed to prevent unauthorized access, use, alteration or disclosure of customer data. The Prefinery services operate on Amazon Web Services ("AWS"); this policy describes activities of Prefinery within its instance on AWS unless otherwise specified. As you continue to learn more about Prefinery we recommend you also review our Terms of Service, Privacy Policy and Data Processing Amendment.

Incident Response

  • We have implemented a formal procedure for security events.
  • When security events are detected we are notified immediately and our phones are paged in order to rapidly address the event.
  • After a security event is fixed we write up a post-mortem analysis.
  • The analysis is reviewed and includes action items that will make the detection and prevention of a similar event easier in the future.
  • Prefinery will promptly notify you in writing upon verification of a security breach of the Prefinery services that affects your data. Notification will describe the breach and the status of Prefinery's investigation.

Infrastructure

  • All of our services run in the cloud. Prefinery does not run our own routers, load balancers, DNS servers, or physical servers.
  • The vast majority of our services and data are hosted in AWS facilities in the USA and protected by AWS security, as described at http://aws.amazon.com/security/sharing-the-security-responsibility. Our services which are hosted outside of AWS include:
  • Prefinery services have been built with disaster recovery in mind.
  • All of our infrastructure is spread across 3 AWS data centers (availability zones) and will continue to work should any one of those data centers fail unexpectedly. Amazon does not disclose the location of its data centers. As such, Prefinery builds on the physical security and environmental controls provided by AWS. See http://aws.amazon.com/security for details of AWS security infrastructure.
  • All of our servers are within our own virtual private cloud (VPC) with network access control lists (ACL’s) that prevent unauthorized requests getting to our internal network.
  • Prefinery uses a backup solution for datastores that contain customer data.

Web Application Firewall

We leverage AWS' Web Application Firewall (WAF) to protect the site from:

  • Distributed denial of service (DDoS) attacks
  • Suspicious activity
  • Known, malicious IP addresses
  • SQL injection and cross-site scripting (XSS) attacks
  • Possibility of quickly blocking IPs, user agents, or entire countries

Data Storage

  • All customer data is encrypted at-rest, using an industry-standard AES-256 encryption algorithm, and stored in the USA.
  • Static files, such as images, imports, exports, and other documents are persisted using AWS S3 storage.
  • Customer data is stored in multi-tenant datastores, we do not have individual datastores for each customer. However strict privacy controls exist in our application code to ensure data privacy and prevent one customer from accessing another customers data.
  • Database backups are performed daily and retained for three days. All backup data is encrypted.
  • Each Prefinery system used to process customer data is adequately configured and patched using commercially-reasonable methods according to industry-recognized system-hardening standards.
  • Prefinery engages certain subprocessors to process customer data. The current list can be found at: Prefinery Sub-processors.

Data Transfer

  • All data sent to or from Prefinery is encrypted in-transit using 256-bit encryption.
  • Prefinery sends a Strict Transport Security Header (HSTS) to the user agent that ensures that all future requests should be made via HTTPS even if a link to Prefinery is specified as HTTP.
  • Our API and application endpoints are TLS/SSL only and score an "A+" rating on SSL Labs' tests. The status of our SSL configuration can be found here.
  • All cookies are set with a secure flag.

Permissions & Authentication

  • Prefinery is served 100% over https. Prefinery runs a zero-trust corporate network.
  • There are no corporate resources or additional privileges from being on Prefinery's network.
  • Employees are required to use strong, unique passwords for Prefinery accounts, and to set up two-factor authentication (2FA) with each device and service where available. This includes AWS, Constellix, GitHub, Help Scout, Postmark, Stripe, Google and others.
  • Employees are required to use recognized password managers like 1Password to generate and store strong passwords, and are also required to encrypt local hard drives and enable screen locking for device security.
  • All access to customer data and application admin functionalities is limited to authorized employees who require it for their job and is restricted by IP and other security measures, including connecting to a bastion host over a VPN.

Application Monitoring

  • On an application level, we produce audit logs for all activity, ship logs to AWS for analysis, and use S3 for archival purposes.
  • All access to Prefinery applications is logged and audited.
  • All actions taken on production consoles are logged.

Security Audits

We use technologies such as AWS Cloudtrail, AWS Cloudwatch Logs and LogDNA to provide an audit trail over our infrastructure and the Prefinery application. Auditing allows us to do ad-hoc security analysis, track changes made to our setup and audit access to every layer of our stack.

Payment Processing

All payment instrument processing for purchase of the Prefinery services is performed by Stripe. For more information on Stripe's security practices, please see https://stripe.com/docs/security/stripe.

Password Policy and Storage

During an account creation and password update, Prefinery requires a strong password that has 10 characters or more, and contains numbers as wells as lower- and uppercase letters. We do not store user passwords: we only store one-way encrypted password hashes using open source audited Bcrypt, including:

  • Cost ratio 2^12 iterations - delaying brute-force attacks
  • Per-user-random-salt - protect against rainbow table attacks and encrypted password matching
  • Password concatenated with two individual app-tokens

If a user incorrectly enters an account password on multiple attempts, the account will be temporarily locked to prevent brute-force attacks. To further protect account access, two-factor authentication is available to all Prefinery users and can be turned on via the user account security settings.

Following a password change the user is always notified in order to quickly be able to respond, should an account attack be undergoing.

Customer Responsibilities

  • Protecting your account and user credentials, including passwords and API keys.
  • Compliance with the Terms of Services agreement with Prefinery, including with respect to compliance with laws.
  • Promptly notifying Prefinery if a user credential has been compromised or if you suspect possible suspicious activities that could negatively impact security of the Prefinery services or your account.
  • You may not perform any security penetration tests or security assessment activities without the express advance written consent of Prefinery.