하우리 로고 이미지

전체메뉴 열기

Boan News

보안뉴스 매체사 기사

뉴스 클리핑

머신러닝 알고리즘도 멀웨어 담는 그릇으로 활용 가능하다
등록일 :
2022.12.07
머신러닝이 많은 기업들의 주력 기술로서 자리를 잡아가는 시점이다. 하지만 알고리즘을 자체적으로 개발할 수 있는 회사가 그리 많지 않아 오픈소스 알고리즘이 인기를 모으고 있다. 문제는 이 오픈소스 알고리즘을 감염시킬 수 있다는 것이다.

[보안뉴스 문가용 기자] 위협 행위자들이 머신러닝 모델을 가로채고, 이를 멀웨어 유포에 활용할 수 있다는 사실이 발견됐다. 심지어 훔쳐낸 모델을 가지고 피해자 네트워크에서 횡적으로 움직일 수도 있다고 한다. 공격에 활용되는 머신러닝 모델들은 비싸거나 구하기 힘든 게 아니라 이미 널리 공개된 것들이 대부분이라고 하며, 각종 악성 행위에 동원될 수 있어 대비가 필요하다고 전문가들은 강조했다.

[이미지 = utoimage]


이러한 연구는 인공지능 업체 히든레이어(HiddenLayer) 내 사이팀(SAI Team)에서 진행된 것으로, 연구원들은 개념증명용 공격법까지 공개했다. 실험에 대한 상세한 결과는 12월 6일자 블로그 게시글을 통해 열람이 가능하다. 보고서를 작성한 연구원은 톰 보너(Tom Bonner), 마타 야누스(Marta Janus), 에오인 위큰즈(Eoin Wickens)다.

이들이 공격의 재료로 삼은 머신러닝 알고리즘은 이미 수많은 기업들에 도입되어 있는 기술이다. 86%의 CEO들이 머신러닝을 2021년에 주력 기술로 도입했다는 조사 결과가 있을 정도다. 자율 주행, 로봇 공학, 스마트 의료, 미사일 가이드 시스템, 챗봇, 디지털 조수, 얼굴 인식, 온라인 상품 추천 시스템 등 머신러닝이 응용되는 곳이 무궁무진하다는 걸 생각해 보면 이 결과가 그리 이상한 것이 아니다.

하지만 각종 애플리케이션의 기반이 될 만한 머신러닝 기술을 자체적으로 개발한다는 건 매우 난이도가 높은 작업이다. 모든 기업들이 다 감당할 수 있는 게 아니다. 그렇기 때문에 많은 기업들이 오픈소스처럼 공개된 머신러닝 모델들을 가져다가 애플리케이션을 개발한다. 히든레이어의 연구원들이 지적하고 있는 것이 바로 이 부분이다. 공개된 머신러닝을 가져다 쓸 때 위험할 수 있다는 것 말이다.

“머신러닝이 공유되는 리포지터리들은 보안 장치라고 할 만한 것이 없을 때가 많습니다. 이 때문에 누군가 머신러닝 알고리즘을 멋대로 조작한다 하더라도 막거나 알아낼 방도가 없습니다.” 야누스의 설명이다. “최근 각종 리포지터리에 악성 코드가 몰래 업로드 되다가 발각되는데, 그와 똑같은 일이 인공지능 생태계에서도 일어날 수 있다는 것이죠. 머신러닝 공급망 공격이 실현 가능하다는 겁니다.”

히든레이어의 연구원들은 자신들의 개념을 증명하기 위해 파이토치(PyTorch)라는 오픈소스 프레임워크를 활용했다. 하지만 텐서플로우(TensorFlow)나 사이킷런(scikit-learn), 케라스(Keras) 등과 같은 인기 높은 기타 머신러닝 라이브러리들에도 비슷한 공격이 가능하다고 한다. 연구원들은 스테가노그래피와 비슷한 기법으로 머신러닝 모델에 랜섬웨어 실행파일을 삽입했다. “스테가노그래피와 비슷한 기법을 사용한 건, 모델의 신경망 레이어의 모든 플로트(float)에서 제일 덜 중요한 비트를 대체하기 위해서였습니다.” 

다음으로 문제의 바이너리를 디코딩 하고 실행하기 위해 연구원들은 파이토치 및 피클 직렬화(pickle serialization) 포맷의 오류를 사용했다. 이 오류는 임의의 파이선 모듈을 로딩하고 실행할 수 있게 해 주는 취약점이었다. “이 과정을 수행하기 위해 모델의 파일 첫 부분에 작은 파이선 스크립트를 삽입했습니다. 그 전에는 해당 스크립트를 실행하는 명령을 미리 넣어두었고요. 스크립트가 실행되면 텐서에서부터 페이로드를 재구축하고, 그 결과물을 메모리에 주입하게 설계했습니다. 디스크에 흔적을 남기지 않게 말이죠. 이렇게 하니 저희가 감염시킨 모델은 본연의 기능을 거의 그대로 실행하면서 악성 기능도 가지게 됩니다.”

이렇게 연구원들 손에 의해 ‘무기화’ 된 모델은 현존하는 백신과 엔드포인트 탐지 도구들을 손쉽게 피해간다. 모델이 기본적으로 가지고 있던 정확도에 약간 문제가 생기긴 하는데, 매우 사소해서 신경 쓰지 않아도 될 정도라고 한다. “머신러닝 모델을 스캔하는 백신 솔루션들은 아직 찾기 힘든 게 사실이죠. 그러니 머신러닝 알고리즘을 악성 코드의 그릇으로 활용하면 거의 다 무사통과합니다.” 참고로 연구원들은 실험을 진행하며 퀀텀(Quantum) 랜섬웨어를 활용했다.

실험실에서 진행한 공격을 실제 상황에서 똑같이 실행할 수 있을까? 그러려면 공격자 입장에서 제일 먼저 할 일은 자신들이 감염시킬 머신러닝 모델을 지정해 복사하는 것이다. 이미 공개된 모델과 알고리즘을 활용하는 공격이기 때문에 이 단계는 전혀 어려울 것이 없다. 모델이 공유되는 사이트로 들어가 다운로드 받으면 끝이다. 

“그 다음은 유명 머신러닝 리포지터리에 들어가 감염시킨 모델을 업로드 합니다. 이 때 유명한 모델과 비슷한 이름을 사용하거나, 아예 대체하는 것도 가능합니다. 그렇게 할 경우 악성 모델이 다운로드 되는 회수가 늘어나겠죠. 누군가 그 모델을 꼼꼼하게 검사하지 않는 이상, 그리고 이상하다는 소식을 널리 알리지 않는 이상, 사람들은 계속해서 멀웨어가 섞인 그 모델을 가져가 애플리케이션을 만들 겁니다.”

머신러닝 모델을 유료로 만들어 판매하는 기업에 침투해 일부 모델들을 감염시킬 수도 있다고 히든레이어 측은 설명한다. “일종의 공급망 공격을 실시할 수 있다는 것이죠. 머신러닝 알고리즘 벤더사를 공략함으로써, 그 벤더사로부터 모델을 공급받는 고객사들을 한꺼번에 감염시키는 게 가능합니다. 어떤 방식으로 감염시키느냐에 따라 공격의 방향이 달라질 수 있습니다만, 나중에 피해자의 네트워크에 접속해 횡적으로 움직이는 데 활용되는 멀웨어를 심을 경우 효율이 좋아지겠죠.”

이 연구의 목적은 공개된 머신러닝 모델을 다운로드 받는 것이 위험할 수 있다는 걸 알리는 데 있다고 야누스는 강조했다. “아무리 유명한 리포지터리에서 많은 사람들이 사용하고 있는 멀웨어를 다운로드 받는다고 하더라도 신뢰할 수 없는 소프트웨어처럼 다루어야 합니다. 물론 지금은 머신러닝 모델 내에 있는 악성 요소를 탐지할 도구가 시장에 많지 않은 게 사실입니다. 그렇기 때문에 신뢰하지 않는다고 해도 딱히 할 일이 없는 게 맞습니다. 하지만 격리된 환경에서 다운로드 한 모델을 사용하고 실험할 수는 있겠죠.”

또한 보다 안전한 저장 포맷을 활용하는 것도 도움이 된다고 야누스는 제안한다. “예를 들어 코드 실행이 허용되지 않는 포맷들이 있거든요. 그런 포맷을 활용하면 일부 악성 파일이 실행파일 형태일 때 안전해질 수 있지요. 결국 무엇이나 다른 곳에서 다운로드 받은 요소라면 무조건 의심하는 마음으로 활용하는 것이 안전하다는 것입니다. 그것이 오픈소스 코드든 알고리즘이든 말이죠.”

3줄 요약
1. 최근 머신러닝 기반 애플리케이션을 개발할 때 오픈소스 모델들이 널리 사용됨.
2. 리포지터리에 악성 코드 퍼트리듯, 머신러닝 모델도 악성 코드를 담는 그릇으로 쓸 수 있음.
3. 아직 머신러닝 알고리즘 스캔 도구가 그리 많지 않아서 문제.

[국제부 문가용 기자(globoan@boannews.com)]

<저작권자: 보안뉴스(www.boannews.com) 무단전재-재배포금지>

  • - 본 정보에 대한 저작권은 '보안뉴스'에게 있으며 이에 무단 사용 및 재배포를 금지합니다.
  • - 본 정보에 대한 이용문의는 "보안뉴스(www.boannews.com)"로 문의하여 주십시오.

Top