Изначально я расследовал сообщение о том, что 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)
krolchonok
24.05.2025 08:53Забавно, что никто до этого не проверил что там в логах отправляется, причем большое количество разработчиков и компаний, предоставляют готовые шаблоны (коллекции?) для готовой работы с их API.
d-sh
24.05.2025 08:53Если не записывать всё подряд в логи, и не (простите) читать эти логи на регулярной основе, в том числе с помощью наемных людей с улицы, то как тогда узнать что что то идет не так и исправить это? Рассчитывать на багрепорты бесполезно.
krolchonok
24.05.2025 08:53И поэтому надо перехватывать все запросы, в том числе и секретные переменные?
poriogam
24.05.2025 08:53Тут нужна пояснительная бригада. Кто такой этот постман, какие такие переменные.
navferty
24.05.2025 08:53Postman - инструмент для создания, редактирования и выполнения HTTP запросов.
Штука довольно удобная - можно настраивать заголовки, тело запроса, изучать ответ сервера. Мне нравится тем, что можно создавать коллекции запросов (и даже сохранять примеры ответа от сервера на будущее, чтобы потом в оффлайне их изучать).
Ещё для выбранного запроса можно сразу получить сгенерированный код на одном из языков программирования (например C#). Можно настроить mock-сервер для тестирования веб-хуков (когда тестируемое приложение само отправляет запрос на стороннее API, которое нежелательно использовать при тестировании). Да и много других фичей.
Интерфейс Postman
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...
kenomimi
24.05.2025 08:53Постман используется на тестовом/девелоперском окружениии, и там априори не должно быть секретных либо персональных данных. Вообще. А кто гоняет на проде тесты - ССЗБ - любое закрытое ПО в наше время всегда напичкано шпионскими модулями, это надо помнить.
Хотя, с другой стороны, практика сбора всех данных действительно не очень этична и безопасна. Но ничего с этим не сделаешь, рыночек решает.
navferty
24.05.2025 08:53Всё-таки новость кажется несколько преувеличенной. Мельком в статье упоминается, что секреты из заголовков не отправляются в логи. В логах могут встретиться только те данные, которые были отправлены в сегментах URL или в query параметрах. Но и для тех и для других есть общая рекомендация не использовать для чувствительных данных - именно потому, что высока вероятность, что они осядут в логах где-то "по дороге". И хотя при использовании https эти данные не передаются в открытом виде, они легко могут оказаться например в логах веб-сервера. Вот статья об этом https://blog.httpwatch.com/2009/02/20/how-secure-are-query-strings-over-https/
Так что имхо, автор сам стреляет себе в ногу и жалуется на последствия. Хотя лично я не одобряю, что множество данных отправляется на неизвестные сервера, конкретно эта претензия выглядит надуманной.
elnights
24.05.2025 08:53Opensource альтернатива Postman: https://github.com/hoppscotch/hoppscotch
Полет нормальный.olegscherbinin
24.05.2025 08:53Использовал его пару лет, много багов и несмотря на tauri тормозит очень сильно, возможно из-за macOS, возможно у меня кривые руки, опенсорс хорошо, но не стабильно
DikSoft
24.05.2025 08:53Opensource альтернатива
Точно там есть полные исходники? Кто-то уже проверял их на отправку данных "налево"?
rikert
24.05.2025 08:53А кто вы, русскоговорящие и использующие постманы и другие зарубежные сервисы? И ведь серьезно обсуждают это, каждый подобный пост вызывает недоумение. Хабр ты кто такой?
p07a1330
24.05.2025 08:53@moderator подозреваю бота/ворованный аккаунт
Юзер молчал почти 10 лет, потом вернулся и стал сразу набрасывать
vindy
24.05.2025 08:53У меня был знакомый с шизофренией, точно так же во время обострений себя вел. Этого знатно накрыло в те несколько дней в 2016, надеюсь, сейчас справится с рецидивом.
oreym
24.05.2025 08:53Т.е. чел отправил в get-запросе секрет, подсунул поддельный сертификат, и кричит при этом о безопасности?
Irritant
В такой статье не хватает вступительного абзаца,где в двух словах обьясняется что это и зачем.