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

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

권한 확대는 사용자가 부여받지 않은 권한을 받는 것을 말한다. 이러한 권한들은 악의적인 목적으로 사용될 수 있다. 권한 확대는 두 형태로 일어난다.
* '''수직 권한 확대''' 또는 '''권한 상승'''은 낮은 권한의 사용자가 애플리케이션이 더 높은 권한의 사용자나 앺프리케이션을 위한 자원이나 함수들에 접근하는 것이다.
* '''수평 권한 확대'''는 일반 사용자가 다른 일반 사용자를 위한 자원이나 함수들에 접근하는 것이다.

== 수직 권한 확대 ==
[[파일:Priv_rings.svg|right|섬네일|300x300px|[[보호 모드]]에서 사용 가능한 [[x86]]을 위한 [[보호 링]]]]
이 유형의 권한 확대는 사용자나 프로세스가 시스템 개발자나 관리자가 의도한 것보다 높은 접근 수준을 가질 때 발생하며, 커널 수준 동작을 수행함으로써 가능해질 수 있다.

=== 수직 권한 확대의 예시 ===
어떤 경우에, 높은 권한의 애플리케이션은 인터페이스에 명시된 것과 일치하는 입력이 제공된다고 가정하고, 입력을 확인하지 않는다. 공격자는 이 가정을 익스플로잇하여 비인가된 코드를 애플리케이션의 권한으로 실행시킨다.
* 몇몇 [[윈도우 서비스]]들은 [[슈퍼 유저|로컬 시스템]] 사용자 계정 아래에서 실행되도록 설정되어 있다. [[버퍼 오버플로]] 같은 취약점들은 임의적인 코드를 로컬 시스템으로 상승된 권한으로 실행시킬 때 사용된다. 대신 에러가 정확히 처리되지 않은 경우에 더 낮은 사용자로 가장한 시스템 서비스가 사용자의 권한을 상승시킬 수 있다.
* [[크로스 존 스크립팅]]은 웹 브라우저의 보안 모델을 뒤엎는 권한 확대 공격의 한 종류로서, 클라이언트에 악의적인 코드를 실행시킬 수 있다.
* 또한 애플리케이션이 다른 높은 권한의 서비스를 실행하고, 어떻게 클라이언트가 자신의 이런 서비스를 조작할 수 있는지에 대한 부정확한 가정을 갖는 상황이 존재한다. 만약 [[명령 줄 인터페이스|커맨드 라인]]이나 셸 명령어를 실행할 수 있는 애플리케이션이 확인되지 않은 입력을 명령어의 일부로 사용한다면, [[코드 인젝션|셸 인젝션]] 취약점을 가질 수 있다. 공격자는 이후 애플리케이션의 권한을 사용해서 시스템 명령어를 실행할 수 있다.
* [[아이폰]]의 어떤 버전들은 잠겨져 있지만 비허가된 사용자가 폰에 접근할 수 있게 허용한다.<ref>{{웹 인용
| url      = http://www.redmondpie.com/ios-4.2-to-fix-ios-4.1-lockscreen-security-flaw/
| 제목     = Apple Acknowledges iOS 4.1 Security Flaw. Will Fix it in November with iOS 4.2
| 성       = Asad
| 이름     = Taimur
| 날짜     = October 27, 2010
| 웹사이트 =
| 출판사   = RedmondPie
| 확인날짜 =
}}</ref>

==== 탈옥하기 (Jailbreaking) ====
'''탈옥하기'''는 [[유닉스 계열]] 운영체제에서 chroot나 jail을 깨는 행위<ref>{{서적 인용
| 성       = Peikar
| 이름     = Cyrus
| 날짜     = 2004-01-12
| 제목     = Security Warrior
| 번역제목 =
| url      = http://books.google.com/books?id=LILroPpCP0cC&pg=PT324&dq=chroot+jailbreak&hl=en&sa=X&ei=nnrzU6jtFMe5igLBnIDwAg&ved=0CCkQ6AEwAA#v=onepage&q=chroot%20jailbreak&f=false
| 언어     =
| 페이지   = 304
| 출판사   = O'Reilly Media
| isbn     = 9780596552398
| 확인날짜 = 2014-08-19
}}</ref> 또는 [[디지털 권리 관리]](DRM)의 우회를 수행하는 행위나 툴이다. 전자의 경우 관리자가 사용할 수 있게 의도한 [[파일 시스템]]의 외부를 사용자가 볼 수 있게하며, DRM의 경우 사용자가 장치에서 임의적으로 정의된 코드를 실행할 수 있게 한다.

=== 완화 전략 ===
운영체제들과 사용자들은 권한 확대를 줄이기 위해 다음과 같은 전략을 사용할 수 있다.
* [[데이터 실행 방지]]
* [[주소 공간 배치 난수화]]
* 애플리케이션을 최소 권한으로 실행하기
* [[바이러스 검사 소프트웨어]] 사용
* [[패치 (컴퓨팅)|패칭]]
* 버퍼 오버런을 트랩하는 컴파일러 사용<ref>{{웹 인용
| url      = http://download.microsoft.com/documents/customerevidence/12374_Microsoft_GS_Switch_CS_final.doc
| 제목     = Microsoft Minimizes Threat of Buffer Overruns, Builds Trustworthy Applications
| 성       =
| 이름     =
| 날짜     = September 2005
| 웹사이트 =
| 출판사   = Microsoft
| 확인날짜 = 2008-08-04
}}</ref>
* 소프트웨어와 펌웨어 요소의 암호화
* 강제적 접근 통제(MAC)를 사용하는 운영체제 사용<ref>{{웹 인용
| url     = http://www.internetsociety.org/sites/default/files/Presentation_Smalley.pdf
| 제목     = Laying a Secure Foundation for Mobile Devices
| 성     = Smalley
| 이름     = Stephen
| 날짜     = 
| 웹사이트     = 
| 출판사     = 
| 확인날짜     = 7 March 2014
| archive-date     = 2017-08-28
| archive-url     = https://web.archive.org/web/20170828232658/http://www.internetsociety.org/sites/default/files/Presentation_Smalley.pdf
| url-status     = dead
}}</ref>

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

=== 수평 권한 확대의 예시 ===
이 문제는 종종 [[웹 애플리케이션]]의 취약점에 의해 발생한다.
* 사용자 A는 인터넷 뱅킹 애플리케이션에서 자신의 은행 계좌에 접근한다.
* 사용자 B는 인터넷 뱅킹 애플리케이션에서 자신의 은행 계좌에 접근한다.
* 취약점은 A가 악의적인 행동으로 B의 계좌에 접근할 수 있을 때 발생한다.
이 악의적인 행동은 보통 웹 애플리케이션의 취약점에 의해 발생한다.

이러한 상황에 이를 수 있게 하는 잠재적인 웹 애플리케이션 취약점
* 사용자의 [[HTTP 쿠키]]에서 예상 가능한 [[세션 ID]]
* [[세션 고정]] (Session fixation)
* [[사이트 간 스크립팅]]
* 쉽게 추측 가능한 비밀번호
* [[HTTP 쿠키|세션 쿠키]]의 훔치기나 하이재킹
* [[키로깅]]

== 같이 보기 ==
* [[권한 분리]]
* [[방어적 프로그래밍]]
* [[웹 컨텐트 보안]]
* [[안드로이드 루팅]]

== 각주 ==
{{각주}}
{{전거 통제}}

[[분류:취약점 공격]]
[[분류:운영 체제 보안]]