Перейти к содержимому

Безопасность

Безопасность, которую можно показать аудитору.

Как мы создаём и эксплуатируем Moatgator, чтобы ваша проверка безопасности могла сказать «да».

  • Эфемерные сборки

    Артефакты сборки живут недолго и истекают через 24 часа, а каждая сборка выполняется в изолированном воркере.

  • Ваши ключи подписи остаются вашими

    Подпись происходит в вашем конвейере. Moatgator никогда не хранит ваши ключи подписи, сертификаты и provisioning profiles.

  • Доступ по принципу наименьших привилегий

    GitHub App запрашивает только нужные разрешения, а GitHub Action проходит аутентификацию через OIDC вместо долгоживущих секретов.

  • Соответствует OWASP MASVS

    Отчёты Scan сопоставляют каждую находку с контролями MASVS, которые ваши аудиторы уже знают.

  • Телеметрия, уважающая пользователей

    Pulse собирает сигналы безопасности об устройствах и попытках, а не содержимое ваших пользователей, с выборкой, хранением по тарифу и выбором региона.

  • Готов к LGPD

    Мы обрабатываем персональные данные в соответствии с LGPD. Соглашение об обработке данных (DPA) и список субобработчиков с целью, данными и страной опубликованы, как и наша политика раскрытия уязвимостей.

  • Безопасная разработка

    Наш собственный конвейер при каждом изменении запускает статический анализ, проверку зависимостей и поиск секретов.

  • Доступ к нашим системам

    Доступ к продакшену требует MFA и единого входа с одобрением, а чувствительные внутренние действия оставляют след для аудита.

Controls we can point to

Every claim here is a control with evidence. What is not built yet is listed separately, with no date promised.

“Built” means implemented and tested in the product's source code. “Built” is not the same as audited, and the platform is in private beta. Evidence lives in private repositories and can be shown to customers on request.

This section is written in English.

Built and tested

Access and identity

  • Two-factor authentication (TOTP), optional or required per organization

    Owners and admins can be required to use a one-time code. Codes cannot be reused and the secret is stored encrypted.

    Since
    Evidence
    api/src/lib/totp.tsapi/src/auth-security.test.ts
  • Passwords stored with scrypt; session tokens stored only as hashes

    Passwords use scrypt with a per-user salt. Session and one-time tokens are kept only as hashes, so a database read does not reveal a usable token.

    Since
    Evidence
    api/src/auth/local.tsapi/src/auth-security.test.ts
  • API keys shown once, stored hashed, with scope, expiry and rotation

    A key's secret is displayed only when it is created and stored as a keyed hash. Keys can be limited to one scope, expire, be rotated and be revoked immediately.

    Since
    Evidence
    api/src/lib/apikey.tsapi/src/api-keys.test.ts

Data

  • Row-level isolation between customers, enforced in the database

    Every table with customer data has row-level security forced on, and the application connects with a role that cannot bypass it. A generated test checks every such table.

    Since
    Evidence
    api/migrations/0001_init.sqlapi/src/rls.test.ts
  • Tamper-evident audit log

    Sensitive actions are appended to a hash-chained log that the database refuses to update or delete. Owners can verify the chain and export it.

    Since
    Evidence
    api/src/lib/audit-chain.tsapi/migrations/0004_audit_chain.sql
  • Application-level encryption of stored secrets (AES-256-GCM)

    Webhook secrets and two-factor secrets are encrypted before they reach the database. The key lives outside the database.

    Since
    Evidence
    api/src/lib/field-crypto.ts
  • Telemetry without IP addresses and with rotating device identifiers

    The raw device ID is never stored; the stored hash changes every 30 days and differs per app. IP addresses are stripped before ingestion and kept out of logs.

    Since
    Evidence
    api/src/privacy/index.tsapi/docs/privacy/field-inventory.md
  • Retention limits by plan, data export and erasure on request

    Events are deleted after the period of the plan. Customers can export their data and erase events by period or by device.

    Since
    Evidence
    api/src/retention/index.tsapi/docs/pulse/retention.md

Platform

  • Origin checks on state-changing requests and rate limits on sensitive routes

    Requests that change data from a browser session must come from an allowed origin. Login, sign-up, writes and ingestion are rate limited.

    Since
    Evidence
    api/src/plugins/auth.tsapi/src/lib/ratelimit.ts
  • Outbound webhooks signed and protected against server-side request forgery

    Webhook payloads carry an HMAC signature. Destinations in private, loopback and cloud-metadata ranges are refused, including after DNS resolution, and redirects are not followed.

    Since
    Evidence
    api/src/lib/ssrf.tsapi/src/webhooks.test.ts

Programs and process

  • Vulnerability disclosure contact published (security.txt)

    A security.txt file (RFC 9116) tells researchers where to report. The mailbox depends on the company domain, which is not registered yet.

    Since
    Evidence
    landing/public/.well-known/security.txt
  • Documented process and deadlines for reported bypasses

    A written process sets response deadlines by severity (7, 14, 30 and 90 days) and how a fix is published after the reporter agrees.

    Since
    Evidence
    api/docs/security/bypass-response.md
  • Incident response runbooks and severity levels

    Runbooks cover outages, stuck queues, leaked artifacts, compromised keys, public bypasses and abuse, with severity levels, roles and communication templates.

    Since
    Evidence
    api/docs/ops/incident-response/README.md

On the roadmap

  • Ephemeral builds with artifacts that expire after 24 hours

    Build workers will run isolated and artifacts will be deleted automatically. The build pipeline does not exist yet.

    Target: Phase 1

  • Your app signing keys stay with you by default

    Signing will happen in your own pipeline. This is a design goal for the build service, which does not exist yet.

    Target: Phase 1

  • Encryption in transit and at rest in managed infrastructure

    The platform is not deployed yet. TLS and encrypted storage will be enabled and verified at the first deployment.

    Target: At first deployment

  • Managed key hierarchy with automatic rotation

    A key-management library and infrastructure module exist, but no real key service is provisioned and the library is not wired into the platform yet.

    Target: At first deployment

  • Independent penetration test

    An external penetration test is planned. No report exists to publish today.

    Target: Phase 3

  • Private bug bounty

    A private bounty program is planned after the independent test.

    Target: Phase 3

  • Single sign-on (SAML, OIDC) and SCIM provisioning

    Planned for the Enterprise plan.

    Target: Phase 3

  • SOC 2 Type I

    Planned. The company holds no security certification today.

    Target: 2028

Документы

  • Соглашение об обработке данных (DPA): опубликовано
  • Список субобработчиков: публичный, с целью, данными и страной
  • Ответы на опросник по безопасности: по запросу
  • Пример отчёта с привязкой к MASVS: по запросу

Вопросы о безопасности

Храните ли вы исходный код моего приложения?

Нет. Защита работает со скомпилированным приложением в вашем конвейере, а артефакты сборки истекают через 24 часа.

У кого находятся ключи подписи?

У вас. Moatgator возвращает неподписанный артефакт, а подписывает его ваш конвейер.

Какие персональные данные вы обрабатываете?

Только то, что вы отправляете через наши формы, и сигналы безопасности об устройствах и попытках через Pulse, но никогда не содержимое ваших пользователей.

Можете ли вы ответить на наш опросник по безопасности?

Да. Свяжитесь с нами и пришлите опросник или требования вашей проверки.

Делает ли защита приложение неуязвимым?

Нет. Защита повышает стоимость атак и делает их заметными. Она снижает риск, но не устраняет его.

Нужна документация по безопасности?

Расскажите, что требует ваша проверка, и мы пришлём это.