5 наиболее распространенных уязвимостей обмена сообщениями (и как исправить)

5 наиболее распространенных уязвимостей обмена сообщениями (и как исправить)

25 июня 2025 г.

1ChatbotThatLeakedClientMessages

Интегратор SaaS объединил несколько платформ чата за одним токеном для носителя, чтобы «держать вещи простыми». Однажды днем ​​бот -поддержка клиента отправил счета -фактуры, предназначенные дляАрендатор ак номерам телефоновАрендатор бПолем
Корская причина → Общий токен имел достаточно возможностей для действия любого арендатора; Когда задание соскользнула не в неправильную учетную запись, API с радостью выполнил.

Почему это важно:Многолетние обмен сообщениями усиливают каждыйАВТОМОБИЛЬНАЯ Ошибка- Спросите Microsoft, где 2023Шторм -0558 нарушениеПоказал, как один ключ подписания позволил подделка с токеном перекрестного токена через почтовые ящики Outlook365.

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 показывает солидный рисунок (док)

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 (GitHub)

Упражняет многоэтапные рабочие процессы чата

Вуппифузз

Покрытый покрытием API Fuzzer (GitHub)

Находит пробелы в области AUTH / VING -VALIDATION

Инструмент Imperva API -Attack

Генерирует атаки на основе чванства (GitHub)

Сценарии объемного идентификатора / впрыска / инъекции

OWASP ZAP + OPENAPI ADD -ON

Бесплатный прокси и Fuzzer (док)

Интерактивные тесты на воспроизведение и режима

4.2 10 -минутный DIY «MSG -SDK -FUZZER» (почтальон + Python)

  1. Форк Meta's WhatsApp Cloud -API Postman Collection (https://www.postman.com/meta/whatsapp-business-platform/collection/wlk6lh4/whatsapp-cloud-api)

    1. Создайте двух почтальонсреда: Tenant_AиTenant_Bс разными токенами.
  2. Крестный тест- В бегуне итерация по запросам и преднамеренно несоответствие токена против.{{tenant_id}}Полем

    1. Ожидайте 401/403.
  3. Подпись теста

    1. Цель: Докажите, что ваш обработчик WebHook отклоняет пропавшего/недействительныйX‑Hub‑Signature‑256Полем
    2. Как: Разместите образец полезной нагрузки в свою конечную точку один раз с правильным HMAC, затем отправляйтесь без заголовка (или с всемирно -хэш). Второй запрос должен быть заблокирован.
  4. Тест на воспроизведение

    1. Цель: Докажите, что ваши блоки обработчиков перепрофилировали ранее принятую, достоверно подписную полезную нагрузку.
    2. Как: Отправить идентичную запрос дважды (например, с Ньюманом--delay-request 600000 флаг). Вторая попытка должна получить409conflict(или 400/401).
  5. Подделка вложения- Загрузите файл с именем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, вы:

    • Содержать нарушения одного арендатора (или даже одного пользователя).
    • Уменьшите когнитивную нагрузку на команды вниз по течению.
    • Заработать доверие к аудиту, не замедляя скорость продукта.

    Если вы помните одну вещь:Область каждый токен, подпишите каждую полезную нагрузку и предположим, что каждый журнал может стать публичным.

  6. Счастливая доставка - и оставайся болтливой, а не протекающей!




Оригинал
PREVIOUS ARTICLE
NEXT ARTICLE