샌드박스 회피 기법 (Sandbox Evasion Technique)

정보보안학
한 줄 정의: 악성코드가 자신이 분석용 가상 격리 환경(샌드박스)에서 실행되고 있는지를 감지해 악성 행위를 숨기거나 실행을 중단하는 기법입니다.

쉽게 풀면

보안 연구자들은 의심스러운 프로그램을 실제 컴퓨터가 아니라 격리된 가상의 실험실 같은 공간, 즉 샌드박스에서 먼저 실행해 안전하게 관찰합니다. 그런데 똑똑한 악성코드는 자신이 진짜 사용자 컴퓨터가 아니라 이 실험실 안에 있다는 것을 눈치채는 방법을 갖고 있습니다. 마치 감시 카메라가 있는 걸 알아챈 사람이 카메라 앞에서는 얌전히 행동하다가, 카메라가 없는 곳에서만 본색을 드러내는 것과 비슷합니다. 이렇게 되면 분석 결과에는 아무 악성 행위도 나타나지 않아, 위험한 프로그램이 안전하다고 잘못 판정될 수 있습니다.

왜 중요한가

자동화된 샌드박스 분석은 대량의 악성코드를 빠르게 걸러내는 핵심 방어 수단인데, 회피 기법이 이를 무력화하면 위협 탐지 체계 전체의 신뢰성이 흔들리게 됩니다. 그래서 정보보안학과 악성코드 분석 분야에서는 회피 기법을 식별하고 이를 무력화하는 더 정교한 분석 환경을 만드는 연구가 계속되고 있습니다.

논문에서는 이렇게 쓰입니다

"해당 악성코드 표본은 가상머신 특유의 레지스트리 값과 하드웨어 정보를 검사하여 샌드박스 회피 기법을 구현하고 있었다."

가상 환경에서만 나타나는 시스템 특징을 확인해서, 진짜 사용자 컴퓨터가 아니라고 판단되면 동작을 멈추도록 만들어졌다는 분석 결과입니다.

"사용자 상호작용 여부를 확인하는 지연 실행 기법은 자동화된 분석 시간 내에 악성 행위가 관측되지 않도록 설계되었다."

마우스 클릭 등 실제 사람의 사용 흔적이 없으면 일정 시간 동안 악성 행위를 실행하지 않고 기다리는 방식으로 자동 분석을 피한다는 설명입니다.

조금 더 깊게 보면

샌드박스 회피 기법은 크게 환경 지문 확인(가상머신 특유의 파일, 레지스트리, 하드웨어 정보 탐지), 시간 기반 회피(분석 시간 제한을 이용한 지연 실행), 사용자 상호작용 확인(마우스 움직임, 클릭 여부 검사) 등으로 분류됩니다. 이에 대응하기 위한 연구로는 실제 사용자 환경과 더 유사하게 만든 고신뢰도(high-fidelity) 샌드박스나, 악성코드가 탐지 회피에 사용하는 API 호출 자체를 감시하는 기법 등이 있습니다.

주의할 점

샌드박스에서 악성 행위가 관측되지 않았다고 해서 반드시 안전한 프로그램이라고 단정할 수는 없으며, 회피 기법의 존재 가능성을 함께 고려해야 합니다.

관련 용어