산산조각 공격
Shatter attack컴퓨팅에서, 분쇄 공격은 해커들이 세션 내 프로세스 간 보안 제한을 우회하기 위해 마이크로소프트 윈도우 운영 체제에 채택한 프로그래밍 기법이다.파쇄 공격은 메시지 루프를 사용하는 동일한 세션에서 실행 중인 다른 응용 프로그램이나 서비스에 임의 코드를 주입할 수 있는 Windows의 메시지 전달 시스템의 설계 결함을 이용한다.이것은 특권 에스컬레이션 악용으로 이어질 수 있다.[1]
개요
샤터 공격은 2002년 8월 '특권 확대를 위한 Win32 API의 설계 결함 설명'이라는 제목의 크리스 패짓의 논문이 발표된 후 보안 커뮤니티에서 집중적인 화제가 되었다.[2]'공유자 공격'이라는 용어를 만든 논문은 애플리케이션이 다른 애플리케이션에서 임의 코드를 실행할 수 있는 과정을 설명했다.이는 Windows(윈도우)에서 권한 없는 응용 프로그램이 더 높은 권한 있는 응용 프로그램의 메시지 루프에 메시지를 보낼 수 있도록 허용하고 일부 메시지는 응용 프로그램의 주소 공간에 콜백 함수의 주소를 매개 변수로 사용할 수 있기 때문에 발생할 수 있다.만약 공격자가 자신의 문자열을 알려진 위치에 있는 더 높은 권한의 응용프로그램의 메모리에 (편집 상자에 셸코드를 붙여넣음으로써) 간신히 자신의 문자열을 넣는다면, 그들은 공격자의 문자열을 가리키도록 설정된 콜백 함수 매개변수로 WM_TIMER 메시지를 보낼 수 있다.
이 논문이 발표된 지 몇 주 후 마이크로소프트는 다음과 같이 대답하였다. "이 논문은 이러한 상황이 존재한다는 것이 정확하며, 그 영향을 정확하게 기술하고 있다.이 문서가 Windows의 결점이라고 주장하는 위치.현실에서 그 결함은 구체적이고 고도로 특권적인 서비스에 있다.설계상 인터랙티브 데스크톱 내의 모든 서비스는 동료로서 서로에게 요청을 부과할 수 있다.그 결과, 인터랙티브 데스크톱의 모든 서비스는 효과적으로 그곳의 가장 특권 있는 서비스에 상응하는 특권을 갖는다."[3]
해결 방법
2002년 12월에 마이크로소프트는 윈도 NT 4.0, 윈도 2000, 윈도 XP를 위한 패치를 발행하여 착취의 몇 가지 수단을 차단했다.[4]그러나, 수정은 이 기술을 사용하여 이용할 수 있는 Windows에 포함된 서비스로 제한되었기 때문에 부분적인 해결책에 불과했다. 근본적인 설계 결함은 여전히 존재하며 다른 애플리케이션이나 타사 서비스를 대상으로 하는 데 사용될 수 있다.[5]윈도우 비스타를 통해 마이크로소프트는 두 가지 방법으로 이 문제를 해결하는 것을 목표로 삼았다.첫째, 로컬 사용자는 더 이상 세션 0에 로그인하지 않으므로 로그인한 사용자 세션의 메시지 루프를 세션 0에 로드되는 높은 권한의 시스템 서비스와 분리한다.둘째, 사용자 인터페이스 권한 격리(UIPI)라는 새로운 기능이 도입되었는데, 이 기능을 통해 각 프로세스에 무결성 수준을 할당함으로써 프로세스를 파쇄 공격으로부터 더욱 보호할 수 있다.[6]동일한 사용자가 두 프로세스를 모두 소유하더라도 무결성 수준이 높은 프로세스에 메시지를 보내려는 시도는 실패한다.그러나 서로 다른 무결성 수준의 프로세스 간의 모든 상호작용이 UIPI에 의해 방지되는 것은 아니다.[6]예를 들어, Internet Explorer 7은 UIPI 기능을 사용하여 렌더링 구성요소가 시스템의 나머지 부분과 상호 작용하는 범위를 제한한다.
세션이 인스턴스화되는 방식은 파괴된 공격에 대한 추가적인 보호를 제공하기 위해 윈도 비스타와 윈도 서버 2008에서 재설계되었다.로컬 사용자 로그인이 세션 0에서 세션 1로 이동되어 사용자의 프로세스가 취약할 수 있는 시스템 서비스와 분리되었다.[7][8]
그러나 일부 소프트웨어는 서비스가 로그인한 사용자와 동일한 세션에서 실행된다는 가정 하에 설계되었기 때문에 이전 버전과의 호환성 문제가 발생한다.이 보기를 지원하기 위해 윈도 비스타와 윈도 서버 2008은 대화형 서비스가 등장하면 대화형 서비스에서 만든 대화 상자에 액세스할 수 있는 윈도 서비스 '인터액티브 서비스 탐지'를 도입했다.대화형 사용자는 대화 상자를 표시하고 세션 0으로 전환하여 대화 상자에 액세스할 수 있는 기능을 제공한다.[9]이 기능은 Windows 10 Creators Update에서 제거되었다.[10]
참고 항목
참조
- ^ "Exploiting design flaws in the Win32 API for privilege escalation. Or... Shatter Attacks - How to break Windows". Retrieved 2011-12-29.
- ^ Chris Paget (August 2002). "Exploiting design flaws in the Win32 API for privilege escalation". Archived from the original on 2006-09-04.
- ^ "Information About Reported Architectural Flaw in Windows". TechNet. Microsoft. September 2002.
- ^ "Microsoft Security Bulletin MS02-071 – Flaw in Windows WM_TIMER Message Handling Could Enable Privilege Elevation (328310)". Microsoft. December 11, 2002. Retrieved 2006-07-18.
- ^ "Shatter-proofing Windows" (PDF). Retrieved 2011-12-29.
- ^ a b "PsExec, User Account Control and Security Boundaries". Archived from the original on 2010-04-15. Retrieved 2007-10-08.
- ^ "Larry Osterman's WebLog – Interacting with Services". Larry Osterman. September 14, 2005. Retrieved 2007-04-03.
- ^ "Why Vista? Changes to services part 2 (Security, Stability, System Integrity)". Ken Schaefer. August 5, 2006.
- ^ Cyril Voisin (February 23, 2007). "Services isolation in Session 0 of Windows Vista and Longhorn Server". Cyril Voisin (aka Voy) on security. MSDN Blogs. Retrieved 2008-04-23.
- ^ "Features that are removed or deprecated in Windows 10 Creators Update". Microsoft.