• 제목/요약/키워드: 난독화

검색결과 103건 처리시간 0.03초

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

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

임베디드 시스템의 보안성 향상을 위한 LLVM 기반의 소스코드 난독화 도구 설계 (Design of Source Code Obfuscation Tool based LLVM to improve security in Embedded System)

  • 하재현;곽동규
    • 한국정보처리학회:학술대회논문집
    • /
    • 한국정보처리학회 2022년도 추계학술발표대회
    • /
    • pp.201-203
    • /
    • 2022
  • 임베디드 시스템이 일상생활 및 각종 산업에 밀접하게 연관되어 개인 정보 및 국가 기술 등 지적 자산에 대한 보안의 필요성이 나타나고 있다. 이러한 문제점은 임베디드 시스템에 들어가는 소프트웨어의 역공학으로부터 초래된다. 따라서 본 논문은 소스 코드에 대해 제어 흐름 평탄화라는 난독화 알고리즘을 설계하는 방법을 제안한다. 이는 독자적으로 작성된 난독화 알고리즘이기 때문에 오픈 소스로 공개되어져 있는 다른 난독화 도구들에 비해 안전한 특징을 가진다. 제어 흐름 평탄화는 프로그램의 기능을 유지하면서 소스 코드의 정적 분석을 어렵게 하는 기법으로, 데이터를 탈취하려는 악의적인 행위를 사전에 예방할 수 있다. 본 논문에서 제안하는 제어 흐름 평탄화 알고리즘은 하나의 기본 블록으로 이루어진 단순한 소스 코드를 여러 개의 기본 블록으로 분할하고, 조건문을 통해 연결하는 방법을 사용하여 알고리즘의 복잡도를 높였다. 이처럼 새롭게 작성된 Pass를 통해 소스코드 난독화를 적용시켜 임베디드 시스템의 보안성을 향상시킬 수 있다.

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의 옵션이 적용되어 난독화 된 코드의 특징을 분석하고 이의 역난독화 알고리즘을 제시하고자 한다.

모바일 난독화 기술 동향

  • ;정진혁;이정현
    • 정보와 통신
    • /
    • 제29권8호
    • /
    • pp.65-71
    • /
    • 2012
  • 스마트폰을 비롯한 다양한 모바일 기기 보급이 급속도로 증가하고 있고, 이들 기기에 저장된 각종 개인정보에 대한 불법적 접근을 노라는 악성 앱들로 인한 피해가 발생하고 있다. 이들 위변조 앱 출현의 원인 중의 하나는 앱 실행화일의 역컴파일이 쉽기 때문이다. 앱 역컴파일이 쉽게 이루어지지 않도록 하기 위한 기술 중의 하나가 코드 난독화 기술이다. 따라서, 본 고에서는 일반적인 난독화 기술들을 분류하고, 현존하는 안드로이드, 아이폰, 윈도폰에 적용가능한 난독화 도구들의 기능에 대하여 조사 분석한다.

가상화를 이용하여 난독화된 바이너리의 제어 흐름 재건 (Control Flow Reconstruction from Virtualization-Obfuscated Binaries)

  • 황준형;한태숙
    • 정보과학회 논문지
    • /
    • 제42권1호
    • /
    • pp.44-53
    • /
    • 2015
  • 제어 흐름 정보는 프로그램이 실행되는 구조를 담고 있어 소프트웨어를 분석할 때 기준이 되고 소프트웨어를 서로 비교할 때에도 유용하게 쓰인다. 가상화를 이용한 난독화는 실제 기계의 명령을 구조가 숨겨진 가상 기계의 명령으로 바꾸어 프로그램의 제어 흐름 정보를 감춘다. 난독화가 적용된 바이너리에서는 가상 기계의 명령을 실행하는 인터프리터의 구조만 직접 드러난다. 이 논문에서는 가상화로 난독화된 바이너리를 실행해서 수행되는 명령들을 기록한 트레이스를 이용해 숨겨져 있는 프로그램의 본질적인 제어 흐름을 다시 만들어내는 방법을 제안한다. 트레이스를 기계 명령으로 이루어진 문자열로 보고 생성되는 트레이스들을 모두 받아들일 수 있는 오토마톤을 찾은 다음, 해당되는 제어 흐름 그래프를 만든다. 기계 명령의 수행은 오토마톤의 상태 전이에 대응하며, 이는 제어 흐름 그래프의 간선에 대응한다. 제안한 방법을 상용 가상화 도구로 난독화된 바이너리에 적용해 보았으며, 원본 바이너리와 유사한 제어 흐름 그래프가 생성되는 것을 확인하였다.

후킹 기법을 이용한 난독화 자바 스크립트 자동 해독 및 악성 웹 사이트 탐지 기술 (Automatic Javascript de-obfuscation and Detection of Malicious WebSite using Hooking Method)

  • 오주형;임채태;정현철
    • 한국정보처리학회:학술대회논문집
    • /
    • 한국정보처리학회 2010년도 추계학술발표대회
    • /
    • pp.1202-1205
    • /
    • 2010
  • 무작위 SQL 삽입 공격 등을 통해 웹서버 해킹 사례가 꾸준히 증가하고 있으며, 대부분의 해킹된 웹서버는 난독화된 자바 스크립트 코드가 웹페이지에 삽입되어 악성코드 경유/유포지로 악용되고 있다. 본 논문에서는 난독화된 자바 스크립트 복원 및 취약한 ActiveX 생성에 사용되는 주요 함수에 대해 후킹 기술을 적용한 브라우저를 이용해서 난독화된 스크립트를 자동으로 해독하고, 악성코드 경유/유포지로 악용되는 웹 서버를 탐지할 수 있는 기술을 제안한다. 또한 제안 기술을 프로토타입 시스템으로 구현하고, 악성 URL 공유 사이트를 통해 수집한 난독화된 자바 스크립트 샘플 분석을 통해 제안한 기술이 높은 악성코드 경유/유포지 탐지율을 보이는 것을 증명한다.

안드로이드 콘텐츠 저작권 침해 방지를 위한 서버 기반 리소스 난독화 기법의 설계 및 구현 (Design and Implementation of Server-based Resource Obfuscation Techniques for Preventing Copyrights Infringement to Android Contents)

  • 박희완
    • 한국콘텐츠학회논문지
    • /
    • 제16권5호
    • /
    • pp.13-20
    • /
    • 2016
  • 소프트웨어는 대부분 바이너리 파일 포맷으로 배포되기 때문에 역공학 분석이 쉽지 않다. 그러나 안드로이드는 자바를 기반으로 하며 가상머신 위에서 동작한다. 따라서 안드로이드 역시 자바와 유사하게 역공학 도구에 의해서 쉽게 분석될 수 있다. 이 문제를 극복하기 위해서 다양한 난독화 기법이 제안되었다. 안드로이드 환경에서는 안드로이드 SDK에 포함되어 배포되는 난독화 도구인 프로가드(Proguard)가 가장 널리 사용된다. 프로가드는 자바 소스 코드를 역공학 분석으로부터 보호할 수 있다. 그러나 이미지, 사운드, 데이터베이스와 같은 리소스를 보호하는 기능은 가지고 있지 않다. 본 논문에서는 안드로이드 앱의 리소스를 보호할 수 있는 리소스 난독화 기법을 제안하고 구현하였다. 본 논문에서 제안하는 리소스 난독화 기법을 적용하면 효과적으로 리소스 도용을 예방할 수 있을 것으로 기대한다.

난독화에 강인한 안드로이드 앱 버스마킹 기법 (Android App Birthmarking Technique Resilient to Code Obfuscation)

  • 김동진;조성제;정영기;우진운;고정욱;양수미
    • 한국통신학회논문지
    • /
    • 제40권4호
    • /
    • pp.700-708
    • /
    • 2015
  • 소프트웨어 버스마크는 한 프로그램이 보유한 고유한 특징으로 해당 프로그램을 식별하는데 사용될 수 있다. 소프트웨어 버스마크 기반으로 자바 프로그램의 도용을 탐지하는 연구들이 진행되어 왔다. 안드로이드 앱의 경우, 앱 보호를 위해 난독화 방법이 제공되고 있다. 그러나 공격자들도 자신이 도용한 프로그램을 감추기 위해 난독화를 적용하기도 한다. 특정 앱에 난독화를 적용하면 앱의 특징정보가 변경될 수 있다. 따라서 난독화를 고려한 버스마크 기반의 앱 도용 탐지 기법에 대한 연구가 필요하다. 본 논문에서는 난독화에 강인한 안드로이드 앱 버스마크 및 이에 기반한 앱 도용 탐지 기법을 제안한다. 몇몇 난독화 도구들을 분석하여 효과적인 버스마크로 메서드의 매개변수 및 반환값의 자료형을 선정하였고, 비교 대상 앱들로부터 해당 버스마크를 추출하여 이들 간의 유사도를 측정하였다. 여러 앱들을 대상으로 난독화 적용 전/후의 앱 유사성을 분석한 결과, 제안한 버스마크가 난독화가 적용된 앱에 대한 도용 탐지에도 효과적임을 확인하였다.

ConfuserEx의 난독화 복구 자동화 시스템 구축 연구 (A Study on Implementing an Automated Tool for De-Obfuscating a ConfuserEx)

  • 이재휘;박영석;김동현;허규
    • 정보보호학회논문지
    • /
    • 제33권1호
    • /
    • pp.129-137
    • /
    • 2023
  • 매크로 프로그램을 이용하여 포털 사이트의 컨텐츠를 생산하거나 변경하려는 시도는 계속해서발생하고있으며, 국내 포털 사이트인 네이버 또한 이러한 시도에 대응하기 위해 프로그램을 확보하고 분석할 수 있도록노력하고있다. 그러나 확보한 프로그램에 난독화가 적용된 경우가 있어, 난독화에 대응하는 방안 또한 필요한것으로보인다. 본 논문에서는 확보한 프로그램에 적용된 난독화 도구 중 높은 비율을 차지한 ConfuserEx에 대해분석하고, 실행파일에 적용된 분석방해 기능을 자동으로 해제하는 시스템을 제안해 난독화 해제에 소비되는 시간을단축할수있도록 한다.

역난독화를 위한 바이너리 프로그램 슬라이싱 (Program Slicing for Binary code Deobfuscation)

  • 목성균;전현구;조은선
    • 정보보호학회논문지
    • /
    • 제27권1호
    • /
    • pp.59-66
    • /
    • 2017
  • 해커들이 자신들이 만든 악성코드의 분석을 어렵게 하기 위하여 코드 난독화 기법을 적용하고 있다. 최근의 난독화 기법은 가상화 난독화 기법을 통해 원래의 코드를 바이트코드로 만들고 가상머신이 이를 실행시키는 방식으로, 실행시키기 전에는 원래의 코드를 알 수가 없다. 프로그램 슬라이싱은 프로그램 분석기술 중 하나로 슬라이싱 기준을 정하고 그와 관련된 문장을 추출해내는 기술이다. 본 논문에서는 슬라이싱 기법을 사용하여 난독화를 해제하는 방법을 제시한다.