Самый любимый язык программирования Rust вызывает проблемы с конфиденциальностью

Candellmans

Мастер
Сообщения
7,955
Реакции
8,482

rust-bg.jpg
За последние несколько лет разработчики Rust неоднократно выражали обеспокоенность по поводу нерешенной проблемы конфиденциальности.
Rust быстро завоевал популярность среди разработчиков благодаря своей ориентации на производительность, безопасность, безопасный параллелизм и синтаксису, аналогичному синтаксису C ++.
Опрос разработчиков StackOverflow 2020 года поставил Rust на первое место среди « самых любимых языков программирования ».
Однако в течение долгого времени разработчиков беспокоила утечка в производственных сборках потенциально конфиденциальной отладочной информации.

Скомпилированные в Rust двоичные файлы сохраняют имя пользователя и пути к домашнему каталогу​

В начале 2017 года разработчик Rust подал вопрос на GitHub Rust lang с вопросом: «Как я могу запретить rustc [от] включать системную информацию, такую как абсолютные пути к исходным файлам, из которых он скомпилирован, в генерируемые им двоичные файлы?»
Разработчик поделился некоторыми примерами путей, сохраненных в их производственных сборках:

/checkout/src/libcore/option.rs
/ home / kfairmasterz /.cargo/registry/src/github.com-1ecc6299db9ec823/typeable-0.1.2/src/lib.rs
/ home / kfairmasterz /.cargo/registry/src /github.com-1ecc6299db9ec823/openssl-0.9.7/src/ssl/bio.rs
Эти абсолютные имена путей раскрывают системное имя пользователя разработчика и общую структуру каталогов, включая домашний каталог.
Далее они выразились в той же теме:

«Если это поможет, то включение таких идентификаторов пользователей нарушает GDPR ... так что эту проблему должна решить команда Rust ».
«В 2020 году люди заботятся о конфиденциальности, и это может быть отложено, как в случае с rust-lang / mdBook # 847, где люди активно отказывались от проекта из-за неуважения к конфиденциальности пользователей», - сказал разработчик, имея в виду проект Rust под названием mdBook .
На первый взгляд эта «утечка» имен пользователей и абсолютных путей может показаться читателю тривиальной.
Однако с годами многие другие разработчики были удивлены, заметив, что такая информация включается не только в отладочные сборки, но и в их производственные сборки Rust [ 1 , 2 , 3 , 4 , ...], и настаивали на внесении изменений.

Читатели BleepingComputer также неоднократно обращались к нам, делясь своими мыслями по этому поводу.
Поскольку в то время проект Rust не исправил эту проблему, члены сообщества предложили некоторые обходные пути, такие как использование опции «прерывание при панике», но, к сожалению, ни один из них не сработал.

«Я попытался включить« прерывание »из-за паники в профиле выпуска. Несмотря на то, что это привело к меньшему двоичному размеру, это не стирает имена исходных файлов из двоичного файла», - заявил разработчик Дмитрий Закаблуков в августе 2020 года.
Другие предлагаемые обходные пути включали различные параметры, такие как системное время, имя пользователя, часовой пояс, языковой стандарт, имя хоста и так далее.

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

Проблема возобновлена через 4 года, команда Rust объявляет это ошибкой​

На этой неделе разработчик под псевдонимом chemsaf3 обратился к BleepingComputer, подтвердив свою озабоченность по поводу этой проблемы.
Разработчик подал еще одну проблему под названием «Пути реестра, жестко запрограммированные в двоичном формате» на GitHub проекта Rust, снова сосредоточив внимание на этой проблеме.
«Rust lang пытается без надобности утечку конфиденциальной информации в скомпилированные двоичные файлы, например, системные пути и имена пользователей».
«[Это] происходит в режиме выпуска (производства), а не только при отладке, и [нет] способа удалить информацию с помощью существующих инструментов».
«Люди сообщили о проблеме, но никаких действий или сообщений от команды Rust не поступало», - сказал chemsaf3 BleepingComputer.

Разработчик также заявил, что остается неизвестным, сколько разработчиков, поставляющих приложения на Rust, вероятно, не знают, что их приложения раскрывают их системные пути и имена пользователей.

Основное беспокойство разработчика было:
«Rust становится все более популярным, поэтому он может затронуть все большее количество разработчиков».
«Это поведение не задокументировано, и нет способа предотвратить утечку», - сказал нам разработчик.

На запрос GitHub, поданный разработчиком, быстро последовал ответ от члена команды Rust:
«Спасибо за отчет! Похоже, вы обнаружили несколько других проблем, связанных с этим, поэтому мне неясно, касается ли эта проблема чего-то нового. Похоже, что # 5505 касается переназначения, вы можете уточнить, что здесь отличается?» - спросил Эрик Хасс из команды Rust.

В конце концов, после того, как проблема снова появилась на Reddit, член команды Google Алексис Хант вмешался в проблему с GitHub Rust:
«Я был связан с этой проблемой из Reddit, и я заинтересовался, поскольку лично для меня важно иметь хорошие параметры по умолчанию, сохраняющие конфиденциальность. Я разговаривал неофициально с некоторыми коллегами ...»
Хант обобщил некоторые опасения разработчиков и поделился некоторыми идеями о том, как можно решить проблему.

«Лично я считаю, что это важно и должно быть быстро решено, но в данный момент я не в состоянии принять меры и сделать это. Я надеюсь, что кто-то еще сможет это поднять», - продолжил Хант.

Чтобы понять, считает ли Rust это уязвимостью или планирует ли исправить ошибку, BleepingComputer обратился к основной команде Rust за комментариями.

«Мы согласны с тем, что эту ошибку стоит исправить, и будем поддерживать наши команды в ее устранении», - сказал BleepingComputer Маниш Горегаокар из команды Rust и старший инженер-программист Google.

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

Bleeping Computer
 
Назад
Сверху Снизу