Изначально я расследовал сообщение о том, что Postman не соответствует стандартам HIPAA. Я выяснил, что Postman не просто полностью непригоден для тестирования медицинских приложений — этот инструмент фактически полностью игнорирует конфиденциальность своих пользователей и, скорее всего, сохранил каждый секретный ключ, который вы когда-либо ему передавали.

Charles Proxy

Это расследование было бы невозможным (или, по крайней мере, не таким простым) без Charles Proxy. Его lifetime лицензия стоит 50 долларов — когда вы откажетесь от месячной корпоративной подписки на Postman за 49 долларов, после прочтения этого поста, пожалуйста, поддержите действительно этичных разработчиков, купив лицензию, хотя бы для того, чтобы самим проверить мои результаты.

Первое, что вы заметите — Postman записывает массу информации. Ещё до того, как вы как-либо взаимодействуете с приложением, сотни сетевых запросов отправляются во множество аналитических сервисов и сторонних интеграций.

На самом деле, это довольно распространенная проблема в современном программном обеспечении, которое обычно придерживается принципа «логировать всё».

Certificate pinning

Чтобы просмотреть зашифрованный трафик, который отправляется на сервера Postman, вам нужно включить SSL-проксирование и обойти проверку сертификата (certificate pinning).

Как только вы установите поддельный корневой сертификат, вы сможете увидеть расшифрованные данные, которые отправляются на сервера Postman.

Postman утечка секретов

Это было настолько легко обнаружить, что меня действительно удивило, почему никто другой не обратил на это внимания. Если я создаю переменную окружения и присваиваю ей значение "secret" — она скрыта от окружающих, но не для логов, которые отправляются Postman.

Неважно, установили ли вы переменную окружения как секретную или нет, замаскирована она на экране или нет, Postman всё равно её перхватит через строку resolvedRequestUrl (фиксирует состояние URL после подстановки секретных переменных).

В интерфейсе Postman есть всплывающее окно с громким заявлением, что переменные — это способ "защитить конфиденциальные данные". Это легко доказуемая ложь, так как мои, якобы секретные, данные отправляются в виде логов в открытом виде.

Чтобы пояснить, в чём тут проблема:

  • Если я создаю секретную строку, я не хочу, чтобы вы отправляли её на сервера вашей компании. Не понимаю, почему это требование не очевидно для команды Postman.

  • Кажется они пытались предпринять меры, чтобы специально не записывать заголовки, но  персональные или чувствительные данные всё равно могут попасть в логи Postman через URL или параметры в самом запросе.

Если вам всё же нужно пользоваться Postman

Добавьте это в ваш файл /etc/hosts, чтобы аналитические эндпоинты, которые ведут журнал ваших секретов, перестали их получать:

127.0.0.1 bifrost-https-v4.gw.postman.com

127.0.0.1 bifrost-v4-global.gw.postman.com

Замечание об этике

Почему у разработчиков программного обеспечения нет своей версии клятвы Гиппократа? Скорее всего, Postman — не единственный инструмент, где сотрудники хранят ваши нешифрованные данные в незащищённых местах.

    “Если же я соблюду эту клятву и не нарушу её, пусть мне всегда сопутствует уважение всех людей — и в жизни, и в искусстве. Но если я нарушу её или отрекусь от своих слов, пусть меня настигнет обратное.”

Ещё больше познавательного контента в Telegram-канале — Life-Hack - Хакер

Комментарии (19)


  1. Irritant
    24.05.2025 08:53

    В такой статье не хватает вступительного абзаца,где в двух словах обьясняется что это и зачем.


  1. krolchonok
    24.05.2025 08:53

    Забавно, что никто до этого не проверил что там в логах отправляется, причем большое количество разработчиков и компаний, предоставляют готовые шаблоны (коллекции?) для готовой работы с их API.


  1. d-sh
    24.05.2025 08:53

    Если не записывать всё подряд в логи, и не (простите) читать эти логи на регулярной основе, в том числе с помощью наемных людей с улицы, то как тогда узнать что что то идет не так и исправить это? Рассчитывать на багрепорты бесполезно.


    1. krolchonok
      24.05.2025 08:53

      И поэтому надо перехватывать все запросы, в том числе и секретные переменные?


      1. poriogam
        24.05.2025 08:53

        Тут нужна пояснительная бригада. Кто такой этот постман, какие такие переменные.


        1. navferty
          24.05.2025 08:53

          Postman - инструмент для создания, редактирования и выполнения HTTP запросов.

          Штука довольно удобная - можно настраивать заголовки, тело запроса, изучать ответ сервера. Мне нравится тем, что можно создавать коллекции запросов (и даже сохранять примеры ответа от сервера на будущее, чтобы потом в оффлайне их изучать).

          Ещё для выбранного запроса можно сразу получить сгенерированный код на одном из языков программирования (например C#). Можно настроить mock-сервер для тестирования веб-хуков (когда тестируемое приложение само отправляет запрос на стороннее API, которое нежелательно использовать при тестировании). Да и много других фичей.

          Интерфейс Postman


        1. navferty
          24.05.2025 08:53

          Переменные, о которых идёт речь в статье: это часть строки запроса. Например, var1 и var2 в этом HTTP GET запросе:

          https://example.com/items/var1/data?param2=var2

          Но надо отметить, что есть общая рекомендация не передавать в path-сегментах (как var1) или query-параметрах (как var2) никакие чувствительные данные, даже при использовании HTTPS (а в этом случае все эти данные не передаются в открытом виде). И причины такой рекомендации - именно такие, что где-то по пути строка запроса может оказаться залогированной, например в логах веб-сервера.

          Если нужно передавать чувствительные данные в запросе (например, токен авторизации), более предпочтительно их передавать в заголовках запроса, например так:

          GET http://example.com/ HTTP/1.1
          Host: decimalparser.net
          Authorization: Bearer eyJbWbfs...


      1. kenomimi
        24.05.2025 08:53

        Постман используется на тестовом/девелоперском окружениии, и там априори не должно быть секретных либо персональных данных. Вообще. А кто гоняет на проде тесты - ССЗБ - любое закрытое ПО в наше время всегда напичкано шпионскими модулями, это надо помнить.

        Хотя, с другой стороны, практика сбора всех данных действительно не очень этична и безопасна. Но ничего с этим не сделаешь, рыночек решает.


      1. navferty
        24.05.2025 08:53

        Всё-таки новость кажется несколько преувеличенной. Мельком в статье упоминается, что секреты из заголовков не отправляются в логи. В логах могут встретиться только те данные, которые были отправлены в сегментах URL или в query параметрах. Но и для тех и для других есть общая рекомендация не использовать для чувствительных данных - именно потому, что высока вероятность, что они осядут в логах где-то "по дороге". И хотя при использовании https эти данные не передаются в открытом виде, они легко могут оказаться например в логах веб-сервера. Вот статья об этом https://blog.httpwatch.com/2009/02/20/how-secure-are-query-strings-over-https/

        Так что имхо, автор сам стреляет себе в ногу и жалуется на последствия. Хотя лично я не одобряю, что множество данных отправляется на неизвестные сервера, конкретно эта претензия выглядит надуманной.


  1. elnights
    24.05.2025 08:53

    Opensource альтернатива Postman: https://github.com/hoppscotch/hoppscotch
    Полет нормальный.


    1. olegscherbinin
      24.05.2025 08:53

      Использовал его пару лет, много багов и несмотря на tauri тормозит очень сильно, возможно из-за macOS, возможно у меня кривые руки, опенсорс хорошо, но не стабильно


    1. DikSoft
      24.05.2025 08:53

      Opensource альтернатива

      Точно там есть полные исходники? Кто-то уже проверял их на отправку данных "налево"?


    1. astenix
      24.05.2025 08:53

      А Bruno?


  1. rikert
    24.05.2025 08:53

    А кто вы, русскоговорящие и использующие постманы и другие зарубежные сервисы? И ведь серьезно обсуждают это, каждый подобный пост вызывает недоумение. Хабр ты кто такой?


    1. p07a1330
      24.05.2025 08:53

      @moderator подозреваю бота/ворованный аккаунт

      Юзер молчал почти 10 лет, потом вернулся и стал сразу набрасывать


      1. vindy
        24.05.2025 08:53

        У меня был знакомый с шизофренией, точно так же во время обострений себя вел. Этого знатно накрыло в те несколько дней в 2016, надеюсь, сейчас справится с рецидивом.


  1. max9
    24.05.2025 08:53

    учу пользоватся curl и mitmproxy. дорого, звонить понимающим, потстрадавшим от утечки паролей


    1. un1t
      24.05.2025 08:53

      Я в основном пользуюсь тоже curl, но запросы редактировать неудобно.


  1. oreym
    24.05.2025 08:53

    Т.е. чел отправил в get-запросе секрет, подсунул поддельный сертификат, и кричит при этом о безопасности?