К основному содержанию
скилл CX Codex GP ChatGPT официальный · OpenAI

twilio-security-hardening — скилл для Codex: суть и установка

Скилл помогает защитить сервисы на базе Twilio от утечки ключей, атак SMS pumping и нарушений PCI DSS или HIPAA. Полезен при разработке и деплое продакшен-приложений.

Установить в Codex · Через Skills CLI (Vercel) Все способы и платформы ↓
npx skills add openai/plugins --skill twilio-security-hardening -a codex
Открыть на GitHub

Что делает twilio-security-hardening

Скилл инструктирует агента по защите учётных записей и инфраструктуры Twilio. Он задаёт правила безопасной работы с ключами: в продакшене и CI/CD нужно использовать раздельные API Keys вместо главного Auth Token. Сброс основного Auth Token мгновенно аннулирует вообще все активные API-ключи проекта. Для защиты вебхуков от поддельных вызовов скилл внедряет проверку заголовка X-Twilio-Signature через официальный SDK.

Включение режима PCI DSS на основном аккаунте необратимо. Он действует на всю учётную запись и шифрует все записи звонков. Поэтому скилл рекомендует изолировать платёжные сценарии в отдельный субаккаунт, использовать глагол <Pay> или программно ставить запись на паузу при вводе реквизитов. Для проектов с требованиями HIPAA агент настраивает шифрование и минимизирует передачу персональных данных пациентов через команды <Say>.

От мошенничества с платным трафиком (SMS pumping) применяются гео-ограничения, пречеки номеров и лимиты запросов на IP-адрес. Самым действенным барьером остаётся отключение неиспользуемых стран в консоли Twilio.

Какие задачи решает

  • проверять подлинность входящих вебхуков через X-Twilio-Signature
  • блокировать фрод и SMS pumping с помощью geo-permissions
  • настроить схему ротации API-ключей без остановки сервисов
  • изолировать приём платежей в отдельный субаккаунт под PCI DSS

Примеры запросов агенту

  • Настрой валидацию входящих вебхуков Twilio на Node.js с проверкой подписи запроса.
  • Как защитить отправку кодов верификации от SMS pumping с помощью geo-permissions?
  • Составь план ротации API-ключей Twilio без простоя работающего приложения.

Как установить twilio-security-hardening

1Через Skills CLI (Vercel)

npx skills add openai/plugins --skill twilio-security-hardening -a codex

2Вручную: положить файлы

.agents/skills/twilio-security-hardening/SKILL.md

Для всех проектов — ~/.agents/skills/

По шагам, с командами для каждой платформы: Скиллы Codex: как установить, где лежат и как вызвать

Вопросы о twilio-security-hardening

Как установить twilio-security-hardening в Codex?

Выполните команду npx skills add openai/plugins --skill twilio-security-hardening -a codex. Конфигурация появится в файле .agents/skills/twilio-security-hardening/SKILL.md.

Почему нельзя использовать главный Auth Token в коде приложения?

У Auth Token полные права на весь аккаунт. Его ротация мгновенно отзывает все созданные API-ключи, поэтому для продакшена и интеграций заводят отдельные API Keys с возможностью точечного отзыва.

Чем опасна активация PCI DSS на основном аккаунте Twilio?

Режим PCI Mode необратим и затрагивает все сервисы аккаунта без возможности отключения. Платёжные сценарии безопаснее выносить в выделенный субаккаунт.

Исходный текст

SKILL.md · MIT
---
name: twilio-security-hardening
description: >
  Secure Twilio applications against common attacks. Covers credential
  management (API keys vs auth tokens), request validation (webhook
  signature verification), PCI DSS compliance, HIPAA account requirements,
  SMS pumping prevention, geo-permissions, and account isolation patterns.
  Use this skill when developers are building or deploying Twilio apps.
---

## Overview

Security hardening is an **ongoing** concern — not a one-time setup. This skill covers account-level security decisions and application-level protection patterns that prevent credential leaks, fraud, and compliance violations.

**Lifecycle:** Choose numbers (`twilio-numbers-senders`) → Register (`twilio-compliance-onboarding`) → Follow traffic rules (`twilio-compliance-traffic`) → Secure everything (this skill)

---

## Credential Management

### API Keys vs Auth Tokens

| Credential | Scope | Revocable | Use when |
|-----------|-------|-----------|----------|
| **Auth Token** | Full account access | Only by rotating (invalidates ALL API keys) | Never in production — use API keys instead |
| **API Key + Secret** | Scoped, revocable individually | Yes — revoke one without affecting others | Production applications, CI/CD, server-side code |
| **Access Tokens** | Short-lived, client-specific | Expire automatically | Client-side SDKs (Voice, Video, Conversations) |

**Critical gotcha:** Rotating your Auth Token **invalidates ALL existing API keys**. This is a one-way door that can break every integration simultaneously. Use API keys from the start so you never need to rotate the Auth Token.

### Best Practices

- Store credentials in environment variables or a secrets manager — never in code
- Use different API keys per application/environment
- Rotate API keys on a schedule (quarterly minimum, monthly for HIPAA)
- Use sub-accounts to isolate customer credentials for ISV platforms — see `twilio-account-setup`

**Docs:** See `twilio-iam-auth-setup` for full credential setup patterns.

---

## Request Validation (Webhook Security)

Verify that webhook requests actually come from Twilio — not spoofed by attackers.

### X-Twilio-Signature Validation

Always use the SDK validator — don't implement HMAC-SHA1 manually:

**Node.js**
```javascript
const twilio = require("twilio");

app.post("/sms", (req, res) => {
    const valid = twilio.validateRequest(
        process.env.TWILIO_AUTH_TOKEN,
        req.headers["x-twilio-signature"],
        `https://yourdomain.com/sms`,
        req.body
    );
    if (!valid) return res.status(403).send("Forbidden");
    // Process webhook...
});
```

**Common mistakes:**
- Using HTTP URL when Twilio sends to HTTPS (URL must match exactly)
- Forgetting to include query string parameters in validation URL
- Not validating in production because "it worked in dev without it"

**Docs:** See `twilio-webhook-architecture` for full webhook security patterns.

---

## Account-Level Compliance

### PCI DSS (Payment Card Industry)

**PCI Mode is IRREVERSIBLE and account-wide.** Once enabled, it cannot be disabled — ever.

- All recordings are encrypted
- Transcript access is restricted
- Affects every service on the account

**Recommendation:** If you need PCI compliance for one use case, create a **separate sub-account** dedicated to payment-related calls. See `twilio-account-setup` for sub-account patterns.

For call recording during payment, pause recording when the customer gives card numbers:
```python
client.calls(call_sid).recordings(recording_sid).update(status="paused")
```

Or use the `<Pay>` verb to handle payments without your application touching card data:
```xml
<Pay paymentConnector="stripe_connector" chargeAmount="49.99" currency="usd" />
```

### HIPAA (Healthcare)

Before handling Protected Health Information (PHI):
- **Execute a BAA** (Business Associate Agreement) with Twilio — contact your account manager or [submit a sales request](https://www.twilio.com/en-us/help/sales) if you don't have one
- **Encrypt all recordings** containing PHI
- **Minimize PHI in TTS** — don't speak full patient details via `<Say>`
- **Rotate API keys** on a regular schedule
- **Restrict access** to recordings and transcripts

---

## Fraud Prevention

### SMS Pumping Protection

Attackers trigger thousands of OTP messages to premium-rate numbers, generating toll charges.

**Layered defense:**
1. **Twilio Verify Fraud Guard** — built-in fraud detection (enable on Verify Service)
2. **Lookup pre-check** — call `twilio-lookup-phone-intelligence` to check line type + SMS pumping risk score before sending
3. **Geo-permissions** — restrict SMS/voice to countries where you have customers ([Console > Messaging > Geo Permissions](https://console.twilio.com))
4. **Rate limiting** — limit verification attempts per IP, per phone number, per time window

### Geo-Permissions

Restrict which countries can receive messages or calls from your account:
- Disable all countries you don't serve (SMS and Voice separately)
- Re-enable only as needed — [configure in Console](https://www.twilio.com/docs/messaging/guides/sms-geo-permissions)
- This is the single most effective anti-fraud measure for SMS pumping

**SMS pumping impact:** Incidents can climb into tens of thousands of dollars. Twilio does not publish most-targeted prefixes — the general guidance is to restrict message termination to countries where you do business via geo-permissions. Customers using Fraud Guard can view estimated fraud savings in their [Fraud Guard reports](https://www.twilio.com/docs/verify/preventing-toll-fraud/sms-fraud-guard).

---

## Common Mistakes

1. **Auth Token in code** — Pushed to GitHub, leaked. Use environment variables + API keys.
2. **No webhook validation** — Attackers can send fake webhook requests to your endpoints.
3. **PCI Mode on main account** — Irreversible. Use a sub-account for payment use cases.
4. **No geo-permissions** — Account is open to SMS pumping from any country.
5. **Auth Token rotation without planning** — Breaks all API keys simultaneously.

---

## Credential Rotation (Zero-Downtime)

Both API keys and Auth Tokens follow the same workflow:

1. **Create secondary** — generate a new API key (or note the new Auth Token)
2. **Operationalize secondary** — deploy the new credential to all services
3. **Promote secondary to primary** — verify all traffic uses the new credential
4. **Delete old primary** — revoke the previous credential

Manage keys at: `https://console.twilio.com/account/keys-credentials/api-keys` (per account).

**Key enabler: use a secrets manager** (AWS Secrets Manager, HashiCorp Vault, etc.) to inject credentials at runtime. This makes rotation near-instantaneous with no downtime — no code changes, no redeployments. Organizations that hard-code credentials into repos, deployment scripts, or `.env` files must manually update every location before deleting the old key.

For ISVs managing many sub-accounts, automate this with the API Keys REST API across accounts.

---

## Next Steps

- **Credential setup and API key management:** `twilio-iam-auth-setup`
- **Webhook security and signature validation:** `twilio-webhook-architecture`
- **Account structure and sub-accounts:** `twilio-account-setup`
- **Phone intelligence for fraud scoring:** `twilio-lookup-phone-intelligence`
- **Traffic compliance rules:** `twilio-compliance-traffic`

© Twilio · MIT · openai/plugins

Похожие скиллы

Все скиллы по теме «Безопасность» →
git-guardrails-claude-code Matt Pocock Скилл ставит хук Claude Code, который останавливает опасные Git-команды до их запуска. Нужен, если агент не должен делать push или удалять изменения. 499 069установок ponytail-review DietrichGebert Скилл проверяет изменения глубже обычного diff: читает связанный код, ищет ошибки, риски, проблемы нагрузки и недостающие тесты. Пригодится для ревью PR и коммитов. CX Codex +1 57 000установок ponytail-audit DietrichGebert Проверяет репозиторий и ранжирует ошибки, риски и лишний код. Подойдёт, если нужен разовый разбор без автоматических правок. CX Codex +1 45 400установок security-audit cloudflare Проверяет кодовую базу на уязвимости и ищет нарушения границ доверия. Пригодится перед релизом или для точечного разбора опасных участков кода. CX Codex +1 54 800установок security-and-hardening addyosmani Помогает проектировать защиту и проверять код на уязвимости при работе с вводом, авторизацией, сессиями и внешними сервисами. Подойдёт перед релизом и при создании функций, которые обрабатывают недоверенные данные. CX Codex +1 70 200установок

Из того же набора593

Весь набор →
twilio-sendgrid-email-settings Скилл помогает настраивать шаблоны SendGrid, отслеживание писем и брендированные ссылки. Пригодится, когда нужно изменить содержимое или параметры отправки. CX Codex GP ChatGPT ★ 7 604звёзд репо twilio-sendgrid-email-send Скилл учит агента отправлять письма через SendGrid v3 Mail Send API: одиночные, пакетные с шаблонами, отложенные и с вложениями. Нужен ключ SendGrid с префиксом SG. CX Codex GP ChatGPT ★ 7 604звёзд репо twilio-sendgrid-deliverability-advisor Диагностирует проблемы с доставляемостью писем через SendGrid: попадание в спам, блокировки и отказы. Помогает настроить аутентификацию домена и график прогрева IP. CX Codex GP ChatGPT ★ 7 604звёзд репо twilio-sendgrid-account-setup Скилл подготавливает SendGrid для отправки писем: API-ключи, доменную аутентификацию и SDK. Нужен перед другими скиллами SendGrid. CX Codex GP ChatGPT ★ 7 604звёзд репо twilio-security-compliance-hipaa Скилл объясняет, как подготовить аккаунт Twilio к работе с PHI: от BAA и пометки HIPAA Project до ограничений отдельных сервисов. Пригодится при разработке медицинских сценариев на Twilio. CX Codex GP ChatGPT ★ 7 604звёзд репо twilio-security-api-auth Помогает выбрать способ аутентификации Twilio и подключить его правильно, чтобы Auth Token не утёк в продакшен. CX Codex GP ChatGPT ★ 7 604звёзд репо twilio-reliability-patterns Скилл для Codex и ChatGPT с паттернами надёжности Twilio: обработка ошибок 429, расчёт лимитов номеров и быстрый приём вебхуков StatusCallback. CX Codex GP ChatGPT ★ 7 604звёзд репо twilio-regulatory-compliance-bundles Скилл помогает подготовить Regulatory Bundle Twilio для международного номера: от проверки требований страны до отправки на рассмотрение. CX Codex GP ChatGPT ★ 7 604звёзд репо

Спонсоры проекта

Компании, которые помогают держать аналитику открытой