본문

서브메뉴

Fuzzing with Advanced Program Exploration and Bug Modeling for Software Security
Fuzzing with Advanced Program Exploration and Bug Modeling for Software Security
Fuzzing with Advanced Program Exploration and Bug Modeling for Software Security

상세정보

자료유형  
 학위논문 서양
최종처리일시  
20260202105546
ISBN  
9798265400208
DDC  
415
저자명  
Chen, Yongheng.
서명/저자  
Fuzzing with Advanced Program Exploration and Bug Modeling for Software Security
발행사항  
[Sl] : Georgia Institute of Technology, 2024
발행사항  
Ann Arbor : ProQuest Dissertations & Theses, 2024
형태사항  
153 p
주기사항  
Source: Dissertations Abstracts International, Volume: 87-05, Section: A.
주기사항  
Advisor: Lee, Wenke.
학위논문주기  
Thesis (Ph.D.)--Georgia Institute of Technology, 2024.
초록/해제  
요약Fuzzing is a well-received software testing technique. It operates by generating random inputs and then executing these against a given target program, thus probing various program states to pinpoint anomalies. Despite its proven utility, fuzzing has its limitations. Like other dynamic testing methods, it struggles with inadequate exploration of the program state space. This limitation stems from issues such as the unstructured nature of the generated inputs and the inefficient use of computational resources across multiple cores. A more critical shortcoming of traditional fuzzing lies in its approach to bug modeling: it primarily detects bugs through program crashes, overlooking a myriad of bugs that do not crash the program execution but are equally consequential. While the development of dedicated oracles represents a stride toward refined bug modeling, this solution is often impractical due to the high costs associated with crafting oracles that are typically bug-specific or tailored to individual programs.To address these limitations, we propose two-dimensional improvements, which scales the program exploration capability and enhances bug modeling in fuzzing. To explore more program states, we propose POLYGLOT and µFUZZ to scale the program exploration capability vertically and horizontally. Specifically, POLYGLOT utilizes a unified intermediate representation to handle diverse programming languages, effectively generating semantically valid inputs that result in deeper program exploration, finding over 170 new bugs in 21 language processors. µFUZZ, on the other hand, employs a microservice architecture to maximize the efficiency of parallel fuzzing, reducing synchronization overhead and enhancing the utilization of computational resources. More importantly, µFUZZ found 11 new bugs in well-tested popular programs. To enhance bug modeling, we introduce PROPGUARD, a framework that enables the specification and automatic detection of a wide range of bug patterns, moving beyond mere crash detection to identify subtle, non-crashing bugs. By allowing users to define bug patterns through an intuitive specification language, PROPGUARD facilitates the development of targeted fuzzing oracles, thus significantly broadening the spectrum of detectable software vulnerabilities and finding two new non-crashing issues in open-source projects.
일반주제명  
Grammar
일반주제명  
Forgery
일반주제명  
Programming languages
일반주제명  
Syntax
일반주제명  
Mutation
일반주제명  
Semantics
일반주제명  
Computer science
일반주제명  
Criminology
기타저자  
Georgia Institute of Technology.
기본자료저록  
Dissertations Abstracts International. 87-05A.
전자적 위치 및 접속  
로그인 후 원문을 볼 수 있습니다.

MARC

 008260126s2024        us                              c    eng  d
■001000017360557
■00520260202105546
■006m          o    d                
■007cr#unu||||||||
■020    ▼a9798265400208
■035    ▼a(MiAaPQ)AAI32315598
■035    ▼a(MiAaPQ)GeorgiaTech75635
■040    ▼aMiAaPQ▼cMiAaPQ
■0820  ▼a415
■1001  ▼aChen,  Yongheng.
■24510▼aFuzzing  with  Advanced  Program  Exploration  and  Bug  Modeling  for  Software  Security
■260    ▼a[Sl]▼bGeorgia  Institute  of  Technology▼c2024
■260  1▼aAnn  Arbor▼bProQuest  Dissertations  &  Theses▼c2024
■300    ▼a153  p
■500    ▼aSource:  Dissertations  Abstracts  International,  Volume:  87-05,  Section:  A.
■500    ▼aAdvisor:  Lee,  Wenke.
■5021  ▼aThesis  (Ph.D.)--Georgia  Institute  of  Technology,  2024.
■520    ▼aFuzzing  is  a  well-received  software  testing  technique.  It  operates  by  generating  random  inputs  and  then  executing  these  against  a  given  target  program,  thus  probing  various  program  states  to  pinpoint  anomalies.  Despite  its  proven  utility,  fuzzing  has  its  limitations.  Like  other  dynamic  testing  methods,  it  struggles  with  inadequate  exploration  of  the  program  state  space.  This  limitation  stems  from  issues  such  as  the  unstructured  nature  of  the  generated  inputs  and  the  inefficient  use  of  computational  resources  across  multiple  cores.  A  more  critical  shortcoming  of  traditional  fuzzing  lies  in  its  approach  to  bug  modeling:  it  primarily  detects  bugs  through  program  crashes,  overlooking  a  myriad  of  bugs  that  do  not  crash  the  program  execution  but  are  equally  consequential.  While  the  development  of  dedicated  oracles  represents  a  stride  toward  refined  bug  modeling,  this  solution  is  often  impractical  due  to  the  high  costs  associated  with  crafting  oracles  that  are  typically  bug-specific  or  tailored  to  individual  programs.To  address  these  limitations,  we  propose  two-dimensional  improvements,  which  scales  the  program  exploration  capability  and  enhances  bug  modeling  in  fuzzing.  To  explore  more  program  states,  we  propose  POLYGLOT  and  µFUZZ  to  scale  the  program  exploration  capability  vertically  and  horizontally.  Specifically,  POLYGLOT  utilizes  a  unified  intermediate  representation  to  handle  diverse  programming  languages,  effectively  generating  semantically  valid  inputs  that  result  in  deeper  program  exploration,  finding  over  170  new  bugs  in  21  language  processors.  µFUZZ,  on  the  other  hand,  employs  a  microservice  architecture  to  maximize  the  efficiency  of  parallel  fuzzing,  reducing  synchronization  overhead  and  enhancing  the  utilization  of  computational  resources.  More  importantly,  µFUZZ  found  11  new  bugs  in  well-tested  popular  programs.  To  enhance  bug  modeling,  we  introduce  PROPGUARD,  a  framework  that  enables  the  specification  and  automatic  detection  of  a  wide  range  of  bug  patterns,  moving  beyond  mere  crash  detection  to  identify  subtle,  non-crashing  bugs.  By  allowing  users  to  define  bug  patterns  through  an  intuitive  specification  language,  PROPGUARD  facilitates  the  development  of  targeted  fuzzing  oracles,  thus  significantly  broadening  the  spectrum  of  detectable  software  vulnerabilities  and  finding  two  new  non-crashing  issues  in  open-source  projects.
■590    ▼aSchool  code:  0078.
■650  4▼aGrammar
■650  4▼aForgery
■650  4▼aProgramming  languages
■650  4▼aSyntax
■650  4▼aMutation
■650  4▼aSemantics
■650  4▼aComputer  science
■650  4▼aCriminology
■690    ▼a0984
■690    ▼a0627
■71020▼aGeorgia  Institute  of  Technology.
■7730  ▼tDissertations  Abstracts  International▼g87-05A.
■790    ▼a0078
■791    ▼aPh.D.
■792    ▼a2024
■793    ▼aEnglish
■85640▼uhttp://www.riss.kr/pdu/ddodLink.do?id=T17360557▼nKERIS▼z이  자료의  원문은  한국교육학술정보원에서  제공합니다.

미리보기

내보내기

chatGPT토론

Ai 추천 관련 도서


    신착도서 더보기
    최근 3년간 통계입니다.

    소장정보

    • 예약
    • 소재불명신고
    • 나의폴더
    • 우선정리요청
    • 비도서대출신청
    • 야간 도서대출신청
    소장자료
    등록번호 청구기호 소장처 대출가능여부 대출정보
    TF14936 전자도서 대출가능 마이폴더 부재도서신고 비도서대출신청 야간 도서대출신청

    * 대출중인 자료에 한하여 예약이 가능합니다. 예약을 원하시면 예약버튼을 클릭하십시오.

    해당 도서를 다른 이용자가 함께 대출한 도서

    관련 인기도서

    로그인 후 이용 가능합니다.