[★]Experiments and Analysis of Large Language Model’s Performance on Code Clone Detection for Obfuscated Code
- admin
- 2024년 6월 4일
- 1분 분량
최종 수정일: 2024년 11월 18일
팀명
MeNoCat
팀원 명단
편고운, 안유진, 김태현
지도교수
이성호 교수님
작품 배경 및 목적
코드 난독화(obfuscation)란, 소프트웨어의 의미(semantic)를 유지하면서 소스 코드의 구조를 바꾸어 의도적으로 읽기 어렵게 변환하는 기법이다. 이를 통해 코드의 가독성을 낮추고 분석 및 코드 유출을 방지할 수 있다. 하지만 이를 악용하여 악성 코드를 의도적으로 난독화하면 보안 시스템과 분석 도구가 이를 악성 코드를 탐지하는 데 어려움을 겪을 수 있다.
최근 거대 언어 모델(Large Language Model)을 이용한 코드 의미의 동일함을 찾는 코드 클론 탐지(Code clone detection) 연구가 높은 성능을 거두고 있다. 이를 활용하여, 만약 난독화된 코드와 원본 코드가 동일한 의미를 가지는지에 대한 클론 탐지를 거대 언어 모델이 잘 수행할 수 있다면, 이미 난독화된 상태로 공개되어 있는 악성코드를 높은 정확도로 탐지할 수 있을 것이다. 따라서 본 연구에서는 거대 언어 모델 중 하나인 LongFormer를 이용하여 난독화된 소스 코드에 대해서도 코드 클론 탐지를 정확하게 수행하는지에 대한 실험을 진행한다.
작품 내용
실험에 사용될 데이터 셋은 클론 탐지 모델 평가에 주로 사용되는 POJ-104를 사용하고, Tigress C언어 난독화 도구를 이용하여 원본 POJ-104 코드를 난독화하여 데이터 증강을 수행한다. 이때 대표적인 난독화 기법인 식별자 난독화(Identifier obfuscation), 데이터 난독화(Data obfuscation), 제어 흐름 난독화(Control-flow obfuscation) 를 활용한다. 이 데이터 셋으로 거대 언어 모델을 미세 조정(fine-tuning)하여 난독화된 코드에 대해서도 클론 탐지가 여전히 높은 성능을 유지하는지 실험한다.

댓글