Jump to content

Безопасность программной платформы Java

(Перенаправлено из безопасности Java )

Программная платформа Java предоставляет ряд функций, предназначенных для повышения безопасности приложений Java. Сюда входит обеспечение соблюдения ограничений времени выполнения с помощью виртуальной машины Java (JVM), менеджера безопасности, который изолирует ненадежный код от остальной части операционной системы, а также набора API-интерфейсов безопасности , которые могут использовать разработчики Java. Несмотря на это, критика была направлена ​​в адрес языка программирования и Oracle из-за увеличения количества вредоносных программ, обнаруживших уязвимости безопасности в JVM, которые впоследствии не были своевременно устранены Oracle.

Функции безопасности

[ редактировать ]

Двоичная форма программ, работающих на платформе Java, представляет собой не собственный машинный код, а промежуточный байт-код . JVM . выполняет проверку этого байт-кода перед его запуском, чтобы предотвратить выполнение программой небезопасных операций, таких как переход в неправильные местоположения, которые могут содержать данные, а не инструкции Это также позволяет JVM применять ограничения времени выполнения, такие как проверка границ массива . Это означает, что программы Java значительно реже страдают от недостатков безопасности памяти, таких как переполнение буфера , чем программы, написанные на таких языках, как C , которые не предоставляют таких гарантий безопасности памяти.

Платформа не позволяет программам выполнять некоторые потенциально опасные операции, такие как арифметика указателей или непроверяемое приведение типов . Он управляет выделением и инициализацией памяти и обеспечивает автоматическую сборку мусора , что во многих случаях (но не во всех) освобождает разработчика от ручного управления памятью. Это способствует безопасности типов и безопасности памяти.

Менеджер безопасности

[ редактировать ]

Платформа предоставляет менеджер безопасности, который позволяет пользователям запускать ненадежный байт-код в «песочнице», предназначенной для защиты их от вредоносного или плохо написанного программного обеспечения путем предотвращения доступа ненадежного кода к определенным функциям платформы и API. Например, ненадежному коду может быть запрещено читать или записывать файлы в локальной файловой системе, выполнять произвольные команды с привилегиями текущего пользователя, получать доступ к сетям связи, получать доступ к внутреннему частному состоянию объектов с помощью отражения или вызывать завершение работы JVM.

Менеджер безопасности также позволяет подписывать программы Java криптографической подписью ; пользователи могут разрешить запуск кода с действительной цифровой подписью от доверенного лица с полными привилегиями в обстоятельствах, когда в противном случае он не был бы доверенным.

Пользователи также могут устанавливать детальные политики контроля доступа для программ из разных источников. Например, пользователь может решить, что только системные классы должны быть полностью доверенными, что коду определенных доверенных объектов может быть разрешено чтение определенных файлов и что весь остальной код должен быть полностью изолирован.

API безопасности

[ редактировать ]

Библиотека классов Java предоставляет ряд API-интерфейсов, связанных с безопасностью, таких как стандартные криптографические алгоритмы, аутентификация и протоколы безопасной связи.

Потенциальные источники уязвимостей безопасности в Java-приложениях

[ редактировать ]

Существует ряд возможных источников уязвимостей безопасности в приложениях Java, некоторые из которых являются общими для приложений, отличных от Java, а некоторые специфичны для платформы Java. (Обратите внимание, что они относятся к потенциальным источникам уязвимостей, о которых следует помнить программистам, заботящимся о безопасности: это не список реальных уязвимостей.)

Примеры потенциальных источников уязвимостей, общих для приложений Java и других приложений:

  • Уязвимости в механизмах защиты, предоставляемых оборудованием или операционной системой , от которых зависит безопасность приложения.
  • Уязвимости в собственных библиотеках, таких как стандартная библиотека C , которые могут использоваться для реализации приложения и/или среды выполнения.
  • Уязвимости, вызванные исключительно ошибками в пользовательских программах (например, неправильное построение SQL- запросов, приводящее к SQL-инъекций ). уязвимостям

Однако большая часть обсуждений безопасности Java сосредоточена на потенциальных источниках уязвимостей, специфичных для платформы Java. К ним относятся:

  • Уязвимости в механизме песочницы, позволяющие ненадежному байт-коду обходить ограничения, налагаемые менеджером безопасности.
  • Уязвимости в библиотеке классов Java, от которых зависит безопасность приложения.

Уязвимость платформы Java не обязательно сделает уязвимыми все приложения Java. Когда объявляются об уязвимостях и исправлениях, например, Oracle, объявление обычно содержит информацию о том, какие типы приложений затронуты ( пример ).

Например, гипотетическая уязвимость безопасности, которая затрагивает только механизм изолированной программной среды менеджера безопасности конкретной реализации JVM, будет означать, что только приложения Java, которые выполняют произвольный ненадежный байт-код, будут скомпрометированы: приложения, в которых пользователь полностью доверяет и контролирует весь выполняемый байт-код, не будут. Это будет означать, что, скажем, плагин веб-браузера, основанный на этой JVM, будет уязвим для вредоносных апплетов, загруженных с общедоступных веб-сайтов, но серверное веб-приложение, работающее на той же версии JVM, где администратор имеет полный контроль над путем к классам. было бы незатронуто. [ 1 ] Как и в случае с приложениями, отличными от Java, уязвимости безопасности могут возникать в тех частях платформы, которые изначально не кажутся связанными с безопасностью. Например, в 2011 году Oracle выпустила исправление безопасности для ошибки в Double.parseDouble метод. [ 2 ] Этот метод преобразует строку , например «12,34», в эквивалентное число двойной точности с плавающей запятой . Ошибка приводила к тому, что этот метод входил в бесконечный цикл при вызове на определенном входе. Эта ошибка имела последствия для безопасности, поскольку, например, если веб-сервер преобразует строку, введенную пользователем в форму с помощью этого метода, злонамеренный пользователь может ввести строку, которая вызывает ошибку. Это приведет к тому, что поток веб-сервера, обрабатывающий вредоносный запрос, войдет в бесконечный цикл и станет недоступным для обслуживания запросов от других пользователей. Повторное выполнение этого действия на уязвимом веб-сервере будет простой атакой типа «отказ в обслуживании» : все потоки веб-сервера, отвечающие на запросы пользователей, вскоре застрянут в бесконечном цикле, и веб-сервер не сможет обслуживать законных пользователей на все.

Критика начальника службы безопасности

[ редактировать ]

Менеджер безопасности на платформе Java (который, как упоминалось выше, предназначен для того, чтобы позволить пользователю безопасно запускать ненадежный байт-код) в последние годы подвергался критике за то, что делает пользователей уязвимыми для вредоносных программ , особенно в плагинах веб-браузера, которые выполняют Java-апплеты, загруженные с сайта. общедоступные веб-сайты, более неофициально известные как «Java в браузере».

Усилия Oracle по устранению этих уязвимостей привели к задержке выпуска Java 8. [ 3 ]

Троян OS X , известный как Flashback, использовал уязвимость в Java, которая не была исправлена ​​Apple , хотя Oracle уже выпустила патч. [ 4 ] Позже в апреле Apple выпустила инструмент удаления для пользователей Lion без Java. [ 5 ] С выпуском Java 7 Update 4 компания Oracle начала выпускать Java непосредственно для Lion и более поздних версий . [ 6 ]

В октябре Apple выпустила обновление, которое удалило плагин Java из всех браузеров . [ 7 ] Это было воспринято как попытка Apple дистанцировать OS X от Java. [ 8 ]

В январе уязвимость нулевого дня была обнаружена во всех версиях Java 7, включая последнюю версию Java 7 Update 10, которая уже эксплуатировалась в реальных условиях. [ 9 ] Уязвимость была вызвана патчем, исправляющим более раннюю уязвимость. [ 10 ] В ответ Apple занесла в черный список последнюю версию плагина Java. [ 11 ] Oracle выпустила патч (обновление 11) в течение трех дней. [ 12 ] Microsoft также выпустила патч для Internet Explorer версий 6 , 7 и 8 . [ 13 ]

кибершпионажа Вредоносная программа Red October использовала уязвимость Java, исправленную в октябре 2011 года. [ 14 ] Веб-сайт «Репортеров без границ» также был скомпрометирован уязвимостью Java в версиях, предшествующих обновлению 11. [ 15 ]

После выхода обновления 11 в сети начала распространяться еще одна уязвимость: [ 16 ] что позже подтвердилось. [ 17 ] Также было обнаружено, что сам режим безопасности Java был уязвим из-за ошибки. [ 18 ] В ответ Mozilla отключила Java (а также Adobe Reader и Microsoft Silverlight ) в Firefox , по умолчанию [ 19 ] в то время как Apple снова занесла в черный список последний плагин Java. [ 20 ]

В феврале Twitter сообщил, что пресек атаку. Twitter посоветовал пользователям отключить Java, хотя и не объяснил почему. [ 21 ] Позже в том же месяце Facebook сообщил, что он был взломан в результате атаки Java нулевого дня. [ 22 ] Apple также сообщила об атаке. [ 23 ] Выяснилось, что взлом форума разработчиков iPhone был использован для атак на Twitter, Facebook и Apple. [ 24 ] Сам форум не знал о нарушении. [ 25 ] Вслед за Twitter, Facebook и Apple Microsoft сообщила, что она также была скомпрометирована. [ 26 ]

Другая обнаруженная уязвимость позволяла полностью обойти изолированную программную среду безопасности Java в исходной версии Java 7, а также в обновлениях 11 и 15. [ 27 ] В марте был обнаружен троян McRat, использующий уязвимость Java нулевого дня. [ 28 ] Затем Oracle выпустила еще один патч для устранения уязвимости. [ 29 ]

См. также

[ редактировать ]
  1. ^ Выпущено предупреждение безопасности для CVE-2013-0422 . Корпорация Оракл. Проверено 24 апреля 2013 г.
  2. ^ Oracle выпускает исправление для ошибки Double.parseDouble в рекордно короткие сроки . ИнфоВ. Проверено 24 апреля 2013 г.
  3. ^ Обезопасьте поезд . Блог Марка Рейнхольда, главного архитектора группы платформ Java компании Oracle. 18 апреля 2013 г.
  4. ^ Гудин, Дэн (2 апреля 2012 г.). «Троян Mac Flashback использует неисправленную уязвимость Java, пароль не требуется» . Арс Техника . Проверено 18 февраля 2014 г.
  5. ^ Гойсс, Меган (14 апреля 2012 г.). «Инструмент удаления вредоносных программ Flashback доступен для пользователей Mac без Java» . Арс Техника . Проверено 18 февраля 2014 г.
  6. ^ Форесман, Крис (27 апреля 2012 г.). «Забудьте об Apple: Oracle предоставит исправления безопасности Java непосредственно пользователям Mac» . Арс Техника . Проверено 18 февраля 2014 г.
  7. ^ Гудин, Дэн (18 октября 2012 г.). «Apple удаляет Java из всех веб-браузеров OS X» . Арс Техника . Проверено 18 февраля 2014 г.
  8. ^ Ченг, Жаки (23 декабря 2012 г.). «Как выглядит безопасность OS X после нестабильного 2012 года» . Арс Техника . Проверено 18 февраля 2014 г.
  9. ^ Гудин, Дэн (10 января 2013 г.). «Критическая ошибка нулевого дня в Java «массово эксплуатируется» (обновлено)» . Арс Техника . Проверено 18 февраля 2014 г.
  10. ^ Гудин, Дэн (11 января 2013 г.). «Критическая уязвимость Java стала возможной из-за более раннего неполного исправления (обновлено)» . Арс Техника . Проверено 18 февраля 2014 г.
  11. ^ Форесман, Крис (11 января 2013 г.). «Apple вносит Java в черный список в OS X, чтобы предотвратить последние «критические» эксплойты» . Арс Техника . Проверено 18 февраля 2014 г.
  12. ^ Маттис, Натан (14 января 2013 г.). «Oracle исправляет широко распространенную ошибку нулевого дня в Java за три дня (обновлено)» . Арс Техника . Проверено 18 февраля 2014 г.
  13. ^ Гудин, Дэн (14 января 2013 г.). «Microsoft выпускает экстренное обновление для исправления ошибки Internet Explorer» . Арс Техника . Проверено 18 февраля 2014 г.
  14. ^ Гудин, Дэн (15 января 2013 г.). «Red October использовал эксплойт Java для заражения компьютеров» . Арс Техника . Проверено 18 февраля 2014 г.
  15. ^ Гудин, Дэн (22 января 2013 г.). «Только что исправленные ошибки Java и IE, используемые для заманивания в ловушку правозащитных сайтов» . Арс Техника . Проверено 18 февраля 2014 г.
  16. ^ Гудин, Дэн (16 января 2013 г.). «За 5000 долларов вы купите доступ к еще одной, новой критической уязвимости Java (обновлено)» . Арс Техника . Проверено 18 февраля 2014 г.
  17. ^ Гудин, Дэн (18 января 2013 г.). «В последней версии подтверждены критические уязвимости Java» . Арс Техника . Проверено 18 февраля 2014 г.
  18. ^ Гудин, Дэн (28 января 2013 г.). «Новый «очень высокий» режим безопасности Java не может защитить вас от вредоносных программ» . Арс Техника . Проверено 18 февраля 2014 г.
  19. ^ Гудин, Дэн (31 января 2013 г.). «Firefox для блокировки контента на основе Java, Reader и Silverlight» . Арс Техника . Проверено 18 февраля 2014 г.
  20. ^ Форесман, Крис (31 января 2013 г.). «Второй раз за месяц Apple вносит в черный список веб-плагин Java» . Арс Техника . Проверено 18 февраля 2014 г.
  21. ^ Гудин, Дэн (2 февраля 2013 г.). «Twitter обнаруживает и блокирует взлом пароля» . Арс Техника . Проверено 18 февраля 2014 г.
  22. ^ Галлахер, Шон (15 февраля 2013 г.). «Компьютеры Facebook заражены эксплойтом Java нулевого дня» . Арс Техника . Проверено 18 февраля 2014 г.
  23. ^ Ченг, Жаки (19 февраля 2013 г.). «Штаб-квартира Apple, также атакованная хакерами, выпустит инструмент для защиты клиентов» . Арс Техника . Проверено 18 февраля 2014 г.
  24. ^ Галлахер, Шон (19 февраля 2013 г.). «Взлом Facebook, Twitter и Apple возник на форуме разработчиков iPhone» . Арс Техника . Проверено 18 февраля 2014 г.
  25. ^ Ченг, Жаки (20 февраля 2013 г.). «Сайт разработчиков Apple, хакеры Facebook не знали, что он заминирован» . Арс Техника . Проверено 18 февраля 2014 г.
  26. ^ Брайт, Питер (22 февраля 2013 г.). «Microsoft присоединяется к Apple, Facebook и Twitter и становится жертвой взлома» . Арс Техника . Проверено 18 февраля 2014 г.
  27. ^ Бродкин, Джон (25 февраля 2013 г.). «Последние проблемы безопасности Java: обнаружена новая уязвимость, атакована старая» . Арс Техника . Проверено 18 февраля 2014 г.
  28. ^ Гудин, Дэн (1 марта 2013 г.). «Еще один эксплойт нулевого дня в Java, активно атакующий цели» . Арс Техника . Проверено 18 февраля 2014 г.
  29. ^ Маттис, Натан (5 марта 2013 г.). «Oracle выпускает новый патч Java для решения проблемы McRat, возникшей на этой неделе» . Арс Техника . Проверено 18 февраля 2014 г.
[ редактировать ]
Arc.Ask3.Ru: конец переведенного документа.
Arc.Ask3.Ru
Номер скриншота №: 8101d7fad0ae26c53eb69b88d8791821__1710696120
URL1:https://arc.ask3.ru/arc/aa/81/21/8101d7fad0ae26c53eb69b88d8791821.html
Заголовок, (Title) документа по адресу, URL1:
Security of the Java software platform - Wikipedia
Данный printscreen веб страницы (снимок веб страницы, скриншот веб страницы), визуально-программная копия документа расположенного по адресу URL1 и сохраненная в файл, имеет: квалифицированную, усовершенствованную (подтверждены: метки времени, валидность сертификата), открепленную ЭЦП (приложена к данному файлу), что может быть использовано для подтверждения содержания и факта существования документа в этот момент времени. Права на данный скриншот принадлежат администрации Ask3.ru, использование в качестве доказательства только с письменного разрешения правообладателя скриншота. Администрация Ask3.ru не несет ответственности за информацию размещенную на данном скриншоте. Права на прочие зарегистрированные элементы любого права, изображенные на снимках принадлежат их владельцам. Качество перевода предоставляется как есть. Любые претензии, иски не могут быть предъявлены. Если вы не согласны с любым пунктом перечисленным выше, вы не можете использовать данный сайт и информация размещенную на нем (сайте/странице), немедленно покиньте данный сайт. В случае нарушения любого пункта перечисленного выше, штраф 55! (Пятьдесят пять факториал, Денежную единицу (имеющую самостоятельную стоимость) можете выбрать самостоятельно, выплаичвается товарами в течение 7 дней с момента нарушения.)