새로운 공격도 높은 확률로 차단하는 신경망 알고리즘
[보안뉴스 문가용 기자] 현대의 기업들은 그 어느 때보다 맹렬한 공격을 받고 있다. 현직 CIO 및 CISO들 중 57%는 최근 매우 위험한 사이버 보안 사고를 1번 이상 받은 적 있다고 하며, 대부분 해이한 직원들의 실수(55%), 비허가 접근(54%), 멀웨어(52%)로 인한 사고들이었다고 한다. 그래서 대부분 조직들은 이렇게든 저렇게든 사이버 보안 예산을 늘리는 데에 별 불만이 없다.
.jpg)
그렇다면 어디에 돈을 써야 할까? 현대의 사이버 공격이나 보안 환경을 생각한다면 단연 행동 분석 및 이상 탐지를 위한 머신 러닝이다. 사이버 공격들이 점점 더 파괴적인 성향을 띄어가고 있기 때문에 최대한 공격을 당하지 않고, 최대한 빨리 탐지하는 게 무엇보다 중요해지고 있다. 또한 작년 한 해 크게 주목을 받진 않았지만 APT 공격 역시 여전히 유효하며 큰 위협이 되고 있는 것도 사실이다. 하지만 인공지능을 구입했다고 해서 당장 보안이 강화되는 건 아니다.
인공지능 기술, 특히 머신 러닝의 효과를 제대로 보려면 최초 구축 시 네트워크가 예측 가능한 상태, 즉 정상 상태여야 한다. 기계가 정상적인 상태를 먼저 학습해야 비정상 상태를 분별할 수 있기 때문이다. 또한 정상 상태에서 네트워크가 어떻게 작동하는지, 어떤 식으로 움직이고 데이터를 처리 및 저장하는지 알아야 공격을 막을 수 있게 된다. 이것이 ‘이전에 없었던 새로운 공격’ 방식이라도 발견 가능하게 만들어준다.
즉 머신 러닝이 제대로 작동하려면 기계가 학습을 하고 훈련을 할 시간이 먼저 보장되어야 한다는 것이다. 또한 기억해야 할 건 머신 러닝은 어느 정도 시간을 들인 학습 내용을 바탕으로 구성되기 때문에, 그 특정 네트워크 및 환경에서만 잘 작동한다는 것이다. 가상의 훈련장이랍시고 따로 마련한 네트워크 환경에서 인공지능을 훈련시킨 후 기업의 원래 네트워크에 도입하는 방식은 효율이 무척 떨어진다.
그렇다면 여기서 의문이 하나 생긴다. 네트워크에 애플리케이션 업데이트나 장비 교환 등 새로운 요소가 생기면 인공지능의 효율이 떨어질까? 아니다. 머신 러닝이 학습을 한다는 건 가장 기초적이고 근본적인 부분에 대한 것이며, 이를 바탕으로 변화에 유연하게 대처하는 게 가능하다. 정상과 비정상을 구분하기 위해 ‘같거나 다른 점’만을 파악하는 게 아니라, 비슷한 점도 파악하고, 어느 정도나 비슷한지도 계산하기 때문이다.
또한 머신 러닝은 바이너리 의사 결정 계통도(binary decision tree)나 신경망(neural network), 유전자 알고리즘(genetic algorithms)과 같은 다양한 알고리즘을 사용하여 네트워크 내 애플리케이션의 프로파일링을 진행하기도 한다. 이로써 정확한 위협 탐지를 하는 건데, 이렇게 하려면 한 가지 정상 ‘모델’을 먼저 구축하는 게 필요하다. 여기서 말하는 모델은 자동으로 생성된 수학 공식으로, 악성 파일이 가지고 있는 몇 가지 조건들을 포함하고 있으며, 어떤 파일의 특성을 이 공식에 빗대어 스캔한 후 이제껏 없었던 공격 패턴인지 아닌지 통계학적으로 계산해 판단한다.
이 중 가장 많이 활용되고 있는 건 신경망이다. 신경망을 활용한 인공지능의 결과가 아직까지는 가장 정확하기 때문이다. 신경망이 산출해내는 공식은 매우 복잡하지만, 이 복잡한 공식 덕분에 기존에 알려지지 않은 악성 코드나 위협도 꽤나 높은 확률로 발견해내는 게 가능하게 된다.
위 두 문단을 조금 쉽게 풀어보면 다음과 같다. 1) 머신 러닝 알고리즘은 복잡한 수학 공식으로 된 모델을 가지고 있다. 2) 완전히 새로운 파일이 네트워크로 들어와 머신 러닝이 이를 알게 되었다. 3) 머신 러닝은 이 파일을 자기가 가지고 있던 모델, 즉 수학 공식들에 대입한다. 4) 이 수학 공식들은 악성 파일 및 애플리케이션들에 의해서만 풀릴 가능성이 높다고 알려져 있다. 5) 그러므로 이 새 파일로 수학 공식을 풀 수 있다면, 이는 악성 파일일 가능성이 높다. 신경망은 이 작업을 꽤나 높은 확률로 수행해내는 알고리즘 중 하나라고 보면 된다.
머신 러닝, 지금 당장 사용이 가능할 정도로 발전해 있는가?
분명 회사에 앉아 있는 직원들이 컴퓨터를 가지고 매일, 매시간 똑같은 일만 하지는 않는다. 어느 날은 갑자기 토렌트를 몰래 뒤질 수도 있고, 어느 날은 평소와 다른 서핑을 시도할 수도 있다. 그러나 이런 변수들 정도로는 인공지능의 주의를 끌지 못한다. 아니, 인공지능이 경보를 발령할 정도는 아니라는 것이다. 머신 러닝은 상상하는 것보다 훨씬 많은 데이터를 통해 학습을 진행하기 때문에 통계학적으로 매우 확률이 높은 판단을 내린다. 현대 머신 러닝이 내리는 정상, 비정상 판단은 꽤나 정확하다고 볼 수 있다.
머신 러닝을 학습시키려면 짧지 않은 시간을 투자해야 한다. 하지만 그렇게 긴 시간 학습을 하고 났을 때 머신 러닝이 내놓는 결과물은 (위에서 말한 그) 공식 몇 개이고, 그 공식은 몇 킬로바이트 수준의 용량만을 차지한다. 용량이 적은 공식을 바탕으로 작동하니 매우 빠르고 메모리 풋프린트(memory footprint)가 매우 낮다. 그러니 사실 머신 러닝 알고리즘을 하나 이상 도입해 특정 분야에 집중하도록 설정하면 효과가 더 커질 수 있고, 시스템에 별 무리도 안 간다.
또, 사람과 머신 러닝의 팀웍도 반드시 필요한 요소다. 사람이 머신 러닝의 학습 과정에서 보다 나은 피드를 제공할 수 있으면 공식은 더 정확해진다. 그러나 이런 머신 러닝 전문가가 기업마다 있을 수 없으니, 머신 러닝을 많이 연구해온 보안 전문업체와 파트너십을 맺거나 자문을 받아 운영하는 것을 권한다.
글 : 리비우 아르센(Liviu Arsene)
Copyrighted 2015. UBM-Tech. 117153:0515BC
[국제부 문가용 기자(globoan@boannews.com)]
<저작권자: 보안뉴스(www.boannews.com) 무단전재-재배포금지>