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

Candellmans

Команда форума
Сообщения
5,606
Реакции
7,791
Баллы
533

ржавчина

За последние несколько лет разработчики 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
 
Сверху Снизу