2012-03-10 2 views
6

Я надеялся, что кто-то может мне помочь со следующим:Java Stack Самоанализ

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

Мои вопросы:

  1. СОБРАННОЙ правильно или я что-то не хватает?
  2. Как JVM принимает решение о предоставлении или ограничении доступа? Участвует ли пользователь в этом решении?
  3. В примере this study приведен пример (рисунок 2), в котором кадр наследует/сообщает «набор веры» предыдущего кадра! Что мешает исполнению вредоносного кода в этом примере (т. Е. Получить доступ к ресурсу, к которому не должны иметь доступа)?
+1

@NiklasB. Вероятно, это не проблема, и я полагаю, что это было даже не тогда, но я просто не могу понять, как это работает! (То есть, что мешает ему выполнять вредоносный код) – mixkat

+0

Хорошо, не беспокойтесь :) Это интересный вопрос. –

+0

Основополагающим механизмом безопасности внутриутронного Java является [doPrivileged] (http://docs.oracle.com/javase/7/docs/api/java/security/AccessController.html#doPrivileged (java.security.PrivilegedAction)). –

ответ

3

Как JVM принимает решение о предоставлении или ограничении доступа? Участвует ли пользователь в этом решении?

Он делегирует установленному в настоящее время SecurityManager.

Правильно ли это или я что-то упускаю?

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

В этом исследовании приведен пример (рисунок 2), в котором кадр наследует/сообщает «набор веры» предыдущего кадра! Что мешает исполнению вредоносного кода в этом примере (т. Е. Получить доступ к ресурсу, к которому не должны иметь доступа)?

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

"Sun Java by far the most vulnerable plug-in" с 2010