Download presentation
Presentation is loading. Please wait.
Published by하나 전 Modified 8년 전
1
Secure Software Lab. 1 Behavior Based Software Theft Detection 고급 운영체제론 2013 년 10 월 7 일 이 찬 희이 찬 희 lchanhee12@gmail.com
2
Secure Software Lab. 소프트웨어 버스마크 : – 프로그램을 식별하는데 사용될 수 있는 프로그램의 고유한 특징 What is Software Birthmark?
3
Secure Software Lab. (R1) Resiliency to semantics-preserving obfuscation techniques (R2) Capability to detect theft of components, which may be only a small part of the original program (R3) Scalability to detect large-scale commercial or o pen source software theft (R4) Applicability to binary executables (R5) Independence to platforms such as operating systems and program languages (R1) ~ (R5) 모두를 만족시키지는 못함 기존 소프트웨어 버스마크의 한계
4
Secure Software Lab. SCDG –System Call Dependence Graph 제안 소프트웨어 버스마크 Data dependence Control dependence
5
Secure Software Lab. 시스템 개요
6
Secure Software Lab. SCDGB: SCDG Birthmark SCDGB is the subgraph of the graph SCDG
7
Secure Software Lab. 전단사함수 : 일대일 대응 동형 전단사 (bijective function) & 동형 (ismorphic)
8
Secure Software Lab. 수학에 맞설 수 있는 용기를 … Break time…
9
Secure Software Lab. System Design
10
Secure Software Lab. Valgrind 의 플러그인 형태로 Hawk 개발 Valgrind 를 통한 바이너리 decompile IR Block Valgrind 는 시스템 콜 후킹 기능 제공 Hawk – 메모리 바이트와 레지스터 조작 및 analysis code 를 instrumentation – 후킹한 시스템 콜을 통해 노드 및 edge 등 생성 – 현재 data dependence 만으로 충분하여 control dependence 사용 X Dynamic analysis
11
Secure Software Lab. 대형 프로그램에서의 메모리 관리를 위해 참조 카운팅 사용 오버헤드를 줄이기 위해 지연된 참조 카운팅 사용 Dynamic analysis – IR instrumentaion
12
Secure Software Lab. Noise 때문에 같은 System call sequence 가 다른 행위 를 하는 것으로 판단 몇몇 타입의 시스템 콜 무시 –gettimeofday 모든 메모리 관리 system call 무시 – 모든 malloc 함수가 시스템 콜을 가지진 않음 – 동일한 프로그램이 상이한 메모리 크기를 가진다 편의를 위해 비슷한 시스템 콜 무시 –fstat, stat … 실패한 시스템 콜 무시 –open twice Noise Filtering
13
Secure Software Lab. Elsa 와 같은 툴로 컴포넌트 함수정보를 가진 list L 생성 혹은 Valgrind 를 사용하여 DLL 컴포넌트에서 정보 도출 –callers of invoked system call SCDG 및 동적 콜 트리 생성 ( 콜 스텍 합성 ) SCDG 를 여러 개의 subgraphs 로 분할 중복되는 SCDG subgraphs 제거 Extraction of SCDG Birthmarks
14
Secure Software Lab. n * m pairs subgraph isomorphism testing –n, m : birthmarks VF subgraph isomorphism 알고리즘 사용 Pruning Search Space Birthmark Comparison
15
Secure Software Lab. capability to detect component theft for large-scale p rograms credibility to independently developed program resiliency to obfuscation. Evaluation
16
Secure Software Lab. Blind test TEST
17
Secure Software Lab. Obfuscation Techniques – 시스템 콜 기반이므로 결국 호출되는 시스템 콜의 시퀀스는 같았음 Compiler Optimization Levels –-O0, -O1, -O2, -O3 and –Os – 시스템 콜 시퀀스가 같아서 컴파일러 옵션에 강건성을 가짐 Different Compilers –TCC, GCC 사용 – 역시 시스템 콜 시퀀스가 달라지지 않음 TEST
18
Secure Software Lab. 네이버 수학대박과 일반수학 ( 단국대학교 ) Valgrind –www.valgrind.org/www.valgrind.org/ 프로그램의 구조적 특성을 사용한 자바 버스마크 – 한국정보과학회 – 장준혁, 조유근, 홍지만 Reference
19
Secure Software Lab. Any Question? Thank you
Similar presentations