• Title/Summary/Keyword: 바이너리 분석

Search Result 129, Processing Time 0.025 seconds

Anti-Reverse Engineering of Drone Firmware through Obfuscation Technique (드론 펌웨어 역공학 방지를 위한 난독화 연구)

  • Dong-Hyeon Yeon;Dae-Hee Jang
    • Proceedings of the Korea Information Processing Society Conference
    • /
    • 2024.05a
    • /
    • pp.205-206
    • /
    • 2024
  • 드론 산업의 급속한 성장과 함께, 드론 펌웨어에 대한 보안이 중요한 이슈로 대두되고 있다. 본 연구는 드론 펌웨어를 보호하기 위한 효과적인 방법 중 하나로 소프트웨어 난독화 기술을 제안한다. 난독화 기법은 소스 코드나 바이너리를 의도적으로 복잡하게 변형시켜, 외부의 불법적인 분석 및 변조를 어렵게 만드는 방법이다. 이 연구는 드론 펌웨어에 대해 난독화 기법을 적용하고, 그 효과를 평가함으로써 드론 시스템의 보안 강화에 기여하고자 한다.

ANPA : L3 Protocol Analyzer for LTE-Advanced Network (ANPA : LTE-Advanced 망을 위한 L3 프로토콜 분석기)

  • Pi, Jun-Il;Lee, Nak-Gyu;Bok, Kyoung-Soo;Yoo, Jae-Soo
    • Proceedings of the Korean Information Science Society Conference
    • /
    • 2011.06d
    • /
    • pp.141-144
    • /
    • 2011
  • 최근 무선통신의 발전과 스마트 폰 사용자의 급격한 증가로 인하여 멀티미디어 콘텐츠에 대한 사용이 증가되면서 트래픽 량과 네트워크 속도 증가에 대한 요구가 급속히 증대되고 있다. 이를 위해 LTE, LTE-Advanced, Mobile WiMAX 등 차세대 이동통신 플랫폼 및 연관 기술들이 많이 제안되고 있다. 이에 따라 차세대 이동 통신 프로토콜 개발 단계부터 안정화 단계까지 프로토콜 검증 및 분석을 위한 프로토콜 분석기가 필요하게 되었다. 본 논문에서는 LTE-Advanced 망에서 L3 프로토콜들을 분석할 수 있는 분석기를 제안한다. 제안하는 분석기는 연동 메시지를 XML 메타데이터로 기술하여 분석 시 활용하며, ASN.1 인코딩된 연동 메시지나 바이너리 인코딩된 메시지를 디코딩하여 분석할 수 있는 기법을 적용하였다. 자체 설계된 LTE-Advanced 망과의 연동 테스트를 통해 본 시스템을 검증하였다.

FunRank: Finding 1-Day Vulnerability with Call-Site and Data-Flow Analysis (FunRank: 함수 호출 관계 및 데이터 흐름 분석을 통한 공개된 취약점 식별)

  • Jaehyu Lee;Jihun Baek;Hyungon Moon
    • Journal of the Korea Institute of Information Security & Cryptology
    • /
    • v.33 no.2
    • /
    • pp.305-318
    • /
    • 2023
  • The complexity of software products led many manufacturers to stitch open-source software for composing a product. Using open-source help reduce the development cost, but the difference in the different development life cycles makes it difficult to keep the product up-to-date. For this reason, even the patches for known vulnerabilities are not adopted quickly enough, leaving the entire product under threat. Existing studies propose to use binary differentiation techniques to determine if a product is left vulnerable against a particular vulnerability. Despite their effectiveness in finding real-world vulnerabilities, they often fail to locate the evidence of a vulnerability if it is a small function that usually is inlined at compile time. This work presents our tool FunRank which is designed to identify the short functions. Our experiments using synthesized and real-world software products show that FunRank can identify the short, inlined functions that suggest that the program is left vulnerable to a particular vulnerability.

A Disassembly Technique of ARM Position-Independent Code with Value-Set Analysis Having Symbol-Form Domain (기호 형태의 값-집합 분석을 이용한 ARM 위치 독립적 코드의 정교한 역어셈블리 기법)

  • Ha, Dongsoo;Oh, Heekuck
    • Journal of the Korea Institute of Information Security & Cryptology
    • /
    • v.28 no.5
    • /
    • pp.1233-1246
    • /
    • 2018
  • With the proliferation of smart mobiles, disassembly techniques for position-independent code (PIC) composed of ARM architecture instructions in computer security are becoming more important. However, existing techniques have been studied on x86 architecture and are focused on solving problems of non-PIC and generality. Therefore, the accuracy of the collected address information is low to apply to advanced security technologies such as binary measurement. In this paper, we propose a disassembly technique that reflects the characteristics of PIC composed of ARM instructions. For accuratly collecting traceable addresses, we designed value-set analysis having symbol-form domain. To solve the main problem of disassembly, we devised a heuristic using the characteristics of the code generated by the compiler. To verify the accuracy and effectiveness of our technique, we tested 669 shared libraries and executables in the Android 8.1 build, resulting in a total disassembly rate of 91.47%.

Fuzzing Method for Web-Assembly Module Safety Validation (웹 어셈블리 모듈 안전성 검증을 위한 퍼징 방법)

  • Park, Sunghyun;Kang, Sangyong;Kim, Yeonsu;Noh, Bongnam
    • Journal of the Korea Institute of Information Security & Cryptology
    • /
    • v.29 no.2
    • /
    • pp.275-285
    • /
    • 2019
  • Web-assemblies are a new binary standard designed to improve the performance of Web browser JavaScript. Web-assemblies are becoming a new web standard that can run at near native speed with efficient execution, concise representation, and code written in multiple languages. However, current Web-assembly vulnerability verification is limited to the Web assembly interpreter language, and vulnerability verification of Web-assembly binary itself is insufficient. Therefore, it is necessary to verify the safety of the web assembly itself. In this paper, we analyze how to operate the web assembly and verify the safety of the current web-assembly. In addition, we examine vulnerability of existing web -assembly and analyze limitations according to existing safety verification method. Finally, we introduce web-assembly API based fuzzing method to overcome limitation of web-assembly safety verification method. This verifies the effectiveness of the proposed Fuzzing by detecting crashes that could not be detected by existing safety verification tools.

A detection mechanism for Jump-Oriented Programming at binary level (바이너리 수준에서의 Jump-Oriented Programming에 대한 탐지 메커니즘)

  • Kim, Ju-Hyuk;Lee, Yo-Ram;Oh, Soo-Hyun
    • Journal of the Korea Institute of Information Security & Cryptology
    • /
    • v.22 no.5
    • /
    • pp.1069-1078
    • /
    • 2012
  • It is known that memory has been frequently a target threatening the computer system's security while attacks on the system utilizing the memory's weakness are actually increasing. Accordingly, various memory protection mechanisms have been studied on OS while new attack techniques bypassing the protection systems have been developed. Especially, buffer overflow attacks have been developed as attacks of Return to Library or Return-Oriented Programing and recently, a technique bypassing the countermeasure against Return-Oriented Programming proposed. Therefore, this paper is intended to suggest a detection mechanism at binary level by analyzing the procedure and features of Jump-Oriented Programming. In addition, we have implemented the proposed detection mechanism and experimented it may efficiently detect Jump-Oriented Programming attack.

Improved Original Entry Point Detection Method Based on PinDemonium (PinDemonium 기반 Original Entry Point 탐지 방법 개선)

  • Kim, Gyeong Min;Park, Yong Su
    • KIPS Transactions on Computer and Communication Systems
    • /
    • v.7 no.6
    • /
    • pp.155-164
    • /
    • 2018
  • Many malicious programs have been compressed or encrypted using various commercial packers to prevent reverse engineering, So malicious code analysts must decompress or decrypt them first. The OEP (Original Entry Point) is the address of the first instruction executed after returning the encrypted or compressed executable file back to the original binary state. Several unpackers, including PinDemonium, execute the packed file and keep tracks of the addresses until the OEP appears and find the OEP among the addresses. However, instead of finding exact one OEP, unpackers provide a relatively large set of OEP candidates and sometimes OEP is missing among candidates. In other words, existing unpackers have difficulty in finding the correct OEP. We have developed new tool which provides fewer OEP candidate sets by adding two methods based on the property of the OEP. In this paper, we propose two methods to provide fewer OEP candidate sets by using the property that the function call sequence and parameters are same between packed program and original program. First way is based on a function call. Programs written in the C/C++ language are compiled to translate languages into binary code. Compiler-specific system functions are added to the compiled program. After examining these functions, we have added a method that we suggest to PinDemonium to detect the unpacking work by matching the patterns of system functions that are called in packed programs and unpacked programs. Second way is based on parameters. The parameters include not only the user-entered inputs, but also the system inputs. We have added a method that we suggest to PinDemonium to find the OEP using the system parameters of a particular function in stack memory. OEP detection experiments were performed on sample programs packed by 16 commercial packers. We can reduce the OEP candidate by more than 40% on average compared to PinDemonium except 2 commercial packers which are can not be executed due to the anti-debugging technique.

Analysis of a Buffer Overrun Vulnerability of JPEG on MS Windows (MS Windows에서 JPEG 관련 버퍼 오버런의 취약성 분석)

  • Oh Hyunsoo;Chang Hye-Young;Cho Seongje;Kim Hong-Guen
    • Proceedings of the Korean Information Science Society Conference
    • /
    • 2005.07a
    • /
    • pp.139-141
    • /
    • 2005
  • 본 논문에서는 JPEG 파일의 구조를 먼저 살펴하고, MS Windows 운영체제 상에서 비정상적인 JPEG 파일을 접근(open)할 때 발생할 수 있는 버퍼 오버런 취약성(MS04-028)을 재연하여 분석한다. JPEG 파일의 헤더에 코멘트(comment) 부분이 있을 경우 길이 필드가 잘못되어 있고 JPEG 파일의 몸체에 쉘코드(cmd.exe) 생성부분을 가지고 있을 경우, 버퍼(heap) 오버런 공격이 발생되어 예기치 못한 결과들이 발생 할 수 있다. 본 논문에서는 디버거(WinDBG) 및 역공학 도구(IDAPro)를 이용하여, 이러한 JPEG 파일 관련 취약성을 분석하면서 바이너리 코드만 주어진 경우의 취약성 분석 절차를 이해하고 보안 결함 부분을 추적하는 연구를 수행한다.

  • PDF

A Study on Network Based Light-weight Botnet Detection System (네트워크 기반의 경량 봇넷 탐지 시스템에 관한 연구)

  • Kang, Dong-Wan;Im, Chae-Tae;Jung, Hyun-Chul
    • Proceedings of the Korea Information Processing Society Conference
    • /
    • 2010.11a
    • /
    • pp.1122-1125
    • /
    • 2010
  • 최근 봇넷은 금전적 이득을 원하는 범죄 집단에 의해 사이버 공격의 수단으로서 크게 확산되고 있다. 봇넷의 탐지는 이전부터 꾸준히 연구되었지만, 구성과 기능이 점차 진화되고 있는 봇넷을 탐지하기에는 큰 어려움이 따르고 있다. 봇넷의 탐지는 호스트 기반의 정적인 악성 코드 분석이나 네트워크 트래픽 분석등 어떠한 특정 시스템에 의존해서는 효율적인 탐지를 기대하기 어렵기 때문에 다양한 정보를 종합하여 탐지하여야 한다. 본 연구에서는 기존에 알려진 봇넷 정보와 악성 봇 바이너리 분석을 통해 알려진 정보와 네트워크 기반의 탐지 정보를 분석하여 전체적인 봇넷의 구성을 탐지할 수 있는 네트워크 기반의 경량 봇넷 탐지 시스템을 제안한다. 제안된 탐지 시스템은 대규모의 네트워크 환경에서도 단편적으로 알려진 봇넷의 부분 정보를 기반으로 전체적인 봇넷의 구성을 탐지할 수 있다.

Design and Implementation of An Obfuscation Tool for Preventing the Theft of Android Resources (안드로이드 리소스 도용 방지를 위한 난독화 도구의 설계 및 구현)

  • Park, Heewan;Kim, Heung-Soo
    • Proceedings of the Korean Society of Computer Information Conference
    • /
    • 2014.01a
    • /
    • pp.93-97
    • /
    • 2014
  • 소프트웨어는 대부분 바이너리 형태로 배포되기 때문에 역공학 분석이 쉽지 않다. 그러나 안드로이드는 자바를 기반으로 한다. 자바는 클래스 파일의 형태로 배포되는데 클래스 파일은 자바 소스 프로그램의 정보를 대부분 유지하고 있기 때문에 역공학 기술을 적용하기가 타 언어에 비해 쉽다. 이 문제에 대처하기 위해서 프로그램의 기능을 그대로 유지하고, 프로그램을 분석하기 어려운 형태로 변환하는 다양한 난독화 방법이 제안되었다. 안드로이드 환경에서는 안드로이드 SDK와 함께 배포되는 난독화 도구인 프로가드(Proguard)가 가장 널리 사용된다. 그러나 프로가드는 문자열 난독화를 기능을 제공하지 않는다. 본 논문에서는 프로가드의 한계를 보완할 수 있는 문자열 난독화 기법을 제안하고 구현하였다. 본 논문에서 제안하는 문자열 난독화 기법을 먼저 소스 코드에 적용하고, 이후 프로가드의 난독화 기능을 추가로 사용한다면 안드로이드 프로그램을 역공학 분석으로부터 보호하는 효과적인 방법으로 사용될 수 있을 것이다.

  • PDF