Вирусы, черви, троянские кони и другие мерзкие твари
Вирусы настолько распространены, что сегодня серьезный бизнес может опираться на ПК только при использовании какоголибо антивирусного ПО. Новые вирусы создаются каждый день, поэтому и программы проверки должны постоянно обновляться. Вирусам подвержены системы 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).
Компьютерные троянские кони пытаются пробраться в Вашу систему незаметно, подобно античным грекам, вошедшим в Трою, скрыв своих солдат в огромном подарке — деревянном коне. Обычно, имя "троянской" программы совпадает с именем "хорошей" программы. Пользователь может поместить "троянского коня" в такое место системы, что при ее выполнении он получит более высокий уровень прав, чем имеет при исполнении "законной" программы. Проще всего поместить "троянскую" программу в библиотеку.
В лекции 5 мы говорили, что система просматривает библиотеки в списке одну за другой, пока не будет найден нужный объект. Если кто-то поместит "троянскую" программу в библиотеку, предшествующую библиотеке, содержащей "хорошую" программу с тем же именем, то "троянская" программа будет найдена первой и ее автор сможет (потенциально) получить более высокую степень доступа к системе.
В качестве примера рассмотрим предоставляемую IBM библиотеку QUSRSYS, которая поставляется вместе с системой. Допустим, QUSRSYS имеет общее право доступа "изменение" (change). Эта библиотека просматривается системой перед просмотром других пользовательских библиотек в списке задания. Обращение к пользовательской библиотеке вызвало бы одноименную "троянскую" программу, предварительно помещенную хакером в QUSRSYS. Обратите внимание, на слово "допустим", с которого начинается вторая фраза этого абзаца. Именно для страховки от "троянских коней" с версии V3R7 QUSRSYS и другие библиотеки IBM поставляются с общим правом "использование" (use). Тогда же и с той же целью — повысить защищенность системы и затруднить несанкционированный доступ к системным ресурсам — в специальные права для различных классов пользователей были внесены и другие изменения.
В отличие от ПК и систем Unix средства для защиты AS/400 от тварей, которых мы только что рассмотрели, уже присутствуют в самой системе. Как я уже сказал, в последних версиях были изменены значения параметров по умолчанию, что делает защиту системы еще надежней. И все же пользователь по-прежнему должен предпринять определенные действия по активизации всех этих форм защиты. Немного предусмотрительности — и Ваша AS/400 станет абсолютно непроницаемой для вирусов и прочей нечисти!
Безопасный сервер WWW
По мере того, как все больше компаний подключают свои AS/400 к WWW (World Wide Web), вопрос сетевой защиты серьезно обостряется. Многие только что рассмотренные нами приемы защиты AS/400 в клиент/серверной среде применимы также и при подключении ее к открытым сетям любого рода. Но Интернет стоит особо.
Прежде чем мы займемся вопросами защиты, не помешает краткий исторический экскурс в поддержку Интернета на AS/400. В состав Internet Connection, появившегося в начале 1996 в составе OS/400, входят сервер WWW, шлюз 5250-в-HTML2) (Hypertext Markup Language) и средства работы с базами данных из HTML. Сервер WWW получил название Internet Connection Server: он взаимодействует с пользователями WWW посредством протокола HTTP (Hypertext Transport Protocol). Шлюз HTML "на лету" преобразует поток данных 5250 в HTML, что позволяет приложениям 5250 работать в Интернете. Средства HTML для баз данных создают запросы для DB2/400 с помощью HTML и SQL. Эти расширения, добавленные в последующие версии, превратили AS/400 в полноценный сервер Интернета.
HTML задает формат потока данных между сервером WWW и средством просмотра на компьютерах, подключенных к сети. HTML не язык программирования; это мощный язык описания страниц, подобный PostScript. Его основой послужил полиграфический язык SGML (Standard Generalized Markup Language), описывающий взаиморасположение текста и графики на экране. Браузер на пользовательской машине передает на сервер запрос в форме URL (universal resource locator). Запрос URL имеет вид "http://имя-сервера/имя-документа-HTML".
HTTP — это просто транспортный протокол, использующий соединение TCP/IP между сервером WWW на AS/400 и пользователями WWW. Внешними связями могут быть выделенные линии или доступ TCP/IP по асинхронным телефонным линиям, известный как SLIP (Serial Link Internet Protocol). Имеется также поддержка протокола PPP (pointtopoint protocol). Кроме сервера WWW, сетевые клиенты могут использовать для доступа к интегрированной файловой системе AS/400 протокол FTP (File Transfer Protocol). Поддержка "анонимного" пользователя обеспечивает доступ к системе любому сетевому пользователю.
Пользователь WWW на сетевом компьютере может запросить у сервера на AS/400 исполнение программы CGI (Common Gateway Interface). CGI — это стандартный протокол сервера WWW, позволяющий серверным программам непосредственно взаимодействовать с браузером на сетевом компьютере. При запуске такая программа получает информацию из вызывающего документа HTML, имя пользователя, адрес TCP/ IP и любые заданные пользователем данные. С помощью команд SQL в HTML, пользователь также может непосредственно обращаться к DB2/400 из браузера. Программа CGI выполняет запрошенные операции, включая обращения к DB2/400, и генерирует текст HTML, который WWWсервер на AS/400 возвращает браузеру.
Для обеспечения защиты данных на AS/400 сервер WWW использует системные средства защиты. Набор новых профилей пользователя и некоторые другие параметры обеспечивают закрытость данных и предоставляют доступ только к тем файлам, для которых это разрешено.
Обычно, сервер WWW AS/400 работает под управлением профиля пользователя QTMHHTTP. Используя этот профиль, сервер WWW работает в системном состоянии. Чтобы ограничить набор файлов, к которым имеет доступ сервер, и таким образом доступ пользователей WWW к файлам DB2/400, можно ограничить права доступа к объектам для профиля QTMHHTTP. Когда пользователь WWW запрашивает у сервера выполнение программы CGI, используется другой профиль. Сервер WWW переключается на профиль QTMHHTTP1, понижает состояние системы до пользовательского и не передает заимствованные права сервера программе CGI. Профиль пользователя QTMHHTTP1 не имеет никаких прав и может работать только с объектами, имеющими общие права.
Так как пользователи Интернета обычно не зарегистрированы на AS/400, сервер WWW вообще не проверяет прав пользователей. Некоторые системы AS/400 могут требовать введения идентификатора и пароля для доступа к определенным страницам URL; однако, чаще всего страницы WWW открыты для всех пользователей Интернета. Следовательно, такой пользователь Интернета имеет доступ ко всему, к чему есть доступ у сервера WWW. Так что следует тщательно следить за назначением общих прав объектам системы. Например, если в некоторой библиотеке содержится важная информация, имеет смысл установить для нее общий доступ "исключение" (exclude) и разрешить доступ только в соответствии с явными или групповыми правами. Тогда у сервера WWW не будет доступа к такой библиотеке. Если Вы хотите назначить для библиотеки более высокий уровень общего доступа, рекомендуем вариант явного запрета на доступ к ней для QTMHHTTP и QTMHHTP1. Тогда она станет недоступной пользователям WWW.
Сервер WWW может использовать библиотеки, на которые у него есть права, но не использует списки библиотек. Как обсуждалось ранее, использование списка библиотек дает возможность поместить "троянскую" программу перед библиотекой, содержащей "хорошую" программу. Не используя списки библиотек, мы устраняем эту возможность.
Другой способ защиты системы — использование программ выхода (exit program). Так называется в AS/400 программа, написанная пользователем. Например, всякий раз, когда сетевой пользователь, пытается применить FTP для пересылки файла на или AS/400 с нее, перед началом операции с файлом вызывается программа выхода. Эта программа может запретить выполнение определенных операций в зависимости от профиля пользователя или файла, к которому производится обращение. Так же программы выхода могут запускаться при получении запроса на другие операции, такие как подключение пользователя к серверу. Программы выхода также могут при меняться для ПК, подключенных удаленно, или при доступе к системе через шлюз HTML.
Для коммерческой безопасности электронных операций по незащищенной сети, нужна защищенная пересылка данных и поддержка защищенных финансовых транзакций. В обоих случаях AS/400 использует стандартные сетевые протоколы: SSL (Secure Sockets Layer) — как средство защищенной пересылки (будет рассмотрен в лекции 11); и SET (Secure Electronics Transaction) — для защиты финансовых транзакций. SET представляет собой протокол, определенный Visa/MasterCard для выполнения операций с кредитными картами по Интернету. Вдобавок, когда нужно, AS/400 предоставляет очень мощные аппаратные средства шифрования данных3).
В завершение рассмотрения темы сетевой защиты рассмотрим брандмауэры. Брандмауэр — это отдельная от AS/400 система, используемая для защиты шлюза в Интернет. В нормальной ситуации и AS/400, и все другие компьютеры никогда не соединяются с Интернетом напрямую. Вместо этого все обращения сначала поступают к брандмауэру. Брандмауэры защищают частные сети от несанкционированного доступа, как внутреннего, так и внешнего. В соответствии с правилами защиты в данной организации, брандмауэр разрешает или запрещает доступ к ее защищенным компьютерам. Свое название брандмауэры получили потому, что они не дают огню (незащищенной сети) проникнуть в защищенную внутреннюю сеть (буквально: firewall — огнеупорная стена).
В большинстве случаев брандмауэры реализуются на ПК либо на Unix. Так как их использование предполагает наличие отдельного компьютера и, соответственно администратора, это сильно не вписывалось в интегрированную сущность AS/400. По-этому в V4R1 был реализован скрытый брандмауэр. Для этого защищенного сетевого шлюза мы использовали IPCS (Integrated PC Server). Использование IPCS и других скрытых машин приложений подробно рассматривается в лекции 11, а сейчас скажем лишь, что IPCS — отличный брандмауэр, позволяющий избежать расходов на управления дополнительным компьютером. Наш брандмауэр находится в том же корпусе (физически), не находясь в нем логически.
Выводы
Защита — одна из важнейших функций любой многопользовательской системы. По мере того, как все большее число компьютеров подключается к Интернету, необходимость защиты систем только возрастает. Компонент защиты OS/400 и компонент SLIC контроля за доступом к объектам составляют механизм, удовлетворяющий сегодняшним требованиям и, вместе с тем, достаточно гибкий для расширений в будущем. По мере ужесточения требований к защите, необходимые средства могут быть легко добавлены в AS/400.
Кроме общей системной защиты AS/400, мы подробно обсудили общие способы уп равления правами пользователей, включая:
- доступ к меню;
- заимствованные права;
- групповые права;
- явные права.
В процессе разрешения указателя выполняется алгоритм поиска прав. Но от прав доступа к объекту мало толку, если Вы не можете его адресовать. В следующей лекции мы рассмотрим адресацию и управление одноуровневой памятью. Одноуровневая память, хотя обычно и не рассматривается как часть системы защиты, тем не менее, играет главную роль в защите пользователей и их данных.