Упражнение по ACL из курса компьютерной безопасности
Вы нашли этот файл в системе:
[user@localhost]$ ls -la executable
-rwsr-xr-x 1 foo group 41836 2012-10-14 19:19 dangerous.exe
Вы замечаете что-то не так?
1 ответ
Я написал ответ, но это похоже на "домашнее задание". Я не считаю это плохим, но я предлагаю предоставить подробности о том, что вы выяснили до сих пор, задавая такие вопросы. Это может как получить наиболее полезные ответы, так и помочь вам объединить педагогические преимущества, предусмотренные инструктором, с преимуществами, предоставляемыми интернет-сообществами - например, информируя нас о том, что вы уже изучили и еще не изучили, или сделав так, чтобы вы все еще можете выяснить некоторые решения самостоятельно.
ACL расшифровывается как Access Control List. Кажется, что проблема здесь связана с обычными разрешениями в стиле Unix (см. Также FilePermissions), а не с ACL. В частности, это упражнение об исполняемых файлах setuid и об исполняемых битах разрешений для группы и других классов. (Если это упражнение, над которым вы сейчас работаете, этого может быть достаточно, чтобы решить его.)
Почему я думаю, что это не (также) о ACL? Там нет информации о ACL, установленных в файле, в выводе ls -l, Даже если есть проблема, связанная с ACL dangerous.exe нет никакой информации, которая указала бы или иначе предложила бы это.
Кроме того, по крайней мере, в Ubuntu, ls проверяет, настроены ли права файла через ACL, и если да, добавляет + до конца символьной строки разрешений.
ek@Ilex:~$ ls -l foobar # no + in the output of ls
-rw-rw-r-- 1 ek ek 0 Sep 14 13:16 foobar
ek@Ilex:~$ setfacl -m g:adm:r foobar
ek@Ilex:~$ ls -l foobar # now there's a + in the output
-rw-rw-r--+ 1 ek ek 0 Sep 14 13:16 foobar(Тем не менее, обратите внимание, что могут быть некоторые Unix-подобные системы с различными реализациями ACL и / или где по умолчанию ls Исполняемый файл не проверяет наличие правил ACL в файлах.)
Для получения дополнительной информации о ACL в Ubuntu см. FilePermissionsACL. Что касается других вопросов, подробный анализ следует.
Во-первых, некоторые комментарии о том, что придумано в этой проблеме, чтобы помочь нам помнить о видах вещей, которые являются обычными в упражнениях, но не должны игнорироваться, если встречаются "в поле".
В реальной жизни это вряд ли то, на чем было сосредоточено упражнение:
Пользователь называется
fooна производственной системе странно.
(Хотя, возможно, это принадлежит Фордхему Оо, младшему)И, что более важно, пользователь по имени
user(как указано в$PS1) в принципе никогда не бывает хорошей идеей.Эти имена, скорее всего, будут интерпретированы метасинтаксически при общении между коллегами, и даже могут быть случайно обнаружены таким поздно ночью системным администратором, который борется с большей частью не связанной с этим проблемой.
Точно так же группа под названием
groupв принципе никогда не хорошая идея.Файл называется
dangerous.exeчья история, о которой я не знаю, вызывает тревогу. Это либо неправильно названо, либо, может быть, оно не должно валяться.
Теперь о том, что в этой ситуации обычно будет главной проблемой, связанной с безопасностью.
Как в реальной жизни, так и, вероятно, в голове того, кто написал вопрос:
sв-rwsr-xr-xсредстваdangerous.exeисполняемый файл setuid Это может быть сделано сchmod:ek@Ilex:~$ ls -l dangerous.exe -rwxr-xr-x 1 ek ek 0 Sep 14 12:29 dangerous.exe ek@Ilex:~$ chmod u+s dangerous.exe ek@Ilex:~$ ls -l dangerous.exe -rwsr-xr-x 1 ek ek 0 Sep 14 12:29 dangerous.exeпоскольку
dangerous.exesetuid, он работает как владелец независимо от того, кто его выполняет. Иногда это уместно, но, если не использовать его осторожно и осторожно, это может вызвать очень серьезные проблемы с безопасностью, облегчая нежелательный доступ к учетной записи, которой принадлежит исполняемый файл.Но это не все. Мы знаем, что это особенно вероятно, когда может возникнуть проблема безопасности. (Если в системе работают какие-либо пользователи или службы, которые следует предотвратить
fooумеет делать то есть Что вероятно. Помните, что в системе с одним пользователем по умолчанию другие учетные записи пользователей используются системой для выполнения действий с ограниченными привилегиями.)Это связано с другими разрешениями, установленными на
dangerous.exe, Из-за способа установки его исполняемых битов любой может выполнитьdangerous.exe!-rwsr-xr-x 1 foo group 41836 2012-10-14 19:19 dangerous.exe | \ \ This x indicates all users other than foo and members of \ 'group' may execute the file! That's almost definitely bad! \ This x indicates anyone in the 'group' group may execute the file. Depending on what the 'group' group means and who's in it, that might be bad.Откуда мы знаем это, проверяя
-rwsr-xr-x 1 foo group 41836 2012-10-14 19:19 dangerous.exe? После первого символа (который-для обычных файлов,dдля каталогов иlдля символических ссылок) приходят девять символов.Первые три говорят, может ли пользователь, который владеет файлом
rСвинец,wобряд и еxизвините это. (A-появляется, когда ответ отрицательный.) Следующая группа из трех говорит, могут ли члены владельца группы файла, кроме владельца пользователя,rСвинец,wобряд и еxизвините это. И последняя группа из трех говорит, что если другие пользователи, которые не владеют файлом и не являются его владельцем, могутrСвинец,wобряд и еxизвините это.Поэтому все пользователи в системе могут работать
dangerous.exe- и когда они делают, они запускают его какfooа не как себя!Для того чтобы файл был безопасно установлен (или установлен), он должен быть тщательно написан, чтобы гарантировать, что он может использоваться только для выполнения соответствующих действий. Например,
/usr/bin/passwdисполняемый файл, который запускается, когда пользователь меняет свой пароль сpasswdКоманда является setuid и принадлежит пользователю root, поэтому даже если ее запускает пользователь с ограниченными правами, он запускается как root. Это необходимо для внесения изменений в базу паролей. Но он тщательно написан, чтобы вносить только авторизованные изменения.В зависимости от того, какие привилегии
fooв системе, это, вероятно, менее серьезная проблема, чем если бы у исполняемого файла setuid, принадлежащего пользователю root, была ошибка, позволяющая использовать его непреднамеренным образом. Но это все еще повод для тревоги.Если вы были системным администратором в этой ситуации, вы можете проконсультироваться с пользователем
fooчтобы увидеть, если разрешения они установилиdangerous.exeбыли ошибкой (В зависимости от контекста и других элементов ситуации вы можете предпринять более немедленные действия.)