Подтвердить что ты не робот

Проблемы безопасности с пакетами CRAN

[Редактировать: июнь 2013] В ArXiv появилась статья, описывающая эту проблему более подробно и предлагающая некоторые решения: http://arxiv.org/abs/1303.4808. Он появится в журнале статистического программного обеспечения позднее в 2013 году.

У меня есть cronjob на моих серверах Ubuntu, который загружает и устанавливает каждый исходный пакет из CRAN. Однако на том же сервере я начал замечать некоторые нерегулярные действия. Это может быть совершенно не связано, но мне стало интересно, возможно ли, что некоторые пакеты CRAN содержат вредоносный код.

Процесс создания и публикации пакета cran чрезвычайно прост. Может быть, слишком легко. Вы загружаете свой пакет на FTP, Курт сделает чек и опубликует его. С объемом загружаемых R-пакетов каждый день разумно предположить, что обширный аудит пакета не происходит. Также нет подписи пакета с использованием закрытого ключа, как и большинство дистрибутивов. Даже адрес электронной почты в DESCRIPTION редко проверяется.

Теперь было бы не очень сложно включить код, который устанавливает руткит, либо во время компиляции, либо во время выполнения. Время компиляции, вероятно, более уязвимо, потому что я устанавливаю свои пакеты с помощью sudo, которые я, вероятно, должен прекратить делать. Но и во время выполнения многое можно сделать. В последнее время в ядре Linux появилось несколько уязвимостей безопасности, и я подтвердил, что получить root можно с помощью эксплойта повышения привилегий при полной обновленной системе. Поскольку у R обычно есть доступ в Интернет, вредоносный код даже не нужно включать в пакет, его можно просто загрузить откуда-нибудь с помощью wget или download.file().

Тем не менее, пользователи R рассматривают это вообще? Или философия в основном заключается в том, что вы должны загружать пакеты только от людей, которым вы доверяете? Все еще без подписи пакетов, которые не очень надежны. Какой может быть более безопасный подход к установке пакетов cran? Я рассмотрел что-то вроде отдельной машины для создания пакетов, а затем копировал двоичные файлы и всегда запускал R в песочнице. Это немного громоздко, хотя.

4b9b3361