Security+Cloud+ML 트레이닝에 대한 생각

Security 필드에 ML(Machine Learning)을 접목 할 수 있을까? 많은 시큐리티 리서쳐들을 만나 보면, 한국이나 해외를 막론하고 대부분 ML을 일종의 snake oil – 사기 정도로 생각하는 경우가 많다. 일종의 블락체인하면 미래를 바꿀 새로운 기술이 아니라 투기가 떠오르는 현상과도 비슷하지 않을까 한다. 그 동안 여러 보안 업체들이나 리서쳐들에 의해서 ML이 조금 과장된 형태로 시큐리티 인더스트리에 소개 되어 온 것이 근원적인 문제라고 생각한다. 항상 버블을 일으키며 떠오르는 여러 기술들의 끝은 버블 붕괴와 함께 장시간 저평가되는 경향을 가지고 있다.

왜 ML인가?

일단 왜 ML인가에 대한 질문에 답을 할 수 있어야 한다. 지금 보안 인더스트리의 근본적인 문제는 너무 많은 데이타에 있다. 80년대, 90년대처럼 몇십명, 몇백명의 리서쳐들이 여러 샘플들을 수동으로 아니면 반자동적인 방법으로 파악하고, 시그너쳐와 보안 장치들의 룰을 업데이트할 수 있던 시대에 비해서 지금은 샘플의 숫자와 말웨어의 종류등이 기하 급수적으로 늘어 왔고, 늘어 가고 있다.

두번째 문제는 기존의 파일 기반의 말웨어에서 벗어나 여러가지 시스템 관련 툴을 사용하는 말웨어들, 제로 데이 취약점이나 공격 기법을 사용하여 기존 시그너쳐로 탐지하기 힘든 highly targeted attack – 소위 APT들의 증가 등으로 인해서 기존의 백화점식의 보안 솔루션으로는 이러한 세세한 부분까지 파악하기에는 역부족인 현실을 맞이하게 되었다.

그리고, 마지막의 문제는 보안 인력의 부족 현상이다. 본인도 마이크로소프트에서 Security Researcher로 일하면서 다른 팀의 여러 대응 인력이나 분석 인력의 인터뷰에 적극적으로 참가해서 면접을 봐 주고는 했는데, 많은 경우 인력의 퀄리티도 낮을 뿐더러, 그 마져도 그 정도의 사람을 인터뷰까지 데려 오기도 쉽지 않을 정도로 필드의 인력난이 심각하다. 인력을 갈아 넣어서 보안 리액션을 취할 수 있는 시대는 점점 멀어져가고 있다. 점점 더 많은 기업들이 사이버 시큐리티에 관심을 갖고 더 많은 인력들을 수용하려고 노력을 하고 있고, 제대로 된 사이버 시큐리티 인력을 키우는 데에 드는 비용과 시간을 생각한다면 앞으로 수년 이상은 극단적인 인력 부족 이 계속될 가능성이 높다. 기업 입장에서 결국 보안 필드에 ML 도입은 옵션이 아니라 필수다.

왜 Cloud인가?

그렇다면, 첫번째 왜 ML인가에 대해서 어느 정도 대답이 이뤄졌다고 생각을 하고, 두번째 질문에 답해 보자. 왜 Cloud인가? 왜 on-premise가 아닐까? 이 질문에 대한 답은 ML의 특성과 관련 되어 있다.

첫번째로 ML은 샘플셋의 트레이닝을 통해서 새로운 샘플들에 대한 예측을 하는 메카니즘을 대부분 가지고 있다. 당연히 더 많은 샘플셋을 볼수 있을 때에 더 좋은 성능을 낼 수 있는 것은 자명하다. 그러한 측면에서 많은 보안 업체들은 고객들의 텔레메트리를 클라우드로 보내 줄 것을 요구한다. 보안 업체 입장에서는 클라우드에 올라온 여러 고객들과 사용자들의 텔레메트리를 전체적으로 조망하고 분석할 수 있는 슈퍼 파워를 가지게 된다. 그러한 슈퍼 파워가 ML을 통한 보안 위협 디텍션을 더 효율적이고 정확하게 만들 수 있는 밑거름이 된다. 데이타가 없다면, 디텍션도 없다.

두번째로 데이타의 특성에 있다. 이렇게 많은 보안 업체들의 이러한 시장 점유를 통한 슈퍼 파워 획득에 열을 올리고 있는데, 이러한 데이타 확보를 통해서 하나의 잇점이 있다. 이전에 볼 수 없었던 여러 데이타 포인트들 간의 연관성에 대한 가시성을 확보하게 된다는 것이다. 이것은 마치 일 개개의 텔레메트리, 즉 데이타들을 모아서 보면 또 데이타 사이의 연관 관계라는 또다른 차원의 데이타를 볼 수 있는 것과 마찬가지이다. 이는 일종의 나무가 아닌 숲을 볼 수 있는 자들의 특권이라고 할 수 있다.

텔레메트리의 집합을 통해서 새로운 관점을 얻었던 좋은 예로 필자는 항상 마이크로소프트의 Dofoil 서플라이 체인 어택 디텍션을 든다. 다음의 설명과도 같이 12시간이라는 시간 프레임에 40만개의 머신이라는 정보가 더해 지면 이 자체로도 굉장히 유의미한 데이타가 된다. 굉장히 빠른 속도로 특정 지역에 위치한 기계들에 정체를 알 수 없는 수상한 바이너리들이 퍼지는 것을 탐지하는 것만으로도 이 말웨어 파일을 리버싱해보지 않아도 충분히 수상하다는 것을 디텍션 할 수 있다. 이러한 디텍션은 클라우드가 아니라면 이뤄지 힘든 형태의 디텍션이다. 디텍션이 되어도 confidence 면에서 확연히 떨어질 것이다. 각각의 머신들이 자신이 볼 수 있는 정보만을 가지고 의사 결정을 해야 하기 때문이다.

Within the next 12 hours, more than 400,000 instances were recorded, 73% of which were in Russia.

Behavior monitoring combined with machine learning spoils a massive Dofoil coin mining campaign

Security+Cloud+ML

이러한 관점에서 올바른 Security를 이룩하기 위해서는 데이타들이 Cloud와 같은 장소로 집합되어야 하고, 이 엄청나게 많은 양의 데이타를 인간이 수동으로 분석하는 것은 그 자체로서 이미 불가능한 작업이 되어 버린다. 아무리 뛰어난 리서쳐들이라도 초당 수밀리언개의 데이타를 검토하는 것은 불가능하다. 그렇다고 많은 리서쳐들을 고용하려고 해도 일단 고용 비용 문제 두번째로는 자본이 있다고 하더라도 실제로 인력이 없다. 결국 인간으로는 어떤 방식을 취해도 보안 문제는 해결할 수 없다라는 것은 너무나도 자연스러운 결론일 것이다. 시큐리티 리서쳐로서 약간 자신의 위치가 흔들리는 것 같아서 초라한 느낌도 들지만, 그것이 현실이다.

그렇다면 시큐리티 리서처, 엔지니어, 애널리스트로서 무엇을 해야 할 것인가?

그 질문에 대한 답을 제공하는 것이 Security+Cloud+ML 트레이닝이다.

아직까지 ML의 보안 필드 적용은 아주 초기에 해당한다. 많은 것들이 여러 보안 회사들이나 구글, 마이크로소프트와 같은 데이타 공룡들에 의해서 이뤄지고 있지만, 실제로 보안에 대한 인사이트를 가지고 있지 않으면, 로우 데이타만을 가지고 무턱대고 기계에 집어 넣는다고 답이 자동으로 나오지 않는다. 결국 시큐리티 스페셜리스트로서 자기 분야에 대해서 ML 메카니즘이 제대로 작동할 수 있도록 정선된 데이타를 수집하게 하는 방법론 확립과 함께 데이타 가공을 통해서 머신이 이해할 수 있는 형태를 피쳐셋을 만들어 내는 일. 그리고 머신이 얼마나 제대로 일을 해 내는 지에 대해서 평가하고 더 좋은 데이타를 다시 제공하는 일들을 초기 단계에 열심히 해 주어야 한다는 것이다. 결국 그것은 인간의 몫이다. 초기 몇년간은 아마도 투자에 비해서 아웃풋이 떨어질 수도 있다 – 그만큼 제대로 된 데이타, 의미 있는 데이타를 ML에 입력 시키는 일은 쉽지 않다.

이 트레이닝을 통해서, 이러한 전체 과정에 대해서 어느 정도 살짝 맛을 볼 수 있고, 감을 잡을 수 있는 개기가 될것이다. 다음번 블로그에는 구체적으로 어떠한 것들을 배우고 실습할지에 대해서 개략적으로 공유할까 한다.

Leave a Reply