Идея заключается в том, что нарушителю будет сложно одновременно
использовать слабости разных систем на всех уровнях. Эшелонированная
оборона не дает строгих гарантий, но, в действительности, практически
помогает.
Большинство обсуждений безопасности было сосредоточено на
программном обеспечении (и иногда, на аппаратных средствах). Но другой
важный компонент КСЗ – вся настройка или информация о конфигурации,
кнопки и выключатели, которые говорят программному обеспечению, что
сделать (setup). В большинстве систем, поставляемых сегодня, имеется много
такой информации, как известно всем, кто выполнял настройку. Она
включает:
– информацию о том, какое ПО установлено с системными привилегиями, а
также какое ПО установлено с привилегиями пользователя; ПО включает не
только наборы исполняемых файлов, но и все, что исполняется, например,
сценарии оболочек (shell scripts) или макросы;
– базу данных пользователей, пароли (или другие идентификационные
данные), привилегии, и членства группы; часто сервисы, подобные серверам
SQL, имеют собственные пользовательские базы данных;
– сетевую информацию, такую как перечни доверенных машин;
– управление доступом на всех системных ресурсах: файлах, сервисах
(особенно тех, которые отвечают на сетевые запросы), устройствах и т.д.
Хотя настройка намного более проста чем программа, она все еще
является достаточно сложной, обычно делается менее квалифицированными
людьми, чем разработчики программ, и в то время как программа написана
однократно, настройка различна для каждой инсталляции. Поэтому следует
ожидать, что она обычно неправильна, и много исследований подтверждают
это ожидание. Проблема ухудшается тем, что настройка должна быть
основана на документации для программного обеспечения, которая является
обычно большой по объему, неясной и неполной, в лучшем случае
5
.
Единственное решение этой проблемы состоит в том, чтобы сделать
часть настройки, отвечающую за безопасность, более простой как для
администраторов, так и для пользователей. Не следует делать это, изменяя
базовую ОС, по причинам того, что изменения там трудно выполнимы, и
5
Конечно, и код программы также зависит от документации по программному языку и вызываемым
библиотекам, но там качество документации обычно значительно лучше.