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

Slides:



Advertisements
Similar presentations
1/15 16 기 장영일 Ext File System. 2/15 처음에 Minix 가 사용되었다 ( 제약사항 ) 최대로 저장할 수 있는 파일의 크기 – 64M : 16bit 정수로 블록 주소 지정 -> 1024( 블록 기본 사이즈 ) * (2^16) = 64M.
Advertisements

03 변수와 자료형 세종대학교 최옥경 교수 참고 : 한빛미디어 뇌를 자극하는 C, INFINITY Perfect C.
- 1 - 정보 보안 개론과 실습 시스템 해킹과 보안 팀원 : 박진영 한동섭 · 권혁진.
Efl을 이용한 타이젠 네이티브 웨어러블 앱 만들기
Basic of Buffer Over Flow
Linux/UNIX Programming APUE (The Environment of a UNIX Process)
Shellcode 작성 김영성.
Activation Records & Recursion
2장 닷넷 프레임워크.
2016 ITA 1월 강의 C Programming -4일차- 포인터배열 및 이중포인터 정대진 ( )
9장 가로채기(Interrupt) Slide 1 (of 15).
공격/대응 Examples.
C 프로그래밍 소개 숙명여대 창병모 2011 가을.
실습 7-3 gdb 분석을 통해 취약 프로그램의 힙 버퍼 오버플로우 개념 이해하기
Signal & Inter-Process Communication
Department of Computer Engineering
공학기초설계 Youn-Hee Han 강의 소개 & MinGW & gcc 공학기초설계 Youn-Hee Han
쉽게 풀어쓴 C언어 Express 제17장 동적 메모리와 연결 리스트 C Express.
Multi-thread Programming
6 프로세스 생성과 실행.
버퍼 오버플로우에 대한 대책과 발전된 공격 안전한 함수 사용 버퍼 오버플로우에 취약한 함수 사용하지 않기
Linux System Programming
Software Exploit and Kernel Protection
컴퓨터 구조.
4장. 컴퓨터 시스템의 구성과 기능 다루는 내용 컴퓨터 분해를 통한 본체 살펴보기 컴퓨터 구성요소 컴퓨터의 기능
버퍼 오버플로우 시스템보안 류기환 권재홍.
버퍼 오버플로우 시스템보안 인터넷공학전공 권영락.
10장 메모리 관리.
쉽게 풀어쓴 C언어 Express 제17장 동적 메모리와 연결 리스트 C Express.
Department of Computer Engineering
3장. 포인터, 배열, 구조체 포인터, 배열, 구조체 학습목표 기본적 데이터 타입
데이터베이스 실험실 석사 2학기 김기훈 TCP/IP Socket Programming… 제 17장 멀티쓰레드 기반의 서버구현 데이터베이스 실험실 석사 2학기 김기훈
Linux System Programming
멀티쓰레드 기반의 서버구현 School of Electronics and Information.
레이스 컨디션 컴퓨터공학과 4학년 이교욱.
Term Project Team Member
(ioctl, mmap, fsync&flush)
6장 파일 및 레코드 잠금.
BOF of 2.6 Kernel ! 박수완 / Su-Wan, PARK [ L1nkC] 숭실대학교 정보보호동아리 ACK
C언어 프로그래밍의 이해 Ch14. 파일 입출력.
5 프로세스 정보.
Chapter6 : JVM과 메모리 6.1 JVM의 구조와 메모리 모델 6.2 프로그램 실행과 메모리 6.3 객체생성과 메모리
Buffer Overflow
컴퓨터 시스템 개관 시스템 프로그래밍 - Lecture #1 신라대학교 컴퓨터공학과 시스템 프로그래밍.
Computer Graphics OpenGL 설치 및 설정
Signal & Inter-Process Communication
Chapter 10 Strings and Pointers
운영체제 (Operating Systems) (Memory Management Strategies)
DataScience Lab. 박사과정 김희찬 (월)
1. 컴퓨터 시스템 구성요소 메모리(Memory) 캐시메모리 개념 캐시메모리의 특징 적중률(hit ratio)
Copyrightⓒ ohta. All Rights Reserved.
Homework #9 (1/2) 다음 지시에 따라 프로그램/결과(혹은 설명)를 출력하여 제출한다.
Homework #9 (1/2) 다음 지시에 따라 프로그램/결과(혹은 설명)를 출력하여 제출한다.
Department of Computer Engineering
HW 1: Buffer Overflow.
JVM의 구조와 메모리 모델 JVM의 내부 구조 클래스 파일 클래스 로더 메소드(method) 영역 힙(heap) 영역
FTZ 과제풀이 Level 11,12 HyunJae Lee
Execution with Unnecessary Privileges
Memory Protection Mechanism of Linux
자료구조 세미나 발표 주제: 자료구조 기초 - 1회 차: 자료구조의 정의, 기초 지식 (함수, 포인터, 레퍼런스)
성경퀴즈 여호수아1장 3장 복습게임.
실습과제 1번 생성된 파일 basic.txt를 프로젝트 폴더에서 메모장으로 열고 내용을 확인
▶서류관리 프로그램 1. 로그인….2 2. 서류등록 … 서류도착 서류스티커발행
데이터 베이스의 내부 구조.
박성진 컴퓨터 프로그래밍 기초 [03] 변수와 자료형 박성진
Windows System Programming
argc, argv 의 사용방법 #include <stdio.h>
Signal & Inter-Process Communication
한국 휴렛팩커드/고객지원사업본부/IT 기술사업부 박기영
배열.
Presentation transcript:

발표자료는 다음링크에서 다운로드 받으실 수 있습니다. 발표자료는 다음링크에서 다운로드 받으실 수 있습니다. http://younges.tistory.com/629

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

TEAM WANG

YIS

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

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

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

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

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

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

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

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

Stack 커널 유저 LOW HIGH

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

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

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

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); }

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

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

BUT

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

&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

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

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

Memory Protection (3) ASCII Armor

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

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

Memory Protection (4) Canary BUFFER SFP RET

Memory Protection (4) Canary BUFFER SFP CANARY RET

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

Memory Protection (4) Canary CANARY RANDOM

Memory Protection (4) Canary CANARY RANDOM TERMINATOR

Memory Protection (4) Canary CANARY RANDOM TERMINATOR NULL