Наблюдается устойчивая зависимость безопасности баз данных от 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-систем найденная уязвимость позволяет