보안과 AI의 관계
보안에 인공 지능이 필요한가?
위협 탐지, 사고 대응, 사용자 인증, 개인정보 보호, 유출 탐지, 암호화 등 보안의 영역은 다양합니다. 이 중에서 가장 기본이 되는 위협 탐지를 생각해 보겠습니다.
전통적인 “규칙”에 따른 탐지 - 규칙 바깥은 속수무책
과거의 위협 탐지 방식은 “규칙”에 따른 탐지입니다. 규칙이 100개 마련되어 있다면 100가지의 위협을 탐지할 수가 있는 것입니다. 이 100가지에 속하지 않은 위협은 어떻게 될까요? 당연히 탐지하지 못합니다.
사람이 만드는 규칙 - 부족한 인적 파워
규칙을 만드는 주체는 사람입니다. 한 사람의 보안 전문가가 열심히 데이터를 분석하고 실험해서 1년에 만들 수 있는 규칙이 몇 개나 될까요? 그 규칙은 얼마나 믿을 수 있을까요?
사람이 만드는 규칙 - 신종과 변종은 놓친다
“사람이 만드는 규칙”으로는 새로운 위협, 즉 신종 공격, 또는 조금씩 바뀐 위협, 즉 변종 공격을 탐지하는 것이 불가능합니다. 설령 규칙에 부합하는 이벤트를 탐지했다고 해도, 그 규칙을 만든 사람이 그야말로 완벽하게 작성한 것이 아니라면, 탐지된 그 이벤트는 정상인 이벤트일 수 있습니다. 앞의 경우를 “미탐” 뒤의 경우를 “오탐”이라고 부르는데, 이 둘 모두 심각한 수준으로 취약한 것이 오랜 현실이었습니다.
미탐 방지는 포기, 오탐 방지에는 소모전
위협으로 발생하는 피해를 고려하면 미탐을 줄이는 것이 더 중요한 목표인 것은 분명합니다. 그러나 그동안 현장에서는 미탐을 방지하는 것은 포기하다시피 하였습니다. 미탐 방지를 포기한 것을 감추려고 오탐을 줄이는 일에는 온갖 노력을 기울여 왔던 웃픈 현실.
사람이 만드는 규칙 대신 인공 지능으로
“사람이 만드는 규칙” 대신에 인공 지능을 활용해 봐야겠다는 생각은, 바야흐로 펼쳐지는 인공 지능의 시대에, 누구라도 당연하게 떠올릴 만합니다.
한국에서 인공 지능 보안의 시도와 실패
한국에서 인공 지능 보안의 연이은 실패 - 지도 학습에만 의존
누구라도 당연하게 떠올리는 아이디어, 인공 지능을 활용한 보안, 이 시도를 우리 나라에서도 2017년 경부터 다양한 기관에서 실험했습니다. 굳이 실험이라고 말한 이유는 이 시도들이 아쉽게도 성공하지 않았기 때문입니다.이들의 실패 사유는 한결 같습니다. 지도 학습에만 의존했기 때문입니다.
보안에서는 지도 학습을 위한 시험지와 답안지를 충분히 잘 만들 수 없다
지도 학습은 사람이 인공 지능에게 시험지와 답안지를 함께 주어야만 가능합니다. 보안에서 시험지는 이벤트 데이터이고, 답안지는 위협 여부 및 위협의 이름입니다.우선 위협 이벤트를 확보하는 것부터 쉽지 않습니다. 신종 또는 변종 공격을 탐지하지 못 하고 있는데, 그 사례를 확보해야 한다는 게 어불성설인 것이지요. 천신만고 끝에 위협 사례를 좀 확보했다고 해도, 그것이 충분한 시험지인지 장담할 수가 없습니다. 어떤 위협은 한 순간의 데이터만으로는 정상과 구별이 안 되는 경우가 많기 때문입니다. 위협 이벤트를 충분히 확보하고 더불어 충분한 시험지 구성까지 가능한 경우는, 결국, 기존에 알려진 위협 일부에 불과하게 됩니다. 이런 종류의 위협은 이미 탐지해 왔을 것이니, 애초에 애써서 인공 지능 모델을 만들 것도 아닙니다.
신변종은 모르는 것이므로 지도 학습할 수 없다
그전에 몰랐던 것을 알고자 하는 경우라면 지도 학습이 들어 맞기가 어렵습니다. 지도 하려면 알아야 하니까요. 모르는 것을 찾는데 지도 학습을 동원하는 것은 모순에 가깝습니다. 따라서, 비지도 학습을 해야 합니다. 그동안 못 찾고 있는 신종 또는 변종 공격을 찾아 내려면 비지도 학습으로부터 출발해야 한다는 것은 인공 지능을 조금만 공부하면 쉽게 알 수 있습니다.그런데, 그동안 우리 나라는 보안에서 왜 지도 학습에만 매달렸을까요?
글로벌에서의 성공
글로벌 환경 - 보안에서는 비지도 학습을 중심으로
글로벌 상황은 우리 나라와는 달랐습니다. 그들은 보안에서 비지도 학습이 중요하다는 것을 진작 알고 있었습니다. 당연히 적절한 투자와 그에 따른 연구 성과가 이어졌습니다. 2018년 즈음에 미국과 영국의 몇몇 회사들이 비지도 학습 기반의 보안 제품을 시장에 내 놓고 성과를 보여 주기 시작합니다. 이렇게 타당성과 효용성이 어느 정도 입증되자, 여러 회사들이 뛰어들어 비지도 학습을 보안에 적용하는 방법을 다각도로 연구하며 경쟁하게 됩니다.
글로벌 기업 한국 시장 잠식 중
이 글로벌 회사들은 한국에도 진출하여 차츰 고객층을 넓혔는데, 이러는 사이 한국에서는 지도 학습에만 의존하는 방식에 매달려 실패를 거듭한 것입니다.기술의 발전 속도를 고려할 때 글로벌 업체들이 한국의 보안 시장을 다 차지할지도 모른다는 불안감이 한국의 보안 업계 관계자들 마음 속에 들기 시작합니다.
한국에서의 실패 이유
가장 큰 이유는 원천 기술의 부재입니다.
지도 학습은 가장 우수한 엔진이 공짜 (구글, 페이스북 고마워)
누구라도 지도 학습을 사용하고자 하면 원천 기술이 필요하지 않습니다. 구글, 페이스북과 같은 대형 글로벌 업체들이 여러 가지 이유로 자신들이 엄청난 돈을 들여 개발해 온 지도 학습 기반의 원천 기술을 무료로 배포하고 있기 때문입니다. 지도 학습 중에서 대장 격이라고 할 수 있는 것은 딥러닝인데, 이 회사들이 딥러닝을 포함한 다양한 알고리즘을 구현해 놓은 엔진을 연구 목적은 물론 상업적 목적으로도 누구나 다운받아서 자유롭게 사용할 수가 있습니다.
비지도 학습은 제대로 된 공짜 엔진도 상용 엔진도 없다
비지도 학습은 상황이 완전히 다릅니다. 공짜로 사용할 수 있는 비지도 학습 엔진이 없는 것은 아닙니다. 그러나, 이 엔진들은 보안 영역에서 활용하기에는 턱없이 성능이 부족합니다. 기 학습된 모델을 활용하는 지도 학습과는 달리 비지도 학습은 신규 데이터에 대해서 계속 학습해야 하는데, 보안 영역에서는 이 신규 데이터가 매 순간 끊임없이 생성되기 때문에 비지도 학습의 성능이 실시간 트래픽을 처리할 수 있는 수준이 되어야 합니다. 공개 엔진들은 이 정도 성능을 감당하지 못합니다. 딥러닝이 지도 학습만 하는 것은 아니고 비지도 학습도 할 수 있지만, 딥러닝은 다른 공개된 비지도 학습에 비해서 더 처리 속도가 늦습니다.
비지도 학습을 하려면 엔진을 직접 개발해야 하는데…
결국 고성능 비지도 학습 엔진이 필요한데 공개된 것이 없으므로 직접 만들어야 하는 것입니다. 그동안 인공 지능 엔진을 사용하기만 해 온 한국의 기업들이 직접 만들 수가 있을까요?
직접 개발하려면 다양한 원천 기술이 있어야
인공 지능 엔진을 만드는 것은 사용하는 것과는 차원이 다른 일입니다. 머신러닝 알고리즘에 대한 깊은 지식을 필요로 합니다. 고도의 수학과 컴퓨터 엔지니어링을 필요로 합니다. 탄탄한 기초 과학 위에 구현과 검증을 반복해야 합니다. 이 과정에서 필연적으로 인공 지능 바깥의 많은 지식들도 동원되어야 합니다. 한마디로, 인공 지능은 물론 관련된 여러 분야의 원천 기술이 필요한 것입니다.원천 기술은 모두가 아는 것처럼 단기간에 만들어 낼 수 없습니다.
보안에 필요한 AI 기술
고성능 비지도 학습 엔진- 클러스터링 엔진
비지도 학습 엔진은 고성능이어야 한다
새로운 위협을 탐지하기 위해서는 지도 학습 대신에 비지도 학습을 우선적으로 활용해야 합니다. 비지도 학습 엔진은 성능이 매우 중요합니다. 끊임없이 들어오는 새로운 사용자 데이터를 계산해야 하기 때문입니다.
비지도 학습 엔진은 다양한 알고리즘을 사용해야 한다
다양한 비지도 학습 알고리즘을 활용할 수 있어야 합니다. 데이터 종류나 어떤 결과를 내고 싶은지에 따라 여러 알고리즘 중에서 가장 적합한 것을 활용해야 하기 때문입니다.
지도 학습 활용
지도 학습이 가능할 때는 적극 활용해야
특정한 위협을 잘 탐지하고 싶을 때에는 지도 학습 엔진을 활용할 필요가 있습니다. 보안의 특성 상 지도 학습에 필요한 시험지 데이터와 답안지 데이터를 충분한 수량으로 구비할 수는 없습니다. 따라서 완전한 지도 학습 모델을 만들 수 없으므로 이에 전적으로 의존할 수는 없지만, 이를 잘 활용하는 것은 필요한 일입니다.
100% 지도 학습이 아니므로 결과를 보강하는 기술 필요
지도 학습에 전적으로 의존할 수 없으므로, 당연하게도, 머신러닝 외의 다양한 기술로 지도 학습의 결과를 보충할 수 있어야 합니다.
대용량 데이터 처리 플랫폼
대용량 데이터에 대해서 쉴틈없는 비지도 학습
보안에서 다루는 데이터는 그 양이 어마어마합니다. 사진 인식 모델처럼 데이터를 한 번 모아서 모델링하면 그 모델을 상당한 기간 동안 사용할 수 있는 방식이 아닙니다. 보안에서는 사용자의 데이터가 끊임없이 만들어지고, 공격자의 위협도 늘 새로운 것이 출현합니다. 따라서, 쉴틈없이 머신러닝 엔진에 데이터를 넣고 학습 시키고 분석해야 합니다.
데이터의 시작과 끝의 전 지점에서 병목 제거
그런데, 고성능 머신러닝 엔진만으로 충분하지 않습니다. 엔진에 데이터를 입력하는 과정, 엔진이 학습 및 분석 결과를 출력하는 과정, 그 결과를 사용자가 분석할 수 있도록 해 주는 과정, 이 모든 과정에서 한 군데라도 병목이 있어서는 안 됩니다. 따라서, 대용량 데이터를 실시간으로 성능의 저하없이 다룰 수 있는 플랫폼이 필요합니다. 고도의 컴퓨터 엔지니어링이 요구되는 것은 당연합니다.
자동 라벨링
라벨이 없거나 확실하지 않거나
비지도 학습의 결과는 지도 학습과 달리 라벨을 특정하지 않습니다. 지도 학습의 경우라도 시험지와 답안지를 충분히 제공받지 못한 지도 학습 모델이라면 모델의 결과가 제시하는 라벨을 마음 놓고 사용할 수는 없습니다.
자동 라벨링 또는 라벨링 보강 기술이 필요하다
비지도 학습의 경우에는 라벨을 붙여주어야 하고, 지도 학습의 경우에는 라벨을 보강해 주어야 합니다. 이를 위해 머신러닝 영역 바깥에서도 필요한 원천 기술을 확보할 수 있어야 합니다.