Автоматизированный способ проверки пакета R на наличие вредоносных или подозрительных? - PullRequest
3 голосов
/ 23 октября 2019

Я обнаружил, что изучаю некоторые неясные части github и нахожу некоторые настоящие гемы, написанные на R. Однако, учитывая, что некоторые пакеты имеют нулевую проверку (в отличие от CRAN), мне немного неудобно устанавливать и использовать их (т.е. devtools::install_github("user/repo"))

Одним из способов решения этой проблемы может быть написание функции, которая читает пакет R в виде текста и помечает все подозрительные. Очень грубая версия выглядит так:

Например,

flag_sus <- function(r_file) {
  file <- readLines(r_file)
  flag <- file %>% str_detect("system")
  if(length(flag) > 0) { print("Contains suspicious code") }
  }

Но мне интересно, есть ли (намного) лучший способ?

Примечание

  • Одним из быстрых способов снижения риска является использование CRAN-версии пакета, где это возможно, но, очевидно, это не всегда полезно (так как многие пакеты существуют только вне CRAN)
...