В настоящее время по большинству операционных систем по умолчанию установлено, что при установке программы ей предоставляется доступ ко многим ресурсам, которые ей могут не понадобиться, и пользователь может не намереваться предоставить ей доступ. Например, когда вы устанавливаете программу с закрытым исходным кодом, в принципе нет ничего, чтобы остановить ее от чтения закрытых ключей в ~/.ssh
и отправить их злоумышленному третьему лицу через Интернет, и если только пользователь не является экспертом по безопасности, использующим трассировку программ, он, вероятно, не сможет обнаружить такое нарушение.Операционная система с песочницей
С распространением многих программ с ограниченным доступом, установленным на компьютерах, какие действия используются различными операционными системами для решения проблемы песочницы сторонних программ?
Есть ли какая-либо операционная система, разработанная с учетом соображений безопасности, где каждая программа или исполняемый файл должна объявить пользователю в четко читаемом формате, какие ресурсы он должен запускать, чтобы ОС запускала его в песочница, где он имеет доступ только к этим ресурсам? Например, исполняемый файл должен будет объявить, что ему потребуется доступ к определенному каталогу или файлу в файловой системе, что ему придется достичь определенных доменов или IP-адресов по сети, что для этого потребуется определенный объем памяти и т. Д. ... Если исполняемый файл лежит в своем заявлении для требований к системным ресурсам, его следует запретить доступ к ним операционной системой.
Qubes (http://qubes-os.org/Architecture.html) - это проект, который использует виртуальные машины для реализации отдельных доменов. В определенных случаях это повторное открытие/повторная реализация MAC с использованием виртуализации в качестве строительного блока. – ninjalj
Виртуализация имеет большие накладные расходы, связанные с необходимостью установки отдельной ОС для каждого приложения. Было бы более эффективно иметь одну ОС с обязательным контролем доступа, которая изолирует каждое приложение. – dzhelil
Да, я согласен, что виртуализация для каждого приложения - огромная трата лишних расходов. Как уже упоминалось, это компромисс Обязательного контроля доступа. Однако, если вам нужна современная операционная система для запуска соответствующего приложения, один экземпляр виртуализации для нескольких приложений легко настраивается и управляется пользователем. –