강대규 이글루시큐리티 대전사이버분석팀

[컴퓨터월드]

▲ 강대규 이글루시큐리티 대전사이버분석팀

인공지능, 더 이상 먼 미래가 아니다

지난 2016년 3월, 천재바둑기사 이세돌 9단과 인공지능 알파고 간 펼쳐진 세기의 대결은 세간의 이목을 집중시켰다. 당시 많은 전문가들은 인간인 이세돌 9단의 승리를 예상했으나, 결과는 1승 4패로 알파고의 압승이었다.

그간 인간의 영역으로 간주돼온 바둑마저 인공지능에게 정복당하자 사람들은 큰 충격에 휩싸였으며, 동시에 인공지능 분야에 대해 전세계가 관심을 갖는 계기가 됐다. 대결의 승패를 떠나 이 대국을 기점으로 향후 인공지능 활용 방안에 대한 수많은 의견이 오고 갔으며 인공지능 연구에 박차를 가하게 됐다.

▲ 머신러닝 관심도 변화(출처: 구글 트렌드)

오늘날 인공지능 기술은 방대한 의학 데이터와 수많은 임상 실험 결과를 활용해 환자의 상태를 정확하고 객관적으로 파악할 뿐만 아니라 미래의 몸 상태를 추론하고 진단해내는 의학 분야부터 다양한 문학 작품의 문장을 학습하고 이를 토대로 글을 작성해내는 창작 영역까지 분야를 막론하고 다양한 산업에서 활발히 활용되고 있다.

IT 보안 분야 역시 마찬가지다. 보안업계는 진화하는 사이버 공격에 대응하기 위해 인공지능 기술을 적극 도입하고 있으며, 이를 기반으로 한 보안 솔루션을 속속 출시하고 있다. 네트워크 보안, 악성코드 분석, 취약점 분석, 디지털 포렌식, 컴플라이언스 등 IT 보안의 다양한 분야에서 인공지능이 어떻게 활용되고 있으며 또 활용될 수 있는지 살펴본다.


머신러닝으로 진화하는 보안

네트워크 보안 분야
침입탐지시스템(IDS)/침입방지시스템(IPS) 장비를 이용한 기존 네트워크 침입 탐지는 등록된 탐지 정책을 통해 해당 네트워크 패킷이 정상인지 공격인지를 판별해낸다. 여기에 한 걸음 더 나아가 인공지능 기술을 접목시키면, 네트워크 트래픽 분석을 통한 비정상 행위 탐지 방식을 활용할 수 있다. 여기서 말하는 비정상 행위 탐지 방식이란 정상적인 트래픽 데이터 학습을 통해 정상과 비정상을 구분할 수 있는 기준을 세우고 향후 수집된 트래픽이 그 기준으로부터 얼마나 차이가 있는지를 측정하는 방식을 의미한다.

예를 들어 A라는 회사의 네트워크 트래픽은 직원들이 출근한 이후부터 점차 증가한다고 가정해보자. 그런데 직원들이 출근하기 전, 사내 네트워크 트래픽이 갑자기 증가하는 등 평소와 다른 트래픽이 탐지된다면 이를 비정상 행위로 간주해 보안 담당자에게 이벤트를 띄워 알려주게 된다. 물론 기준선 설정에 따라 탐지율에 차이가 존재할 수 있지만 이와 같은 비정상 행위 탐지 방식으로 기존의 알려지지 않은 새로운 공격에 대한 보다 신속한 탐지가 가능하다.

▲ 아웃라이어(Outlier) 방식이 적용된 비정상 행위 탐지(출처: hongyusu.com)

악성코드 분석 분야
매일 수 만개의 신종 또는 변종 악성코드가 유포되고 있다. 이는 악성코드 분석가가 일일이 대응하기 힘든 수준의 양이며 보안업계에서는 이러한 문제를 해결하기 위해 자동화 분석 기술을 꾸준히 연구하고 있다.

악성코드는 그 종류와 기능이 매우 다양하며 같은 기능을 하더라도, 컴파일러 버전 및 옵션 등 프로그램의 개발 환경에 따라 내부 코드가 다르게 생성되는 것을 볼 수 있다. 여기에 안티 디버깅(Anti-Debugging), 안티 가상머신(Anti-VM), 패킹(Packing) 등의 보호 기법이 추가될 경우 악성코드 샘플 분석 시간이 크게 증가하게 된다. 이에 따른 해결책으로 앞서 언급한 것과 같이 샌드박스 환경을 기반으로 자동화된 분석 기술들이 지속적으로 연구되고 있으며 기존의 자동화된 분석 기술에 머신러닝 기술을 결합해, 좀 더 효율적이고 의미 있는 분석 결과를 도출해내기 위한 시도가 활발히 진행되고 있다.

예를 들어 어떤 악성코드들은 내부 코드가 매우 간결한 반면, 어떤 악성코드들은 복잡한 난독화/복호화 알고리즘과 정교한 구조를 지니고 있다. 그러나 이것들은 내부 코드의 구성과 복잡성에 상관없이 정보 유출, 시스템 파괴, 좀비, 추가 악성파일 다운로드 등 각자의 목적에 맞는 기능을 수행한다. 이때 악성코드를 샌드박스 환경에서 실행하고 행위 정보를 수집한 후, 파악된 정보를 바탕으로 벡터 공간에 출력해 일반적인 악성코드의 행위 유형과 비교하는 과정을 거친다면, 해당 악성코드의 특성이나 유형을 보다 빠르게 식별해낼 수 있다.

▲ 행위 정보 기반의 군집화 예시(출처: 이글루시큐리티(좌), STHDA-EN:R data analysis(우)>

취약점 분석 분야
미국 국립표준기술연구소(NIST)의 NVD(National Vulnerability Database)나 익스플로잇(Exploit)-DB와 같은 취약점 정보 공유 사이트 상의 다양한 데이터를 학습시킨다면, 소프트웨어 취약점을 찾아내고 분석하는 분야에서도 머신러닝을 활용한 취약점 분석의 자동화를 이끌어낼 수 있다.

예를 들어 프로그래밍 코드를 이진 트리형식으로 표현한 ‘구문 트리(Syntax Tree)’라는 것을 활용해 프로그래밍 패턴을 식별하고 학습해 새로운 취약점이 존재하는지 체크할 수 있다. 그러나 취약점과 관련된 데이터의 양이 충분하지 않을뿐더러 컴파일된 바이너리 파일 분석 시에는 프로그램 언어, 개발자의 코딩 스타일, 컴파일러 버전의 차이 등 다양한 변수가 존재해 정확도를 향상시키기 위한 연구가 지속돼야 할 것으로 보인다.

▲ 문트리(좌) 및 취약점 데이터 학습 과정(우) (출처: 컨퍼런스페이퍼 ‘A machine learning solution to assess privacy policy completeness’)

컴플라이언스 분야
대부분의 웹사이트들은 각자의 고유한 이용약관, 개인정보처리방침 등을 보유하고 있다. 이러한 약관 정보는 주로 회원가입 시에 확인할 수 있는데, 만약 이를 꼼꼼히 읽지 않고 지나친다면 향후 법적 분쟁 발생 시 사용자 입장이 매우 난감해질 수 있다.

일반 사용자가 보기에 어려운 법률 관련 문장들을 학습하고 인식해 보다 간결하고 직관적으로 표현해주는 해외 연구 사례가 존재한다. 네덜란드의 아인트호벤 기술 대학교에서 제시한 이 머신러닝 기반 솔루션은 법적 문구가 담긴 약관이나 개인정보 관련 동의문 등의 문장 또는 단어를 분석해 특정 체크리스트 포맷 형태로 변환함으로써 사용자의 이해를 돕는다.

▲ 컴플라이언스 분야에서 활용된 머신러닝 사례(출처: 이글루시큐리티)

지금까지 인공지능 기술이 IT보안 분야에서 어떻게 활용될 수 있는지 살펴보았다. 하지만 인공지능 기술에도 허점은 존재하기 마련이다. 이에 따라 공격자의 입장에서 인공지능을 어떻게 우회하고 무력화시킬 수 있는지에 대해 살펴본다.


머신러닝으로 진화하는 보안 위협

오버피팅
오버피팅(Overfitting, 과적합)은 주로 통계학이나 머신러닝 분야에서 사용되는 용어로, 과거의 데이터를 학습하는 모델에서 자주 볼 수 있는 오류들 중 하나다. 이 오류는 과거의 데이터만 지나치게 학습하다 보니 새로운 데이터 또는 향후 발생할 데이터를 제대로 예측하지 못해 발생한다. 예를 들면 갈색 고양이만 학습한 모델이 검정색 고양이를 보고 고양이라 판단하지 못하는 경우가 대표적인 오버피팅 사례다.

▲ 오버피팅의 오류(출처: 이글루시큐리티)

이러한 오버피팅 오류를 악용해 시스템을 공격하는 기법에 대해 소개한 해외 논문이 존재한다. 해당 논문에 따르면 정상 이미지를 학습시킨 후 특정 기법을 통해 이미지에 변형을 가하고 재인식 시킨 결과, 전혀 다른 값을 출력하는 결과가 도출됐다. 이는 수많은 데이터를 통해 정확도 높은 학습이 된 모델이라도 학습된 데이터와 상관없이 특정 조건에서 출력 데이터가 매우 부정확해질 수 있다는 사실을 입증했다.

▲ 오버피팅(Overfitting)의 오류(출처: Nicolas Papernot, ‘Practical Black-Box Attacks against Machine Learning’)

오버피팅 오류를 해결하기 위한 연구는 과거부터 꾸준히 진행돼왔다. 정규화, SVM, 지능형 학습 데이터 적용 등 다양한 기법들을 통해 최적화하는 방안들이 등장했지만 완벽한 모델을 만들기는 사실, 아직도 쉽지 않아 보인다.

잘못된 학습 알고리즘
학습 알고리즘을 악용해 공격에 활용될 수 있다. 조금 더 쉽게 말하면 개발자의 의도와는 다르게, 공격자의 의도대로 모델을 학습시켜 공격을 수행할 수 있다는 의미다. 마이크로소프트(MS)에서 선보였던 인공지능 챗봇 ‘테이’를 대표적인 예로 들 수 있다.

2016년 마이크로소프트에서는 딥러닝 기술을 토대로 스스로 학습하는 능력을 갖춘 챗봇 ‘테이’를 공개했다. ‘테이’는 정상적인 사용자들과의 대화를 통해 학습하려는 취지로 개발됐지만, 실제로는 악의적인 사용자들과의 대화를 통해 욕설, 인종차별, 성 차별, 히틀러 옹호 등을 학습하도록 유도됐고 결국 16시간만에 서비스가 종료됐다.

적대적 사례 제작
일반적으로 머신러닝 모델의 학습에는 방대한 양의 데이터가 활용된다. 그렇지만 단순히 많은 양의 데이터로 학습되었단 사실만으로는 학습 모델의 안전을 보장할 수 없으며, 다계층으로 구성된 복잡한 구조를 가진 인공신경망조차 간단한 트릭을 통해 속이거나 우회할 수 있다.

▲ 여러 계층으로 구성된 인공신경망 구조

적대적 사례 제작은 의도적으로 데이터 조각을 조작해서 머신러닝 모델이 잘못된 분류를 하도록 유도하는 것을 의미한다. 예를 들어 그림이나 사진 등을 학습해 입력된 이미지가 사람인지 사물인지 판별해내는 모델이 있다고 가정해보자. 일반 사용자가 사람 이미지를 입력했을 경우 학습 모델은 ‘사람’이라고 판단할 것이다. 여기서 만약 사람 이미지를 입력했음에도 불구하고 출력 값을 사람이 아닌 ‘사물’로 판단하게끔 만들려면 어떻게 해야 할까?

공격자는 입력 이미지를 픽셀 단위로 조작해 입력에 대한 출력 값을 벡터 공간에 뿌려놓고 출력 값이 기준선으로부터 얼마나 가까운지, 또는 어느 방향으로 얼마만큼 이동했는지를 계산할 수 있다면 단순 픽셀 조작만으로도 출력 결과를 바꿀 수 있다. 쉽게 말해 일반 사용자가 보기에 입력 이미지는 분명 ‘사람’이지만 학습 모델이 보기에는 사람이 아닌 ‘사물’로 보이도록 충분히 속일 수 있다는 것이다.
 

▲ 적대적 사례 제작(출처: 이글루시큐리티)

그리고 이를 조금 더 응용한다면 단순히 이미지 판독을 속이는 것을 넘어 자율주행기술의 표지판 인식 오류 또는 콘텐츠 필터링 무력화, 안티 바이러스 제품 우회 등 다양하게 악용될 수 있다.

▲ 적대적 사례 제작의 응용(출처: 이글루시큐리티)


양날의 검인 인공지능을 올바르게 활용하기 위해서는?

지금까지 인공지능을 활용한 다양한 형태의 보안 위협에 대해 알아보았다. 위 공격들이 현재 존재하는 여러 인공지능 기반 보안 솔루션을 완벽하게 공략하기는 어렵겠지만, 적어도 실제 공격이 일어나기 전 그 수법에 대해 인지하고 예방할 수 있어야 할 것이다.

가장 좋은 예방법으로는 인공지능 모델을 학습시킬 때 데이터의 양이 아닌 질에 집중하는 것이다. 단순히 많은 양의 데이터로 학습하는 것이 아니라 위 공격들에 어느 정도 저항을 가질 수 있도록 ‘지능형 학습 데이터’를 활용하는 것이 좋다. ‘지능형 학습 데이터’는 또 다른 말로 ‘적대적 학습’이라고 불리며 이는 조작된 데이터를 학습 데이터 셋(set)에 포함시켜 해당 공격에 대한 저항성을 가지게 하는 것이다.

더불어 사용자에게 인공지능 솔루션이 만능은 아니라는 사실을 인지시키는 것도 좋은 방안이 될 수 있다. 흔히 사람들은 인공지능을 토대로 한 보안 솔루션을 도입한다면 보안 솔루션이 알아서 알려지지 않은 대다수의 공격을 차단해줄 것이라 기대하지만 잠재적 위협은 언제나, 어디서나 존재하기 마련이다. 따라서 인공지능의 잘못된 판단에 의한 피해를 최소화하기 위해서는 모든 업무 처리를 솔루션에 섣불리 위임하는 것은 위험하며 최종적으로 사람이 직접 판단하고 검증하는 보안 프로세스가 필요하다.

인공지능은 결코 완벽한 기술이 아니다. 공격자의 것도, 방어자의 것도 아니며 인공지능을 올바르게 활용하기 위해서는 기술에 대한 맹신에서 벗어나 다양한 관점에서 평가하고 판단하는 균형 있는 시각이 요구된다는 사실을 명심해야 할 것이다.

저작권자 © 컴퓨터월드 무단전재 및 재배포 금지