Перископ
После того как Джесс Берст занялся вопросом безопасности ActiveX, я подумал: “А не подлить ли масла в огонь?” - но потом решил перечислить некоторые проблемы с Java. Не то чтобы Java и ActiveX были противоположностями, но хотя они делают сходные вещи, они делают это совершенно по-разному. Я ограничусь вопросами безопасности, и главным образом потому, что ActiveX работает исключительно с Windows, в то время как Java создает возможность возникновения проблем с безопасностью (и вирусами) для многих платформ.
Не хочу показаться паникером, но считаю, что не следует забывать: Web очень напоминает швейцарский сыр. Вопрос лишь в том, насколько велики в нем дыры? Достаточен ли их размер для того, чтобы проехать на грузовике, или сквозь них могут проникнуть лишь хитрые грызуны? Для протокола я должен заявить, что, за исключением уже упоминавшейся атаки с использованием ActiveX в Германии, я не обнаружил документально зафиксированных случаев ActiveX- или Java-вирусов, троянских коней или других злонамеренных атак на компьютерные системы. В то же время, если вы захотите, то сможете найти множество враждебных и досаждающих аплетов - посмотрите, к примеру, на работу Марка Ладью ( http://www.math.gatech. edu/~mladue/Hostile Applets.html). После того как ваши глаза перестанут вылезать из орбит, напомните себе, что это хороший парень, чья цель - показать слабости Java, дабы соответствующим образом защитить всех пользователей.
Рискуя попасть на страницу Роба Розенберга Computer Virus Myths (“Мифы о компьютерных вирусах”, http://www. kumite.com/myths) за паникерство, хочу предупредить вас о том, что можно сделать в настоящее время при помощи Java-приложений. Архитектура “песочницы” ограничивает возможный ущерб, который могут нанести вашей системе Java-программы, но не исключает его полностью. В конце концов, в песочнице можно наткнуться на очень неприятные вещи.
Например, переопределив метод stop(), вы можете создать поток, который никогда не будет закончен. Такие потоки будут продолжать выполняться даже после того, как аплет, породивший их, прекратит свое существование. Часто убить такой поток можно, лишь прекратив работу браузера. Обычно это просто неудобство, но оно может привести к потере времени и производительности, не говоря уже о возможных обращениях пользователей в службу поддержки.
“Дикие” потоки способны творить всякие гадости, например, шпионить за вашей работой в Web и отсылать информацию о вашей деятельности на узел, с которого аплет был загружен. Можно создавать потоки-“убийцы”, уничтожающие другие Java-потоки, или аплеты, и модифицирующие классы, добавляя двоичный код. Этот код никогда не был бы разрешен компилятором, но он свободно проходит менеджера безопасности виртуальной машины Java. Аплеты могут подделывать электронную почту. А кроме того, они способны переносить тела платформно-зависимых вирусов.
Некоторые способы защиты от подобных атак уже созданы, а многие находятся на стадии разработки. Например, виртуальные машины браузеров могут ограничивать память или ресурсы центрального процессора, доступные аплетам. Однако при этом и законопослушные аплеты могут лишиться доступа к ресурсам.
Если вы интересуетесь данной темой, закажите CD-ROM фирмы MindQ под названием Java Security (“Безопасность Java”). На нем в прекрасно структурированном виде описаны проблемы и их решения. Кроме того, с его помощью вы получите представление о сложности процесса обеспечения безопасности в сетевой среде с мощным межплатформным языком. Для заказа зайдите на узел www.mindq.com.
Билл Макроун
Билл Макроун - вице-президент по технологии компании Ziff-Davis Publishing. С ним можно связаться по адресу: bill_machrone@zd.com.