• 제목/요약/키워드: Dynamic binary instrumentation

검색결과 7건 처리시간 0.021초

경량 동적 코드 변환을 이용한 커널 수준 소프트웨어 계측에 관한 연구 (Kernel-level Software instrumentation via Light-weight Dynamic Binary Translation)

  • 이동우;김지홍;엄영익
    • 인터넷정보학회논문지
    • /
    • 제12권5호
    • /
    • pp.63-72
    • /
    • 2011
  • 코드변환 기법은 특정 명령어 집합 구조에서 작성된 프로그램 코드를 다른 구조에서 실행할 수 있도록 변환하는 일종의 에뮬레이션 기법이다. 이 기법은 주로 구형 시스템에서 동작하는 응용프로그램을 새로운 시스템에서 동작시키기 위해 사용되었다. 코드를 변환하는 과정에서 동적으로 코드를 삽입하는 것이 가능하기 때문에 소스코드의 수정 없이 기존 응용프로그램을 계측할 수 있다. 이미 응용프로그램 분야에서는 동적코드분석과 가상머신에서 이러한 기법이 널리 활용되고 있다. 반면에 운영체제의 커널은 일반적인 유저 수준의 응용프로그램과는 다른 특성을 지니기 때문에 커널 수준에서 이러한 코드변환 기법을 사용하려면 시스템 성능, 메모리 관리, 특권 명령어 처리 및 동기화와 관련된 문제가 다루어져야 한다. 본 논문에서는 커널 수준의 동적코드변환 기법을 설계하고 코드삽입을 통한 소프트웨어 계측을 제안한다. 제안기법을 리눅스 커널에 적용하여 실험을 수행하고 그 결과를 통해 본 제안기법이 커널수준에서 소프트웨어 계측에 적은 성능 부하만을 야기함을 확인하였다.

경량 동적 코드 변환 기법을 이용한 동적 인스트루멘테이션 기법 설계 및 구현 (Design and Implementation of a Dynamic Instrumentation Framework based on Light-weight Dynamic Binary Translation)

  • 김지홍;이동우;김인혁;엄영익
    • 정보과학회 논문지
    • /
    • 제41권11호
    • /
    • pp.892-899
    • /
    • 2014
  • 동적 인스트루멘테이션 기법은 동적 코드 변환 기법을 사용하여 프로그램의 수행 흐름을 흐트러뜨리지 않으면서 분석 코드를 삽입하는 구현 기법으로 사용되고 있다. 기존의 동적 코드 변환 기법은 머신 코드 스트림을 중간 코드 형태로 파싱하고, 이를 일반적인 컴파일러 기법에 적용함으로써 코드를 변환한다. 이러한 방식의 코드 변환 과정에서 수반되는 높은 변환 오버헤드는 응답성이 높은 사용자 프로그램에 적용을 어렵게 한다. 본 논문에서는 변환 과정의 경량화를 통해 변환 오버헤드를 줄임으로써, 높은 동적 코드 변환 성능을 가지는 경량 동적 코드 변환 기법을 제안하고, 이를 기반으로 하는 동적 인스트루멘테이션 프레임워크를 제안한다. 제안 기법은 테이블 기반의 새로운 동적 주소 변환 기법으로 코드를 변환하고, 더불어 자주 실행되는 라이브러리 함수에 대해 변환 과정에 대해서는 주소 변환만을 함으로써 변환 오버헤드를 줄이는 변환 우회 기법을 이용한다. 기존 동적 코드 변환 기법과의 비교를 통해 2%~65%의 성능 향상을 확인하였다.

Intel VT 기술을 이용한 Xen 기반 동적 악성코드 분석 시스템 구현 및 평가 (Development and Analyses of Xen based Dynamic Binary Instrumentation using Intel VT)

  • 김태형;김인혁;엄영익;김원호
    • 한국정보과학회논문지:시스템및이론
    • /
    • 제37권5호
    • /
    • pp.304-313
    • /
    • 2010
  • 악성코드를 분석하기 위한 기법에는 다양한 방법들이 존재한다. 하지만 기존의 악성코드 분석 기법으로는 악성코드들의 동작들을 정확하게 분석하는 것이 점점 어려워지고 있다. 특히, 분석 시스템들이 악성코드의 안티-디버깅 기술에 의해 감지되기 쉽고, 실행속도 등 여러 가지 한계점을 보임에 따라 이를 해결할 수 있는 분석 기법이 요구되고 있다. 본 논문에서는 동적 코드 분석을 위한 기본 요구사항인 명령어 단위 분석 및 메모리 접근 추적 기능을 제공하는 동적 코드 분석 시스템을 설계 및 구현한다. 그리고 DLL 로딩 추적을 통한 API 호출 정보를 추출하여, 다양한 실행 코드들을 분석 할 수 있는 기반 환경을 구축한다. 제안 시스템은 Intel의 VT 기술을 이용하여 Xen 기반으로 전가상화 환경을 구축하였으며, 게스트에서는 윈도우즈 XP가 동작할 수 있도록 하였다. 제안 시스템을 이용하여 대표적인 악성코드들을 분석해 봄으로써 제안 시스템 각각의 기능들의 활용을 살펴보고, 제안 시스템이 악성코드들을 정확하게 분석 및 탐지함을 보여준다.

동적 바이너리 분석 툴 비교 분석: Binary Instrumentation (A Comparison of tools for Dynamic Analysis: Binary Instrumentation)

  • 최영현;장성수;임헌정;엄정호;정태명
    • 한국정보처리학회:학술대회논문집
    • /
    • 한국정보처리학회 2010년도 추계학술발표대회
    • /
    • pp.1197-1199
    • /
    • 2010
  • 본 논문에서는 동적 인스트러멘테이션을 적용한 동적 바이너리 분석 툴들에 대해 비교 분석을 수행하였다. 비교 분석은 각 툴들에서 공통의 항목에 맞는 특성 값들을 도출하여 비교함으로써 동일한 상황에서 툴들의 특장점을 확인할 수 있고, 각 특징에 따른 기술적인 배경을 뒷받침하여 더 나은 동적 분석 툴을 만들 수 있는 발판을 마련하였다. 이를 위해 DynamoRIO, DynInst, Pin, Valgrind의 4가지 동적 분석 툴을 지원 가능 플랫폼, 실행 메카니즘의 컨셉, 인스트러멘테이션 가능 범위, 성능, 라이선스와 관련된 입수 가능성의 5가지 주요 항목으로 비교 분석을 수행하였다.

가상화 환경에서 임베디드 시스템을 위한 모니터링 프레임워크와 디버깅 시스템 (Dynamic Monitoring Framework and Debugging System for Embedded Virtualization System)

  • 한인규;임성수
    • 정보과학회 컴퓨팅의 실제 논문지
    • /
    • 제21권12호
    • /
    • pp.792-797
    • /
    • 2015
  • 효과적인 모니터링은 시스템을 진단하여 안정성을 향상시킨다. 하지만 타겟 시스템이 고장나거나 모니터링 시스템이 악의적인 공격을 당하면 신뢰성 있는 모니터링을 할 수 없다. 본 논문에서는 가상화를 이용하여 타겟 시스템이 고장나도 지속적인 모니터링이 가능한 시스템을 구현하고 해당 프레임워크를 제안한다. 제안한 프레임워크는 동적 바이너리 계측을 이용하였고, 하이퍼바이저 계층에서 해당 작업을 수행하기 때문에 상위에 있는 운영체제 종류에 상관없이 사용가능한 유연성과 격리성으로 시스템의 안정성을 보장한다. 또한 특별한 디버깅 장비가 필요 없기 때문에 모니터링 비용 면에서 이점을 가져올 수 있다. 본 프레임워크의 소개와 함께 이를 사용한 디버깅 기능을 소개한다. 모니터링 시스템으로 인한 오버헤드를 알기 위해 연산 성능, 메모리 성능, 메모리 대역폭을 측정하였으며 메모리 성능에서 추가 오버헤드가 2% 발생했다.

실행 파일 형태로 복원하기 위한 Themida 자동 역난독화 도구 구현 (Implementation of the Automated De-Obfuscation Tool to Restore Working Executable)

  • 강유진;박문찬;이동훈
    • 정보보호학회논문지
    • /
    • 제27권4호
    • /
    • pp.785-802
    • /
    • 2017
  • 악성코드를 이용한 사이버 위협이 꾸준히 증가함에 따라 많은 보안 및 백신 관련 업체들이 악성코드 분석 및 탐지에 많은 노력을 기울이고 있다. 그러나 소프트웨어의 분석이 어렵도록 하는 난독화 기법이 악성코드에 적용되어 악성코드에 대한 빠른 대응이 어려운 실정이다. 특히 상용 난독화 도구는 빠르고 간편하게 변종 악성코드를 생성해 낼 수 있기 때문에 악성코드 분석가가 새로운 변종 악성코드의 출현 속도에 대응할 수 없도록 한다. 분석가가 빠르게 악성코드의 실제 악성행위를 분석하도록 하기 위해서는 난독화를 해제하는 역난독화 기술이 필요하다. 본 논문에서는 상용 난독화 도구인 Themida가 적용된 소프트웨어를 역난독화하는 일반적인 분석방법론을 제안한다. 먼저 Themida를 이용하여 난독화가 적용된 실행파일을 분석하여 알아낸 Themida의 동작 원리를 서술한다. 다음으로 DBI(Dynamic Binary Instrumentation) 프레임워크인 Pintool을 이용하여 난독화된 실행파일에서 원본 코드 및 데이터 정보를 추출하고, 이 원본 정보들을 활용하여 원본 실행파일에 가까운 형태로 역난독화할 수 있는 자동화 분석 도구 구현 결과에 대해 서술한다. 마지막으로 원본 실행파일과 역난독화한 실행파일의 비교를 통해 본 논문의 자동화 분석 도구의 성능을 평가한다.

최적화 컴파일된 자바스크립트 함수에 대한 최적화 해제 회피를 이용하는 런타임 가드 커버리지 유도 퍼저 (Runtime-Guard Coverage Guided Fuzzer Avoiding Deoptimization for Optimized Javascript Functions)

  • 김홍교;문종섭
    • 정보보호학회논문지
    • /
    • 제30권3호
    • /
    • pp.443-454
    • /
    • 2020
  • 자바스크립트 엔진은 주로 웹 브라우저에 적재되어 웹 페이지를 표시하는 여러 기능 중 자바스크립트 코드를 입력으로 받아 처리하는 모듈이다. 자바스크립트 엔진 내 취약점은 종단 사용자의 시스템 보안을 위협할 수 있어 많은 퍼징 테스트 연구가 수행되었다. 그중 일부 연구는 자바스크립트 엔진 내 테스트 커버리지를 유도하는 방식으로 퍼징 효율을 높였으나, 최적화되어 동적으로 생성된 기계어 코드에 대한 커버리지 유도 퍼징은 시도되지 않았다. 최적화된 자바스크립트 코드는 예외적인 흐름 발생 시 코드를 해제하는 런타임 가드의 기능으로 인해 퍼징을 통한 충분한 반복 테스트가 어렵다. 본 논문은 이러한 문제점을 해결하기 위해 최적화 해제를 회피하여 최적화된 기계어 코드에 대해 퍼징 테스트를 수행하는 방법을 제안한다. 또한, 동적 바이너리 계측 방식으로 수행된 런타임 가드의 커버리지를 계측하고 커버리지 증가를 유도하는 방식을 제안한다. 실험을 통해, 본 연구가 제안하는 방식이 런타임 가드 커버리지, 시간당 테스트 횟수의 두가지 척도에서 기존의 방식보다 뛰어남을 보인다.