Самоанализ стека Java - PullRequest
       9

Самоанализ стека Java

6 голосов
/ 11 марта 2012

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

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

Мои вопросы:

  1. Правильно ли это или я что-то упустил?
  2. Как JVM решает, предоставлять или ограничивать доступ? Вовлечен ли пользователь в это решение?
  3. В в этом исследовании приведен пример (рисунок 2), в котором кадр наследует / получает "набор верований" предыдущего кадра! Что мешает выполнению вредоносного кода в этом примере (т.е. получить доступ к ресурсу, к которому не должно быть доступа)?

1 Ответ

3 голосов
/ 11 марта 2012

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

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

Правильно ли указано выше или я что-то упустил?

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

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

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

«Sun Java на сегодняшний день самый уязвимый плагин» с 2010 года.

...