Presentation is loading. Please wait.

Presentation is loading. Please wait.

발표자료는 다음링크에서 다운로드 받으실 수 있습니다.

Similar presentations


Presentation on theme: "발표자료는 다음링크에서 다운로드 받으실 수 있습니다."— Presentation transcript:

1 발표자료는 다음링크에서 다운로드 받으실 수 있습니다.
발표자료는 다음링크에서 다운로드 받으실 수 있습니다.

2 Memory Protection Mechanism of Linux
TEAM WANG YIS of KSIA – 김태욱 xodnr631 fb.com/xodnr631

3 TEAM WANG

4 YIS

5 Buffer Overflow (1) 사용자가 입력한 데이터의 크기가 너무 과하여 제한된 버퍼의 용량을 넘쳐버렸을때 생기는 버그를 이용해 해킹하는 기술 버퍼 : 컴퓨터의 주기억 장치와 주변장치 사이에서 데이터를 주고받을때 정보를 임시로 기억해두는 임시저장공간

6 Buffer Overflow (1) 사용자가 입력한 데이터의 크기가 너무 과하여 제한된 버퍼의 용량을 넘쳐버렸을때 생기는 버그를 이용해 해킹하는 기술 버퍼 : 컴퓨터의 주기억 장치와 주변장치 사이에서 데이터를 주고받을때 정보를 임시로 기억해두는 임시저장공간

7 Buffer Overflow (2) 낮은 주소 CODE DATA HEAP STACK 높은 주소 컴파일 된 기계어 코드
전역/정적 및 각종 변수 HEAP 프로그래머가 직접 할당한 공간 STACK 지역 변수, 함수 인자, 환경 변수 높은 주소

8 Buffer Overflow (2) 낮은 주소 CODE DATA HEAP STACK 높은 주소 컴파일 된 기계어 코드
전역/정적 및 각종 변수 HEAP 프로그래머가 직접 할당한 공간 STACK 지역 변수, 함수 인자, 환경 변수 높은 주소

9 Buffer Overflow (3) BUFFER SFP RET
BUFFER – SFP – RET – Argc/Argv – 환경변수 - 파일명 BUFFER SFP RET

10 Buffer Overflow (3) BUFFER SFP RET
BUFFER – SFP – RET – Argc/Argv – 환경변수 - 파일명 BUFFER SFP RET A A A A A A A A A A A A A A A A A A A

11 Stack 낮은 주소 CODE DATA HEAP STACK 높은 주소 컴파일 된 기계어 코드 전역/정적 및 각종 변수
프로그래머가 직접 할당한 공간 STACK 지역 변수, 함수 인자, 환경 변수 높은 주소

12 Stack 유저영역 낮은 주소 CODE DATA HEAP STACK 높은 주소 컴파일 된 기계어 코드 전역/정적 및 각종 변수
프로그래머가 직접 할당한 공간 STACK 지역 변수, 함수 인자, 환경 변수 높은 주소 유저영역

13 Stack 커널 유저 LOW HIGH

14 STACK | HEAP | DATA | CODE
커널 유저 LOW HIGH STACK | HEAP | DATA | CODE

15 Buffer Overflow (4) < 버퍼 오버플로우 문제풀이 > 해커스쿨 FTZ 해커스쿨 LOB
IO SmashTheStack

16 Buffer Overflow (5) <LOB 문제풀이 유형>

17 Buffer Overflow (5) int main(int argc, char *argv[]) { char buffer[256]; if(argc < 2){ printf("argv error\n”); exit(0); } strcpy(buffer, argv[1]); printf("%s\n", buffer); }

18 Buffer Overflow (5) // here is changed! if(strlen(argv[0]) != 77){ printf("argv[0] error\n"); exit(0); }

19 Buffer Overflow (5) int main() { char buffer[16]; gets(buffer); printf("%s\n", buffer); }

20 BUT

21

22

23

24

25

26 ASLR(Address Space Layout Randomization)
Memory Protection (1) ASLR(Address Space Layout Randomization)

27 ASLR(Address Space Layout Randomization)
Memory Protection (1) ASLR(Address Space Layout Randomization) STACK

28 ASLR(Address Space Layout Randomization)
Memory Protection (1) ASLR(Address Space Layout Randomization) STACK BUFFER SFP RET 인자 환경변수 파일명 LOW HIGH

29 ASLR(Address Space Layout Randomization)
Memory Protection (1) ASLR(Address Space Layout Randomization) STACK BUFFER SFP RET 인자 환경변수 파일명 LOW HIGH 난짱해커

30 ASLR(Address Space Layout Randomization)
Memory Protection (1) ASLR(Address Space Layout Randomization) STACK BUFFER SFP RET 인자 환경변수 파일명 LOW HIGH 난짱해커

31 ASLR(Address Space Layout Randomization)
Memory Protection (1) ASLR(Address Space Layout Randomization) STACK BUFFER SFP RET 인자 환경변수 파일명 LOW HIGH 난짱해커

32 ASLR(Address Space Layout Randomization)
Memory Protection (1) ASLR(Address Space Layout Randomization) STACK BUFFER SFP RET 인자 환경변수 파일명 LOW HIGH 난짱해커

33 ASLR(Address Space Layout Randomization)
Memory Protection (1) ASLR(Address Space Layout Randomization) STACK BUFFER SFP RET 인자 환경변수 파일명 LOW HIGH 난짱해커

34 ASLR(Address Space Layout Randomization)
Memory Protection (1) ASLR(Address Space Layout Randomization) STACK BUFFER SFP RET 인자 환경변수 파일명 LOW HIGH 난짱해커

35 ASLR(Address Space Layout Randomization)
Memory Protection (1) ASLR(Address Space Layout Randomization) STACK BUFFER SFP RET 인자 환경변수 파일명 LOW HIGH 난짱해커

36 ASLR(Address Space Layout Randomization)
Memory Protection (1) ASLR(Address Space Layout Randomization) STACK BUFFER SFP RET 인자 환경변수 파일명 LOW HIGH 난짱해커

37 ASLR(Address Space Layout Randomization)
Memory Protection (1) ASLR(Address Space Layout Randomization) STACK BUFFER SFP RET 인자 환경변수 파일명 LOW HIGH 난짱해커

38 ASLR(Address Space Layout Randomization)
Memory Protection (1) ASLR(Address Space Layout Randomization) STACK BUFFER SFP RET 인자 환경변수 파일명 LOW HIGH 난짱해커

39 ASLR(Address Space Layout Randomization)
Memory Protection (1) ASLR(Address Space Layout Randomization) STACK BUFFER SFP RET 인자 환경변수 파일명 LOW HIGH 난짱해커

40 ASLR(Address Space Layout Randomization)
Memory Protection (1) ASLR(Address Space Layout Randomization) STACK BUFFER SFP RET 인자 환경변수 파일명 LOW HIGH 난짱해커

41

42 ↑ 고정 된 주소 ↑ 계속해서 바뀌는 주소

43 ↑ 고정 된 주소 ↑ 계속해서 바뀌는 주소

44 DEP(Data Execution Prevention)
Memory Protection (2) DEP(Data Execution Prevention)

45 DEP(Data Execution Prevention)
Memory Protection (2) DEP(Data Execution Prevention) STACK BUFFER SFP RET 인자 환경변수 파일명

46 DEP(Data Execution Prevention)
Memory Protection (2) DEP(Data Execution Prevention) STACK BUFFER SFP RET 인자 환경변수 파일명 LOW HIGH

47 DEP(Data Execution Prevention)
Memory Protection (2) DEP(Data Execution Prevention) STACK BUFFER SFP RET 인자 환경변수 파일명 LOW HIGH

48 DEP(Data Execution Prevention) - RTL
Memory Protection (2) DEP(Data Execution Prevention) - RTL STACK BUFFER SFP RET 인자 환경변수 파일명 LOW HIGH

49 Memory Protection (2) BUFFER SFP RET RTL
A A A A A A A A A A A A A A A A A A A

50 &system() &execl() &/bin/sh
Memory Protection (2) RTL BUFFER SFP RET A A A A A A A A A A A A A A A A A A A &system() &execl() &/bin/sh

51 Memory Protection (2) RTL STACK BUFFER SFP RET 인자 환경변수 파일명 LOW HIGH

52 Memory Protection (2) RTL STACK BUFFER SFP RET 인자 환경변수 파일명 LOW HIGH

53 Memory Protection (3) ASCII Armor

54 Memory Protection (3) STACK ASCII Armor BUFFER SFP RET 인자 환경변수 파일명 LOW
HIGH

55 Memory Protection (3) STACK ASCII Armor BUFFER SFP RET 인자 환경변수 파일명 LOW
HIGH

56 Memory Protection (4) Canary BUFFER SFP RET

57 Memory Protection (4) Canary BUFFER SFP CANARY RET

58 Memory Protection (4) BUFFER SFP RET Canary
A A A A A A A A A A ? ! # $ A A A A A

59 Memory Protection (4) Canary CANARY RANDOM

60 Memory Protection (4) Canary CANARY RANDOM TERMINATOR

61 Memory Protection (4) Canary CANARY RANDOM TERMINATOR NULL

62

63

64

65

66


Download ppt "발표자료는 다음링크에서 다운로드 받으실 수 있습니다."

Similar presentations


Ads by Google