Есть много руководств и howto по безопасности, в которых разъясняется, ЧТО надо делать:
закройте то, не ставьте это, уберите лишнее, это настройте вот так и т.д.
Но вот я пока не встречал howto, в котором разъяснялись бы концепты, подобные нижеследующим.
Исходные условия:
- ОС Linux (для определенности)
- В НАСТРОЙКЕ компонентов НЕТ ОШИБОК (администратора)
- физический доступ у нападающего отсутсвует
- системных аккаунтов атакующий не знает (т.е. локально/удаленно он не может залогиниться в shell)
- утечку информации через сетвой траффик не учитвать (чувствительные данные (пароли) не передаются или шифруются -
шифрованый трафик считаем нуязвимым)Интересуют так сказать "точки входа" с точки зрения "крупных компонентов системы".
Т.е. то что сервисы могут использовать какие-то библиотеки и в них есть уязвимости это понятно.
Я предлагаю рассматривать сервис просто как единый компонент для анализа ("как одну дырку в стене").
Больше интересуют потверждения постулируемой невзламываемости при отсутвии уязвимостей,
чем взламываемости при наличии оных.
Итак меня, как админа, интересуют три следующих ситуации и пути (теоретические и практические)
УДАЛЕННОГО (через сеть) взлома.
Кто владеет знаниями или ссылками на соответствующие источники - прошу прокомментировать, правильны ли эти рассуждения.
1. "Компьютер полностью изолированный firewall'ом"
Компьютер, подключен к сети, на нем могут присутсвовать некие работающие сервисы и
при помощи firewall полностью запрещен ВХОДЯЩИЙ И ИСХОДЯЩИЙ трафик
(например iptables -P DENY/DROP для всех цепочек или явными правилами DENY/DROP в PREROUTING/POSTROUTING).
Конечно его можно физически отключить от сети, но интересует именно когда он подключен.
Я считаю что удаленный взлом системы невозможен (нет путей проникновения, не на что воздействовать).
Теоретическая возможность появляется, только если есть грубая ошибка в сетевом коде ядра,
позволяющая обойти firewall, т.е. некий пакет будет проходить дальше на обработку, несмотря на запрет.
Только так появляется хотя-бы какая-то возможность воздействовать на что-то.
Такое маловероятно. Т.е. я считаю такую машину невзламываемой удаленно.
2. "Маршрутизатор"
Компьютер, подключен к сети, он выполняет роль МАРШРУТИЗАТОРА, на нем могут присутсвовать некие
работающие сервисы и при помощи firewall полностью запрещен INPUT и OUTPUT трафик и разрешен только FORWARD.
Ситуация примерно как в первом варианте, но чуть хуже. Непосредственно воздействовать на
процессы (сервисы), работающие на машине невозможно, а можно только попытаться сконструировать
некие пакеты использующие уязвимости в сетевом коде ядра и только.
Если их там нет то и путей удаленного взлома маршрутизатора не существует.
3. "Компьютер, предоставляющий сервис"
Компьютер, подключен к сети, на нем, для примера, работает SMTP-сервер tcp/25 и POP3-сервер tcp/110.
При помощи firewall закрыто все (и все протоколы и все порты) кроме вот этих двух TCP-портов.
Т.е. есть соответствующие ALLOW и ESTABLISHED.
В данной ситуации, кроме как на сетевой код ядра, можно воздествовать ТОЛЬКО на эти два сервера.
Т.е. если, теоретически, в этих сервисах нет уязвимостей, такую машину по прежнему нельзя взломать.
Практическая возможность взлома, повляется только при наличии уязвимостей в одном из сервисов.
Опять же, для собственной уверенности, в такой конфигурации, достаточно "контролировать" только эти пути взлома,
так как они единственные.
Правильны ли эти рассуждения и на что реально можно "расчитывать" в этих 3х вариантах.
Спсб.