PowerPoint Template

Similar documents
PowerPoint 프레젠테이션

vi 사용법

Windows 8에서 BioStar 1 설치하기

Microsoft PowerPoint - [2009] 02.pptx

PowerPoint Template

PowerPoint 프레젠테이션

C 언어 프로그래밊 과제 풀이

PDF_Compass_32호-v3.pdf

게시판 스팸 실시간 차단 시스템

Microsoft PowerPoint - chap02-C프로그램시작하기.pptx

슬라이드 1

snu.pdf

199

b

Microsoft PowerPoint - Lecture_Note_5.ppt [Compatibility Mode]

The Pocket Guide to TCP/IP Sockets: C Version

BMP 파일 처리

커알못의 커널 탐방기 이 세상의 모든 커알못을 위해서

1. Windows 설치 (Client 설치 ) 원하는위치에다운받은발송클라이언트압축파일을해제합니다. Step 2. /conf/config.xml 파일수정 conf 폴더에서 config.xml 파일을텍스트에디터를이용하여 Open 합니다. config.xml 파일에서, 아

The Pocket Guide to TCP/IP Sockets: C Version

PowerPoint 프레젠테이션

PowerPoint 프레젠테이션

Microsoft PowerPoint - Java7.pptx

PowerPoint 프레젠테이션

제1장 Unix란 무엇인가?

2009년 상반기 사업계획

vi 사용법

본 강의에 들어가기 전

PowerPoint 프레젠테이션

임베디드시스템설계강의자료 6 system call 2/2 (2014 년도 1 학기 ) 김영진 아주대학교전자공학과

PowerPoint 프레젠테이션

제 14 장포인터활용 유준범 (JUNBEOM YOO) Ver 본강의자료는생능출판사의 PPT 강의자료 를기반으로제작되었습니다.

<4D F736F F F696E74202D C61645FB3EDB8AEC7D5BCBA20B9D720C5F8BBE7BFEBB9FD2E BC8A3C8AF20B8F0B5E55D>

Microsoft Word - ntasFrameBuilderInstallGuide2.5.doc

Secure Programming Lecture1 : Introduction

Microsoft Word - src.doc

Secure Programming Lecture1 : Introduction

< E20C6DFBFFEBEEE20C0DBBCBAC0BB20C0A7C7D12043BEF0BEEE20492E707074>

PowerPoint 프레젠테이션

슬라이드 1

OCW_C언어 기초

The Pocket Guide to TCP/IP Sockets: C Version

Abstract View of System Components

<443A5C4C C4B48555C B3E25C32C7D0B1E25CBCB3B0E8C7C1B7CEC1A7C6AE425CC0E7B0EDB0FCB8AE5C53746F636B5F4D616E D656E74732E637070>

PowerPoint Presentation

bn2019_2

*2008년1월호진짜

버퍼오버플로우-왕기초편 10. 메모리를 Hex dump 뜨기 앞서우리는버퍼오버플로우로인해리턴어드레스 (return address) 가변조될수있음을알았습니다. 이제곧리턴어드레스를원하는값으로변경하는실습을해볼것인데요, 그전에앞서, 메모리에저장된값들을살펴보는방법에대해배워보겠습

슬라이드 1

<4D F736F F F696E74202D20C1A633C0E52043C7C1B7CEB1D7B7A5B1B8BCBABFE4BCD2>

fprintf(fp, "clf; clear; clc; \n"); fprintf(fp, "x = linspace(0, %d, %d)\n ", L, N); fprintf(fp, "U = [ "); for (i = 0; i <= (N - 1) ; i++) for (j = 0

Microsoft PowerPoint - chap06-2pointer.ppt

<4D F736F F F696E74202D20C1A632C0E520C7C1B7CEB1D7B7A5B0B3B9DFB0FAC1A4>

지난시간에... 우리는 kernel compile을위하여 cross compile 환경을구축했음. UBUNTU 12.04에서 arm-2009q3를사용하여 간단한 c source를빌드함. 한번은 intel CPU를위한 gcc로, 한번은 ARM CPU를위한 gcc로. AR

Lab 3. 실습문제 (Single linked list)_해답.hwp

Microsoft Word - Network Programming_01.docx


Spotlight on Oracle V10.x 트라이얼프로그램설치가이드 DELL SOFTWARE KOREA

PA for SWE2007

SBR-100S User Manual

중간고사

PowerPoint 프레젠테이션

PowerPoint 프레젠테이션

Microsoft PowerPoint - 1장 C 프로그래밍 시작하기 pptx

(Microsoft PowerPoint - 07\300\345.ppt [\310\243\310\257 \270\360\265\345])

<4D F736F F F696E74202D B3E22032C7D0B1E220C0A9B5B5BFECB0D4C0D3C7C1B7CEB1D7B7A1B9D620C1A638B0AD202D20C7C1B7B9C0D320BCD3B5B5C0C720C1B6C0FD>

<443A5C4C C4B48555C B3E25C32C7D0B1E25CBCB3B0E8C7C1B7CEC1A7C6AE425CBED0C3E0C7C1B7CEB1D7B7A55C D616E2E637070>

C 프로그램의 기본

<4D F736F F F696E74202D20B8AEB4AABDBA20BFC0B7F920C3B3B8AEC7CFB1E22E BC8A3C8AF20B8F0B5E55D>

Microsoft PowerPoint - chap12-고급기능.pptx

PowerPoint 프레젠테이션

EA0015: 컴파일러

Microsoft PowerPoint - 제9강 문자열

슬라이드 1


Microsoft PowerPoint - C프로그래밍-chap15.ppt [호환 모드]

2015 개정교육과정에따른정보과평가기준개발연구 연구책임자 공동연구자 연구협력관

HLS(HTTP Live Streaming) 이용가이드 1. HLS 소개 Apple iphone, ipad, ipod의운영체제인 ios에서사용하는표준 HTTP 기반스트리밍프로토콜입니다. 2. HLS 지원대상 - 디바이스 : iphone/ipad/ipod - 운영체제 :

<4D F736F F F696E74202D20B8B6C0CCC5A9B7CEC7C1B7CEBCBCBCAD202839C1D6C2F7207E203135C1D6C2F >

Microsoft PowerPoint - 05장(함수) [호환 모드]

Research & Technique Apache Tomcat RCE 취약점 (CVE ) 취약점개요 지난 4월 15일전세계적으로가장많이사용되는웹애플리케이션서버인 Apache Tomcat에서 RCE 취약점이공개되었다. CVE 취약점은 W

Microsoft PowerPoint - 권장 사양

Microsoft PowerPoint - chap01-C언어개요.pptx

2007_2_project4

제1장 Unix란 무엇인가?

1장. 유닉스 시스템 프로그래밍 개요

11장 포인터

C 프로그래밊 개요

이도경, 최덕재 Dokyeong Lee, Deokjai Choi 1. 서론

Lab 4. 실습문제 (Circular singly linked list)_해답.hwp

untitled

tiawPlot ac 사용방법

untitled

PA0 for SSE2033

1

PowerPoint 프레젠테이션

목차 윈도우드라이버 1. 매뉴얼안내 운영체제 (OS) 환경 윈도우드라이버준비 윈도우드라이버설치 Windows XP/Server 2003 에서설치 Serial 또는 Parallel 포트의경우.

PowerPoint 프레젠테이션

Chapter_02-3_NativeApp

Transcription:

악성코드소스코드분석 Jaewoo Shim Mar. 14. 2018

목차 팀프로젝트소개 수행내용 소스코드정적분석 컴파일후실행파일동적분석 제안서작성방식 보고서작성방식 채점기준및총배점 2

팀프로젝트소개 악성코드분석 lightaidra 소스코드가없는바이너리를분석할수있는역량을익히기에는시간상현실적으로어려움이있음 소스코드가있는악성코드를대상으로분석을수행 2000 줄정도 소스코드다운로드가능 : https://github.com/eurialo/lightaidra 3 ~ 4명의팀으로수행하는것을권장 팀원구성후조교에게전달 : 3월 14일 ( 수 ) 까지 제안서제출 : 4월 4일 ( 수 ) 까지 4주간수행후결과보고서제출 : 5월 2일 ( 수 ) 까지 3

팀프로젝트소개 임의의취약점등을이용해피해자의컴퓨터에악성코드를실행 lightaidra 4

팀프로젝트소개 해커의명령에따라동작 너에대한정보를알려줘 너의 PC 에저장된파일을줘 5

팀프로젝트소개 1000 만원을주지않으면, 너희서버를 1 시간동안서비스불가하도록만들겠다 기업또는공공기관 6

팀프로젝트소개 공격해라 공격해라 공격해라 공격해라 공격해라 기업또는공공기관 7

팀프로젝트소개 대규모트래픽발생 기업또는공공기관 8

수행내용 정적분석 소스코드정적분석 ~/include 폴더에는소스코드에서사용하는헤더파일 (~~~.h) 이포함 ~/source 폴더에는소스코드 (~~~.c) 파일이포함 README.md, Makefile, getbinaries.sh, docs 폴더내파일은분석 X 소스코드를분석해서어떠한기능을수행하는프로그램인지파악 9 TIP 소스코드에함수마다도움이될수있는주석이있습니다.

수행내용 정적분석 예시 int main(int argc, char *argv[]) { if (argv[1] == 0 argv[2] == 0) { printf("./lighthide [-encode -decode] [string]\n"); return(1); } else if (!strncmp(argv[1], "-encode", 7)) { encode(argv[2]); decode(encoded); printf("encoded[%s]:\n%s\n", decoded, encoded); } else if (!strncmp(argv[1], "-decode", 7)) { decode(argv[2]); encode(decoded); printf("decoded[%s]:\n%s\n", argv[2], decoded); } return(0); } 10

수행내용 정적분석 예시 나쁜예 int main(int argc, char *argv[]) { // main함수선언 if (argv[1] == 0 argv[2] == 0) { // 만약 argv[1] 이 0이거나 printf("./lighthide [-encode -decode] [string]\n"); // 출력 return(1); // 종료 } // 조건문종료 else if (!strncmp(argv[1], "-encode", 7)) { // 만약 argv[1] 이 -encode 라면 encode(argv[2]); // encode() 함수실행 decode(encoded); // decode() 함수실행 printf("encoded[%s]:\n%s\n", decoded, encoded); // 결과값출력 } // 조건문종료 else if (!strncmp(argv[1], "-decode", 7)) { // 만약 argv[2] 이 -decode 라면 decode(argv[2]); // decode() 함수실행 encode(decoded); // encode() 함수실행 printf("decoded[%s]:\n%s\n", argv[2], decoded); // 출력 } // 조건문종료 return(0); // 종료 } 11

수행내용 정적분석 예시 좋은예 int main(int argc, char *argv[]) { if (argv[1] == 0 argv[2] == 0) { printf("./lighthide [-encode -decode] [string]\n"); return(1); } else if (!strncmp(argv[1], "-encode", 7)) { encode(argv[2]); decode(encoded); printf("encoded[%s]:\n%s\n", decoded, encoded); } } else if (!strncmp(argv[1], "-decode", 7)) { decode(argv[2]); encode(decoded); printf("decoded[%s]:\n%s\n", argv[2], decoded); } return(0); main 함수는사용자에게옵션을입력받아 encode, 또는 decode 역할을수행하여결과값을출력해주는함수이다. 12

수행내용 동적분석 컴파일후악성코드를직접사용해보고, 동작을분석 Lightaidra는해커가여러기능을수행할수있도록만들어진악성코드 어떤기능을수행하는악성코드인지? 어떤식으로동작하는지?( 커맨드, 환경구성등 ) 13

수행내용 동적분석 환경구축 - 예시 Windows 공격자 Virtual box Ubuntu linux(16.04) - 피해자 Windows - 공격자 IRC Server Linux - 피해자 채팅방생성 커맨드전송 채팅방접속 커맨드전달 결과전달 14

수행내용 동적분석 공격자측클라이언트설치 : hexchat https://hexchat.github.io/downloads.html 15

수행내용 동적분석 공격자측클라이언트설치 : hexchat 16

수행내용 동적분석 공격자측클라이언트설치 : hexchat 더블클릭하여수정후엔터 아이피주소 : 220.149.250.147/6667 연결이안될시조교에게연락 수정완료후 close 17

수행내용 동적분석 공격자측클라이언트설치 : hexchat 오른쪽과같이접속이수행되는것을확인 두번째 join the channel 에본인이생성할대화방이름입력 18

수행내용 동적분석 공격자측클라이언트설치 : hexchat 아래와같이대화방이생성되면, 이후피해자가접속될대화방생성완료 대화창에다음과같이입력 : /topic # 자기대화방이름.join # 자기대화방이름 19

수행내용 동적분석 피해자는 lightaidra 의 config.h 파일을분석해서변경후 $ make x86_64 $./x86_64 대화방에이상한계정이접속되었다면악성코드동작이성공 이후정적으로분석을수행시파악된명령어를사용해보면서분석수행 20

팀프로젝트소개 - 제안서 양식및분량 자유 팀별로 1부제출 제안서에반드시포함되어야하는내용 팀명 팀원이름 / 학번 / 이메일 - 팀장이누구인지표기 IRC 통신에대한개략적설명 분석을수행할환경 분석에사용할도구 일정 ( 간트차트 ) 4 월 4 일수요일까지 21

팀프로젝트소개 - 보고서 양식및분량 자유 팀별로 1부제출 보고서에반드시포함되어야하는내용 제안서에기입했던내용들 환경과도구는분석시다르게이용했을경우실제사용한내용을작성 소스코드분석내용 ( 소스코드주석달아제출하지마세요 - 감점 ) 각 *.c 파일의역할 무슨기능을하는지? 각함수의역할 ~ 기능을수행하는함수이다. 컴파일후실행내용 결론 어떤기능을수행하는악성코드인지? 어떤식으로동작하는지?( 자세하게 ) 어떤분석환경을어떻게갖추어어떻게실행시켜확인했는지? 이악성코드는어떤환경에서무슨기능을수행하는악성코드다. 내가보안담당자라면어떻게해당악성코드를탐지및차단할것인지? 5 월 2 일 ( 수 ) 까지 22

채점기준및총배점 과제물반영비율내팀프로젝트비중 : 10% 과제물반영비율내 BoF 과제 비중 : 5% 과제물반영비율내 SQLi 과제 비중 : 3% 과제물반영비율내패킷과제 비중 : 2% ---------------------------------------------------------------- SW보안개론과제물반영 비율 : 20% 팀프로젝트채점기준 (100 점만점이며 50 점부터시작 ) 이전슬라이드내반드시포함되어야하는내용미기재시감점 개당 -5 주요키워드가들어가있지않을시감점 (10개선정 ) 개당 -5 키워드는채점이완료된이후에공개예정 키워드만으로보고서를작성하는경우방지 Hint) IRC, 봇, Synflood, config.h 포함 10가지 23

QnA 조교이름 : 심재우 이메일 : tlawodn94@gmail.com 연구실 : 미디어센터 504호 서버연결이안될시 : 010-3377-5148 24

25