• 제목/요약/키워드: obfuscation

검색결과 101건 처리시간 0.027초

제어 흐름 난독화를 효과적으로 수행하기 위한 전략 (A strategy for effectively applying a control flow obfuscation to programs)

  • 김정일;이은주
    • 한국컴퓨터정보학회논문지
    • /
    • 제16권6호
    • /
    • pp.41-50
    • /
    • 2011
  • 악의적인 소프트웨어 역공학으로부터 프로그램이 가지는 코드를 보호하기 위해서 코드 난독화가 제안되었다. 이것은 기존에 존재하는 프로그램 코드를 어렵게 변환시키는 것으로 프로그램 코드에 대한 악의적인 정적 분석을 어렵게 만든다. 코드 난독화는 난독화 목적에 따라 레이아웃, 데이터, 제어 난독화로 분류되어진다. 이 중 제어 난독화는 프로그램이 가지는 제어 흐름에 대한 추상적인 정보를 보호하는 것으로 다양한 종류의 개별 제어 흐름 난독화 변환이 제안되었지만, 이를 효과적으로 적용할 수 있는 방법은 제안되지 않았다. 본 논문에서는 제어 흐름 난독화 변환을 프로그램에 효과적으로 적용할 수 있는 난독화 전략을 제안하고, 실험을 통해서 제안한 난독화 전략의 효용을 보였다.

유전 알고리즘에 기반한 코드 난독화를 위한 인라인 적용 기법 (A Technique to Apply Inlining for Code Obfuscation based on Genetic Algorithm)

  • 김정일;이은주
    • 한국IT서비스학회지
    • /
    • 제10권3호
    • /
    • pp.167-177
    • /
    • 2011
  • Code obfuscation is a technique that protects the abstract data contained in a program from malicious reverse engineering and various obfuscation methods have been proposed for obfuscating intention. As the abstract data of control flow about programs is important to clearly understand whole program, many control flow obfuscation transformations have been introduced. Generally, inlining is a compiler optimization which improves the performance of programs by reducing the overhead of calling invocation. In code obfuscation, inlining is used to protect the abstract data of control flow. In this paper, we define new control flow complexity metric based on entropy theory and N-Scope metric, and then apply genetic algorithm to obtain optimal inlining results, based on the defined metric.

트램폴린 코드 기반의 난독화 기법을 위한 역난독화 시스템 (De-Obfuscated Scheme for Obfuscation Techniques Based on Trampoline Code)

  • 김민호;이정현;조해현
    • 정보보호학회논문지
    • /
    • 제33권6호
    • /
    • pp.1043-1053
    • /
    • 2023
  • 악성코드 분석가들은 다양한 경로로 배포되는 악성코드를 분석하고 대응하기 위해 많은 노력을 기울이고 있다. 그러나 악성코드 개발자들은 분석을 회피하기 위해 다양한 시도를 하고 있다. 대표적인 방법으로는 패킹과 난독화 기법 등이 있다. 기존 연구들은 일반적인 프로그램 언패킹 방법을 제안했으나, 최근의 패커들이 사용하는 OEP 난독화나 API 난독화 기법 등에 대한 대응이 부족하여, 언패킹 과정에서 실패하는 경우가 있다. 본 논문에서는 다양한 패커들이 사용하는 OEP 및 API 난독화 기법을 분석하고, 이를 자동으로 역난독화하는 시스템을 제안한다. 제안 시스템은 패킹된 프로그램의 메모리를 덤프하여 OEP와 API 난독화에 사용되는 트램폴린 코드를 탐지한다. 이후 트램폴린 코드의 패턴을 분석하여 난독화된 정보를 탐지하고, 언패킹된 프로그램으로 재구성한다. 실험 결과, 제안 시스템이 다양한 패커에 의해 OEP와 API 난독화 기법이 적용된 프로그램을 효과적으로 역난독화할 수 있음을 확인하였다.

VMProtect 동작원리 분석 및 자동 역난독화 구현 (VMProtect Operation Principle Analysis and Automatic Deobfuscation Implementation)

  • 방철호;석재혁;이상진
    • 정보보호학회논문지
    • /
    • 제30권4호
    • /
    • pp.605-616
    • /
    • 2020
  • 난독화 기술은 프로그램의 기능성은 그대로 유지하면서 자료구조, 제어흐름 등 내부 로직을 변형함으로써 프로그램의 분석을 지연시키는 기술이다. 그러나 이러한 난독화 기술을 악성코드에 적용함으로써 안티바이러스 소프트웨어의 악성코드 탐지율을 저하시키는 사례가 빈번하게 발생하고 있다. 소프트웨어 지적재산권을 보호하기 위하여 적용되는 난독화 기술이 역으로 악성코드에 적용됨으로써 악성코드 탐지율을 저해할 뿐만 아니라 이의 분석을 어렵게 하여 악성코드의 기능성 파악에도 어려움을 주게 되므로 난독화가 적용된 코드를 원본에 가깝게 복원할 수 있는 역난독화 기술의 연구 또한 꾸준히 지속 되어야 한다. 본 논문에서는 상용 난독화 도구 중 대중적으로 널리 알려져 있는 도구인 VMProtect 3.4.0에서 제공하는 세부 난독화 기술 중 Pack the Output File, Import Protection의 옵션이 적용되어 난독화 된 코드의 특징을 분석하고 이의 역난독화 알고리즘을 제시하고자 한다.

가상화 난독화 기법이 적용된 실행 파일 분석 및 자동화 분석 도구 구현 (Analysis of Virtualization Obfuscated Executable Files and Implementation of Automatic Analysis Tool)

  • 석재혁;김성훈;이동훈
    • 정보보호학회논문지
    • /
    • 제23권4호
    • /
    • pp.709-720
    • /
    • 2013
  • 가상화 난독화 기법은 보호하고자 하는 코드영역에 가상화 기법을 적용함으로써 코드의 분석을 어렵게 하는 기법이다. 상용 가상화 난독화 도구로 보호된 프로그램은 가상화된 코드가 원본코드로 복원되는 시점이 존재하지 않고 다양한 난독화 기법으로 가상화 영역이 보호되어 있어 분석하기 어렵기로 잘 알려져 있다. 그러나 이러한 가상화 난독화 기법이 악성코드 보호에 악용되면서 악성코드의 분석 및 대응에 어려움을 겪고 있는 현실이다. 본 논문에서는 상용 가상화 난독화 기법의 핵심 요소들을 자동으로 추출하고 실행 과정을 트레이스 할 수 있는 도구를 구현함으로써 상용 가상화 난독화 도구로 보호되어 있는 악성코드의 분석 및 대응에 활용할 수 있도록 한다. 이를 위하여 가상화 난독화 기법의 기본 구조와 동작 과정을 정리하고, 상용 가상화 난독화 기법으로 보호된 실행 파일을 대상으로 프로그램 분석 기법 중 하나인 Equation Reasoning System을 활용한 분석 결과를 제시한다. 또한 상용 가상화 난독화 도구로 보호되어 있는 실행 파일에서 가상화 구조를 추출하고 프로그램 실행 순서를 도출할 수 있는 자동화 분석 도구를 구현한다.

프로가드 난독화 도구 구조 및 기능 분석 (Structural and Functional Analyses of ProGuard Obfuscation Tool)

  • ;정진혁;이정현
    • 한국통신학회논문지
    • /
    • 제38B권8호
    • /
    • pp.654-662
    • /
    • 2013
  • 안드로이드 앱은 자바 언어의 특성과 셀프사인 정책에 따라 역컴파일을 통한 위변조된 앱의 생성이 쉬운 구조적 특성이 있다. 이러한 구조적 취약점을 금융 앱과 같이 보안에 민감한 앱에 적용되면 매우 치명적일 수 있다. 따라서 앱 위변조 방지 기술 중 하나로써 난독화(obfuscation)을 적극 도입하여 활용하고 있는데, 현재 안드로이드 마켓에 등록된 많은 앱들은 프로가드(ProGuard) 난독화 도구를 사용하고 있다. 프로가드는 자바 클래스 파일을 난독화하여 안드로이드 앱의 역공학을 어렵게 만든다. 하지만 프로가드 난독화 도구는 여러 가지 난독화 기법 중 앱 속의 식별자를 변환하는 식별자변환 기법만 적용되어 있기 때문에, 역공학 시 프로그램 로직을 쉽게 파악할 수 있게 된다. 따라서 본 논문에서는 프로가드 소스코드 분석을 통한 프로가드의 난독화 기법을 상세 분석하고, 이를 통해 현재 프로가드 난독화 기술의 한계점을 파악한 후, 향후 안드로이드 난독화 기술의 개선 방향을 제시한다.

Visual C++ 소스코드를 위한 Obfuscation 도구 구현 (Implementation of an Obfuscation Tool for Visual C++ Source Code)

  • 조병민;장혜영;노진욱;오현수;정민규;이승원;박용수;우제학;조성제
    • 한국정보과학회:학술대회논문집
    • /
    • 한국정보과학회 2006년도 가을 학술발표논문집 Vol.33 No.2 (C)
    • /
    • pp.521-525
    • /
    • 2006
  • 최근 소프트웨어의 주요 알고리즘 및 자료구조 등의 지적재산권을 역공학 분석과 같이 악의적인 공격들로부터 보호하기 위한 연구가 이루어지고 있다. 본 논문에서는 산업 현장에서 많이 사용되는 Visual C++ 또는 MFC로 작성된 프로그램의 소스 코드를 역공학 공격으로부터 보호하기 위한 Obfuscation 도구를 구현하고 그 성능을 평가한다. 구현된 도구는 3가지 Obfuscation 알고리즘을 적용하여 소스 코드를 생성하며 생성된 소스 코드들은 가독성이 떨어지고 역공학 분석이 어렵도록 변환되지만, 프로그램의 본래 기능은 그대로 유지하며 성능상의 변화가 크지 않음을 실험을 통해 확인할 수 있었다.

  • PDF

소스 코드 난독화 기법에 의한 Clang 정적 분석 도구의 성능 영향 분석 (Analysis of Detection Ability Impact of Clang Static Analysis Tool by Source Code Obfuscation Technique)

  • 진홍주;박문찬;이동훈
    • 정보보호학회논문지
    • /
    • 제28권3호
    • /
    • pp.605-615
    • /
    • 2018
  • 사물 인터넷 시장 규모의 급격한 성장에 따라 임베디드 시스템에서 가장 많이 쓰이는 언어인 C/C++ 언어의 사용도 증가하고 있다. C/C++ 언어의 코드 품질을 향상시키고 개발 비용을 절감시키기 위해 소프트웨어 개발 전반부에서 수행 가능한 소프트웨어 검증기법인 정적 분석을 사용하는 것이 좋다. 많은 프로그램들이 정적 분석을 사용하여 소프트웨어의 안전성을 검증하고 있으며 많은 정적 분석 도구들이 사용 및 연구되고 있다. 본 논문에서는 Clang 정적 분석도구를 사용하여 검증된 시험 코드에 대한 보안 약점 검출 성능을 확인한다. 또한 소스 코드 난독화 기법인 구획 난독화, 데이터 난독화, 제어 흐름 난독화 기법이 각각 적용된 시험 코드에 대한 정적 분석 결과와 원본 시험 코드에 대한 정적 분석 결과를 비교하여 소스 코드 난독화 기법에 따른 Clang 정적 분석 도구의 성능 영향을 분석한다.

APK에 적용된 난독화 기법 역난독화 방안 연구 및 자동화 분석 도구 구현 (A Study on Deobfuscation Method of Android and Implementation of Automatic Analysis Tool)

  • 이세영;박진형;박문찬;석재혁;이동훈
    • 정보보호학회논문지
    • /
    • 제25권5호
    • /
    • pp.1201-1215
    • /
    • 2015
  • 안드로이드 환경에서 악의적인 역공학으로부터 APK(Android application PacKage)를 보호하기 위해 다양한 난독화 도구가 이용되고 있다. 그러나 이런 난독화 도구는 악의적인 공격자에 의해 악용될 수 있으며, 실제로 많은 공격자들이 안티 바이러스 등에 의한 탐지를 우회하기 위해 악성 APK를 난독화하고 있다. 난독화된 악성 APK는 역난독화가 되지 않으면 그 기능성을 분석하는 것이 어렵기 때문에, 난독화된 악성 APK에 대응하기 위해서는 역난독화 방안이 반드시 요구된다. 본 논문에서는 상용 난독화 도구로 난독화된 APK를 분석하고, 적용된 난독화 기법을 정적으로 식별하고 역난독화할 수 있는 방안을 제안한다. 또한 이를 기반으로 난독화 옵션 식별 및 역난독화가 가능한 자동화된 도구를 구현하여 검증한 결과를 제시한다.

모바일 소프트웨어를 위한 고급수준 난독처리 기법의 전력 소모량 분석 (Power Consumption Analysis of High-Level Obfuscation for Mobile Software)

  • 이진영;장혜영;조성제
    • 한국정보과학회논문지:컴퓨팅의 실제 및 레터
    • /
    • 제15권12호
    • /
    • pp.1008-1012
    • /
    • 2009
  • 난독처리(obfuscation)는 프로그램의 의미를 그대로 유지하면서, 프로그램 코드를 이해/분석하기 어렵게 만드는 기술로, 악의적인 역공학(reverse engineering) 공격으로부터 소프트웨어를 방어하는 가장 효과적인 기술 중의 하나이다. 하지만, 난독처리로 인해 원본 프로그램에 비해 난독처리된 프로그램의 코드 크기 및 실행 시간이 증가될 수 있다. 모바일 기기에서 코드크기 및 수행시간 증가는 전력소모 증가 등 자원낭비로 이어진다. 본 논문에서는 ARM 프로세서가 장착된 임베디드 보드 상에서 몇 가지 고급수준 난독처리 알고리즘을 구현하고, 각 난독처리 알고리즘의 유효성 및 전력 소모량을 분석하여, 프로그램의 특성에 따라 실행시간이나 전력소모 면에서 효율적인 난독처리 기법이 있음을 보였다.