2015년 4월 12일 일요일

보안관제와 빅데이터의 접목

"Concert Forecast 2015 강연 요청을 받고 오랫동안 일해 온 보안관제란 분야와 식을줄 모르는 인기를 자랑하는 빅데이터에 대한 그동안의 생각들을 정리한 글입니다."

보안관제의 문제점

1980년대 이후 컴퓨터 보안사고가 증가하면서 로그 분석의 필요성이 증가하기 시작했다. 그런데 로그가 너무 많더라는 문제 발생.

그래서 사람들은 사전에 정의해놓은, 공격으로 알려진 패턴을 이용해서 일반로그를 필터링하기 시작했다. 패턴 필터링, 분석의 범위를 좁혀주는 패턴매칭은 이렇게 시작됐다. 그런데 이 패턴매칭은 아주 커다란 문제점을 가지고 있었다.

다음은 표절시비 때문에 법정 소송까지 같던, 서로 다른 노래의 악보. 자세히 보면 마지막 네번째 마디만 다르다는 사실을 알 수가 있다. 일단 표절을 안했다고 가정해 보자. (실제 표절이 아니라는 판결이 났다고) 왜 이런 상황이 발생했을까?


모든 음악은 결국 7음계의 범위에서 표현되기 때문이다. 표현 범위의 한계 때문에 아무리 창의성을 발휘해도 우연의 일치나 중복이 발생할 수 밖에 없는 구조라는 것.

패턴매칭도 마찬가지. 소위 빅데이터조차 고작 몇 십개의 문자, 숫자 등의 범위 안에서 모든 표현이 이루어지기 때문에 7음계로 모든 음악이 표현되는 음악계처럼 무수히 많은 공격 표절, 즉 오탐(false positive)이 발생하는 것이다.


'양치기 소년'이라는 우화는, 늑대가 나타났다고 자꾸 거짓말을 하면 나중엔 진짜 늑대가 나타나도 대응할 수 없다는 교훈을 던져준다. 가짜 경보, 오탐이 자꾸 발생하면 어떻게 될까? 해결하려면 어떻게 해야 할까? 패턴매칭의 문제를 외면한 채 해결할 수 있을까?

문제가 하나 더 있는데, 바로 미탐(false negative). 알려지지 않은 공격은 알려진 패턴이 없기 때문에 탐지를 못한다는 것. 그런데 사실 이게 패턴매칭의 문제가 맞기는 한 걸까? 알려진 패턴으로 미리 필터링을 하는 것이 패턴매칭이라면, 패턴이 없어서 필터링을 못하는 것은 너무 당연한 결과인데?

일단 문제라 치고, 해결 방법은 있을까? 선사 시대 유물을 보면 돌칼이나 돌도끼같은 공격 무기는 나오는데 돌방패는 없다. 왜? 방어는 공격을 받고 나서야 가능하기 때문. 공격을 받기 전까지는 뭘 방어해야 하는지, 어떻게 방어를 해야 하는지 알 수가 없기 때문이다. 


결국 알려지지 않은 공격을 탐지하지 못하는 미탐 문제는 패턴매칭으로는 해결이 불가능하다. (개인적으로 빅데이터를 이용하면 해결할 수도 있지 않을까라는 생각을 가지고 있는데 그 이유는 뒤에서..)

빅데이터의 목적

다음은 2013년 zdnet korea에 게재된 기사 일부.


간추리면 전통적인 보안관제 현장에서는 수많은 보안솔루션과 로그의 통합이 어려웠는데, 빅데이터가 나오면서 기존 데이터베이스보다 상대적으로 적은(?) 비용으로도 구현이 가능해졌으며, 종합적인 분석을 할 수 있게 됐다는 것. 

그리고 이 기사는 매우 무책임하면서도 용감한 발언으로 끝을 맺고 있다. 분석 방법에 대한 고민은 사용자의 몫이라는 것.

나야 모르지~

사실 이 부분은 업계에서도 고민이지 않을까 싶다. 빅데이터의 역할이 있고, 빅데이터를 사용하는 사용자의 역할이 분명히 존재하는데 자꾸 빅데이터가 알아서 다 해줄 것처럼 포장한다면 당장은 도움이 될지 몰라도, 결국 언젠가는 부메랑으로 되돌아오지 않을까?

결국 데이터를 가장 잘 분석할 수 있는 사람은 그 데이터를 가장 잘 아는 사람, 고객 당신이라는 사실을 명확히 전달하는 것이 업계의 역할이자 스스로를 돕는 길일 것이다.

"자기가 하는 일이 어떤 것인지 이해가 부족한 상태에서 이루어진 분석은, 설령 모델링이 된다 하더라도 변수 간의 관계를 설명하기 어렵고, 그만큼 앞으로 무엇을 해야 하는지를 알려주지도 못한다." - '신호와 소음' 중

일단 기사에서 빅데이터의 목적이 나왔다. 종합적인 분석을 해야 한다는 것. 종합적인 분석이 뭘까? 빅데이터와 보안을 거론할 때 빠지지 않고 반드시 등장하는 용어가 있다. 


바로 상관분석그런데 이 용어가 빅데이터와 함께 처음 등장한 용어일까? 사실 이 용어는 정보보안 분야에서 역사가 깊다.

대략 2003년부터?

2000년대 초반부터 ESM이나 SIEM을 거론할 때 네트워크 보안솔루션의 문제점(오탐과 미탐)에 대한 해결책으로 반드시 등장하는 용어가 바로 상관분석이었던 것이제 2015년이다. 상관분석은 효과가 있었을까? 

는 실패했다고 본다. 구색 맞추기 수준을 제외하면 알려진 성공사례를 본적이 없으니까. 상관분석은 왜 실패했을까? 그 이유를 찾기 위해서는 먼저 통계에 대해서 알 필요가 있다. 다음은 빅데이터란 단어가 최초(?)로 등장한 만화의 한 장면. (빅데이터가 정말 유행이구나 하면서 봤던 기억이 남)

강풀의‘마녀’

어떤 현상을 숫자로 표시하는 것이 통계라고 정의되어 있다. 현상을 숫자로 표시하면 뭐가 좋을까? 인구 통계 조사 결과 노령인구가 너무 많거나 청년인구가 너무 적다는 등의 결과가 나오면 이에 대한 대책을 세울 수 있다. 

특정 현상을 숫자로 측정하면 의사결정을 하는데 도움이 된다는 것. 그리고 이 통계에서 바로 상관분석이라는 개념이 나온다. 비가 자주 오면 우산도 많이 팔린다는 식의, 현상과 현상 사이에는 관계가 있다는 것.

여기서 중요한 점은 통계분석, 상관분석이 성공하려면 그 분석 대상이 숫자를 세는 것만으로도 의미가 있어야 한다는 것이다. 투표 결과를 알고 싶다면 어떻게 해야 할까? 투표한 사람의 숫자를 세면 된다. 그런데 투표를 안 한 사람의 숫자가 섞이면? 엉뚱한 결과가 나오게 된다.

빅데이터 성공 사례



정보보안과 빅데이터의 관계를 풀어나가는 데 중요한 실마리를 제공해주는 카이스트 정하웅 교수의 강연. 

14분 경부터 중요한 내용이 나오는데, 요약하면 검색어는 검색하는 이의 진심을 담고 있기 때문에 거짓이 없는 데이터이며, 구글이 빅데이터로 성공할 수 있었던 이유는 분석 대상 데이터가 거짓이 없는, 즉 정확한 데이터였기 때문이라는 것이다. 실제 사례를 보자.


최초의 빅데이터 성공사례로 많이 알려져 있는 구글의 독감 트렌드. 미국 보건복지부(?)에서 매년 독감 확산 추이같은 걸 조사할 때 몇 주나 몇 달의 시간이 걸렸었는데, 구글이 지역별 독감 관련 검색어의 숫자만 세는 방법으로 훨씬 짧은 시간에, 거의 같은 결과를 내놨다고.


다양한 검색어의 유형별 통계. 사실 별거 없다. 그냥 검색어의 개수를 세어본 것뿐. 그런데 이런 검색어를 지역별, 성별, 연령대별, 시간대별 이런 식으로 상관분석을 하면 의사결정을 내리는데 도움이 되더라는 것.

보통 미디어에서 빅데이터 사례라고 하면서 소개되는 것들 대부분이 SNS 등의 분석 사례인 이유를 이제 알 수 있다. 검색어나 SNS 키워드와 같은 데이터는 숫자만 세면 되는 정확한 (그리고 단순한) 데이터이기 때문이다.


마지막으로 꽤나 알고리즘이 복잡할 것 같은  구글 번역 서비스. 그러나 핵심은 역시나 데이터의 숫자를 세는 것이다. apple이 사과로 번역되는 이유는 구글이 가지고 있는 apple의 한글 번역 데이터 중 사과로 번역된 데이터가 가장 많기 때문이다. 숫자가 가장 큰 데이터로 바꿔주는 것.

이제 통계분석, 상관분석이 성공하려면 데이터가 정확해야 한다는 사실을 알게 되었다. 결국 빅데이터 분석은 통계 분석이며, 성공한 빅데이터는 모두 정확한 데이터를 분석한 결과였던 것. 그렇기 때문에 정보보안 분야에서도 빅데이터를 사용하려면 먼저 우리가 가진 데이터가 얼마나 정확한지 따져봐야 한다.

보안관제와 빅데이터 접목 시 고려사항

이제 보안관제 분야에서 논의되고 있는 몇가지 상관분석 방법론의 허점을 살펴보자. (어디까지나 개인적인 경험임)

첫 번째는 보안로그끼리의 상관분석. 이 방법론의 목적은 상관분석을 통해서 보안로그의 정확도를 높이겠다는 것이다. 그런데 패턴매칭의 정확도가 보장이 된다면 상관분석은 사실 할 필요가 없다(..) 그렇다면 정확도 보장을 못할 경우엔 필요한가? 오탐끼리 상관분석을 하게 될텐데? 영원히 빠져나올 수 없는 닭과 달걀의 딜레마에 빠지게 될 것이다.


두 번째는 가장 많이 주장되는, 공격 로그가 발생했을 때 피해 시스템에서 에러 로그가 발생하면 공격이라는 식의, 보안/일반로그 간 상관분석. 이게 성공하려면 공격일 때만 에러 로그가 발생한다는 전제가 필요하다. 


그러나 (보안로그의 오탐 가능성은 일단 무시하더라도에러로그는 공격이 아닐 때도 얼마든지 발생한다. 어느 하나도 확실한 기준이 되어주지 못한다. 결국 오탐끼리 상관분석을(..)

세 번째는 일반로그끼리의 상관분석. 1번 로그에서 a란 패턴이, 2번 로그에서 b란 패턴이 나오면 공격이라는 식의, 한마디로 일반로그에서 패턴 필터링을 하는 것.


그런데 패턴 필터링은 이미 보안솔루션이 하고 있는데? 바퀴를 또 발명할 필요가 있을까?

대략 이런 느낌?

물론 기존 보안솔루션이 필요없다는 주장은 아니겠지만 빅데이터에 억지로 역할을 부여하는 바람에 기존 보안관제 체계에 혼란만 주게 될 뿐이다. (빅데이터로 뭘 해야할지 몰라서 발생하는 상황)

빅데이터로 뭘 해야 할까?

얘기하다 보니 상관분석을 영 몹쓸 놈 취급한 것 같다.-_- 정보보안 분야에서 무리없이 상관분석을 할 수 있는 방법은 없을까? 주로 소개되는 정보보안 분야의 빅데이터 사례를 보면 대부분 내부정보 유출 방지나 금융 분야의 부정거래 방지 기능에 치중되어 있다는 사실을 알 수 있다.

”누군가 휴일 또는 업무 시간 이외에 비정상적인 패턴으로 중요 문서 또는 고객정보 DB에 접근한다면 정보유출의 징후가 있다고 판단할 수 있다”

“퇴직 징후가 의심스러운 직원이 휴일이나 업무시간 외에 비정상적으로 중요 문서나 고객DB에 접근하는 경우 정보유출 가능성이 높기 때문에 이를 사전에 탐지하고 예방할 수 있다”

내부정보 유출을 막기 위해서 접근계정을 기준으로 접근대상이 되는 정보의 변화, 접근시간대의 변화, 접근횟수의 변화를 지속적으로 추적한다면 이상징후를 발견할 수 있다는 것. 금융분야도 마찬가지다. 예금인출 위치의 변화, 금액의 변화, 인출횟수의 변화 등을 지속적으로 추적한다면 역시 이상징후를 발견할 수 있다는 것이다.


왜 이런 사례들이 빅데이터 예시로 많이 거론될까? 그 이유는 해당 정보들이 현상을 사실 그대로 기록한 정보이기 때문이다.

누가 접근을 했는지, 어디로 접근을 했는지, 언제 했는지, 얼마나 자주 했는지 등등의 정보들은 정보관리 관점에서 전부 의미가 있는 정보이며, 그래서 이런 정보들을 상관분석하면 더 큰 통찰력을 얻을 수도 있는 것이다.

결국 거짓이 없는 정보이기 때문에 통계분석을 했을 때, 숫자를 측정했을 때 의미를 부여할 수 있음을 알 수 있다. 그렇다면 보안관제 분야에서도 그런 정보들을 활용하면 되지 않을까? 보안관제는 크게 두가지 분야로 나뉜다.

먼저 전통적인 보안관제 분야. 이 분야는 IDS나 IPS 등 네트워크 보안솔루션이 핵심이다. 왜 그럴까? 휴전선을 떠올려보면 된다. 북한의 도발에 대비해서 휴전선을 지키는 게 나을까? 아니면 집집마다 군인들이 지키고 서있는 게 나을까? 당연히 북한이 쳐들어올 수 있는 주요 길목인 휴전선을 지키는 게 더 효율적이다.

마찬가지로 모든 시스템을 검사하는 것 보다는 데이터가 오고 가는 길목인 네트워크를 검사하는 것이 더 효율적. 그러나 앞서 살펴봤던 것처럼 패턴매칭의 한계때문에 정탐과 오탐, 진짜와 가짜 로그가 섞이면서 통계분석이 의미 없는, 빅데이터 접목이 어려운 분야가 되겠다.


반면에 전통적인 보안관제 분야에서 소외되었던, 로그가 너무 많아서 소외되었던 방화벽이나 서버의 로그들은 통계분석을 할 수만 있다면 의미를 부여할 수 있다. 왜? 발생 사실이 그대로 기록된, 거짓이 없는 로그이기 때문. 즉 빅데이터 접목이 가능한 분야.


개인적으로 기회가 된다면 항상 방화벽 로그를 분석해보고 싶었다. 연결이 발생한 IP나 포트의 개수를 인/아웃바운드별로, 시간 단위로 추적하면 의미있는 결과가 나오지 않을까란 생각을 많이 해왔었다.

빅데이터만 있으면 될까?

그런데 생각만 하고 실제로 해본 적은 없다. 왜 안 했을까? 로그가 너무 많아서? 빅데이터 인프라가 없어서? 물론 그런 이유도 있지만 더 큰 이유는 고유 업무만으로도 충분히 벅차기 때문이다(..)

기존에 전통적인 보안관제 업무에 대한 책임을 가지고 있는데 다른 시도를 하다가 기존 업무에 공백이 발생하면 아무도 책임져주지 않는다는 것. 다시 휴전선을 떠올려보자. 국방부가 휴전선 병력을 몽땅 빼내서 간첩 잡는데 전념하겠다고 한다면?

휴게소 털 생각에 신난 북한군

휴전선 감시와 간첩 색출은 전담 조직을 통해서 병행을 해야 한다. 결정적으로 휴전선 감시가 선행되어야만 내부에서 간첩 잡는 업무에 의미를 부여할 수 있다. 휴전선이 뻥 뚫려있는데 내부에서 간첩을 아무리 많이 잡은들 무슨 의미가 있을까?


많은 사람들이 알려지지 않은 공격을 막는 게 중요하다고 얘기하지만, 그게 알려진 공격을 막는데 소홀해도 된다는 뜻은 아니다. 그리고 사실은 알려진 공격조차 다 막지 못하고 있는 것이 현실.

결국 전담 조직을 구성해서 업무를 병행했을 때만이 알려진 공격과 알려지지 않은 공격이라는 두마리 토끼를 잡을 수 있다.

많은 이들이 데이터가 '빅'임을 강조하기 위해 그동안 소외되어 왔던 방화벽, 웹로그 등을 거론하며 데이터를 부풀린다. 그래야 빅데이터가 되니까. 반대로 얘기하면 핵심 보안장비인 IDS, IPS 로그는 그렇게 많지 않다는 것. 그럼에도 제대로 분석하지 못했다. 왜? 사람이 없어서..

스몰 데이터도 제대로 분석해본 적이 없다는 사실을 우리는 인정해야 한다. 잘 걷지도 못하는 아이에게 좋은 신발을 사주면 뛸 수 있을까? 빅데이터가 인공지능이 아닌 이상 늘어난 데이터를 분석하기 위해서는 더 많은 사람과 더 많은 경험이 필요하다.

데이터가 스몰일 때부터 내부역량을 강화하고 다양한 분석을 시도할 수 있는 환경을 마련해 왔다면 빅데이터는 껌이었을 것이다. 그러지 못했다면 이제라도 그렇게 해야 한다.

"데이터를 다루는 분야의 사람이 개입되어 데이터를 여기 저기 뜯어 보고, 해체하고 조합하는 과정을 거치면서 '무엇'에 대한 정의를 할 수 있는 역량을 키운다." (사장님, 역량이 클 때까지 기다려주세요. -_-)

결론

첫 번째, 빅데이터 분석은 결국 통계분석이다. 데이터양 보다는 질이 더 중요하다는 얘기. 데이터만 많으면 알아서 답을 줄 것이란 환상에서 벗어나자.

두 번째, 빅데이터 분석이 성공하기 위해서는 패턴매칭을 이용하는 전통적 보안관제와 빅데이터를 이용한 보안관제가 병행과 상호보완이 가능한 체계를 구축해야 하며, 그러기 위해서는 전담 인력과 조직이 반드시 필요하다.

사실 나는 기회가 있을 때마다 빅데이터에 대한 부정적인 의견을 피력했었던, 빅데이터 회의론자다. 하지만 그럼에도 많은 정보보안 현장에 빅데이터가 구현되기를 희망한다. 솔루션과 데이터는 많을수록 좋다. 감당할 수 있는 인력과 조직만 있다면.


댓글 2개:

  1. 현실을 정확히 짚은 글인것 같습니다

    답글삭제
  2. 제 경험이 한계가 있다보니, 더 많은 경험들이 공유되었으면 하는 바람입니다. 감사합니다.^^

    답글삭제

크리에이티브 커먼즈 라이선스