IcFuzz: 의미론적 스테이지 가이드 및 다단계 변이를 이용한 Isaac Sim 퍼징 (Fuzzing)
요약
NVIDIA Isaac Sim의 소프트웨어 버그를 탐지하기 위한 새로운 퍼징 프레임워크인 IcFuzz를 제안합니다. LLM 기반의 의미론적 스테이지 분할과 다단계 변이 연산자를 통해 복잡한 로보틱스 시뮬레이션 환경을 효과적으로 테스트합니다.
핵심 포인트
- LLM을 활용한 의미론적 스테이지 분할로 시뮬레이션 구조 파악
- 계층적 입도에 따른 다단계 변이 연산자 설계
- Multi-armed bandit 알고리즘을 통한 효율적인 변이 스케줄링
- 기존 방식 대비 코드 커버리지 최대 205% 향상 및 다수의 버그 탐지
로보틱스 시뮬레이터(Robotics simulators)는 체화된 AI (Embodied AI)를 위한 기초 인프라 역할을 하며, 안전하고 확장 가능한 로봇 시스템 개발을 용이하게 합니다. NVIDIA Isaac Sim은 GPU 가속 물리 엔진과 실사 같은 렌더링을 특징으로 하는 가장 인기 있는 시뮬레이터 중 하나로 부상하였으며, 이를 통해 복잡한 환경의 고충실도 모델링이 가능합니다. 그러나 그 내재된 복잡성은 시뮬레이션의 신뢰성을 저해할 수 있는 소프트웨어 버그를 필연적으로 발생시킵니다. 기존의 퍼징 (Fuzzing) 접근 방식은 문맥 인식 객체 의미론 (Context-aware object semantics), 계층적 시뮬레이션 제어, 그리고 방대한 시뮬레이션 상태 공간 (Simulation state space)의 문제로 인해 Isaac Sim을 효과적으로 테스트하는 데 어려움을 겪고 있습니다. 본 논문에서는 Isaac Sim을 위한 최초의 퍼징 접근 방식인 IcFuzz를 제안합니다. IcFuzz는 먼저 LLM 기반의 의미론적 스테이지 분할 (Semantic stage segmentation)을 수행하여, 시뮬레이션 프로그램을 문맥 인식 객체 의미론을 포착하는 구조화된 스테이지로 분해합니다. 이 정보에 따라, IcFuzz는 계층적 입도 (Hierarchical granularities)에 걸쳐 시뮬레이터를 체계적으로 실행하기 위한 다단계 변이 연산자 (Multi-level mutation operators)를 설계합니다. 방대한 시뮬레이션 상태 공간을 효율적으로 탐색하기 위해, IcFuzz는 다중 팔 강도 (Multi-armed bandit) 알고리즘을 채택하여 변이 연산자를 적응적으로 스케줄링합니다. 실험 결과, IcFuzz는 코드 커버리지 (Code coverage)와 버그 탐지 측면 모두에서 베이스라인 (Baselines)보다 우수한 성능을 보였습니다. 구체적으로, IcFuzz는 베이스라인 대비 약 190%~205%의 코드 커버리지를 달성하였으며, 12시간씩 3라운드 테스트 동안 평균 3.7개의 고유한 크래시 (Crashes)를 탐지한 반면, 베이스라인에서는 크래시가 탐지되지 않았습니다. 또한, IcFuzz는 약 4개월 동안 11개의 버그를 발견하였으며, 그 중 9개는 개발자에 의해 확인되었거나 수정되었습니다.
AI 자동 생성 콘텐츠
본 콘텐츠는 arXiv Codex (cs.SE)의 원문을 AI가 자동으로 요약·번역·분석한 것입니다. 원 저작권은 원저작자에게 있으며, 정확한 내용은 반드시 원문을 확인해 주세요.
원문 바로가기