
5 наиболее распространенных уязвимостей обмена сообщениями (и как исправить)
25 июня 2025 г.1ChatbotThatLeakedClientMessages
Интегратор SaaS объединил несколько платформ чата за одним токеном для носителя, чтобы «держать вещи простыми». Однажды днем бот -поддержка клиента отправил счета -фактуры, предназначенные дляАрендатор ак номерам телефоновАрендатор бПолем
Корская причина → Общий токен имел достаточно возможностей для действия любого арендатора; Когда задание соскользнула не в неправильную учетную запись, API с радостью выполнил.
Почему это важно:Многолетние обмен сообщениями усиливают каждыйАВТОМОБИЛЬНАЯ Ошибка- Спросите Microsoft, где 2023
2. Почему обменения сообщениями - атакующий магнит
Свойство | Усилитель риска |
---|---|
Данные высокого значения | PII, PHI, сброс пароля, платежные ссылки |
Радиус взрыва в реальном времени | Один скомпрометированный ключ может спам или обманутьнемедленно |
Культура «Корабль -рыдья, харден -латер» | SDK, приклеенные в несколько дней; Задолженность по обеспечению безопасности в отставке |
Поверхность атаки = везде | Мобильные приложения, чат -боты, плагины CRM, виджеты поддержки |
Конфиденциальность - первая мантра:Область каждый токен, подпишите каждую полезную нагрузку, журнал только метаданные.
3. Уязвимости TOP5 Messing -SSDK (и как их исправить)
Каждый подраздел даетЧто это такое → Путь эксплуатации → уединение конфиденциальности.
3.1 Global Access Tokens & Anduant Crassed
- Эксплойт- Менять
account_id
⇒ Поперечное олицетворение (та же схема всплыл в шторме -0558). - Исправить- Периодический, короткие жетоны; SDK отклоняет несоответствующие идентификаторы и автоматически вращает клавиши.
3.2 Отсутствует проверка подписи/WebHook
- Эксплойт-
svix < 1.17.0
Пусть подписи несоответствующих длина обойти проверку HMAC (CVE -2014–21491 ) - Исправить- Требовать
X‑Hub‑Signature‑256
, проверьте HMAC/JWT, отвергните, если часы -SKEW> 5 минут.- Собственный образец GitHub показывает солидный рисунок (
док )
- Собственный образец GitHub показывает солидный рисунок (
3.3 Атаки воспроизведения (без NOCE/TIMESTAMP)
- Эксплойт- Повторно выписать инструкцию «Кредит 50 долларов»; Система считает это дважды.
- Исправить- nonce+timestamp в каждом подписанном запросе; идентификаторы кеша и отказ от дубликатов.
- Полоса документирует подход (
Стрипе Webhooks )
- Полоса документирует подход (
3.4 Утечка токена с помощью журналов и метрик
- Эксплойт- Гитгаордиан посчитал 6 м+ секреты, обнаженные на общественном GitHub в 2011 году (
отчет ) - Исправить- логарифмический санайзер режима; Никогда не регистрируйте
Authorization
; Поверните на обнаружение утечки.
3.5 Небезопасное вложение и обработка медиа
- Эксплойт- infuice.pdf.exe Загрузки выполняют на рабочем столе. Используйте безвредный
EICAR TEST FILE Чтобы подтвердить сканирующие работы. - Исправить- Белый список Mime, AV/эвристическая сканирование, контент - Disposition: привязанность.
4. Процесс безопасности на практике
4.1 Выберите пузырь
Инструмент | Один -лайнер | Почему это помогает |
---|---|---|
Microsoft Restler | Государственный раздумка отдыха - API ( | Упражняет многоэтапные рабочие процессы чата |
Вуппифузз | Покрытый покрытием API Fuzzer ( | Находит пробелы в области AUTH / VING -VALIDATION |
Инструмент Imperva API -Attack | Генерирует атаки на основе чванства ( | Сценарии объемного идентификатора / впрыска / инъекции |
OWASP ZAP + OPENAPI ADD -ON | Бесплатный прокси и Fuzzer ( | Интерактивные тесты на воспроизведение и режима |
4.2 10 -минутный DIY «MSG -SDK -FUZZER» (почтальон + Python)
Форк Meta's WhatsApp Cloud -API Postman Collection (
https://www.postman.com/meta/whatsapp-business-platform/collection/wlk6lh4/whatsapp-cloud-api) - Создайте двух почтальонсреда:
Tenant_A
иTenant_B
с разными токенами.
- Создайте двух почтальонсреда:
Крестный тест- В бегуне итерация по запросам и преднамеренно несоответствие токена против.
{{tenant_id}}
Полем- Ожидайте 401/403.
Подпись теста
- Цель: Докажите, что ваш обработчик WebHook отклоняет пропавшего/недействительный
X‑Hub‑Signature‑256
Полем - Как: Разместите образец полезной нагрузки в свою конечную точку один раз с правильным HMAC, затем отправляйтесь без заголовка (или с всемирно -хэш). Второй запрос должен быть заблокирован.
- Цель: Докажите, что ваш обработчик WebHook отклоняет пропавшего/недействительный
Тест на воспроизведение
- Цель: Докажите, что ваши блоки обработчиков перепрофилировали ранее принятую, достоверно подписную полезную нагрузку.
- Как: Отправить идентичную запрос дважды (например, с Ньюманом
--delay-request 600000
флаг). Вторая попытка должна получить409conflict(или 400/401).
Подделка вложения- Загрузите файл с именем
invoice.pdf.exe
но сетContent‑Type: application/pdf
Полем Ваш API должен отвергнуть или карантин.# install a lib pip install requests
# Create fuzz_basic.py (excerpt) import requests, time, hmac, hashlib, secrets, json def replay_webhook(url, body, secret): sig = hmac.new(secret.encode(), body, hashlib.sha256).hexdigest() hdr = {"X-Hub-Signature-256": f"sha256={sig}"} # first attempt requests.post(url, data=body, headers=hdr) # replay after 10 s time.sleep(10) return requests.post(url, data=body, headers=hdr).status_code
5. Автоматизированный тестовый жгут (быстрое начало)
Уже построил сценарий выше? Вот один -линер, который подключил его в CI.
python fuzz_basic.py
50 -литровые помощники пожары:
- Перекрестные обмены идентификатора
- Удаление подписи и подделка
- Повторные переигрыши
- Подделка вложения
Bearer TESTLEAK12345
Заголовок, чтобы проверить редакцию журнала
Выключите постройку CI, если какой -либо ответ равен 200 в порядке, когда он должен быть заблокирован.
6 Заключение
Сокращения безопасности естьВозьмена силовых множителей- Для вас и для нападавших. Выпекаяпять элементов управлениявышев сам SDKИ запуская даже единый раздумчик в CI, вы:
- Содержать нарушения одного арендатора (или даже одного пользователя).
- Уменьшите когнитивную нагрузку на команды вниз по течению.
- Заработать доверие к аудиту, не замедляя скорость продукта.
Если вы помните одну вещь:Область каждый токен, подпишите каждую полезную нагрузку и предположим, что каждый журнал может стать публичным.
Счастливая доставка - и оставайся болтливой, а не протекающей!
Оригинал