Adobe Flash 취약점 분석 (CVE-2012-0754)



Similar documents
<B0ADC8ADC7D0C6C428C3D6C1BE292E687770>

커알못의 커널 탐방기 이 세상의 모든 커알못을 위해서

우리나라의 전통문화에는 무엇이 있는지 알아봅시다. 우리나라의 전통문화를 체험합시다. 우리나라의 전통문화를 소중히 여기는 마음을 가집시다. 5. 우리 옷 한복의 특징 자료 3 참고 남자와 여자가 입는 한복의 종류 가 달랐다는 것을 알려 준다. 85쪽 문제 8, 9 자료

상품 전단지

::: 해당사항이 없을 경우 무 표시하시기 바랍니다. 검토항목 검 토 여 부 ( 표시) 시 민 : 유 ( ) 무 시 민 참 여 고 려 사 항 이 해 당 사 자 : 유 ( ) 무 전 문 가 : 유 ( ) 무 옴 브 즈 만 : 유 ( ) 무 법 령 규 정 : 교통 환경 재

2

DBPIA-NURIMEDIA

화이련(華以戀) hwp

ÆòÈ�´©¸® 94È£ ³»Áö_ÃÖÁ¾

歯1##01.PDF

<5BC1F8C7E0C1DF2D31B1C75D2DBCF6C1A4BABB2E687770>

120229(00)(1~3).indd

01Report_210-4.hwp

<C3D1BCB15FC0CCC8C45FBFECB8AE5FB1B3C0B0C0C75FB9E6C7E D352D32315FC5E4292E687770>



교육 과 학기 술부 고 시 제 호 초 중등교육법 제23조 제2항에 의거하여 초 중등학교 교육과정을 다음과 같이 고시합니다. 2011년 8월 9일 교육과학기술부장관 1. 초 중등학교 교육과정 총론은 별책 1 과 같습니다. 2. 초등학교 교육과정은 별책

시험지 출제 양식

177

제주어 교육자료(중등)-작업.hwp

¸é¸ñ¼Ò½ÄÁö 63È£_³»Áö ÃÖÁ¾

<C3D6C1BE5FBBF5B1B9BEEEBBFDC8B0B0DCBFEFC8A C3D6C1BEBABB292E687770>

초등국어에서 관용표현 지도 방안 연구

6±Ç¸ñÂ÷

과 위 가 오는 경우에는 앞말 받침을 대표음으로 바꾼 [다가페]와 [흐귀 에]가 올바른 발음이 [안자서], [할튼], [업쓰므로], [절믐] 풀이 자음으로 끝나는 말인 앉- 과 핥-, 없-, 젊- 에 각각 모음으로 시작하는 형식형태소인 -아서, -은, -으므로, -음

민주장정-노동운동(분권).indd

untitled

<C0CEBCE2BABB2D33C2F7BCF6C1A420B1B9BFAAC3D1BCAD203130B1C72E687770>


E1-정답및풀이(1~24)ok

< BDC3BAB8C1A4B1D4C6C75BC8A3BFDC D2E687770>

<C1B6BCB1B4EBBCBCBDC3B1E2342DC3D6C1BE2E687770>

최우석.hwp

교사용지도서_쓰기.hwp

cls46-06(심우영).hwp

0429bodo.hwp

時 習 說 ) 5), 원호설( 元 昊 說 ) 6) 등이 있다. 7) 이 가운데 임제설에 동의하는바, 상세한 논의는 황패강의 논의로 미루나 그의 논의에 논거로서 빠져 있는 부분을 보강하여 임제설에 대한 변증( 辨 證 )을 덧붙이고자 한다. 우선, 다음의 인용문을 보도록

伐)이라고 하였는데, 라자(羅字)는 나자(那字)로 쓰기도 하고 야자(耶字)로 쓰기도 한다. 또 서벌(徐伐)이라고도 한다. 세속에서 경자(京字)를 새겨 서벌(徐伐)이라고 한다. 이 때문에 또 사라(斯羅)라고 하기도 하고, 또 사로(斯盧)라고 하기도 한다. 재위 기간은 6

<B5B6BCADC7C1B7CEB1D7B7A52DC0DBBEF7C1DF E687770>

[ 컴퓨터시스템 ] 3 주차 1 차시. 디렉토리사이의이동 3 주차 1 차시디렉토리사이의이동 학습목표 1. pwd 명령을사용하여현재디렉토리를확인할수있다. 2. cd 명령을사용하여다른디렉토리로이동할수있다. 3. ls 명령을사용하여디렉토리내의파일목록을옵션에따라다양하게확인할수

01Àå

Microsoft PowerPoint - chap02-C프로그램시작하기.pptx

Poison null byte Excuse the ads! We need some help to keep our site up. List 1 Conditions 2 Exploit plan 2.1 chunksize(p)!= prev_size (next_chunk(p) 3

Microsoft PowerPoint - chap01-C언어개요.pptx

Microsoft PowerPoint - u3.ppt [호환 모드]


Chapter 05. 파일접근권한관리하기

22최종합본.hwp

PowerPoint 프레젠테이션

<C1A634C2F720BAB8B0EDBCAD20C1BEC6ED20BDC3BBE720C5E4C5A920C7C1B7CEB1D7B7A5C0C720BEF0BEEE20BBE7BFEB20BDC7C5C220C1A1B0CB20C1A6C3E22E687770>

리눅스 취약점대응방안권고 / KISA 취약점점검팀 영향받는플랫폼 OS, FAQ 추가 개요 미국보안회사 에의해 시스템의 라이브러리 의특정함수에서임의코드를실행할수있는취약점이공개 해당취약점은 CVE 지정, 도메인네임을

벤처연구사업(전동휠체어) 평가

< B5BFBEC6BDC3BEC6BBE E687770>

<3130BAB9BDC428BCF6C1A4292E687770>

11민락초신문4호


제1절 조선시대 이전의 교육

사진 24 _ 종루지 전경(서북에서) 사진 25 _ 종루지 남측기단(동에서) 사진 26 _ 종루지 북측기단(서에서) 사진 27 _ 종루지 1차 건물지 초석 적심석 사진 28 _ 종루지 중심 방형적심 유 사진 29 _ 종루지 동측 계단석 <경루지> 위 치 탑지의 남북중심

새만금세미나-1101-이양재.hwp

??

652

歯 조선일보.PDF

<33B1C7C3D6C1BEBABB28BCF6C1A42D E687770>

Oracle hacking 작성자 : 임동현 작성일 2008 년 10 월 11 일 ~ 2008 년 10 월 19 일 신규작성 작성내용

<C1DFB1DE2842C7FC292E687770>

96부산연주문화\(김창욱\)

???? 1

목 차 국회 1 월 중 제 개정 법령 대통령령 7 건 ( 제정 -, 개정 7, 폐지 -) 1. 댐건설 및 주변지역지원 등에 관한 법률 시행령 일부개정 1 2. 지방공무원 수당 등에 관한 규정 일부개정 1 3. 경력단절여성등의 경제활동 촉진법 시행령 일부개정 2 4. 대

* 자원복구 * - 이동형저장장치오류 : 장치를찾을수없습니다. 포맷하세요.. 복구방법 : 1) 포맷진행 - 빠른포맷 2) 데이터복구프로그램을이용하여복구국내 : finaldata - 파티션복구 : Acronis Disk Directory Suit - 데이터복구 : R-s

종사연구자료-이야기방 hwp

정 답 과 해 설 1 (1) 존중하고 배려하는 언어생활 주요 지문 한 번 더 본문 10~12쪽 [예시 답] 상대에게 상처를 주고 한 사 람의 삶을 파괴할 수도 있으며, 사회 전체의 분위기를 해쳐 여러 가지 사회 문제를 발생시킬 수 있다. 04 5

<34B1C720C0CEB1C7C4A7C7D828C3D6C1BEC6EDC1FD D28BCF6C1A4292E687770>

목차 1. 시스템구성 개요 정의 목적 환경 준비사항 Oracle Install configuration Xshell 에

160215

참고 금융분야 개인정보보호 가이드라인 1. 개인정보보호 관계 법령 개인정보 보호법 시행령 신용정보의 이용 및 보호에 관한 법률 시행령 금융실명거래 및 비밀보장에 관한 법률 시행령 전자금융거래법 시행령 은행법 시행령 보험업법 시행령 자동차손해배상 보장법 시행령 자본시장과

hwp

/chroot/lib/ /chroot/etc/

580 인물 강순( 康 純 1390(공양왕 2) 1468(예종 즉위년 ) 조선 초기의 명장.본관은 신천( 信 川 ).자는 태초( 太 初 ).시호는 장민( 莊 愍 ).보령현 지내리( 保 寧 縣 池 內 里,지금의 보령시 주포면 보령리)에서 출생하였다.아버지는 통훈대부 판무

<C1DFB0B3BBE7B9FD3128B9FDB7C92C20B0B3C1A4B9DDBFB5292E687770>

°£È£ 1~8 1È£š

ad hwp

경기자 육성 프로그램 개정에 있어

<4D F736F F F696E74202D20B8AEB4AABDBA20BFC0B7F920C3B3B8AEC7CFB1E22E BC8A3C8AF20B8F0B5E55D>

3. 은하 1 우리 은하 위 : 나선형 옆 : 볼록한 원반형 태양은 은하핵으로부터 3만광년 떨어진 곳에 위치 2 은하의 분류 규칙적인 모양의 유무 타원은하, 나선은하와 타원은하 나선팔의 유무 타원은하와 나선 은하 막대 모양 구조의 유무 정상나선은하와 막대나선은하 4.

근대문화재분과 제4차 회의록(공개)

XSS Attack - Real-World XSS Attacks, Chaining XSS and Other Attacks, Payloads for XSS Attacks

인천광역시의회 의원 상해 등 보상금 지급에 관한 조례 일부개정조례안 의안 번호 179 제안연월일 : 제 안 자 :조례정비특별위원회위원장 제안이유 공무상재해인정기준 (총무처훈령 제153호)이 공무원연금법 시행규칙 (행정자치부령 제89호)으로 흡수 전면 개

교육실습 소감문

1

0616¾ËÄÄÁî_±¹¸³µµ¼Ł°ü À¥¿ë.PDF

Observational Determinism for Concurrent Program Security

untitled

¼þ·Ê¹®-5Àå¼öÁ¤

Microsoft PowerPoint - 02_Linux_Fedora_Core_8_Vmware_Installation [호환 모드]

109

untitled

임베디드시스템설계강의자료 6 system call 2/2 (2014 년도 1 학기 ) 김영진 아주대학교전자공학과

네이버블로그 :: 포스트내용 Print VMw are 에서 Linux 설치하기 (Centos 6.3, 리눅스 ) Linux 2013/02/23 22:52 /carrena/ VMware 에서 l

<BDC5C7E0C1A4BCF6B5B5C6AFC0A72DBEF7B9ABBAB8B0ED2E687770>

PowerPoint 프레젠테이션

Transcription:

기술문서 14. 08. 13. 작성 GNU C library dynamic linker $ORIGIN expansion Vulnerability Author : E-Mail : 윤지환 131ackcon@gmail.com Abstract 2010 년 Tavis Ormandy 에 의해 발견된 취약점으로써 정확한 명칭은 GNU C library dynamic linker $ORIGIN expansion Vulnerability 이고 CVE-2010-2847 로 등록이 되어있다. 이 취약점은 Command Injection 을 사용하여 Local 환경에서의 root 권한을 획득할 수 있는 취약점을 가지고 있다. Page 1

<차 례> Abstract 1 1. 취약점 개요 4 1.1 Information 4 1.2 Target System 4 2. Background 5 2.1 Command Injection 5 2.2 File descriptor 6 2.3 Link 7 3. CVE-2010-3847 분석 8 4. Exploit 11 5. Patch 12 6. Reference 13 6.1 참고 문헌 13 6.2 참고 사이트 13 Page 2

1. 취 약 점 개 요 1.1 Information > 이름 : GNU C library dynamic linker $ORIGIN expansion Vulnerability > CVE : 2010-3847 > 발표일 : 2010 년 10 월 18 일 > 취약점 영향 : Local linux 환경에서의 일반 user 가 root 로의 권한상승 1.2 Target System - RedHat Enterprise Server 5.x - CentOS 5.x - Fedora Core 13 - Ubuntu 10 Page 3

2. Background 취약점 분석하기에 앞서서 취약점에 필요한 간략한 단어들을 설명하겠습니다. 2.1 Command Injection 시스템 명령어를 호출하는 어플리케이션을 조작하여 의도하지 않은 시스템 명령어를 실행시키는 공격 기법입니다. 예를 들어 <그림 1>과 같은 상황으로 진행될 수 있고 시나리오는 다음과 같은 순으로 진행됩니다. < 그림 1 > < 시나리오 > 1) ls 명령어를 실행시키는 프로그램을 생성 2) 자신의 디렉토리에 ls 라는 프로그램을 생성( 여기서는 /bin/sh 를 링크걸었습니다. ) 3) 환경변수의 PATH 에 자신의 디렉토리 경로를 추가시켜 줍니다. 4) 1 번에서 생성한 바이너리를 실행함으로써 자신의 디렉토리에 있는 ls 가 시작되고, 이 ls 는 /bin/sh 의 링크파일이기 때문에 shell 을 획득할 수 있습니다. Page 4

2.2 File descriptor - 파일을 사용할 때 각 파일에 대한 정보를 유지하는 기억장치의 한 영역 - 할당받은 메모리의 영역을 정수로 표기 - 0 : 표준 입력, 1 : 표준 출력, 2 : 표준 에러, 나머지는 할당되는 순서대로 매겨진다. < 그림 2 > 모든 file 또는 data 들은 입출력 장치와 통신을 하기 위해서는 반드시 메모리를 중심으로 움직여야 합니다 그러기 위해서는 메모리 영역에 이들만을 위한 영역을 할당해주어야 하며, 이때 할당된 영역을 정수로 표시하게 됩니다. 이를 File Descriptor 라 하고, 입출력을 하기 위해 메모리에 특정 영역을 할당해 주는 기법을 Memory mapped IO 라고 합니다. 2.3 Link 리눅스의 링크에는 symbolic link 와 hard link 가 있습니다. 먼저 하드링크란 파일명은 다르지만 동일한 Inode( 파일속성, 파일 위치 등 파일 정보를 가짐 )를 가르키는 것을 말합니다. 하드링크로 이루어진 파일들은 원본 파일과 inode 는 같고 이름만 다른 동일한 파일을 뜻합니다. 또 심볼릭 링크는 하드링크와 달리 원본파일의 경로를 받아 오는 링크입니다. 사용자가 링크걸린 파일을 실행하면 커널에서는 원본파일의 경로를 찾아서 원래 파일에 접근을 합니다. 그렇기 때문에 원본파일이 손상되면 링크된 파일은 실행되지 않습니다. > command : ln [src path] [dstpath] Page 5

2.4 SetUID & Sticky bit 1) SetUID user 의 권한으로 특정 프로그램을 실행할 때 프로그램의 소유자권한을 잠시 위임 받는 개념입니다. ping 명령어를 예로 들면, raw socket 을 전송할 때는 root 의 권한이 있어야지만 전송이 가능합니다. 하지만 일반 유저도 ping 을 입력하여 결과를 볼 수 있다는 것은 set uid 가 설정되어서 raw socket 전송을 할 때 root 의 권한을 잠시 위임받았기 때문입니다. ( chmod 시 4xxx 를 부여 ) < 그림 3 > 2) Sticky bit 파일을 생성한 소유자만이 대상 파일을 삭제할 수 있습니다. A 라는 파일에 권한이 777 로 설정되어 있어서 다른 사용자가 해당 파일을 삭제하려고 시도할 때 A 파일에 Sticky bit 가 걸려 있다면 삭제는 불가능합니다. ( chmod 시 1xxx 을 부여하면 sticky bit 가 설정 됨. ) < 그림 4 > Page 6

3. CVE-2010-3847 분 석 이 취약점이 발표되기 이전의 리눅스에서는 Library 를 로딩 할 때 $ORIGIN 사용을 못하도록 설정해두었습니다. 하지만 2010 년에 GLIBC 를 업데이트 하면서 $ORIGIN 을 다시 사용할 수 있게 되었습니다. Tavis 는 $ORIGIN 과 LD_AUDIT 환경변수를 사용하여 로컬 권한 상승 취약점을 발견했습니다. 3.1 $ORIGIN $ORIGIN 은 실행파일의 경로를 저장하고 있고, 이 값은 ELF 바이너리 안의 DT_PATH 또는 DT_RUNPATH 에 저장되어있습니다. (DT_PATH 란, 동적 로더가 라이브러리를 찾을 때 검색할 경로) 3.2 LD_AUDIT( rld-audit ) LD_AUDIT 이란, Linker auditing API 와 같이 사용되고 LD_PRELOAD 처럼 프로그램이 실행되기 전에 라이브러리를 불러오는 환경변수입니다. 그리고 SUID bit 가 설정된 프로그램은 이 환경변수를 무시하고 자신만의 라이브러리 경로를 검색하여 사용합니다. 하지만 SUID 가 설정된 프로그램을 Hard Link 로 설정해서 Sticky bit Directory 에 생성하면 LD_AUDIT 을 사용자가 지정할 수 있습니다. - ld : 리눅스 환경에서의 동적 Linker 입니다. 프로그램이 라이브러리를 로드할 때 필요로 하며 사용될 때마다 해당 경로를 참조하여 불러옵니다. 보통 /lib 과 /usr/lib 에 있고 사용자가 환경변수로 설정할 경우 LD_LIBRARY_PATH 변수에 저장되어 있습니다. - rtld-audit : GNU 동적 링커는 동적링크 이벤트가 발생할 때 프로그램에 알리는 auditing API 를 지원합니다. Page 7

3.3 GBLIC ELF loader : elf/dl-load.c GLIBC 2.1 버전이전의 버전에서는 $ORIGIN 을 사용 못하도록 되어있었는데 GLIBC 2.1 버전으로 업데이트가 되면서 $ORIGIN 을 다시 사용할 수 있게 되었습니다. $ORIGIN 을 사용하기 위해서는 아래의 3 가지 함수를 통과해야하는데 차례로 설명하겠습니다. _dl_init_paths() -> _dl_dst_substitute() -> _is_dst() (Trigger) < _dl_init_path() > 위의 이미지는 DST( Dynamic String Token)를 확장하는 부분입니다. 이 함수 내부에서 메모리를 할당해주기 위해 _dl_dst_subtitue()함수를 호출하고 있습니다. Page 8

< _dl_dst_substitute() > 빨간색으로 강조한 부분만 보면 되겠습니다. 라이브러리를 추가하기 위해서는 name 첫 바이트 위치에 $ 가 오고, 그 후 is_dst()함수를 이용해 $뒤의 문자열인 ORIGIN 을 파싱합니다. < is_dst() > 문자열의 끝만을 분석하여 끝이 NULL 이거나, colon( : )일 경우에 파싱됩니다. 인자로 넘어온 문자열은 Library 경로들이 나열된 구조체이며 만약 이 인자 중에서 가장 앞부분에 공격자가 원하는 라이브러리를 로드한다면 해당 라이브러리가 실행 될 것입니다. Page 9

String : /tmp/ex : /usr/lib/lib.so : /lib/ld.so 예를 들어 위의 String 을 is_dst()의 인자로 받으면 가장 처음 있는 라이브러리인 /tmp/ex 가 파싱이 되고 바이너리를 실행할 때 로드되는 라이브러리는 /tmp/ex 가 됩니다. 4. Exploit 지금까지 분석한 정보들을 토대로 실제 System 에서 권한상승을 해보겠습니다. 저는 다음과 같은 환경에서 실습을 했습니다. Exploit 의 과정은 다음과 같습니다. 1) $ORIGIN 을 사용하여 exploit 을 진행 할 것이기 때문에 user 의 권한이 있는 Directory( /tmp, /usr.. )에 새로운 Directory 를 하나 생성합니다. 2) LD_AUDIT 은 SUID 가 설정된 바이너리에서 사용을 못하기 때문에 SUID 로 설정된 바이너리( ping, passwd.. )를 새로 생성한 Directory 에 Hard Link 된 파일을 생성합니다. 3) Hard Link 된 파일에 File Descriptor 를 부여합니다. 4) 뒷부분에서 라이브러리의 이름을 $ORIGIN 과 동일하게 만들기 위해 생성한 Directory( /tmp/ex/ )를 삭제합니다. 이때 삭제를 하더라도 proc 에는 /tmp/ex/target 이 유지되어 있고 target 의 $ORIGIN 은 여전히 /tmp/ex 값을 가지고 Page 10

있습니다. 5) exploit 에 사용될 라이브러리를 생성하는데 library 의 파일명을 4)에서 언급한 /tmp/ex 값으로 생성합니다. 6) 최종 공격부분인 LD_AUDIT= \$ORIGIN exec /proc/self/fd/3 을 설명하겠습니다. 우선 $ORIGIN 의 값은 /tmp/ex/target 의 경로인 /tmp/ex 가 들어가 있습니다. 이 값( /tmp/ex )을 LD_AUDIT 에 넣는데 LD_AUDIT 은 이 경로( /tmp/ex )를 Library 로 인식하게 됩니다. 즉, fd/3 을 실행할 때 LD_AUDIT 는 공격코드가 삽입된 라이브러리( /tmp/ex )를 로드하게 되어 root 권한의 shell 을 획득하게 됩니다. 5. Patch 위의 취약점을 보안하기 위해서는 root directory( / )와 Sticky bit Directory( /tmp, /usr..)를 따로 Mount 시켜야 합니다. 이 이후로 patch 된 것은 Open 된 파일은 삭제를 하지 못하고 SUID 프로그램을 Hard Link 걸지 못한다. Page 11

6. Reference 6.1 참고 문헌 Ÿ http://math.ut.ee/~mroos/turve/2010/referaadid/referaat-ivanov.pdf 6.2 참고 사이트 Ÿ Ÿ Ÿ http://marc.info/?l=full-disclosure&m=128739684614072&w=2 http://www.exploit-db.com/exploits/15274/ https://sourceware.org/git/?p=glibc.git;a=blob;f=elf/dl-load.c;h=a7162eb77de7a53823 5a43 Page 12