Системы управления, работающие под управлением UNIX, также могут иметь собственные средства разграничения доступа. Например, у MySQL собственный список пользователей, не связанный со списком пользователей UNIX. В MySQL есть учетная запись
root (которую не следует путать с основной учетной записью операционной системы UNIX), устанавливаемая по умолчанию без пароля. Если не назначить пароля этой учетной записи, то любой сможет подключиться к MySQL c максимально возможными правами, введя следующую команду:
mysql – u root
Если кто-нибудь захочет изменить записи в доступных таблицах, а пароль учетной записи не назначен, то ему достаточно ввести следующую команду:
mysql – u root mysql
Но даже если учетной записи root базы данных MySQL был назначен пароль, а какому-то пользователю нет, то пользователь всегда может подключиться под другим именем, введя вместо собственного имени имя пользователя с неназначенным паролем после флага —u. По этой причине назначение паролей всем пользователям MySQL должно войти в обыденную практику администрирования, чтобы не подвергать систему ненужному риску.
Удаленное выполнение программ
Наиболее часто в атаках на систему используется так называемое удаленное выполнение программ. Несколько заслуживающих внимания нападений на известные Web-сайты оказались для злоумышленника успешными благодаря удаленному выполнению программ. Удаленное выполнение программ – серьезная проблема, потому что в этом случае аутентификация не требуется и процесс может быть инициирован кем угодно.
Возвращаясь к примеру о разведчиках, предположим, что вражеская разведка просочилась мимо сторожевых постов и выследила позиции наших войск, нанесла их на карту и доложила о результатах разведки.
Оценив полученные сведения, неприятель может принять решение о нанесении артиллерийского удара по выявленным целям. Предположим, что, зная технологию выдачи целеуказания, противоборствующая сторона в состоянии подменить выявленные цели ложными, для того чтобы вражеская артиллерия нанесла удар по своим силам.
Точно так же и злоумышленник, имея возможность удаленного запуска произвольных программ в системе, может извлечь для себя выгоду, заставив программы работать против собственной системы. Известно несколько методов удаленного выполнения программ. Наиболее известны атаки, основанные на переполнении буфера и форматированных строках.
Атака
Удаленное выполнение программ всегда осуществляется с использованием автоматизированного инструментария, как правило, при помощи скриптов. Практически невозможно выполнить программу вручную.
Чаще всего целью удаленного выполнения программ является получение прав администратора на уязвимой системе. Подобным атакам обычно предшествует сбор информации при помощи автоматизированных средств сканирования для поиска уязвимых версий программного обеспечения. Если уязвимое программное обеспечение найдено, то для получения прав администратора злоумышленник запускает сценарий, использующий бреши в системе защиты идентифицированных программ.
...
Примечание
Для дополнительного ознакомления с вопросами использования атак, основанных на переполнении буфера, рекомендуется познакомиться с работой Алефа (Alephl) «Smashing The Stack For Fun And Profit» («Разрушение стека для забавы и обогащения»), Phrack, выпуск 49, статья 14 по адресу www.phrack.com/show.php?p=49&a=14. Или с главой 8 книги.
Дополнительные сведения об уязвимостях форматированных строк можно найти в главе 9 книги, которая посвящена детальному обсуждению уязвимостей форматированных строк, и дополнительно в официальном документе Team Teso\'s по адресу www.team-teso.net/articles/formatstring/index.html.
Получив права администратора, он выполняет комплекс мероприятий по дезинформации, освещенный в секции «Дезинформация». Злоумышленник будет стараться скрыть свое присутствие в системе. После этого он может использовать скомпрометированный хост для начала атак.
Хотя удаленное выполнение программ позволяет злоумышленнику вводить команды, тем не менее на их выполнение накладываются некоторые ограничения.
Ограничения удаленного выполнения программ
Групповое членство и монопольное использование ресурса накладывают на удаленное выполнение программ точно такие же ограничения, как на процессы и работу пользователей.
Как правило, в UNIX-системах привилегированные процессы – это процессы, взаимодействующие с портами, чьи номера меньше, чем 1024. Но некоторые пакеты программ, например Apache Web Server, тоже могут модифицировать групповое членство и условие монопольного использования ресурса, несмотря на то что это разрешено делать лишь привилегированным процессам. Злоумышленник, контролирующий HTTP-процесс Apache, может присвоить себе его привилегии. Но в этом случае он может получить доступ к системе только как непривилегированный пользователь, потому что по умолчанию предусмотрено понижение привилегий Apache после его запуска. Для расширения своих привилегий воспользовавшемуся непривилегированным процессом злоумышленнику потребуются другие уязвимости локальной системы и незаурядные способности, если он не хочет быть пойманным.
Читать дальше
Конец ознакомительного отрывка
Купить книгу