인공지능 통해 악성 코드 분석했더니, “아무튼 빨랐죠”
- 실시간으로 대화하면서 분석하는 기법
- 모든 데이터를 취합해 인공지능에 던져주는 기법
- 전자는 가설 검증에 강점, 후자는 멀웨어 계층 식별에 강점
인공지능을 활용해 복잡한 멀웨어를 분석 및 해독하는 데 성공한 사례가 나타났다. 보안 기업 체크포인트(CheckPoint)의 연구원들이 실시한 것으로, “복잡하게 구성돼 있어 분석 난이도가 가장 높은 멀웨어 중 하나로 꼽히는 엑스로더(XLoader)를 인공지능의 도움으로 짧은 시간 안에 분석해 매커니즘을 이해할 수 있게 되었다”고 밝혔다.
엑스로더
엑스로더는 2020년부터 여러 지역에서 피해자들을 양산해 온 멀웨어로, 일종의 악성코드 로더로 분류된다. 로더이지만 정보 탈취 기능도 가지고 있으며, 많은 보안 전문가들이 분석 난이도 최고 수준의 멀웨어로 꼽는다. 그도 그럴 것이 여러 겹의 난독화와 암호화 기술을 탑재하고 있고, 샌드박스 회피 기법과 프로세스 주입 기법 역시 다양하게 구사하도록 설계돼 있기 때문이다. 보안 솔루션들이 엑스로더의 변화에 따라가지 못하는 게 일반적이었다.
“엑스로더는 상황마다 ‘맞춤형’으로 변했습니다. 어떤 조직을 공격하느냐, 어떤 목적으로 공격하느냐에 따라 사용되는 암호화 기술이나 난독화 기술이 달라졌고, 분석 방해 기법과 은폐 전략 역시 조금씩 변했죠. 그렇기 때문에 엑스로더를 역공학 기법으로 분석하려면 최소 수주가 걸리곤 했습니다. 분석하는 동안에 엑스로더는 다시 변해 다른 표적을 공격했고요. 보안 업계의 까다로운 과제 중 하나였습니다.” 체크포인트의 설명이다.
이에 분석가들은 엑스로더를 해부할 때 챗GPT를 활용해보기로 했다. 물론 챗GPT가 멀웨어 분석을 처음부터 끝까지 온전히 해내리라고는 기대하지 않았었고, 인간 분석가의 도우미로서 어느 정도로까지 힘을 발휘할 수 있는지를 실험하려 했다. “챗GPT도 멀웨어로부터 발생하는 모든 API 호출을 해독하지는 못했습니다. 하지만 함수와 문맥과 시그니처를 바탕으로 어떤 함수가 호출되는지를 추론하는 데에는 꽤 높은 확률로 성공했습니다.”
첫 번째 방법, MCP 활용
먼저 연구원들은 MCP라는 것을 활용해 엑스로더를 분석했다. MCP는 ‘모델 컨텍스트 프로토콜(Model Context Protocol)’의 준말로, “챗GPT와 같은 인공지능 모델이 외부 도구나 데이터와 직접 연결되어 상호작용할 수 있게 해 주는, 일종의 통신 프로토콜”이다. 체크포인트의 분석가들은 이 MCP를 써서 각종 데이터를 인공지능이 이해할 수 있도록 해 주고, 인공지능은 MCP를 통해 입력된 정보를 분석했다.
즉, 이 방법은 분석가와 인공지능이 오래된 파트너처럼 짝을 이루어 대화를 주고 받으며 분석을 진행한 것과 같다. 인공지능에 한 개의 커다란 과제를 주는 게 아니라, 그 때 그 때 필요한 질문을 해가며 분석을 수행했다는 의미다. 시간이 많이 걸리는 대량 단순 반복 작업을 인공지능이 대신 해주므로 시간이 크게 단축됐고, 대화 기록이 남으므로 분석 과정을 추후에 복기해보는 것도 가능했다.
하지만 이 경우 환각 현상이 나타나 인공지능이 허위 정보나 결론을 도출해낼 수 있다는 위험이 있었다. 이 때문에 연구원들은 ‘증거를 우선적으로 고려한다’는 규칙을 수립했다. 인공지능이 내린 결론과, 인공지능이 하는 모든 주장에 대해 반드시 인용 가능한 근거가 있어야만 최종 채택했다는 의미다. “인공지능은 각종 데이터를 바탕으로 ‘제안’을 하는 것에 그쳤을 뿐입니다. 그 제안을 받아들이느냐 마느냐는 인간의 몫이었습니다.”
두 번째 방법, IDA프로 활용
그 다음, 연구원들은 IDA프로(IDA Pro)라는 도구를 활용했다. IDA프로는 보안 및 악성코드 분석, 리버스 엔지니어링을 위한 강력한 도구다. 실행파일을 분석해 사람이 읽을 수 있는 형태의 어셈블리 코드로 바꿔주는 기능을 가지고 있다. “EXE파일(실행파일)을 텍스트 편집기 같은 걸로 열어보면 뭐가 보이나요? 사람이 이해할 수 없는 문자들이 쭉 나와 있습니다. 이걸 인간이 읽을 수 있는 형태로 번역해 주는 게 IDA프로라고 보면 됩니다.”
그런데 이 IDA프로는 단순히 ‘기계어 문자’를 ‘자연어 문자’로 바꿔주는 게 아니다. 실행파일(혹은 프로그램) 전체의 구조를 재구성함으로써 사람이 이해할 수 있게 만드는 기능도 가지고 있다. “분석 단계에서 우리는 분석이 필요한 모든 데이터를 IDA프로로 구조화 했습니다. 구조화 된 것을 제이슨(JSON)과 같은 표준 포맷으로 직렬화 함으로써 챗GPT에 넘길 자료를 완성시켰습니다.”
넘길 자료가 완성된 후 민감 자료를 찾아내 삭제하는 과정을 거친 뒤 챗GPT에 업로드 했다. 그런 후 구체적인 프롬프트 지시문을 통해 해당 제이슨 데이터를 어떻게 하기를 원하는지 알려줬다. “바이트 패턴에서 RC4 초기화 벡터를 찾아라”나 “암호화 키 생성 가능성이 높은 함수를 전부 찾아 목록으로 만들라” 혹은 “이 함수가 어떤 API를 호출하는지 추론해라”와 같은 지시문들이 이용됐다.
첫 번째 방법이 분석관과 비서가 계속해서 이야기 하면서 현장 조사를 하는 것이라면, 이 두 번째 방법은 분석관이 현장에서 모든 정보를 모아 하나의 가방에 넣은 뒤, 그것을 연구실에 있는 비서에게 지시와 함께 보내는 것과 같다. 두 번째 방법은 인공지능 모델을 항상 켜둔 뒤 계속해서 연결 상태를 유지할 필요가 없었고, 분석 과정을 재현하는 것도 가능했기 때문에 또 다른 인간 분석가들에게 과정을 설명하는 것도 훨씬 쉽다는 장점이 있었다.
어떤 결과 나왔나?
MCP를 활용한 방식의 경우 가설을 빠르게 세우고 검증하는 것과 라이브 키 추출에 강점을 보였다고 체크포인트는 정리한다. 반면 IDA프로를 활용한 두 번째 방식은 RC4 계층 식별과 정적 키 추출에 걸리는 시간을 크게 단축했다고 한다. “MCP를 활용했을 때는 런타임에서만 드러나는 키나 데이터를 즉시 확인할 수 있다는 게 가장 좋았습니다. IDA프로를 활용했을 때는 대규모 정적 데이터를 빠르게 분석해야 할 때가 좋았습니다. 오프라인 상태에서도 분석 작업을 수행할 수 있었다는 것도 좋았고요.”
하지만 한계도 드러났다. “첫 번째 방식의 경우, 난독화된 API 호출이나 복잡한 분산 키 생성 로직을 전부 알아내지는 못했습니다. 추론을 해야 하는 경우도 많았고, 따라서 인공지능이 낸 결과를 완전히 신뢰하기가 어려웠습니다. 반드시 인간의 보완이 필요합니다. 또한 실시간으로 인공지능과 연결해 소통하다 보면 실수로 민감 정보가 새나갈 위험도 있습니다. 이 점을 유의해야 합니다.”
두 번째 방식의 경우, 챗GPT가 근거 없이 그럴 듯한 내용을 생성하려 하는 게 발견됐다. 첫 번째 방법에서도 나타나는 문제였는데, 두 번째가 더 심했다고 체크포인트는 설명한다. 이 역시 인간의 개입이 필요한 지점이 있음을 나타낸다. “또한 암호화 키가 여러 함수에 분산되어 있는 등, 멀웨어에 대단히 복잡한 기법이 내포돼 있을 경우 인공지능 단독으로 괜찮은 분석 결과를 내기가 어려웠습니다.”
그러므로 체크포인트는 “두 가지 방법이 상호 보완적”이라는 결론을 내리고 있다. “인간이 적절히 개입하기만 한다면 두 방법을 통해 복잡한 멀웨어도 훨씬 짧은 시간에 분석함으로써 의미 있는 침해지표를 추출할 수 있다는 걸 확인할 수 있었습니다. 인공지능이 독자적으로 복잡한 문제를 해결할 수 없다는 것을 확인한 것도 의미 있는 성과라 할 수 있습니다.”
by 문가용 기자(anotherphase@thetechedge.ai)
Related Materials
- GPT vs Malware Analysis: Challenges and Mitigations, Check Point Research, 2024년
- September 2024's Most Wanted Malware: Notable AI-driven Techniques, Check Point Blog, 2024년
- AI Cracks XLoader: Faster Malware Analysis Revealed, Check Point Research, 2024년
- Investigating ChatGPT and Cybersecurity: A Perspective on Vulnerabilities and Mitigation, ScienceDirect, 2023년

