권한 확대

위키백과, 우리 모두의 백과사전.

권한 확대(privilege escalation)는 보통 애플리케이션이나 사용자에 대해 보호되는 자원들에 대한 상승된 접근을 얻기 위해서 운영체제소프트웨어 애플리케이션에서 버그나 설계결함, 또는 설정을 익스플로잇하는 행동을 말한다. 이것에 의한 결과는 애플리케이션이 개발자시스템 관리자가 의도한 것보다 높은 수준의 권한을 얻어서 비허가 행동을 할 수 있게 된다.

배경[편집]

대부분의 컴퓨터 시스템들은 여러 사용자들이 사용할 수 있게 설계된다. 권한은 사용자에게 할 수 있게 허가된 것을 말한다. 일반적인 권한으로 파일 읽기나 수정 등이 있다.

권한 확대는 사용자가 부여받지 않은 권한을 받는 것을 말한다. 이러한 권한들은 악의적인 목적으로 사용될 수 있다. 권한 확대는 두 형태로 일어난다.

  • 수직 권한 확대 또는 권한 상승은 낮은 권한의 사용자가 애플리케이션이 더 높은 권한의 사용자나 앺프리케이션을 위한 자원이나 함수들에 접근하는 것이다.
  • 수평 권한 확대는 일반 사용자가 다른 일반 사용자를 위한 자원이나 함수들에 접근하는 것이다.

수직 권한 확대[편집]

보호 모드에서 사용 가능한 x86을 위한 보호 링

이 유형의 권한 확대는 사용자나 프로세스가 시스템 개발자나 관리자가 의도한 것보다 높은 접근 수준을 가질 때 발생하며, 커널 수준 동작을 수행함으로써 가능해질 수 있다.

수직 권한 확대의 예시[편집]

어떤 경우에, 높은 권한의 애플리케이션은 인터페이스에 명시된 것과 일치하는 입력이 제공된다고 가정하고, 입력을 확인하지 않는다. 공격자는 이 가정을 익스플로잇하여 비인가된 코드를 애플리케이션의 권한으로 실행시킨다.

  • 몇몇 윈도우 서비스들은 로컬 시스템 사용자 계정 아래에서 실행되도록 설정되어 있다. 버퍼 오버플로 같은 취약점들은 임의적인 코드를 로컬 시스템으로 상승된 권한으로 실행시킬 때 사용된다. 대신 에러가 정확히 처리되지 않은 경우에 더 낮은 사용자로 가장한 시스템 서비스가 사용자의 권한을 상승시킬 수 있다.
  • 크로스 존 스크립팅은 웹 브라우저의 보안 모델을 뒤엎는 권한 확대 공격의 한 종류로서, 클라이언트에 악의적인 코드를 실행시킬 수 있다.
  • 또한 애플리케이션이 다른 높은 권한의 서비스를 실행하고, 어떻게 클라이언트가 자신의 이런 서비스를 조작할 수 있는지에 대한 부정확한 가정을 갖는 상황이 존재한다. 만약 커맨드 라인이나 셸 명령어를 실행할 수 있는 애플리케이션이 확인되지 않은 입력을 명령어의 일부로 사용한다면, 셸 인젝션 취약점을 가질 수 있다. 공격자는 이후 애플리케이션의 권한을 사용해서 시스템 명령어를 실행할 수 있다.
  • 아이폰의 어떤 버전들은 잠겨져 있지만 비허가된 사용자가 폰에 접근할 수 있게 허용한다.[1]

탈옥하기 (Jailbreaking)[편집]

탈옥하기유닉스 계열 운영체제에서 chroot나 jail을 깨는 행위[2] 또는 디지털 권리 관리(DRM)의 우회를 수행하는 행위나 툴이다. 전자의 경우 관리자가 사용할 수 있게 의도한 파일 시스템의 외부를 사용자가 볼 수 있게하며, DRM의 경우 사용자가 장치에서 임의적으로 정의된 코드를 실행할 수 있게 한다.

완화 전략[편집]

운영체제들과 사용자들은 권한 확대를 줄이기 위해 다음과 같은 전략을 사용할 수 있다.

수평 권한 확대[편집]

수평 권한 확대는 애플리케이션이 공격자가 애플리케이션이나 사용자에게 보호되고 있는 자원에 접근할 수 있게 허락할 때 발생한다. 이것의 결과는 애플리케이션 개발자시스템 관리자가 의도한 것과 같은 역할을 가지지만 다른 보안 문맥을 수행하게 된다. 이것은 효과적으로 제한적인 권한 확대의 형태이다.

수평 권한 확대의 예시[편집]

이 문제는 종종 웹 애플리케이션의 취약점에 의해 발생한다.

  • 사용자 A는 인터넷 뱅킹 애플리케이션에서 자신의 은행 계좌에 접근한다.
  • 사용자 B는 인터넷 뱅킹 애플리케이션에서 자신의 은행 계좌에 접근한다.
  • 취약점은 A가 악의적인 행동으로 B의 계좌에 접근할 수 있을 때 발생한다.

이 악의적인 행동은 보통 웹 애플리케이션의 취약점에 의해 발생한다.

이러한 상황에 이를 수 있게 하는 잠재적인 웹 애플리케이션 취약점

같이 보기[편집]

각주[편집]

  1. Asad, Taimur (2010년 10월 27일). “Apple Acknowledges iOS 4.1 Security Flaw. Will Fix it in November with iOS 4.2”. RedmondPie. 
  2. Peikar, Cyrus (2004년 1월 12일). 《Security Warrior》. O'Reilly Media. 304쪽. ISBN 9780596552398. 2014년 8월 19일에 확인함. 
  3. “Microsoft Minimizes Threat of Buffer Overruns, Builds Trustworthy Applications”. Microsoft. September 2005. 2008년 8월 4일에 확인함. 
  4. Smalley, Stephen. “Laying a Secure Foundation for Mobile Devices” (PDF). 2017년 8월 28일에 원본 문서 (PDF)에서 보존된 문서. 2014년 3월 7일에 확인함.