Коллектив авторов - Защита от хакеров корпоративных сетей
Модули ядра
Модули ядра – часть кода, который может быть загружен в память и выгружен из памяти ядром операционной системы. Модуль ядра предоставляет ядру дополнительные функциональные возможности по мере необходимости. Ядро выгружает ненужный в данный момент модуль из памяти, чтобы освободить память для других программ. Модули ядра могут быть загружены для того, чтобы обеспечить поддержку, например, файловой системы другой операционной системой, управления устройством или чего-то еще.
Злонамеренные модули ядра преследуют те же цели, что и программы типа rootkit. Они предназначены для дезинформации администраторов системы, заставляя их поверить в нормальную работу хоста. Тем самым они защищают злоумышленника от обнаружения, позволяя ему выполнить задуманное.
Принципы работы модуля ядра и программы типа rootkit отличаются принципиально. Программы rootkit работают как фильтр, защищающий нужные данные от вездесущих администраторов. А модуль ядра работает на более низком уровне, перехватывая информационные запросы на уровне системных вызовов и не доводя до администратора любые данные, которые могут выдать присутствие несанкционированных гостей. Тем временем защищенный злонамеренным модулем ядра гость может найти скрытую лазейку в системе защиты системы и скомпрометировать систему, не подвергая себя опасности быть обнаруженным вследствие модификации системных утилит.
Модули ядра становятся стандартом скрытия вторжения. После проникновения в систему злоумышленник должен просто загрузить модуль и удостовериться в том, что модуль загружен и в дальнейшем будет подгружаться системой. С этого момента и до перевода дисковода в автономный режим и монтировки другой копии операционной системы нельзя обнаружить ни злонамеренного модуля ядра, ни маскирующего с его помощью злоумышленника.
Доступ к специальным файлам / базам данных
Ниже излагаются два метода проникновения в систему, которые основаны на получении доступа к специальным файлам и базам данных. Специальные файлы хотя и различаются форматом и функциями, но присутствуют во всех системах на всех платформах от систем NT до Sun Enterprise 15000 на Unisys Mainframe.
Нападения на специальные файлыПроблема нападений на специальные файлы становится очевидной, если пользователь использует сервис RunAs операционной системы Windows 2000. Когда пользователь выполняет обращающуюся к RunAs программу, Windows 2000 создает поименованный канал (канал – механизм связи между процессами, который позволяет одному процессу передавать данные другому процессу), запоминая мандат аутентификации в незашифрованном виде. Если сервис RunAs остановлен, то злоумышленник может создать именованный канал под тем же самым именем. Когда сервис RunAs стартует еще раз, соответствующий процессу мандат будет передан злоумышленнику, что позволит злоумышленнику зарегистрироваться в системе пользователем сервиса RunAs.
Аналогичные проблемы есть и в UNIX-системах. Уже упоминалось об одной из них – псевдотерминалах системы Solaris. В компоненте дистрибутива Red Hat Linux 7.1, отвечающего за обновление системы, была выявлена следующая уязвимость. Оказывается, у злоумышленника есть возможность тайно просматривать файл подкачки, создаваемый пользователем при обновлении системы. Это происходит из-за создания файла подкачки с атрибутами, которые разрешают всем пользователям читать его. Сначала злоумышленник, руководствуясь низменными целями, основательно загружает память системы, вынуждая систему использовать файл подкачки. А затем, при различных состояниях системы, несколько раз копирует файл подкачки, для того чтобы на досуге поискать в копиях пароли и другую важную информацию.
Нападения на базы данныхАвтор на одном из этапов своей карьеры собирался стать администратором базы данных, полагая, что это позволит ему усовершенствовать профессиональные навыки в обслуживании систем и их безопасности. Чем больше он входил в курс дела, тем сильнее убеждался в том, что по напряженности труда работа администратором баз данных сродни участию в боевых действиях, потому что от него зависит финансовое благополучие компании. И если пришлось бы выбирать, он лучше бы пошел добровольцем на войну.
Базы данных всегда были лакомым кусочком для злоумышленника. Современная профессиональная деятельность людей зачастую немыслима без централизованного хранилища информации, в котором содержатся финансовые данные, сведения о кредитных карточках, платежные ведомости, списки клиентов и т. д. Одна только мысль о ненадежности баз данных способна лишить сна генерального директора, не говоря уже о доведении администратора баз данных до нервного срыва. Можно сказать, что сегодня электронная коммерция процветает. А где бизнес, там и базы данных.Зона риска
Системы управления базами данных являются объектами нападения с двух сторон. Поскольку они относятся к программному обеспечению, то им присущи общие проблемы программ, как, например, переполнение буфера, отказ в обслуживании, скорость реакции. Дополнительно к этому системы управления базами данных – фоновая компонента большинства современных программ Web-интерфейса, средств графического интерфейса пользователя и т. д. Поэтому базы данных безопасны настолько, насколько безопасны программные средства интерфейса с пользователем и обработки данных.
Наблюдается устойчивая зависимость безопасности баз данных от Web-интерфейса, по крайней мере, по двум причинам. Во-первых, зачастую программы Web-интерфейса завершаются аварийно при обработке специальных символов. Во-вторых, из-за неважного проектирования алгоритмов Web-интерфейса известны случаи неавторизованного доступа к базам данных. Сказанное подтверждается фактами регулярного нахождения ошибок в интерфейсах пакетов электронной коммерции.
Сложно написать хорошую программу обработки информации, введенной пользователем. Пользователь всегда может ввести что-нибудь такое, что почти невозможно предусмотреть. Иногда – по невежеству, иногда – специально. Программа должна правильно обрабатывать специальные символы, например одинарные () и двойные (") кавычки, прямой (/) и обратный слэш () и некоторые другие, иначе быстро найдется желающий воспользоваться ошибками. Пропускающая спецсимволы программа интерфейса не сможет служить преградой для выполнения произвольно заданных команд.
Плохо разработанный интерфейс – тема отдельного разговора. Ошибки в проектировании интерфейса позволяют злоумышленнику по своему желанию просматривать и удалять таблицы, выполнять SQL-запросы. Хотя в этом нет ничего нового, подобные инциденты происходят постоянно.Программные средства баз данных
Программные средства баз данных богаты сюрпризами нарушения безопасности. Безопасность базы данных зачастую определяется безопасностью ее программных средств. И это не требует особых пояснений.
Например, система управления базами данных Oracle может работать на нескольких платформах. Нишад Херат (Nishad Herath) и Брок Теллер (Brock Tell ier) из Network Associates COVERT Labs нашли уязвимость в версиях Oracle 8.1.5–8.1.7. Уязвимость была вызвана некорректной работой программы Oracle – TNS Listener.
Для незнакомых с Oracle поясним, что программа TNS Listener облегчает подключения к базе данных и управляет ими. Она прослушивает произвольный порт данных, в последних версиях порт 1521/TCP, ожидая запроса на установку соединений к базе данных. После получения запроса программа разрешает пользователю зарегистрироваться в базе данных в соответствии с его мандатом (мандат – учетная запись с параметрами доступа пользователя, сформированными после его успешной аутентификации).
Выявленная уязвимость проявляется при посылке откорректированного злоумышленником пакета Net8, который перехватывается программой TNS Listener. Логика работы программы TNS Listener такова, что этого оказывается достаточно для получения доступа к базе данных на локальной машине и выполнения произвольной программы на ней. Если для Unix-систем подобный дефект имеет большое значение, то для систем Windows – очень большое. Для Unix-систем найденная уязвимость позволяет злоумышленнику получить доступ к базе данных на локальной машине и зарегистрироваться пользователем Oracle, а для систем Windows – с привилегиями LocalSystem, эквивалентными правам администратора. Вопросы выполнения программы будут рассмотрены в следующей секции....Служба компьютерной безопасности предупреждает!
Oracle – не единственный уязвимый программный продукт. Просматривая различные технические отчеты или базу язвимостей SecurityFocus, можно найти большое количество слабо защищенных программ, например MySQL или Microsoft SQL. Не дайте себя одурачить, делая поспешные выводы о безопасности тех или иных программ, поскольку в отчетах приведены cведения только об известных уязвимостях.