Программа/тип файла пассивного использования root

Программа/тип файла пассивного использования root

В отличие от моей предыдущей формулировки, спрашивающей довольно простоСамый быстрый способ заразить Ubuntu вирусом?, это перефразирование вопроса в вопрос, который находится внутри границцентр помощи. Я хотел бы узнать, есть ли тип файла или даже программа, которая может выполнять операцию root без ввода пользователя. Например, когда вносятся какие-либо изменения, пользователю /usr/binпредлагается ввести пароль root, и он (обычно) известен только ему/человеку, который установил Ubuntu. Однако я видел вопросы наБезопасность относительно вирусов, которые просто ждут, когда пользователь использует терминал для получения прав root, и записывают нажатие клавиши. Возможно ли это? Я не хочу знать никаких конкретных примеров вирусов или даже как это сделать, я просто хотел бы знать, существует ли или может ли существовать такая программа или файл. Спасибо, Дэвид!

решение1

Если отвечать на этот вопрос на самом деле, то это можно сделать, но не пассивно. Со временем Ubuntu и Linux в целом стали более безопасными, чтобы предотвратить вирусы. Сайт обнаружилздесьобъясняет большинство троянов, вирусов и червей, которые могут и повлияли на Ubuntu. Этот сайт обновлен до самых последних версий, потому что, как вы сказали, вирусы сегодня в основном предназначены для Windows и Mac OS X. Заразить Ubuntu вирусом можно, но это действительно не стоит усилий.

решение2

Существует две основные категории того, как вирус может заразить систему:

Использование ошибок

Один из способов, которым вирус может заразить систему, — это эксплуатировать ошибки. Предположим, что в системе есть все виды безопасности, но если вы делаете x, y и z последовательно (последовательность, которая непредвиденно может быть проблемной), вы можете запустить фрагмент кода как root.

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

Мы не видим этот тип вирусов в Linux в основном по двум причинам:

  • Хакеры трудятся, чтобы найти ошибку в системе, и чувствуют себя прекрасно, когда им это удается. В случае Windows, не так уж много нужно сделать, кроме как использовать ошибку и написать вирус. В случае Linux, они могут отправить патч, чтобы исправить ошибку, и получить дополнительное вознаграждение в виде славы. Если вы следите за новостями, вы иногда слышите о группе исследователей, которые находят эксплойт в каком-то свободном программном обеспечении (не только Linux, напримерсердце кровью обливается) и исправляют ее, но вы никогда не услышите о хакере, который нашел эксплойт в Windows, хотя огромное количество вирусов для Windows показывает, что таких ошибок много.
  • Дистрибутивы GNU/Linux обычно имеют отличные менеджеры пакетов. Все программное обеспечение часто обновляется, а ошибки быстро устраняются. В Windows многие технически неподкованные пользователи могут просто отключить обновления из-за того, насколько раздражающе это делается (Вы уже перезагрузились? Вы уже перезагрузились? Вы уже перезагрузились? Вы выключаете, подождите неопределенно долго, пожалуйста), и даже если они этого не делают, обновления приходят только для ядра Windows и ничего больше. Любой вирус, эксплуатирующий этот тип ошибок, имеет больше шансов прожить долгое время в Windows и, таким образом, распространиться дальше.

Эксплуатация пользователей

Другой способ, которым вирус может заразить систему, — обмануть пользователя, заставив его сделать это. Загрузите какое-нибудь приложение из интернета, запустите его, и вы навлечете вирус на себя. Дистрибутивы GNU/Linux используют менеджеры пакетов, которые гарантируют, что исполняемые файлы созданы из исходного кода доверенными упаковщиками, и, если упаковщик не является вредоносным, предотвращают проникновение любого вируса. В Windows вам придется загружать каждое приложение с другого веб-сайта, некоторые из которых не предлагают HTTPS или хэш исполняемого файла. Существует множество способов, которыми вирус может проникнуть таким образом, и мы знаем, что они это делают.

Однако это само по себе не было бы столь проблематичным, если бы не пользователь с правами root. В Windows это обычно по умолчанию: первый (и обычно единственный) пользователь имеет права администратора. Это похоже на вход в систему как root в Linux. Однако в Linux вам предлагается ввести пароли root для всего, что касается ваших приложений (находящихся, например, в /usr/bin), и поэтому никакой вирус не может «пробраться» без вашего ведома.

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

По сути, это уже не вирус. Это могло бы быть «инструкцией по форматированию жесткого диска», данной людям, которые ничего не знают.


Наиболее успешные ошибки — это те, которые эксплуатируют и ошибки, и пользователей. Представьте, как это просто в Windows:

  1. Возьмите приложение X, которое открывает файлы типа Y. Убедитесь, что приложение не может обновляться само (учитывая, насколько плохо поддерживаются обновления ПО в Windows (а их нет), очень легко найти приложения, которые не поставляются с обновлением). Вы даже можете упростить задачу и использовать что-то с открытым исходным кодом, например, Inkscape.
  2. Найдите ошибку в приложении, которая может позволить вам выполнить код. Например, переполнение буфера, что позволяет даже открыть неисполняемый файл, такой как изображение, и все равно получить контроль над программным обеспечением.
  3. Распространите свой вирус на все, что сможете, поскольку у вас, скорее всего, есть root-доступ ко всему. Это касается и самого глючного ПО, чтобы оно могло автоматически заражать будущие файлы, или даже чтобы убедиться, что ПО никогда не сможет обновиться.
  4. Вирус в конечном итоге будет обнаружен, но, учитывая, что глючное программное обеспечение никогда не обновляется, он продолжит бродить.

Теперь сравните ситуацию с Linux. Ошибка, которую вы найдете, может не просуществовать долго, так как глючное программное обеспечение будет исправлено и обновлено сразу после обнаружения вируса. Более того, даже если вы заполучите программное обеспечение, наибольший ущерб, который вы можете нанести, это заразить пользовательские файлы, а не системные. В примере с вирусами, прикрепленными к изображениям, само программное обеспечение не сможет заразиться, и единственным способом передачи будет само изображение пользователем. Это не означает, что вирус не может существовать, но что он будет значительно слабым и скучным. Никто не будет хвастаться тем, что написал скучный вирус.

Связанный контент