Skip to main content
QUICK REVIEW

[논문 리뷰] The use of machine learning with signal- and NLP processing of source code to fingerprint, detect, and classify vulnerabilities and weaknesses with MARFCAT

Serguei A. Mokhov|arXiv (Cornell University)|2010. 10. 12.
Advanced Malware Detection Techniques참고 문헌 16인용 수 14
한 줄 요약

이 논문은 신호 처리 및 자연어 처리 기법을 활용해 C, C++, Java 소스 코드에서 소프트웨어 취약점과 결함을 핵심적으로 파악하고 탐지하며 분류하는 기계 학습 기반 정적 코드 분석 도구인 MARFCAT을 제시한다. 소스 코드를 신호로 간주하고 MARF 프레임워크를 활용함으로써, 여러 소프트웨어 프로젝트에서 CVE 및 CWE 취약점을 고정밀도로 탐지하며, SATE 2010 워크숍의 실제 사례를 바탕으로 검증된 결과를 보였다.

ABSTRACT

We present a machine learning approach to static code analysis and fingerprinting for weaknesses related to security, software engineering, and others using the open-source MARF framework and the MARFCAT application based on it for the NIST's SATE2010 static analysis tool exposition workshop found at http://samate.nist.gov/SATE2010Workshop.html

연구 동기 및 목표

  • 파싱 없이도 언어에 구애받지 않는 기계 학습 기반의 소스 코드 내 소프트웨어 취약점 탐지 및 분류 방법을 개발하기 위해.
  • 신호 처리 과정에서 라인 번호 정보를 유지하는 데 도전하는 문제를 해결하기 위해. 이는 실행 가능한 취약점 보고서를 작성하는 데 핵심적이다.
  • SATE 2010 워크숍에서 제공한 실제 취약 소프트웨어 사례(예: Wireshark, Chrome, Tomcat)를 기반으로 방법을 검증하기 위해.
  • 패치된 버전에서의 수정 효과를 평가할 수 있도록 기존 알려진 취약점(CVE/CWE)을 자동 탐지하기 위해.
  • 신호 처리 및 자연어 처리 기법을 소스 코드에 적용해 확장 가능하고 빠르며 스케일링 가능한 정적 분석을 위한 가능성을 입증하기 위해.

제안 방법

  • 소스 코드를 1차원 신호로 간주하기 위해 n-grams(n=2)를 사용해 코드를 수치적 파형으로 변환함으로써 신호 처리에 적합한 형태로 변환한다.
  • 스펙트럼 및 자연어 처리 기법을 적용해 코드 신호에서 패턴을 추출함으로써 문법적 또는 의미적 파싱을 피한다.
  • MARF 프레임워크를 활용해 신호 처리 및 기계 학습 알고리즘의 파이프라인을 구현해 분류 작업을 수행한다.
  • 신호 변환 과정에서 라인 번호 정보가 손실되는 것을 보완하기 위해 기계 학습 기반의 라인 번호 복원 기법을 도입한다.
  • 기존에 알려진 취약점(CVE/CWE)을 포함한 전체 파일을 학습 데이터로 사용해 새로운 코드가 취약한지 여부를 분류한다.
  • 기존의 CVE 및 CWE 데이터베이스를 지식 기반으로 활용해 탐지된 패턴을 알려진 취약점에 매핑한다.

실험 결과

연구 질문

  • RQ1기계 학습을 활용해 소스 코드를 효과적으로 신호로 모델링하여 보안 취약점을 탐지할 수 있는가?
  • RQ2기계 학습을 통해 Wireshark, Chrome, Tomcat과 같은 실제 소프트웨어 프로젝트에서 알려진 취약점(CVE 및 CWE)을 얼마나 정확하게 식별할 수 있는가?
  • RQ3신호 처리 과정에서 이러한 정보가 제거되더라도 라인 번호 정보를 복원할 수 있는가?
  • RQ4이 방법이 다양한 프로그래밍 언어와 바이너리 포맷으로 확장 가능한지, 언어에 구애받지 않는 정도는 어느 정도인가?
  • RQ5이 방법을 사전 스캔 기법으로 활용해 코드베이스에서 잠재적 취약점을 선별하고 심층 분석을 위한 대상으로 선별할 수 있는가?

주요 결과

  • MARFCAT는 Wireshark 1.2.0, Chrome 5.0.375.54, Tomcat 5.5.13에서 알려진 CVE 및 CWE 취약점을 고정밀도로 탐지하였다.
  • Wireshark 1.2.9 및 Tomcat 5.5.29와 같이 패치된 버전을 정확히 식별함으로써 수정의 효과성을 확인하였다.
  • 라인 번호 복원을 위해 전용 기계 학습 및 수학적 추정 기법을 도입해 보고서의 사용성을 향상시켰다.
  • 일반적인 데스크톱 환경에서 Wireshark의 약 2,400개 파일을 3분 이내에 처리하여 높은 처리 속도를 입증하였다.
  • 언어에 구애받지 않는 강력한 일반화 능력을 보였으며, 언어별 파싱이나 설정이 필요 없었다.
  • 이 방법은 바이너리 및 바이트코드 분석 가능성도 보였으며, 배포된 소프트웨어 내 보안 결함을 바이러스 스캔 방식으로 탐지할 수 있는 잠재력을 보였다.

더 나은 연구,지금 바로 시작하세요

논문 읽기부터 검토까지, 연구 시간을 획기적으로 줄여보세요.

카드 등록 없음 · 무료 플랜 제공

이 리뷰는 AI가 만들고, 인간 에디터가 검토했습니다.