Secure Software Lab. 1 Behavior Based Software Theft Detection 고급 운영체제론 2013 년 10 월 7 일 이 찬 희이 찬 희
Secure Software Lab. 소프트웨어 버스마크 : – 프로그램을 식별하는데 사용될 수 있는 프로그램의 고유한 특징 What is Software Birthmark?
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) 모두를 만족시키지는 못함 기존 소프트웨어 버스마크의 한계
Secure Software Lab. SCDG –System Call Dependence Graph 제안 소프트웨어 버스마크 Data dependence Control dependence
Secure Software Lab. 시스템 개요
Secure Software Lab. SCDGB: SCDG Birthmark SCDGB is the subgraph of the graph SCDG
Secure Software Lab. 전단사함수 : 일대일 대응 동형 전단사 (bijective function) & 동형 (ismorphic)
Secure Software Lab. 수학에 맞설 수 있는 용기를 … Break time…
Secure Software Lab. System Design
Secure Software Lab. Valgrind 의 플러그인 형태로 Hawk 개발 Valgrind 를 통한 바이너리 decompile IR Block Valgrind 는 시스템 콜 후킹 기능 제공 Hawk – 메모리 바이트와 레지스터 조작 및 analysis code 를 instrumentation – 후킹한 시스템 콜을 통해 노드 및 edge 등 생성 – 현재 data dependence 만으로 충분하여 control dependence 사용 X Dynamic analysis
Secure Software Lab. 대형 프로그램에서의 메모리 관리를 위해 참조 카운팅 사용 오버헤드를 줄이기 위해 지연된 참조 카운팅 사용 Dynamic analysis – IR instrumentaion
Secure Software Lab. Noise 때문에 같은 System call sequence 가 다른 행위 를 하는 것으로 판단 몇몇 타입의 시스템 콜 무시 –gettimeofday 모든 메모리 관리 system call 무시 – 모든 malloc 함수가 시스템 콜을 가지진 않음 – 동일한 프로그램이 상이한 메모리 크기를 가진다 편의를 위해 비슷한 시스템 콜 무시 –fstat, stat … 실패한 시스템 콜 무시 –open twice Noise Filtering
Secure Software Lab. Elsa 와 같은 툴로 컴포넌트 함수정보를 가진 list L 생성 혹은 Valgrind 를 사용하여 DLL 컴포넌트에서 정보 도출 –callers of invoked system call SCDG 및 동적 콜 트리 생성 ( 콜 스텍 합성 ) SCDG 를 여러 개의 subgraphs 로 분할 중복되는 SCDG subgraphs 제거 Extraction of SCDG Birthmarks
Secure Software Lab. n * m pairs subgraph isomorphism testing –n, m : birthmarks VF subgraph isomorphism 알고리즘 사용 Pruning Search Space Birthmark Comparison
Secure Software Lab. capability to detect component theft for large-scale p rograms credibility to independently developed program resiliency to obfuscation. Evaluation
Secure Software Lab. Blind test TEST
Secure Software Lab. Obfuscation Techniques – 시스템 콜 기반이므로 결국 호출되는 시스템 콜의 시퀀스는 같았음 Compiler Optimization Levels –-O0, -O1, -O2, -O3 and –Os – 시스템 콜 시퀀스가 같아서 컴파일러 옵션에 강건성을 가짐 Different Compilers –TCC, GCC 사용 – 역시 시스템 콜 시퀀스가 달라지지 않음 TEST
Secure Software Lab. 네이버 수학대박과 일반수학 ( 단국대학교 ) Valgrind – 프로그램의 구조적 특성을 사용한 자바 버스마크 – 한국정보과학회 – 장준혁, 조유근, 홍지만 Reference
Secure Software Lab. Any Question? Thank you