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

Similar documents
/chroot/lib/ /chroot/etc/

Microsoft PowerPoint - chap10-함수의활용.pptx

PowerPoint 프레젠테이션

<4D F736F F F696E74202D20B8AEB4AABDBA20BFC0B7F920C3B3B8AEC7CFB1E22E BC8A3C8AF20B8F0B5E55D>

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

슬라이드 1

고급 프로그래밍 설계

PowerPoint 프레젠테이션

vi 사용법

11장 포인터

Adobe Flash 취약점 분석 (CVE )

소프트웨어설치 1. 소프트웨어설치및제거 ( 소스코드 ) 소스코드컴파일을이용한 S/W 설치 1. 소스코드다운로드 - 예 ) httpd tar.gz - 압축해제 : #tar xzvf httpd tar.gz - INSTALL 또는 README파일참조

Chapter #01 Subject

이번장에서학습할내용 동적메모리란? malloc() 와 calloc() 연결리스트 파일을이용하면보다많은데이터를유용하고지속적으로사용및관리할수있습니다. 2

PowerPoint 프레젠테이션

PowerPoint 프레젠테이션

<322EBCF8C8AF28BFACBDC0B9AEC1A6292E687770>

PowerPoint 프레젠테이션

PowerPoint 프레젠테이션

Microsoft PowerPoint - chap03-변수와데이터형.pptx

PowerPoint 프레젠테이션

[ 마이크로프로세서 1] 2 주차 3 차시. 포인터와구조체 2 주차 3 차시포인터와구조체 학습목표 1. C 언어에서가장어려운포인터와구조체를설명할수있다. 2. Call By Value 와 Call By Reference 를구분할수있다. 학습내용 1 : 함수 (Functi

Microsoft PowerPoint - chap06-2pointer.ppt

Microsoft PowerPoint - chap11-포인터의활용.pptx

PowerPoint 프레젠테이션

PowerPoint 프레젠테이션

긴급송부 보안경고 코드인젝션 취약점관련금융회사자체점검및패치적용권고 보안서비스본부민상식팀장, 조병열인턴 / 개요 코드인젝션취약점이발견됨 에따라조속한 조치가요구되므로이를전파함 위험도및긴급도 구분 위험도 긴급도 등급 상 상 취약점내용 명령인젝션취약점 일

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

untitled

취약점 대응방안권고 ( 월 ) / KISA 취약점분석팀 ( 수 ) OpenSSL 취약점 FAQ 추가 개요 통신구간암호화를위해많이사용하는 라이브러리에서서버에저장된중요메모리데이터가노출되는 라고명명된심각한버그가발견되어시스템및소프트웨어에대한신속한취약

À©µµ³×Æ®¿÷ÇÁ·Î±×·¡¹Ö4Àå_ÃÖÁ¾

Research & Technique Apache Tomcat RCE 취약점 (CVE ) 취약점개요 지난 4월 15일전세계적으로가장많이사용되는웹애플리케이션서버인 Apache Tomcat에서 RCE 취약점이공개되었다. CVE 취약점은 W

Microsoft PowerPoint - chap13-입출력라이브러리.pptx

원격명령실행취약점대응방안권고 ( 금 ) / KISA 취약점분석팀 ( 화 ) 취약점분석및확인방법, 공격유형, FAQ 추가 개요 년 월 일 에의해발견된 의취약점내용이공개됨 쉘 (Shell) : 사용자가입력한문장을해석하여시스템기능을수행하는

월간정보보안리포트 발행일 제작 배포 2015 년 2 월 IMO 운용센터보앆서비스팀


< FBFF9B0A320BEC7BCBAC4DAB5E520C0BAB4D0BBE7C0CCC6AE20C5BDC1F620B5BFC7E220BAB8B0EDBCAD283131BFF E302028C8A8C6E4C0CCC1F620BEF7B


PA for SWE2007

PowerPoint 프레젠테이션

K&R2 Reference Manual 번역본

금오공대 컴퓨터공학전공 강의자료

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

PA0 for SSE2033

Microsoft PowerPoint - chap12-고급기능.pptx

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

0. 표지에이름과학번을적으시오. (6) 1. 변수 x, y 가 integer type 이라가정하고다음빈칸에 x 와 y 의계산결과값을적으시오. (5) x = (3 + 7) * 6; x = 60 x = (12 + 6) / 2 * 3; x = 27 x = 3 * (8 / 4

버퍼오버플로우-왕기초편 10. 메모리를 Hex dump 뜨기 앞서우리는버퍼오버플로우로인해리턴어드레스 (return address) 가변조될수있음을알았습니다. 이제곧리턴어드레스를원하는값으로변경하는실습을해볼것인데요, 그전에앞서, 메모리에저장된값들을살펴보는방법에대해배워보겠습

1. 객체의생성과대입 int 형변수 : 선언과동시에초기화하는방법 (C++) int a = 3; int a(3); // 기본타입역시클래스와같이처리가능 객체의생성 ( 복습 ) class CPoint private : int x, y; public : CPoint(int a

기술문서 LD_PRELOAD 와공유라이브러리를사용한 libc 함수후킹 정지훈

A Dynamic Grid Services Deployment Mechanism for On-Demand Resource Provisioning

OCW_C언어 기초

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

취약점분석보고서 [Photodex ProShow Producer v ] RedAlert Team 안상환

Microsoft PowerPoint - 13 ¼ÒÄÏÀ» ÀÌ¿ëÇÑ Åë½Å 2.ppt

Microsoft PowerPoint - 08-C-App-19-Quick-Preprocessor

PowerPoint 프레젠테이션

BMP 파일 처리

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

PA for SWE2007

< 목차 > 1. 악성코드은닉동향요약 1 2. 홈페이지은닉형악성코드통계 2 - 유포지탐지 국가별현황 2 - 대량경유지가탐지된유포지 TOP 악성코드유형별비율 4 - 악성코드취약점유형별비율 4 - 악성코드수집및분석결과 5 - 경유지탐지 업종별비율 9 3. 악성코

<4D F736F F F696E74202D20C1A632C0E520C7C1B7CEB1D7B7A5B0B3B9DFB0FAC1A4>

1. 안드로이드개발환경설정 안드로이드개발을위해선툴체인을비롯한다양한소프트웨어패키지가필요합니다 툴체인 (Cross-Compiler) 설치 안드로이드 2.2 프로요부터는소스에기본툴체인이 prebuilt 라는이름으로포함되어있지만, 리눅스 나부트로더 (U-boot)

歯7장.PDF

1.2 자료형 (data type) 프로그램에서다루는값의형태로변수나함수를정의할때주로사용하며, 컴퓨터는선언된 자료형만큼의메모리를확보하여프로그래머에게제공한다 정수 (integer) 1) int(4 bytes) 연산범위 : (-2 31 ) ~ (2 31 /2)-

3. 1 포인터란 3. 2 포인터변수의선언과사용 3. 3 다차원포인터변수의선언과사용 3. 4 주소의가감산 3. 5 함수포인터

C 프로그래밊 개요

chap7.PDF

02장.배열과 클래스

YUM(Yellowdog Updater,Modified) : RPM 패키지가저장된서버 ( 저장소 ) 로부터원하는패키지를자동으로설치한다. : YUM 도구는 RPM 의패키지의존성문제를해결

학번 : 이름 : 1. 다음파일트리구조를가진유닉스시스템이있다고가정하자. / /bin/ /home/ /home/taesoo/ /usr/ /usr/lib/ /usr/local/lib /media 모든폴더에파일이하나도없다고가정했을때사용자가터미널에서다음 ls 명령입력시화면출력

untitled

1 장 C 언어복습 표준입출력배열포인터배열과포인터함수 const와포인터구조체컴파일러사용방법 C++ 프로그래밍입문

The Pocket Guide to TCP/IP Sockets: C Version

Microsoft PowerPoint - 02_Installation

컴파일러

PowerPoint Presentation

PowerPoint 프레젠테이션

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

리눅스설치가이드 3. 3Rabbitz Book 을리눅스에서설치하기위한절차는다음과같습니다. 설치에대한예시는우분투서버 기준으로진행됩니다. 1. Java Development Kit (JDK) 또는 Java Runtime Environment (JRE) 를설치합니다. 2.

PowerPoint 프레젠테이션

PowerPoint 프레젠테이션

프로그램을 학교 등지에서 조금이라도 배운 사람들을 위한 프로그래밍 노트 입니다. 저 역시 그 사람들 중 하나 입니다. 중고등학교 시절 학교 도서관, 새로 생긴 시립 도서관 등을 다니며 책을 보 고 정리하며 어느정도 독학으르 공부하긴 했지만, 자주 안하다 보면 금방 잊어

Infrastructure Monitoring Agent install Guide 이문서는와탭 APM 서비스사용자가에이전트설치를돕기위해작성된문서입니다. 이문서는와탭랩스의고유한자산으로재배포또는사용을위해서는 와탭랩스 에연락주시기바랍니다.

Microsoft PowerPoint - lab14.pptx

OCW_C언어 기초

Microsoft PowerPoint - C프로그래밍-chap03.ppt [호환 모드]

2009년 상반기 사업계획

Raspbian 설치 라즈비안 OS (Raspbian OS) 라즈베리파이 3 Model B USB 마우스 USB 키보드 마이크로 SD 카드 마이크로 SD 카드리더기 HDM I 케이블모니터

Microsoft PowerPoint - 제9강 문자열

PowerPoint Template

본 강의에 들어가기 전

Abstract View of System Components

OCW_C언어 기초

vi 사용법

운영체제실습_명령어

untitled

PowerPoint 프레젠테이션

쉽게 풀어쓴 C 프로그래밍

PowerPoint 프레젠테이션

Transcription:

리눅스 취약점대응방안권고 15. 01. 29 / KISA 취약점점검팀 15. 01. 30 영향받는플랫폼 OS, FAQ 추가 개요 미국보안회사 에의해 시스템의 라이브러리 의특정함수에서임의코드를실행할수있는취약점이공개 해당취약점은 CVE-2015-0235 지정, 도메인네임을 IP로변환하는기능이포함된서비스 ( 메일, 웹등 ) 들은해당취약점에영향을받을수있음 취약점상세분석 리눅스계열에서사용하고있는 라이브러리에존재하는 함수에서잘못된메모리사용으로인해메모리변조가능 glibc 라이브러리 : GNU C 라이브러리로리눅스운영체제에서기본적으로사용하고있는라이브러리 nss_hostname_digits_dots 함수 : 도메인주소를 IP 주소로변환하는 gethostbyname 함수호출시호스트이름이 ip형태일경우, 내부적으로호출되는함수 함수내메모리사이즈연산이잘못되어메모리복사과정에서오버플로우발생 int nss_hostname_digits_dots(const char *name, struct hostent *resbuf, char **buffer, size_t *buffer_size, size_t buflen, struct hostent **result, enum nss_status *status, int af, int *h_errnop) // *buffer_size는기본적으로 1024 byte, *buffer는기본사이즈로할당되어있음 // size_needed가 *buffer_size보다큰경우에는 *buffer를 size_needed만큼메모리재할당 size_needed = ( sizeof(*host_addr) + sizeof(*h_addr_ptrs) + strlen(name) + 1 ); host_addr = (host_addr_t *)*buffer; h_addr_ptrs = (host_addr_list_t *)( (char *)host_addr + sizeof(*host_addr) );

h_alias_ptr = (char **)( (char *)h_addr_ptrs + sizeof(*h_addr_ptrs) ); // hostname의메모리시작주소연산시, // size_needed 에포함되지않은 sizeof(*h_alias_ptr) 추가 (4byte) hostname = (char *)h_alias_ptr + sizeof(*h_alias_ptr); // 추가된 sizeof(*h_alias_ptr) 에의해 strcpy 시 4바이트오버플로우발생 (32bit 기준 ) resbuf->h_name = strcpy(hostname, name); [ 취약한 glibc 소스코드 ] 32bit 운영체제기준 4byte 오버플로우 취약점에영향받는프로그램에서공격자가조작한문자열을인자로 함수를호출할경우 메모리변조를통해임의코드실행가능 영향받는 버전 버전의모든리눅스시스템 glibc 2.18~2.20 버전, 2.1.3 이하버전은취약하지않음 (2.(2~17) 버전에해당 ) getconf a grep glibc glibc 버전확인방법 ldd version

업데이트된후버전이바뀌지않는일부운영체제도있으니취약점확인 방법으로패치검증권고 영향받는 플랫폼 취약한 버전을사용하는기타리눅스시스템 취약점확인방법 를사용하는시스템에서터미널프로그램실행후아래내용을 로저장 /* ghosttest.c: GHOST vulnerability tester */ /* Credit: http://www.openwall.com/lists/oss-security/2015/01/27/9 */ #include <netdb.h> #include <stdio.h> #include <stdlib.h> #include <string.h> #include <errno.h> #define CANARY "in_the_coal_mine" struct { char buffer[1024]; char canary[sizeof(canary)]; } temp = { "buffer", CANARY }; int main(void) { struct hostent resbuf; struct hostent *result; int herrno; int retval; /*** strlen (name) = size_needed - sizeof (*host_addr) - sizeof (*h_addr_ptrs) - 1; ***/ size_t len = sizeof(temp.buffer) - 16*sizeof(unsigned char) - 2*sizeof(char *) - 1; char name[sizeof(temp.buffer)];

memset(name, '0', len); name[len] = '\0'; retval = gethostbyname_r(name, &resbuf, temp.buffer, sizeof(temp.buffer), &result, &herrno); if (strcmp(temp.canary, CANARY)!= 0) { puts("vulnerable"); exit(exit_success); } if (retval == ERANGE) { puts("not vulnerable"); exit(exit_success); } puts("should not happen"); exit(exit_failure); } 파일을아래의명령어로컴파일실행 gcc o GHOST GHOST.c [GHOST.c 컴파일실행 ] gcc가설치되어있지않은경우, sudo apt-get install gcc 명령어로설치 아래의명령어로실행파일실행후취약점여부확인./GHOST [GHOST 실행 ] [CVE-2015-0235 에취약한화면 ] [CVE-2015-0235 에취약하지않은화면 ] 라이브러리에의존하는패키지및어플리케이션확인방법 lsof grep libc awk '{print $1}' sort uniq

[lsof 명령어를이용한 glibc 라이브러리확인방법 ] 해결방법 업데이트버전설치 취약한 버전을사용하고있는경우 운영체제제조사홈페이지를방문하여패치방법확인 CentOS Debian Redhat Ubuntu GUN C Library http://lists.centos.org/pipermail/centos/2015-january/149413.html https://security-tracker.debian.org/tracker/cve-2015-0235 https://rhn.redhat.com/errata/rhsa-2015-0090.html https://launchpad.net/ubuntu/+source/eglibc http://www.gnu.org/software/libc/ 패키지버전확인방법 OS 종류 CentOS / Redhat Ubuntu / Debian > rpm -qa grep glibc 패키지버전확인방법 > apt-cache show eglibc-source grep Version 운영체제제조사홈페이지를방문하여최신버전을확인하고, 아래방법을이용하여 현재버전을확인후최신버전이아닌경우, 패키지업데이트 패키지업데이트방법 OS 종류 CentOS / Redhat Ubuntu / Debian > yum install glibc 패키지업데이트방법 > apt-get clean && apt-get update && apt-get upgrade 패키지업데이트후시스템재부팅수행

상위버전라이브러리로컴파일 취약한버전의라이브러리를포함하여컴파일된프로그램의경우 상위버전의라이브러리로재컴파일이필요 취약점 GHOST 취약점대응 FAQ Q. 취약하지않은 glibc 2.18버전이 13.5.21. 패치가되었는데현재이슈가된이유는무엇인가요? 운영체제제조사들은 13년 GNU에서패치한 2.18버전을보안업데이트로인지하지않았으며, 15.1월확인후취약점패치적용 Q. glibc 취약점패치를해야하는이유가무엇인가요? 원격코드실행이가능한심각한취약점으로실제공격을성공시키기위한여러조건이필요하지만, 위험성이존재하기때문에패치를권장합니다. Q. 서비스중단이어려운데, 꼭재부팅을해야하나요? 불가피하게영향을받는서비스에한하여재가동하는것도가능하나, 서비스에대한완전한목록을찾기어렵기때문에업데이트후재부팅을권장합니다. Q. glibc 2.2가 2.17보다상위버전아닌가요? 2.2는 2.17보다하위버전이며, 2.(2~17) 버전으로이해하면됩니다. 2.20과 2.2(=2.02) 가혼선이없도록주의가필요합니다.