Security at Transloadit

We should distrust platforms that claim they are 100% secure, and you won’t catch Transloadit making claims like that. Our pledge instead is that privacy & security is our number one concern. We openly share what we do to keep you safe.

Security & Compliance

Compliance and Data Residency

Target the United States, Europe, or Asia Pacific for data residency, or use our global endpoint to geo-route each Assembly to the closest of all three regions.

Need the specifics? Our full SOC 2 Type II report is available on request, once an NDA is in place.

Request our SOC 2 Type II report

GDPR and ISO 27001 file uploads

Three regions. Your routing choice.

Pin processing to one region for data residency, or have uploads and requests routed to the closest region automatically.

  • United States
    Virginia
    us-east-1
  • Europe
    Ireland
    eu-west-1
  • Asia Pacific
    Singapore
    ap-southeast-1

Uptime you can plan around.

The uptime we commit to in our SLA. Our public status page carries the record behind it.

Security standards and controls.

Our security program includes ISO 27001 certification, a SOC 2 Type II attestation, and controls for handling your files.

  • GDPR

    GDPR

  • HIPAA

    HIPAA

  • AES-256

    AES-256

  • SOC 2 Type II

    SOC 2 Type II

  • ISO 27001ISO27001

    ISO 27001

HIPAA-regulated workloads require a Business Associate Agreement.

Seriously secure

What we do to keep you secure.

Here’s a list of things we are doing to keep you and your data secure.

Policy

  • We operate in compliance with GDPR and CCPA requirements, support HIPAA-regulated workloads under a Business Associate Agreement, and are certified to ISO/IEC 27001.
  • Our SOC 2 Type II attestation report is available upon request.
  • We have an internal #security channel where we raise awareness and share and discuss all the latest relevant threats. We continuously review and update policies here.
  • All teammates and consultants that handle sensitive data must sign a contract that covers NDA, 2FA, encrypted hard drives, update management, and more.
  • We run a security program and are continuously penetration tested, both by automated scanners and by humans.
  • Vendors with access to information are all listed on our Privacy page.
  • All teammates are vetted, access is granted on a need-to-know basis, and revoked when the need no longer exists. We confirm that when workers leave.
  • We publish security incident reports on our blog. Customer notification obligations are governed by the applicable Data Processing Addendum.
  • As a remote company, we do not have an office/internal network with demilitarized zones and have embraced BeyondCorp security principles (a Zero Trust implementation). See Google’s BeyondCorp papers. We do segment different parts of our infrastructure and use firewalls to restrict traffic in and out of our network at strategic points, and deploy VPCs to isolate traffic and create network zones.
  • Transloadit is a highly technical company, and everything is code. This includes policies, configuration, and infrastructure (via Terraform). This lets us subject any change in the company to change management via version control, peer reviews, tests, CI/CD, and rollbacks. Documentation for all changes in the company can be found in pull requests and accompanying Markdown documents. Hardening guidelines are documented as code.
  • You can direct API requests to a specific region by using a regional endpoint such as https://api2-eu-west-1.transloadit.com.

Authorization & Encryption

  • Our API and website support HTTPS to encrypt data in transit.
  • Sensitive data at rest is encrypted with AES-256.
  • Credit card payments for Transloadit subscriptions are handled by Stripe, a PCI DSS Level 1 certified payment processor.
  • Transloadit must first enable SAML single sign-on for your Enterprise Workspace. Its owner can then configure an identity provider for developer-console users.
  • There are account owners and collaborators, owners have more privileges (can invite, cancel, etc).
  • For dangerous or sensitive operations our website asks to re-authenticate, to start a “sudo” session that lasts for 15 minutes.
  • For accounts with passwords we enforce minimum security requirements.
  • Passwords are cryptographically one-way hashed via bcrypt with salts and peppers.

Hardening & Process

  • We use AWS and Hetzner infrastructure, with temporary file storage on Amazon S3 and Cloudflare R2. Our servers run on Ubuntu. Administrators use sudo to elevate privileges when necessary.
  • Our best practices make it easy to give Transloadit the least amount of access to your files.
  • Our encoding (the most risky part as we execute commands on behalf of third parties) runs on stripped-down machines. We use sandboxing in addition to this.
  • We deploy Rate Limiting on account, IP, and audit event level.
  • All relevant production log entries are stored remotely, with pattern matching and alerts for malicious intent, as well as unexpected crashes, exceptions and other error conditions.
  • We harden system images and roll out new ones on every change automatically via Packer and CI/CD. This applies to all clusters. Security patches are rolled out automatically. Other versions are pinned and opt in. We have a process in place to roll out emergency patches.
  • We have thousands of unit tests, system tests, integration tests, e2e tests, confirming changes are secure, correct, performant.
  • We use prepared statements and leverage frameworks to escape and sanitize user input.
  • You can enable Signature Authentication to verify the integrity of signed request parameters. See API Security for more ways to protect your integration.
  • You can scan incoming files for viruses by adding 🤖/file/virusscan to your Assembly Instructions.

Uptime & Continuity

  • Our vault that holds Credentials and Templates is encrypted and synced to an off-site location. Offline copies of our code and this vault are kept off the public internet.
  • We deploy monitoring and (thousands of) alerts for system health, product health, and abuse (attack signatures, audit events).
  • Our statuspage is completely separate from our production platform, all the way up to the domain registrar, and lets you know of any issue affecting production, as well as the @TLStatus Twitter account.
Found something?

Responsible Disclosure of a Security Vulnerability.

At Transloadit, we care a great deal about security. We realize that mistakes can happen, but we are always looking to fix and prevent those. That is why we really appreciate it when you notify us if you find a security issue.

Rewards

If the issue is valid (i.e. we think it should be fixed) and you are the first to report it, you will be awarded a place in our Hall of Fame. For severe cases we hand out swag of choice from shop.transloadit.com. We do not have cash bounties on offer.

Hall of Fame

Please include in your report how you would want to be credited in the Hall of Fame. You can supply a site and a name or handle, but we draw a line where things get too noisy, spammy, or offensive.

Rules

Automated tools can generate a lot of noise for our audit tools, so we ask you not to use those.

Please keep in mind that we do have rate-limiting for login failures and many other events, but that it kicks in quite late.

Credit where due

Hall of Fame

The following security researchers have identified and responsibly disclosed vulnerabilities to us. The top 3 are shown here. See the complete list for everyone who has contributed to making Transloadit a safer place.

FAQ

Questions, answered.

If you have questions about Transloadit security in general, here are a few security-related questions and their answers:

Are Assembly IDs secure?

Transloadit uses UUIDv4 without dashes for generating these IDs randomly. Guessing, or generating a UUID that matches one of ours, would be as probable as generating a collision. This is so improbable that it is not considered a viable attack vector.

Since we keep around 5,000,000 Assemblies in active storage at any given time, the chances are admittedly 5,000,000 times more likely to generate a collision. Random UUIDv4 identifiers still make guessing an active Assembly ID computationally impractical. Rate limits provide an additional defense, but the Assembly creation quota is not a limit on Assembly Status lookups. We deem random guessing far from being a viable attack vector.

For files, the window gets even smaller again as we remove them after 24 hours. A few reasons for why we choose to do this are outlined here.

Beyond the guessing of files or Assembly URLs, it is of course a concern that these addresses would leak somehow. We consider an Assembly ID and file URL private. They are a secret shared between Transloadit, our customer, and depending on your integration, the specific end-user for whom the customer is supplying the files and running the Assembly on your behalf.

This communication between these parties happens over HTTPS, for which we have A+ grading on SSL Labs across the board. If HTTPS is used for integration with Transloadit and the end-user for any request involved, the URLs to Assemblies and files can not leak beyond these trusted parties, to the likelihood of becoming a viable attack vector.

Then there is Transloadit to look at as trusted party. Our policy is that only our trusted core-team-members have access to these files for debugging purposes. We receive millions of files every day and they are just UUIDs to us until a customer asks us to take a closer look.

We run our processes as non-privileged users and provide them with the credentials they need. A compromised process can expose the credentials it receives without root access. Access to encrypted data depends on the stolen credentials’ permissions and access to the relevant decryption keys. Encryption at rest does not protect data from an attacker who can use an authorized read path. Limiting credentials and protecting processes remain important, and no system can offer a 100% security guarantee.

Can I allow Transloadit’s IPs in my firewall?

Our outgoing IP addresses change as servers are added and removed. Keeping a firewall allowlist of individual server IPs up to date can lead to dropped connections.

This applies to outgoing connections such as 🤖/sftp/store, Assembly Notifications, and 🤖/http/import.

How are my Amazon S3 credentials protected?

For S3 exports, store your credentials as Template Credentials and reference them from your Templates. Stored cloud-storage credentials are encrypted at rest.

Limit Transloadit’s access to the S3 bucket and permissions needed for your workflow. See the S3 Store documentation for the required IAM permissions.

The s3:PutObject permission allows overwriting existing objects with the same key; it does not limit access to adding new files.

MD5 is not a secure hashing algorithm, why are you using it?

First of all, for signature authentication and all other things that need to be secure we do not use MD5. We provide MD5 hashes for files as a means to detect duplicates from trusted sources, as well as for other purposes where there’s no rewarding use case for the attack vector of calculating colliding hashes.

Since MD5 is both faster to calculate and even more widely available than, for instance, SHA1, a deliberate trade-off was made by providing MD5 hashes for encoding results. It goes without saying that, since MD5 is not secure, you should not be using these hashes as building blocks for anything that is security sensitive in your application.

Security you can build on

Build file workflows with documented security practices and regional processing options.
Proving compliance to auditors
SOC 2 Type II report and ISO 27001 certification
Protecting data in transit
TLS encryption
Securing data at rest
AES-256 encryption
Keeping data in-region
Regional data residency
GDPR
HIPAA
ISO 27001ISO27001
AES-256
SOC 2 Type II

HIPAA-regulated workloads require a Business Associate Agreement.

No credit card needed