1. Our approach
MalcolmAI is a small team, and we would rather tell you exactly what we do than hand you a badge. This page describes how the platform is built and operated today; we update it as the platform matures. For a detailed control-by-control questionnaire, or to ask about formal attestations, see Section 9.
2. Infrastructure and hosting
- Cloud provider. All production systems run on Amazon Web Services in the US-East-2 (Ohio) region. AWS maintains SOC 1/2/3, ISO 27001, and PCI DSS attestations for the underlying infrastructure; under the shared-responsibility model these cover the data centres and managed services we build on, while MalcolmAI is responsible for the application layer above them. We can provide AWS's current SOC 2 report (via AWS Artifact, under AWS's NDA) to prospective customers on request.
- Network isolation. Backend services run as containers on AWS ECS Fargate inside a private Virtual Private Cloud. The database (Amazon DocumentDB) and cache (Amazon ElastiCache) are reachable only from within the VPC — they have no public endpoints.
- Single public entry point. The only internet-facing surfaces are an AWS Application Load Balancer (the API) and Amazon CloudFront (the web apps and website). Everything else is private.
- Infrastructure as code. Production infrastructure is defined in Terraform and version-controlled, so changes are reviewable and reproducible.
3. Encryption
- In transit. All traffic to the API and web apps is HTTPS only. Our load balancer and CDN accept only TLS 1.2 and 1.3 with modern cipher suites; older protocols are refused. Service-to-database connections use TLS with server-certificate validation.
- At rest. Database storage volumes and all S3 buckets are encrypted with AES-256. Database backups inherit the same encryption.
- Photos are private. Container, chassis, plate, seal, and driver-licence photos are stored in a private S3 bucket with public access blocked at the bucket level. They are served only through CloudFront using time-limited signed URLs — a raw S3 link or an unsigned CloudFront link returns 403.
4. Access control and authentication
4.1 Customer users
- Passwords are stored only as bcrypt hashes (work factor 12); we cannot read them. New users are provisioned by invitation (single-use, hashed invite tokens) rather than shared credentials.
- Sessions use signed JSON Web Tokens that expire after 24 hours.
- Role-based access. Web-admin users are assigned roles (administrator, operator, read-only, company-level viewer) that control which actions and screens are available.
- Tenant isolation is enforced on the server. Every customer depot/yard is a separate tenant. API requests are scoped to the caller's tenant server-side — a user cannot reach another tenant's records by changing an ID in a request.
4.2 Devices and integrations
- Gate devices (iPhones running the MalcolmAI app) are enrolled with a short-lived enrollment code and receive their own per-device key tied to one tenant. A lost device's key can be revoked individually from the web admin.
- Driver self-service check-in uses short-lived (30-minute) signed session tokens scoped to a single lane and visit; drivers never receive a persistent login.
- Public API and webhooks use per-customer API keys that customers create, rotate, and revoke themselves; webhook deliveries are signed so your systems can verify they came from us.
4.3 Recommendations for administrators
Use strong, unique passwords for administrator accounts, give each person their own login rather than sharing one, and remove users promptly when staff leave. Multi-factor authentication for administrator accounts is on our roadmap; contact us for timing.
5. AI data handling
- Provider. Photo-to-data extraction is performed by Google's Gemini models via Google Cloud Vertex AI (an enterprise service, not the consumer Gemini app). Under Google Cloud's terms, customer data sent to Vertex AI is not used to train or improve Google's models.
- No API keys. Our services authenticate to Google using short-lived federated identities (Workload Identity Federation). There are no long-lived Google API keys in our systems to leak.
- What is sent. Only the photo being analysed and the extraction prompt. We do not send your customer lists, pricing, or account data to the model.
- Human review. Low-confidence extractions are routed to your own staff in the review queue — not to MalcolmAI staff or third-party labelling services.
6. Payments
Card payments (MalcolmAI Payments) are processed by Stripe under the depot's own Stripe account. Card numbers are entered on Stripe-hosted pages and never touch MalcolmAI systems, so we hold no cardholder data.
7. Secrets, operations, and internal access
- Secrets (database credentials, signing keys, third-party tokens) live in AWS Secrets Manager and are injected into containers at runtime — never committed to source code.
- Cloud account hygiene. No long-lived root credentials; administration runs under least-privilege identities, and every administrative action in the account is recorded by AWS CloudTrail with tamper-evident log validation.
- Continuous benchmarking and threat detection. AWS Security Hub continuously evaluates our account against the CIS AWS Foundations Benchmark and AWS Foundational Security Best Practices; Amazon GuardDuty monitors for threats and anomalous activity. Findings are triaged as part of routine operations.
- Separate internal tooling. Our internal operations portal is separate from the customer web admin and is restricted to MalcolmAI staff.
- Monitoring. Application errors across every service and app are captured in Sentry; a dedicated health-monitor service continuously checks the processing pipeline and alerts on failures or backlogs.
- Audit trail. Manual corrections and gate decisions are recorded with who, what, and when, and are visible to customer administrators.
8. Backups, availability, and data lifecycle
- Backups. The production database keeps seven daily encrypted snapshots and is protected against accidental deletion; the photo bucket has object versioning enabled.
- Your data is yours. Customers can export records at any time (CSV, API) and delete individual records from the web admin. Retention and deletion commitments are set out in our Privacy Policy.
- Breach notification. We notify affected customers without undue delay, as described in the Privacy Policy and our Data Processing Agreement.
9. Attestations and what's next
We do not yet hold a third-party attestation of our own (our hosting provider, AWS, does). We are pursuing SOC 2 Type I and an independent penetration test, and our AWS environment is continuously measured against the CIS AWS Foundations Benchmark (see Section 7); a current score is available on request. In the meantime we maintain a detailed, control-by-control security questionnaire for prospective customers — including what is in place today and what is in progress — which we share on request (see Section 11).
10. Subprocessors
| Provider | Purpose | Location |
|---|---|---|
| Amazon Web Services | Hosting, storage, database, queues, CDN | United States (us-east-2) |
| Google Cloud (Vertex AI) | AI extraction of data from photos | United States / global endpoint |
| Stripe | Payment processing | United States |
| Sentry (Functional Software, Inc.) | Application error monitoring | United States |
| Google Workspace | Transactional email (invoices, invitations, confirmations) | United States |
| Apple | iOS app distribution and push notifications | United States |
11. Reporting a vulnerability
Found something?
Email security@malcolm-ai.com with "Security" in the subject line. Include steps to reproduce and, if possible, the affected URL or app version.
- We acknowledge reports within 2 business days and keep you informed as we work on a fix.
- Please avoid accessing, modifying, or deleting data that isn't yours, and don't run automated scanning or denial-of-service testing against production.
- We will not pursue legal action against researchers who follow these guidelines and act in good faith.
Need a questionnaire completed?
We keep a pre-filled security questionnaire (CAIQ-Lite format) ready for prospective customers, and we're happy to complete your own. Email security@malcolm-ai.com.