• 제목/요약/키워드: hybrid fuzzing

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

EPfuzzer: Improving Hybrid Fuzzing with Hardest-to-reach Branch Prioritization

  • Wang, Yunchao;Wu, Zehui;Wei, Qiang;Wang, Qingxian
    • KSII Transactions on Internet and Information Systems (TIIS)
    • /
    • 제14권9호
    • /
    • pp.3885-3906
    • /
    • 2020
  • Hybrid fuzzing which combines fuzzing and concolic execution, has proved its ability to achieve higher code coverage and therefore find more bugs. However, current hybrid fuzzers usually suffer from inefficiency and poor scalability when applied to complex, real-world program testing. We observed that the performance bottleneck is the inefficient cooperation between the fuzzer and concolic executor and the slow symbolic emulation. In this paper, we propose a novel solution named EPfuzzer to improve hybrid fuzzing. EPfuzzer implements two key ideas: 1) only the hardest-to-reach branch will be prioritized for concolic execution to avoid generating uninteresting inputs; and 2) only input bytes relevant to the target branch to be flipped will be symbolized to reduce the overhead of the symbolic emulation. With these optimizations, EPfuzzer can be efficiently targeted to the hardest-to-reach branch. We evaluated EPfuzzer with three sets of programs: five real-world applications and two popular benchmarks (LAVA-M and the Google Fuzzer Test Suite). The evaluation results showed that EPfuzzer was much more efficient and scalable than the state-of-the-art concolic execution engine (QSYM). EPfuzzer was able to find more bugs and achieve better code coverage. In addition, we discovered seven previously unknown security bugs in five real-world programs and reported them to the vendors.

라이브러리 퍼징의 커버리지 향상 방법 연구 (A Study of Coverage Improvement for Library Fuzzing)

  • 김서영;조민기;김종신;권태경
    • 정보보호학회논문지
    • /
    • 제30권6호
    • /
    • pp.1079-1085
    • /
    • 2020
  • 라이브러리 구현의 결함을 발견하기 위해 동적 분석 방법인 퍼징(fuzzing)이 사용되고 있다. 라이브러리 대상 퍼징은 구현된 함수만 테스트를 할 수 있으므로 더 높은 코드 커버리지를 달성하기 위해서는 구현되지 않은 함수들을 추가로 구현해주어야 한다. 하지만 라이브러리 함수들의 호출 관계를 고려하지 않고 함수를 추가하면 이미 테스트를 수행한 함수가 추가되는 문제가 발생할 수 있다. 본 논문에서는 라이브러리 퍼징의 코드 커버리지 성능을 향상시키기 위한 개선 방법을 제안한다. 먼저, 라이브러리 퍼징의 대상 함수를 효율적으로 추가하기 위해 라이브러리의 함수 호출 그래프 분석하고 구현되지 않은 라이브러리 함수를 추가 구현한다. 그리고 라이브러리의 해결하기 어려운 제약조건을 가진 분기를 탐색하는 방법으로 하이브리드 퍼징을 적용한다. OpenSSL, mbedTLS, Crypto++을 대상으로 실험한 결과, 제안한 방법이 코드 커버리지를 증가에 효과적인 것을 확인하였다.

기계학습 기반 스케줄링 전략을 적용한 최신 퍼징 연구 (A Study of Machine Learning-Based Scheduling Strategy for Fuzzing)

  • 정지우;김태호;권태경
    • 정보보호학회논문지
    • /
    • 제34권5호
    • /
    • pp.973-980
    • /
    • 2024
  • 퍼징은 프로그램을 테스트하기 위해 많은 테스트케이스를 생성하고 예외 상황을 모니터링하는 자동화된 테스팅 기술이다. 최근 퍼징 과정에서 발생하는 다양한 문제를 해결하기 위해 기계학습을 적용한 퍼징 연구가 활발히 제안되고 있지만, 기계학습을 적용한 퍼징 연구에 대한 종합적인 평가는 부족하다. 본 논문에서는 퍼징의 스케줄링 기법에 기계학습을 적용한 최신 연구들을 강화학습 기반과 지도학습 기반 퍼저로 분류하여 분석하였다. 분석된 기계학습 기반 퍼저들을 서로 다른 네 가지의 파일 포맷을 사용하는 리얼월드 프로그램에 적용하여 커버리지 확보 성능을, LAVA-M 데이터셋을 사용하여 버그 탐지 성능을 확인하였다. 실험 결과, 시드 클러스터링 기법과 강화학습을 통한 시드 스케줄링 기법을 적용한 AFL-HIER가 커버리지 확보와 버그 탐지 성능에서 우수한 성과를 보였다. 지도학습의 경우, 코드 복잡도가 높은 tcpdump를 대상으로 높은 커버리지 확보를 보였으며, 하이브리드 퍼징에 적용하였을 때 버그 탐지 성능이 뛰어났다. 본 연구는 기계학습과 퍼징 과정을 최적화하는 추가적인 기법을 함께 적용하였을 때 커버리지 확보와 버그 탐지 성능이 우수하다는 점을 보여주었다. 향후 다양한 입력 포맷을 다루는 프로그램에 효과적으로 적용할 수 있는 실용적이고 강력한 기계학습 기반 퍼징 기법에 대한 연구가 필요하다.

퍼즈 테스팅을 통한 소프트웨어 회귀 버그 탐색 기법의 동향과 전망 (The Status Quo and Future of Software Regression Bug Discovery via Fuzz Testing)

  • 이광무;이병영
    • 정보보호학회논문지
    • /
    • 제31권5호
    • /
    • pp.911-917
    • /
    • 2021
  • 소프트웨어 패치가 빈번하게 이루어지는 최근의 추세에 따라, 소프트웨어 버그 역시 패치로 인해 유도되는 버그인 회귀 버그의 비중이 점차 증가하는 추세이다. 이에 산업계와 학계에서는 최근 자동 버그 탐지 방법으로 주목받고 있는 퍼즈 테스팅을 도입 및 개량하여 회귀 버그를 사전에 탐지하고자 하는 시도가 점차 활발해지고 있다. 이 논문에서는 회귀 버그 탐지를 위한 퍼즈 테스팅 연구의 현황에 대하여 살펴보고, 현재 기법들에 존재하는 한계를 참고삼아 향후 관련 연구의 방향에 대한 전망을 제시한다.

하이브리드 분석 기반의 스마트 퍼징 시스템 설계 (A Design of Smart Fuzzing System Based on Hybrid Analysis)

  • 김만식;강정호;전문석
    • 디지털융복합연구
    • /
    • 제15권3호
    • /
    • pp.175-180
    • /
    • 2017
  • 전 세계적으로 IT 산업이 발전함에 따라 소프트웨어 산업 또한 크게 성장하였으며, 사회전반에 걸쳐 일상생활에서부터 금융과 공공 기관까지 영향력을 미치고 있다. 특히 ICT 기술의 활성화로 인해 소프트웨어 산업은 더욱 고도화 되고, 다양한 기능과 기술을 공유하게 되었다. 그러나 이렇게 성장하는 소프트웨어 산업과 비례하여 제공되는 서비스에 치명적인 위협을 가할 수 있는 다양한 보안 위협 또한 크게 증가 하였다. 이미 OpenSSL 하트블리딩 취약점으로 전 세계적으로 큰 이슈를 일으켰으며, 그밖에도 이란의 원자력 발전시설, 미국의 에너지 기업들이 소프트웨어 취약점으로 인해 많은 피해를 입었다. 본 논문에서는 응용프로그램 보안 사고의 큰 비중을 차지하고 있는 소프트웨어 취약점을 효과적으로 탐지 식별 할 수 있는 블랙박스, 화이트박스 테스트를 연계한 하이브리드 퍼징 시스템을 제안한다.

바이너리 취약점의 자동 탐색을 위한 동적분석 정보 기반 하이브리드 퍼징 연구 (A Study on Hybrid Fuzzing using Dynamic Analysis for Automatic Binary Vulnerability Detection)

  • 김태은;전지수;정용훈;전문석
    • 한국산학기술학회논문지
    • /
    • 제20권6호
    • /
    • pp.541-547
    • /
    • 2019
  • 최근 자동화 되는 해킹 및 분석 기술의 발전으로 인하여 수많은 소프트웨어 보안 취약점이 빠르게 발표되고 있다. 대표적인 취약점 데이터베이스인 NVD(National Vulnerability Database)에는 2010년부터 2015년까지 보안 취약점(CVE: Common Vulnerability Enumeration) 약 8만 건이 등록되었으며, 최근에도 점차 증가하고 있는 추세이다. 보안 취약점은 빠른 속도로 증가하고 있는 반면, 보안 취약점을 분석하고 대응하는 방법은 전문가의 수동 분석에 의존하고 있어 대응 속도가 느리다. 이런 문제점을 해결하기 위해 자동화된 방법으로 보안 취약점을 탐색하고, 패치하여 악의적인 공격자에게 공격 기회를 줄 수 있는 보안 취약점을 사전에 대응 할 수 있는 기술이 필요하다. 본 논문에서는 복잡도 분석을 통해 취약점 탐색 대상 바이너리의 특징을 추출하고, 특징에 적합한 취약점 탐색 전략을 선정하여 취약점을 자동으로 탐색하는 기술을 제안한다. 제안 기술은 AFL, ANGR, Driller 도구와 비교 검증 하였으며 코드 커버리지는 약 6% 향상, 크래시 개수는 약 2.4배 증가, 크래시 발생율 약 11% 향상 효과를 볼 수 있었다.

H-Fuzz: 스냅샷 기반의 실용적인 하이브리드 퍼징 (H-Fuzz: A Snapshot-Based Practical Hybrid Fuzzing)

  • 정재영;이병영
    • 한국정보처리학회:학술대회논문집
    • /
    • 한국정보처리학회 2024년도 춘계학술발표대회
    • /
    • pp.245-247
    • /
    • 2024
  • 프로그램의 버그는 해커에 의해 악용될 수 있기 때문에, 이를 사전에 발견하는 것이 매우 중요하다. 최근에는 프로그램의 취약점을 자동으로 찾기 위해 하이브리드 퍼징 기술이 연구되고 있다. 우리는 기존 하이브리드 퍼저들의 한계점인 부족한 확장성을 해결하고자, 스냅샷 기반 하이브리드 퍼저인 H-Fuzz 를 제안한다. H-Fuzz 는 스냅샷 기반 퍼징을 도입하여 하이브리드 퍼징의 확장성 부족 문제를 해결하였다. 그리고 기존 커버리지 기반 퍼저에 비해 H-Fuzz 가 버그를 발견하는데 효과적임을 실험을 통해 확인하였다.