스택 검사는 어떻게 작동합니까?


11

이것은 스택 검사에 대한 다른 고급 질문의 전조 입니다.

스택 검사는 서로 다른 신뢰 수준을 가진 위치에서 발생하는 코드 실행을 처리하기 위해 JVM에 도입 된 보안 메커니즘입니다. 이것은 기능에 대한 간단한 설명을 찾는 것을 목표로합니다. 그래서:

스택 검사는 어떻게 작동합니까?

답변:


7

보다

종이에서 :

... 현재 Java 시스템에서 사용되는 스택 검사 알고리즘은 다음과 같은 간단한 스택 검사 모델 의 일반화로 생각할 수 있습니다 .

이 모델에서 유일한 주체는 "시스템"과 "신뢰할 수 없음"입니다. 마찬가지로 사용 가능한 유일한 권한은 "전체"입니다. 이 모델은 Netscape Navigator 3.0에서 내부적으로 사용되는 스택 검사 시스템과 유사합니다.

이 모델에서는 모든 스택 프레임에 보안 주체 (프레임이 가상 시스템 또는 내장 라이브러리의 일부인 코드를 실행중인 경우 "시스템", 그렇지 않은 경우 "신뢰할 수 없음")로 레이블이 지정되고 권한 플래그가 포함되어 있습니다. 위험한 것을 원한다고 명시 적으로“권한 활성화”를 선택하는 시스템 클래스에 의해 설정됩니다. 신뢰할 수없는 클래스는 권한 플래그를 설정할 수 없습니다. 스택 프레임이 종료되면 권한 플래그 (있는 경우)가 자동으로 사라집니다.

파일 시스템 또는 네트워크 액세스와 같은 위험한 작업을 수행하기위한 모든 절차는 먼저 스택 검사 알고리즘을 적용하여 액세스 허용 여부를 결정합니다. 스택 검사 알고리즘은 호출자 스택의 프레임을 최신에서 가장 오래된 프레임까지 순서대로 검색합니다. 권한 플래그가있는 스택 프레임을 찾으면 액세스가 허용되어 검색이 종료됩니다. 신뢰할 수없는 스택 프레임 (권한 플래그를 얻지 못함)을 찾으면 액세스가 금지되고 예외가 발생하여 검색이 종료됩니다. ...

당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.