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

검색결과 63건 처리시간 0.032초

RPFuzzer: A Framework for Discovering Router Protocols Vulnerabilities Based on Fuzzing

  • Wang, Zhiqiang;Zhang, Yuqing;Liu, Qixu
    • KSII Transactions on Internet and Information Systems (TIIS)
    • /
    • 제7권8호
    • /
    • pp.1989-2009
    • /
    • 2013
  • How to discover router vulnerabilities effectively and automatically is a critical problem to ensure network and information security. Previous research on router security is mostly about the technology of exploiting known flaws of routers. Fuzzing is a famous automated vulnerability finding technology; however, traditional Fuzzing tools are designed for testing network applications or other software. These tools are not or partly not suitable for testing routers. This paper designs a framework of discovering router protocol vulnerabilities, and proposes a mathematical model Two-stage Fuzzing Test Cases Generator(TFTCG) that improves previous methods to generate test cases. We have developed a tool called RPFuzzer based on TFTCG. RPFuzzer monitors routers by sending normal packets, keeping watch on CPU utilization and checking system logs, which can detect DoS, router reboot and so on. RPFuzzer' debugger based on modified Dynamips, which can record register values when an exception occurs. Finally, we experiment on the SNMP protocol, find 8 vulnerabilities, of which there are five unreleased vulnerabilities. The experiment has proved the effectiveness of RPFuzzer.

유사 HAL 함수 탐색을 통한 펌웨어 퍼징 기법 (Firmware Fuzzing Method through Pseudo-HAL Identification)

  • 정세연;황은비;조영필;권태경
    • 정보보호학회논문지
    • /
    • 제32권6호
    • /
    • pp.1121-1125
    • /
    • 2022
  • 펌웨어 취약점을 찾기 위한 퍼징 기법인 HAL-Fuzz는 MCU 벤더에서 제공하는 하드웨어 추상 계층의 HAL 함수를 이용하는 효율적인 기법이다. 하지만 정확한 HAL 함수를 사용하지 않는 대부분의 펌웨어는 다룰 수가 없다. 본 논문에서는 유사 HAL 함수 탐색이라는 새로운 방식을 제안하고 HAL-Fuzz의 퍼징 가용성을 높이고자 한다. 실험을 통해 HAL 함수뿐만 아니라 개발자 구현 유사 HAL 함수도 탐색하였으며 퍼징이 가능함을 확인하였다.

단방향 프로토콜 소프트웨어 퍼징을 제공하기 위한 퍼징 상태 판단 기능 설계 (Design of Fuzzing Status Judgment Function for One-way Protocol Software Fuzzing)

  • 안개일;최양서
    • 한국정보처리학회:학술대회논문집
    • /
    • 한국정보처리학회 2020년도 추계학술발표대회
    • /
    • pp.374-375
    • /
    • 2020
  • 소프트웨어 보안 취약점을 찾는 기술로서 퍼징(Fuzzing)이 있다. 기존 퍼징 기술은 요구-응답형 프로토콜을 사용하는 소프트웨어를 대상으로 하기 때문에 응답 메시기가 없는 단방향 프로토콜에서는 퍼징을 수행할 수 없는 문제가 있다. 본 논문에서는 단방향 프로토콜 소프트웨어에서 퍼징을 수행하는데 필요한 퍼징 상태 판다 기능을 정의하고 설계한다.

퍼징 도구들의 비교 분석을 통한 효율적인 웹 브라우저 퍼징 전략 (An Efficient Web Browser Fuzzing Strategy through Comparative Analysis of Fuzzers)

  • 박영웅;이준혁;조성제
    • 한국정보과학회:학술대회논문집
    • /
    • 한국정보과학회 2011년도 한국컴퓨터종합학술대회논문집 Vol.38 No.1(A)
    • /
    • pp.328-331
    • /
    • 2011
  • 최근 소프트웨어 결함이나 보안 취약점을 분석하고 발견하기 위해 퍼징(fuzzing)에 대한 연구가 활발하다. 퍼징은 무작위 입력 데이터를 대상 프로그램에 주입하여 그 결과를 관찰하면서 결함을 탐지하는 테스팅 방법이다. 본 논문에서는 웹 브라우저를 대상으로 기존의 '변이 기반의 덤 퍼징'(Mutation based Dumb Fuzzing) 방식과 '생성 기반의 지능적 퍼징'(Generation based Smart Fuzzing) 방식을 비교 분석하였다. 그리고 실험을 통해 기존의 퍼징 도구들의 성능을 측정하고 이를 바탕으로 브라우저 퍼징에서' 변이 기반의 덤 퍼징' 이 웹 브라우저의 결함 및 취약점 탐지에 더 효율적이라는 것을 보인다. 그리고 웹 브라우저를 대상으로 '변이 기반의 덤 퍼징' 방식을 적용할 때, 코드 실행 커버리지를 고려한 다수의 입력 템플릿 확보와 다수의 템플릿들에 대한 구성 요소들을 랜덤하게 섞어서 변이를 하는 효과적인 브라우저 퍼징 전략을 제안한다.

소프트웨어 취약성 평가를 위한 길이기반 파일 퍼징 테스트 슈트 축약 알고리즘 (A Length-based File Fuzzing Test Suite Reduction Algorithm for Evaluation of Software Vulnerability)

  • 이재서;김종명;김수용;윤영태;김용민;노봉남
    • 정보보호학회논문지
    • /
    • 제23권2호
    • /
    • pp.231-242
    • /
    • 2013
  • 최근 소프트웨어의 취약점을 찾기 위해 퍼징과 같은 자동화된 테스팅 방법을 이용한 많은 연구가 진행되고 있다. 퍼징은 소프트웨어의 입력을 특정 규칙에 따라 자동으로 변형시켜 소프트웨어의 오작동 여부를 탐지하고 그 결과로부터 취약점을 발견하는 것이다. 이 때 소프트웨어에 입력되는 입력 값, 즉 테스트 케이스에 따라 취약점을 발견할 수 있는 확률이 달라지기 때문에 취약점 발견 확률을 높이기 위해서는 테스트 케이스의 집합인 테스트 슈트 축약 문제를 해결하여야 한다. 이에 본 논문에서는 파일과 같은 대용량 테스트 케이스를 대상으로 효과적으로 테스트 슈트 축약 문제를 해결할 수 있는 방법을 제안하고자 한다. 이를 위해 기존 연구에서 주로 사용되었던 커버리지와 중복도 이외에 새로운 척도인 테스트 케이스의 길이를 제시하고, 본 척도에 적합한 축약 알고리즘을 설계하였다. 실험을 통해 본 논문에서 제안한 알고리즘이 기존 연구의 알고리즘보다 높은 크기와 길이 축약율을 나타냄을 보임으로써 제안하는 알고리즘의 효율성을 증명할 수 있었다.

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

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

ROAD(RPC Object vulnerability Automatic Detector) 도구의 설계 및 구현 (A Design and Implementation of ROAD(RPC Object vulnerability Automatic Detector))

  • 양진석;김태균;김형천;홍순좌
    • 정보보호학회논문지
    • /
    • 제17권2호
    • /
    • pp.51-59
    • /
    • 2007
  • 소프트웨어 테스팅은 소프트웨어의 버그 및 잘못 구현된 부분 등을 찾아내는 과정을 통해 품질을 평가하는 방법이다. 퍼징(fuzzing)은 소프트웨어 테스팅 기술의 여러 가지 방법 중 하나로써 난수를 발생시켜 테스팅하고자 하는 소프트웨어에 주입하는 방법으로써 보안에 중점을 두어 테스팅하는 방법이다. 퍼징은 단위 시간 당 테스팅 효율성, 비용 절감 등 여러 가지 장점을 이유로 다수 사용되고 있으나 퍼징 수행 시 전문가의 개입이 많은 단점이 존재한다. 예를 들면 해당 소프트웨어가 사용하는 프로토콜 혹은 퍼징 대상이 파일인 경우 파일 포맷에 대한 분석을 수행한 후에야 가능하기 때문에 테스팅 기간이 길어질 수 있으며 퍼징 도구를 이용해도 퍼징 대상의 프로토콜 및 포맷에 대한 분석이 난해한 경우 테스팅 대상에 대한 퍼징을 수행하지 못할 수도 있다. 본 논문에서 설계한 ROAD는 RPC 기반 프로토콜 및 소프트웨어를 자동으로 퍼징할 수 있는 도구이다. RPC는 다수의 취약점이 발견된 구성요소로써 본 논문에서는 이를 자동으로 퍼징할 수 있는 도구의 구현을 목표로 하였다. 기존의 도구 중 RPC 기반 소프트웨어를 퍼징하는 도구가 존재하지만 자동화되어 있지 않을 뿐만 아니라 소프트웨어에 따라 도구를 수정해야만 사용이 가능하다. 본 논문은 이러한 단점을 극복하고자 자동화 도구를 설계 및 구현하여 실제 RPC 기반 프로토콜 및 소프트웨어에 적용하였다. 또한 실험을 통해 도구의 효용성을 검증하였다.

ER-Fuzz : Conditional Code Removed Fuzzing

  • Song, Xiaobin;Wu, Zehui;Cao, Yan;Wei, Qiang
    • KSII Transactions on Internet and Information Systems (TIIS)
    • /
    • 제13권7호
    • /
    • pp.3511-3532
    • /
    • 2019
  • Coverage-guided fuzzing is an efficient solution that has been widely used in software testing. By guiding fuzzers through the coverage information, seeds that generate new paths will be retained to continually increase the coverage. However, we observed that most samples follow the same few high-frequency paths. The seeds that exercise a high-frequency path are saved for the subsequent mutation process until the user terminates the test process, which directly affects the efficiency with which the low-frequency paths are tested. In this paper, we propose a fuzzing solution, ER-Fuzz, that truncates the recording of a high-frequency path to influence coverage. It utilizes a deep learning-based classifier to locate the high and low-frequency path transfer points; then, it instruments at the transfer position to promote the probability low-frequency transfer paths while eliminating subsequent variations of the high-frequency path seeds. We implemented a prototype of ER-Fuzz based on the popular fuzzer AFL and evaluated it on several applications. The experimental results show that ER-Fuzz improves the coverage of the original AFL method to different degrees. In terms of the number of crash discoveries, in the best case, ER-Fuzz found 115% more unique crashes than did AFL. In total, seven new bugs were found and new CVEs were assigned.

안드로이드 기반 문서 어플리케이션의 퍼징 방법론 연구 (Method of Fuzzing Document Application Based on Android Devices)

  • 조제경;류재철
    • 정보보호학회논문지
    • /
    • 제25권1호
    • /
    • pp.31-37
    • /
    • 2015
  • 최근 사이버공격의 형태가 다양해지면서 악성코드를 직접 유포하는 대신 문서나 멀티미디어 파일을 유포하고 그 파일을 처리하는 과정에서 발생되는 취약점을 활용하는 사례가 빈번하게 보고되고 있다. 이 공격은 문서를 편집하거나 멀티미디어 파일을 재생하는 소프트웨어가 특정한 입력을 처리하는 과정에서 내재된 취약점이 나타날 수 있다는 점에 근거한다. 비정상 데이터를 임의로 생성하여 입력하는 퍼징(Fuzzing) 기법은 이러한 취약점을 찾아내기 위한 것이다. 본 논문에서는 문서 어플리케이션에 대한 기존의 퍼징 도구가 PC 환경에서 동작하는 한계를 해결하기 위하여 모바일 환경에 적용할 수 있는 퍼징 도구를 제안한다. 제안된 퍼징 도구는 모바일 문서 어플리케이션에서의 취약점을 효과적으로 발견할 수 있으며, 이를 통하여 모바일 환경에서의 APT 공격에 대응하는 도구로도 유용하게 사용될 수 있다.

임베디드 디바이스 펌웨어의 웹 인터페이스 취약점 식별을 위한 에뮬레이션 기반 퍼징 기법 (Emulation-Based Fuzzing Techniques for Identifying Web Interface Vulnerabilities in Embedded Device Firmware)

  • 허정민;김지민;지청민;홍만표
    • 정보보호학회논문지
    • /
    • 제29권6호
    • /
    • pp.1225-1234
    • /
    • 2019
  • 임베디드 디바이스의 대중화로 인해 펌웨어의 보안은 더욱 중요해지고 있다. 유무선 공유기와 같은 네트워크 장비는 내재된 펌웨어의 웹 인터페이스 취약점을 통해 외부의 공격자로부터 피해를 받을 수 있기 때문에 빠르게 찾아내어 제거해야 한다. 이전 연구인 Firmadyne 프레임워크는 펌웨어를 에뮬레이션 한 뒤 취약점을 찾아내기 위한 동적 분석 방법을 제안한다. 그러나 이는 도구에서 정의된 분석 방법대로만 취약점 점검을 수행하므로 찾을 수 있는 취약점의 범위가 한정되어 있다. 본 논문에서는 소프트웨어 보안 테스트 기술 중 하나인 퍼징을 통해 에뮬레이션 기반 환경에서의 퍼징 테스트를 수행한다. 또한 효율적인 에뮬레이션 기반 퍼징을 위해 Fabfuzz 도구를 제안한다. 실험을 통해 확인한 결과 기존 도구에서 식별했던 취약점뿐만 아니라 다른 유형의 취약점도 발견할 수 있다.