보안-인체면역학 교배의 효과와 한계 |
Steven Hofmeyr (Sana Security) |
2004/04/20 원문보기 |
어려운 기술적인 문제에 봉착했을때 사람은 생물학에서 해답을 찾고자 하는 경향이 있다. 최초로 비행기를 날린 라이트 형제는 새를 모방해 꺾인 모양의 유연한 날개와 양력을 발생시키는 보조익을 고안했다. 컴퓨터 네트워크 보안 기술이 직면한 문제에 대한 해답을 생물학에서 찾으려는 연구가들은 라이트 형제의 뒤를 따르고 있는 셈이다. 현재 보안은 불완전하다. 지난 몇 년동안 컴퓨터 네트워크를 오염시켜온 웜, 바이러스, 그리고 여러가지 형태의 해킹을 보면 명백히 그 사실을 알 수 있다. 하지만 여러가지 질병, 미세한 세균, 바이러스의 공격으로부터 몸을 보호한다는 측면에서 보면 인간 면역체계가 직면한 문제는 이보다 훨씬 더 심각한 수준이며, 면역 체계가 상대해야 하는 환경은 지금의 모든 컴퓨터 네트워크를 합친 것보다 훨씬 더 복잡한 것이다. 컴퓨터 보안과 면역학(immunology)을 나란히 비교하는 것은 충분히 납득할만한 일이고, 종종 가치 있고 해답에 대한 영감을 얻을 수도 있는게 사실이다. 하지만 맹목적인 모방은 아무런 해답을 제시하지 못한다. 먼저 생물학과 기술은 전문 용어, 원칙, 메카니즘이라는 3가지 공통점을 기준으로 단계를 나눌 수 있다. (생물학과 기술을 나란히 놓는) 가장 초보적인 단계는 현실과 크게 상관도 없는 전문 용어와 마케팅용 과장광고의 남발이다. 예를 들어 시스코시스템즈 CEO인 존 챔버스는 시스코가 인간 신체의 면역체계가 바이러스와 싸워 감염으로부터 우리를 보호해주고 건강을 지켜는 것과 같은 방식의 ‘자가방어(self-defending) 네트워크’를 개발하고 있다고 한다. 인간 면역체계와 챔버스가 말한 자가방어 네트워크 사이에 공통점이 있다면 둘 다 바이러스에 대항한다는 것뿐, 그 이외엔 아무것도 찾을 수 없다. 이보다 좀더 의미있는 두번째 단계는 ‘원칙’이다. 인간 신체의 생물학적 시스템을 움직이는 원칙을 찾아 보안 시스템 설계에 적용한다는 것이다. 예를 들어 인간 면역체계는 자율적인 것이라 중앙 집중식 제어가 필요없다, 어느 한 부분에서 면역체계가 망가져도 다른 곳에서 작동한다, 적응력이 강해서 어떠한 환경에서도 제 기능을 발휘한다, 그리고 면역력 강화를 위해서는 인류의 다양성이 필요하다 등의 원칙을 컴퓨터 보안에 적용한다는 것이다. 이중 ‘다양성의 원칙’을 두고 그동안 보안업계는 논란을 벌여왔다. 많은 사람들이 MS의 소프트웨어 독점이 ‘소프트웨어 단일품종’ 현상을 초래, 하나의 취약점으로 대부분의 사람들이 사용하는 시스템이 피해를 입게 됨으로써 보안 문제가 악화되고 있다고 주장해왔다. 이 다양성에 관한 연구는 1997년 뉴멕시코 대학의 스테파니 포레스트와 어닐 오마야지가 처음 시작했다. 이들은 컴파일된 코드를 임의 추출하는 방법을 연구해 한 프로그램을 다양한 버전으로 만듦으로써 한가지 공격 방법은 한가지 버전에만 작용하도록 했다. 이와 유사한 개념을 상용화한 업체로는 클록웨어가 있다. 이 회사가 개발한 ‘소프트웨어 트랜스포메이션’ 기술을 사용하면 기능 면에서는 동일하지만 구조적으로는 전혀 다른 애플리케이션 버전들을 생성할 수 있다. 가장 고차원적인 세번째 단계는 매카니즘이다. 현재 보안 시스템이 직면한 문제를 해결하기 위해 생물학 시스템 매카니즘을 이용하는 것이다. 보안 시스템은 과도한 false-positive(보안경고 대상이 아닌 것을 경고 대상으로 탐지하는 오류)로 몸살을 앓는다. 정당한 행위를 악의적인 해킹으로 오인할 경우 잘못된 경고를 발령할 뿐 아니라, 더 심하면 규칙에 맞는 행위조차 봉쇄시켜 버린다. 이러한 사태의 한 예가 스팸 필터다. 스팸 필터가 정상적인 메일을 스팸으로 오인하면 사용자는 그 메일을 받아보지 못하게 된다. 흥미롭게도 인간의 면역체계도 false-positive에 대해 보안 시스템과 유사한 문제를 일으키는 경우가 있다. false-positive는 면역체계에 다양한 형태의 오류를 일으키는데, 다발성 경화증(multiple sclerosis)과 낭창(lupus)이 그 예다. 하지만 false-positive로 인한 면역체계의 이상은 극히 드문 일이다. 면역체계는 ‘코스티뮬레이션(costimulation)’ 작용을 통해 false-positive 문제를 해결한다. 코스티뮬레이션이란 두가지 신호가 포착돼야 면역체계 세포가 활성화 되는 것을 의미한다. 첫번째 신호는 면역체계 세포가 비정상적인 것을 발견했을 때, 두번째 신호는 신체에 어떤 피해가 발생했을 때 작동한다. 즉 결과적으로 면역체계는 ‘신체에 해를 입힌 비정상적인 것’이란 결론을 얻어야 활성화되는 것이다. 반응 강도는 인체 손상 정도에 비례한다. 이 메카니즘을 컴퓨터 보안에 응용할 수 있다. 비정상적인 네트워크 행위를 하는 시스템을 찾아내 그 행위가 컴퓨터의 다운과 서로 관련이 있을 때에만 보안 시스템이 반응하도록 할 수 있을 것이다. 물론 이것도 피해를 완벽하게 막을 수는 없겠지만 충분한 보호기능을 제공하기 때문에 기업 차원에서 상당히 유용한 솔루션이 될 수 있다. IBM의 ‘사이버 공간을 위한 DIS(Digital Immune System)’도 면역학 연구에서 힌트를 얻은 것으로, 이 메카니즘과 유사하다. 이 시스템은 각 장치에서 감염 신호를 찾아내 이를 중앙 바이러스 분석 엔진으로 보고하고, 중앙 바이러스 분석 엔진은 이에 대한 수정안을 만들어 장치들에 배포하게 된다. 이 시스템은 감지된 감염 신호의 유효성 여부를 판단하기 위해 (면역체계와 같은) '피해 신호'를 사용한다. 분명한 것은 생물학과 기술 분야를 더욱 심도있게 비교할수록 두 분야에서 일치하는 점들을 정확하게 배치하는 작업의 중요성도 그만큼 커진다는 사실이다. ‘기밀 유출’과 같이 두 분야가 전혀 공통점이 없는 부분도 있다. 인간 면역체계에는 기밀 유출 문제가 없지만, 컴퓨터 보안에서는 무척 중요한 문제다. 비밀 데이터 유출로 인해 발생하는 피해를 어떻게 찾아내야 하는지는 면역체계 연구에서 답을 얻을 수 없다. 또한 이보다 더 중요한 것은 보안에 적용하기에 앞서 생물학 시스템을 제대로 이해해야 한다는 점이다. 라이트 형제의 이야기로 돌아가 보자. 이들은 비행기 날개를 디자인하면서 새를 모델로 삼았으나 적용할 수 있는 것과 할 수 없는 것을 명확히 구분했다. 예를 들어 새의 날개모양은 가져왔지만 날기 위해 상하로 움직이는 동작은 적용하지 않았다(역사적으로 새처럼 상하로 움직여 날고자 했던 시도는 모두 실패했으며 오늘날까지도 인간은 새의 날개 상하운동에 의한 항공역학을 완전히 이해하지 못하고 있다). 라이트 형제의 예와 마찬가지로 생물학적 시스템의 모방 행위는 항상 신중을 기해야 한다. 맹목적으로 나란히 놓고 따를 것이 아니라 유효한 것만 골라서 취해야 한다는 의미다. 어떤 특성이 두 시스템간에 더 유사할수록 그 특성을 이용한 효과도 커지게 된다. 따라서 보안에 적용하기에 앞서 우리는 먼저 두 시스템간의 ‘일치점’들을 명확히 이해해야 한다. 이러한 원칙을 따른다면 우리는 ‘자율적이고 적응력이 뛰어난, 자율 방어적이며 자가 치유적인 정보 시스템’ 구축에 한걸음 더 다가설 수 있을 것이다. @ |
딱히 도움이 되거나 감동적인 건 아니고 내용이 그냥 맘에 들어서 퍼왔다.