[Lobsters 요약] LLM 기반 디컴파일러의 코드 재구성 문제점과 새로운 평가 방법론
0
설명
LLM 기반 디컴파일러는 기존 도구와 달리 컴파일 가능한 C 코드를 생성하지만, 코드 재구성 과정에서 원본의 동작을 보존하지 못하는 문제가 발견되었습니다.
2026년 9월 4일 arXiv에 공개된 연구는 이러한 LLM 디컴파일러의 한계를 지적하며, 새로운 평가 방법론인 Decompile-Diverge를 제안합니다.
이는 기존의 재컴파일 및 테스트 통과 여부만으로는 파악하기 어려운 동작 불일치 문제를 해결하는 데 중점을 둡니다.
### 배경 설명
디컴파일은 컴파일된 기계 코드를 사람이 이해할 수 있는 고수준 소스 코드로 복원하는 과정으로, 취약점 탐지, 악성코드 분석 등 보안 분야의 핵심 기반 기술입니다. 전통적인 디컴파일러, 예를 들어 Ghidra나 Hex-Rays는 해석 불가능한 부분을 플레이스홀더로 표시하거나 컴파일 및 실행이 어려운 유사 코드(pseudocode)를 생성하는 경향이 있었습니다. 그러나 최근에는 대규모 언어 모델(LLM)을 활용한 디컴파일러가 등장하여, 훨씬 깔끔하고 관용적인 C 코드를 생성하는 능력을 보여주고 있습니다. 이러한 LLM 기반 디컴파일러의 성능은 주로 생성된 코드가 원본 프로그램처럼 재컴파일되고, 제공된 입력/출력 테스트를 통과하는지 여부, 즉 '재컴파일 가능성(recompilability)'과 '재실행 가능성(re-executability)'으로 평가되어 왔습니다. 이 평가는 LLM 디컴파일러의 실용성을 높이는 데 기여했지만, 동시에 새로운 종류의 문제점을 야기할 수 있다는 점이 간과되었습니다.
### LLM 디컴파일러의 재컴파일 가능성 함정
LLM 기반 디컴파일러가 생성한 코드가 재컴파일되고 모든 제공된 테스트를 통과한다고 해서 원본 프로그램과 동일하게 동작한다고 보장할 수는 없습니다. 연구진은 이러한 지표가 잘못된 방향으로 성능을 오도할 수 있음을 지적합니다. 특정 함수가 제공된 테스트 케이스를 모두 통과하더라도, 원본 프로그램이 처리할 수 있었던 다른 유효한 입력에 대해서는 동작이 달라질 수 있습니다. 더 심각한 문제는, 분석 과정에서 발견되었던 명확한 취약점이 LLM이 재구성한 코드에서는 아무런 흔적 없이 사라져 버리는 경우입니다. 이는 기존의 평가 방식으로는 탐지하기 어려운 심각한 문제이며, 보안 분석의 신뢰성을 저해할 수 있습니다.
### Decompile-Diverge: 새로운 행동 기반 평가 방법론
기존 평가 방식의 한계를 극복하기 위해, 연구진은 'Decompile-Diverge'라는 새로운 행동 기반 비교 오라클을 제안합니다. 이 방법론은 고정되거나 수작업으로 작성된 테스트에 의존하지 않습니다. 대신, 각 함수에 대해 동적으로 드라이버를 합성하고, 원본 코드의 퍼징(fuzzing) 코퍼스를 기반으로 새로운 입력 데이터를 생성합니다. 그런 다음, 디컴파일된 코드를 동일한 입력으로 다시 실행하여 원본 함수와 비교함으로써 동작의 변화를 탐지합니다. 이 방식은 코드의 재컴파일 가능성이나 특정 테스트 통과 여부를 넘어, 실제 실행 시의 행동 변화를 포착하는 데 중점을 둡니다.
### 실험 결과 및 분석
연구진은 8개 시스템과 9가지 구성으로 이루어진 기존 LLM 디컴파일러 코퍼스를 대상으로 Decompile-Diverge를 적용했습니다. 실험 결과, 모든 제공된 테스트를 통과한 후보들 중에서도 4.9%가 원본 코드와 다른 행동을 보였으며, 특정 시스템에서는 최대 13%까지 이러한 불일치가 나타났습니다. 또한, 300개의 실제 GitHub 라이브러리 함수와 287개의 CVE(Common Vulnerabilities and Exposures) 기반 함수를 분석한 결과, 재컴파일 가능성과 행동 일치성이 분리될 수 있음을 확인했습니다. 가장 성능이 좋은 LLM은 Ghidra의 빌드율을 75%에서 90%로 향상시켰지만, 행동 일치율(Matched rate)은 74%에서 62%로 오히려 감소했습니다. 공개된 취약점의 경우, 최대 10%가 LLM 출력 코드에서 '크래시 부재(Crash Absence)' 현상을 보였습니다. 이러한 행동 불일치의 원인을 소스 코드 수준에서 분석한 결과, 전통적인 디컴파일러가 남기는 명시적인 미해결 부분 대신, LLM이 새로운 필드, 타입, 호출 대상, 조건부 로직 등을 도입하여 원본의 동작을 미묘하게 변경시키는 것으로 나타났습니다.
### 가치와 인사이트
이 연구는 LLM 기반 디컴파일러의 성능 평가에 있어 재컴파일 가능성 및 테스트 통과 여부만으로는 충분하지 않다는 중요한 통찰을 제공합니다. Decompile-Diverge 방법론은 실제 코드의 동작 변화를 탐지함으로써, LLM 디컴파일러가 놓칠 수 있는 미묘한 오류나 보안 취약점의 은폐를 효과적으로 식별할 수 있습니다. 이는 보안 분석가들이 LLM 디컴파일러의 출력을 더 신뢰성 있게 검증하고, 잠재적인 위험을 사전에 파악하는 데 실질적인 도움을 줄 것입니다. 또한, LLM 디컴파일러 개발자들에게는 단순히 코드를 재구성하는 것을 넘어, 원본의 행동적 특성을 보존하는 방향으로 모델을 개선해야 할 필요성을 제시합니다.
### 향후 전망
LLM 기반 디컴파일 기술은 계속 발전할 것이며, 향후에는 더욱 정교한 코드 생성 능력을 갖출 것으로 예상됩니다. 그러나 Decompile-Diverge와 같은 행동 기반 평가 방법론의 중요성은 더욱 커질 것입니다. 경쟁 LLM 디컴파일러들은 이러한 행동 일치성을 높이기 위한 연구에 집중할 가능성이 높습니다. 또한, Decompile-Diverge 방법론 자체도 더 넓은 범위의 입력 생성 기법이나 효율적인 비교 알고리즘을 통합하여 발전할 수 있습니다. 커뮤니티 차원에서는 이러한 새로운 평가 기준을 표준화하고, 다양한 LLM 디컴파일러 프로젝트에 적용하여 기술의 신뢰성을 높이는 노력이 필요할 것입니다. 궁극적으로는 LLM 디컴파일러가 보안 분석 및 소프트웨어 이해를 위한 더욱 강력하고 신뢰할 수 있는 도구가 될 수 있도록 발전할 것입니다.
📝 원문 및 참고
- Source: Lobsters
- 토론(Lobsters): [lobste.rs](https://lobste.rs/s/uzfa4k/when_llm_decompilers_recompile_more)
- 원문: [링크 열기](https://arxiv.org/abs/2609.05370)
---
출처: Lobsters · [원문 링크](https://arxiv.org/abs/2609.05370)
이 글에 대한 한 줄 의견
신고 · 불법·유해·아동 안전(CSAE) 관련 콘텐츠
댓글 0
아직 댓글이 없습니다. 로그인하면 바로 의견을 남길 수 있습니다.