ПК, как и многие другие, подключенные к AS/400, системы, никак не защищены. И я утверждаю, что нельзя полагаться ни на какой код, предназначенный для ограничения доступа к AS/400, если он выполняется на незащищенной системе. Вот что я имею в виду. Например, любое ПО на ПК, включая ПО ОС Windows 95 и Windows NT Workstation, может быть легко изменено достаточно компетентным пользователем, после чего будет работать не так, как изначально предполагалось. Это означает, что ни одна прикладная программа на ПК не может обеспечить какой-либо серьезной защиты данных на AS/400, да и данных на самом ПК.
Выход из описанной ситуации очень прост. Просто запретите всякий доступ к файлам базы данных и заставьте приложение ODBC вызывать на AS/400 описанную в главе 6 хранимую процедуру, которая заимствует права на операции с файлами. Имеются также и другие приемы, позволяющие контролировать кто, и что делает с помощью ODBC.
ODBC не единственный потенциально опасный (с точки зрения защиты информации) интерфейс, который можно использовать для работы с AS/400. TCP/IP FTP (File Transfer Protocol), передача файлов с помощью Client Access и DDM — вот лишь несколько примеров удаленных интерфейсов к AS/400, использование которых может вызывать те же проблемы защиты. Многие клиент/серверные приложения, включая написанные ISV, создаются без должной защиты данных.
Ключевой момент защиты данных AS/400 — обеспечить, чтобы любой код, отвечающий за контроль доступа, выполнялся на защищенной системе. Для пользователей AS/400 это обычно означает установку защиты, предусматривающей, по меньшей мере, защиту ресурсов (уровень 30), а также осторожность при разработке или приобретении клиент/серверных приложений.
В последнее время многие клиенты AS/400 стали подумывать об использовании вместо ПК СК (сетевых компьютеров; подробно мы рассмотрим их в главе 11). СК обладает многими преимуществами ПК, может похвастаться отсутствием некоторых потенциальных проблем последнего, да и дешевле. СК также обеспечивает лучшую защищенность.
Вирусы, черви, троянские кони и другие мерзкие твари
Вирусы настолько распространены, что сегодня серьезный бизнес может опираться на ПК только при использовании какого-либо антивирусного ПО. Новые вирусы создаются каждый день, поэтому и программы проверки должны постоянно обновляться. Вирусам подвержены системы Unix и даже мэйнфреймы, что связано с наличием в них определенных возможностей системного программирования. Ведь чтобы заразить систему, код вируса должен присоединиться к некоторому исполняемому коду на двоичном машинном уровне. Так как в AS/400 видима лишь незначительная часть внутренних компонентов, внедрение вируса в нее маловероятно. И все же, это может произойти, если система не защищена надлежащим образом.
Наилучший способ предохранения от вирусов на AS/400 — защита объектов-программ и команд. Например, пользователь может изменить команду с помощью команды «CHGCMD» (Change Command) только в том случае, если у него есть право управлять объектами. Дополнительную страховку обеспечивает команда «RVKOBJAUT» (Revoke Object Authority): с ее помощью Вы можете отозвать, или, по крайней мере, отследить, чрезмерный доступ к командам, в том числе и к самой команде «CHGCMD». Кроме того, в AS/400 хакер может использовать для модификации или создания исполняемых программ лишь несколько средств и команд. Следовательно, доступ к ним нужно ограничить. Таким образом, если устранить возможность несанкционированного создания программ и изменения объектов-программ, то возможность внедрения вируса равна нулю. Средства аудита, отслеживая, кто именно использует такие изменяющие программы команды, не позволяют злоумышленнику остаться необнаруженным.
Черви похожи на вирусы, но в отличие от них не заражают другие программы. Вместо этого, червь постоянно дублируется и оттягивает на себя системные ресурсы. Например, программа-червь для AS/400 могла бы постоянно посылать себя на выполнение как новое задание. Это не вызовет повреждений, но может сильно снизить общую производительность системы. Чтобы предотвратить такую узурпацию большей части ресурсов, следует ограничить доступ к командам, изменяющим задание или его класс, и установить лимиты очереди заданий для ограничения числа параллельно исполняющихся заданий (задания, очереди заданий и классы мы рассмотрим в главе 9). С этой целью IBM изменила в V3R7 установку по умолчанию общего права на большинство таких команд с «использование» (use) на «исключение» (exclude). Общее право на многие описания заданий также было переназначено с «изменение» (change) или «использование» (use) на «исключение» (exclude).
Читать дальше