본문

서브메뉴

Lost in Translation: Security and Bug-Finding in Foreign Function Interfaces and Multi Language Programs
Lost in Translation: Security and Bug-Finding in Foreign Function Interfaces and Multi Lan...
Lost in Translation: Security and Bug-Finding in Foreign Function Interfaces and Multi Language Programs

상세정보

자료유형  
 학위논문 서양
최종처리일시  
20260202105532
ISBN  
9798263344108
DDC  
001
저자명  
Askar, Ammar.
서명/저자  
Lost in Translation: Security and Bug-Finding in Foreign Function Interfaces and Multi Language Programs
발행사항  
[Sl] : Georgia Institute of Technology, 2025
발행사항  
Ann Arbor : ProQuest Dissertations & Theses, 2025
형태사항  
133 p
주기사항  
Source: Dissertations Abstracts International, Volume: 87-05, Section: B.
주기사항  
Advisor: Kim, Taesoo.
학위논문주기  
Thesis (Ph.D.)--Georgia Institute of Technology, 2025.
초록/해제  
요약Modern software programs often make use of multiple programming languages. Each language has its own set of advantages and disadvantages. High-level languages like Java and Python allow rapid prototyping and fast development speeds without having to worry about low-level details such as memory management. Low-level systems programming languages like C allow for easier interfacing with hardware and can be used to write very high performance code. However, they require the programmer to manage memory carefully, lest they introduce critical memory safety issues.Due to these differences and disparities in the semantics and security considerations of different languages, there is a likelihood of security issues being introduced when programmers context-switch between writing in multiple languages. For example, a programmer who is used to array accesses being bounds-checked by the language may end up introducing a spatial memory-safety issue with an out-of-bounds access. One who is used to garbage collection and is unfamiliar with the nuances of manual memory management may introduce a use-after-free vulnerability.In this thesis, we start by taking a look at a broad survey of how these multi-language programs and foreign function interfaces are implemented. We dive into the details of how complexity can leak in these multi-language programs. Next, we apply existing vulnerability discovery techniques on Android to find these cross-language bugs at language layers between Java and C/C++ using the Java Native Interface (JNI).Finally, this thesis presents a novel technique that eases the burden of implementing concolic testing for any programming language. Through the use of a simple debugging feature of line-by-line execution and a Large Language Model (LLM), we produce produce constraints in a verifiable manner. We show these concolic testing engines to be sound and use them for hybrid fuzzing of cross-language programs.
일반주제명  
Software
일반주제명  
Java
일반주제명  
Programming languages
일반주제명  
Libraries
일반주제명  
Python
일반주제명  
C plus plus
일반주제명  
Large language models
일반주제명  
Semantics
기타저자  
Georgia Institute of Technology.
기본자료저록  
Dissertations Abstracts International. 87-05B.
전자적 위치 및 접속  
로그인 후 원문을 볼 수 있습니다.

MARC

 008260126s2025        us                              c    eng  d
■001000017360473
■00520260202105532
■006m          o    d                
■007cr#unu||||||||
■020    ▼a9798263344108
■035    ▼a(MiAaPQ)AAI32309891
■035    ▼a(MiAaPQ)GeorgiaTech77900
■040    ▼aMiAaPQ▼cMiAaPQ
■0820  ▼a001
■1001  ▼aAskar,  Ammar.
■24510▼aLost  in  Translation:  Security  and  Bug-Finding  in  Foreign  Function  Interfaces  and  Multi  Language  Programs
■260    ▼a[Sl]▼bGeorgia  Institute  of  Technology▼c2025
■260  1▼aAnn  Arbor▼bProQuest  Dissertations  &  Theses▼c2025
■300    ▼a133  p
■500    ▼aSource:  Dissertations  Abstracts  International,  Volume:  87-05,  Section:  B.
■500    ▼aAdvisor:  Kim,  Taesoo.
■5021  ▼aThesis  (Ph.D.)--Georgia  Institute  of  Technology,  2025.
■520    ▼aModern  software  programs  often  make  use  of  multiple  programming  languages.  Each  language  has  its  own  set  of  advantages  and  disadvantages.  High-level  languages  like  Java  and  Python  allow  rapid  prototyping  and  fast  development  speeds  without  having  to  worry  about  low-level  details  such  as  memory  management.  Low-level  systems  programming  languages  like  C  allow  for  easier  interfacing  with  hardware  and  can  be  used  to  write  very  high  performance  code.  However,  they  require  the  programmer  to  manage  memory  carefully,  lest  they  introduce  critical  memory  safety  issues.Due  to  these  differences  and  disparities  in  the  semantics  and  security  considerations  of  different  languages,  there  is  a  likelihood  of  security  issues  being  introduced  when  programmers  context-switch  between  writing  in  multiple  languages.  For  example,  a  programmer  who  is  used  to  array  accesses  being  bounds-checked  by  the  language  may  end  up  introducing  a  spatial  memory-safety  issue  with  an  out-of-bounds  access.  One  who  is  used  to  garbage  collection  and  is  unfamiliar  with  the  nuances  of  manual  memory  management  may  introduce  a  use-after-free  vulnerability.In  this  thesis,  we  start  by  taking  a  look  at  a  broad  survey  of  how  these  multi-language  programs  and  foreign  function  interfaces  are  implemented.  We  dive  into  the  details  of  how  complexity  can  leak  in  these  multi-language  programs.  Next,  we  apply  existing  vulnerability  discovery  techniques  on  Android  to  find  these  cross-language  bugs  at  language  layers  between  Java  and  C/C++  using  the  Java  Native  Interface  (JNI).Finally,  this  thesis  presents  a  novel  technique  that  eases  the  burden  of  implementing  concolic  testing  for  any  programming  language.  Through  the  use  of  a  simple  debugging  feature  of  line-by-line  execution  and  a  Large  Language  Model  (LLM),  we  produce  produce  constraints  in  a  verifiable  manner.  We  show  these  concolic  testing  engines  to  be  sound  and  use  them  for  hybrid  fuzzing  of  cross-language  programs.
■590    ▼aSchool  code:  0078.
■650  4▼aSoftware
■650  4▼aJava
■650  4▼aProgramming  languages
■650  4▼aLibraries
■650  4▼aPython
■650  4▼aC  plus  plus
■650  4▼aLarge  language  models
■650  4▼aSemantics
■690    ▼a0800
■71020▼aGeorgia  Institute  of  Technology.
■7730  ▼tDissertations  Abstracts  International▼g87-05B.
■790    ▼a0078
■791    ▼aPh.D.
■792    ▼a2025
■793    ▼aEnglish
■85640▼uhttp://www.riss.kr/pdu/ddodLink.do?id=T17360473▼nKERIS▼z이  자료의  원문은  한국교육학술정보원에서  제공합니다.

미리보기

내보내기

chatGPT토론

Ai 추천 관련 도서


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

    소장정보

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

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

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

    관련 인기도서

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