정보 보안에 대한 관심이 높아지면서 지난 두달 동안 우리 회사에서도 네트워크 IDS(Network Intrusion Detection System 이하 NIDS)를 설치해 사용하고 있다. IDS라고 하면 호스트 IDS(이하 HIDS), 네트워크 IDS, 하이브리드(Hybrid) IDS 등 여러 가지가 있지만, 웹쇼핑몰을 운영하는 회사의 성격상 NIDS를 설치했다. 기존에 구축했던 파이어월 안쪽에 IDS를 설치해 파이어월에서 1차 필터링이 된 패킷을 감시, 분석해 해킹을 탐지하기로 하니 ‘IDS가 다 알아서 하겠지’라는 생각을 하게됐다. 매일 수시로 정상 또는 수상한 이용자들의 행위가 실시간으로 모니터링되고, 전자우편, 휴대폰으로 경고 메시지를 받고 있다. 위험도가 높은 공격에 대한 경고 요청을 설정했고, 내가 어디에 있든지 해킹의 여부를 파악할 수 있다. 패킷 탐지와 동시에 저장 관리되는 로그를 사후에라도 콘솔에서 Whois 메뉴를 이용해 공격자를 상세하게 추적해 볼 수 있다. 하지만 실시간으로 계속 탐지되는 저 많은 이용자들이 다 공격자일까? 그리고 탐지되는 저 공격들은 도대체 뭘까? 이럴 땐 어떻게 해야 하는 거지? IDS가 있는데, 내가 또 뭘 해야하는 거지?”이 같은 생각은 많은 관리자들이 공감할 수 있을 것이다. 많은 사람들이 보통 IDS를 처음 접하게 될 때 다양한 보고서 기능과 내외부 사용자 내역, 전자우편 열람 등 디앵힌 기능에 반가움과 함께 경이로움까지 느끼게 된다. IDS는 시스템 내에 설치돼 시스템의 이벤트 로그를 감시하거나 파이어월 내외부, DMZ 구역, 사설 네트워크 어느 곳에서나 설치돼 네트워크에서 들어오는 패킷들을 실시간으로 보여주고 악의적인 활동에 대한 모니터링 결과를 보고한다. 그러나 관리자는 이렇게 좋은 IDS를 비싼 값을 주고 설치하고도 바라만 봐야 되는 이유와 좀 더 잘 이용할 수 있는 방법에 대해 고민하게 된다. 물론 방법은 있다. 바로 이런 고민을 시작으로 관리자는 보안 전문가가 될 준비가 돼 있는 것이다.IDS 이해부터 ‘활용은 시작된다’ IDS를 제대로 활용하기 위해서는 먼저 IDS에 대한 정확한 이해가 필요하다. 우선 IDS는 말 그대로 침입탐지 기능을 한다. 곧 공격상황을 탐지해 공격자가 심각한 문제를 일으키기 전에 적절한 조치를 취할 수 있는 시스템이며, 완벽한 차단기능을 제공하지는 않는다. 따라서 외부의 접근 ‘차단’을 주기능으로 제공하는 파이어월과 함께 연동될 때 매우 효과적으로 작동하며, 다른 네트워크 장비들을 최대한 활용할 때 IDS의 효용을 극대화할 수 있다.IDS는 알려진 공격을 위반 사항(Signature)으로 규정하고, 흘러다니는 패킷에서 이 위반사항을 탐지하는 것이다. 네트워크나 로컬 상에서 이뤄지는 공격의 대부분은 이미 알려진 약점을 이용한다. 또한 운영체제나 애플리케이션의 취약성, 프로토콜이나 서비스의 취약점 등 많은 장비 업체나 시스템 관리자들이 밝히기를 꺼리는 것을 공개한 것에서부터 시작된다.IDS 관리자는 보호 대상과 관련된 운영체제나 애플리케이션의 취약성에 대해 정기적으로 정보를 수집하고 그에 대해 적절하게 대처해야 한다. 시스템에서는 패치나 취약성이 없는 버전으로의 업그레이드, 불필요한 서비스의 중지와 불필요한 포트 막기 등의 조치를 취할 수 있다. 하지만 이와 같은 조치를 할 수 없는 상황은 다음과 같다. ·오랜된 시스템은 운영체제의 패치나 업데이트 불가능·비록 운영체제의 패치가 가능하더라도, 많은 시스템 수와 몇몇 안되는 관리자로 인한 시간과 자원의 부족·알려진 포트나 80번 포트같은 네트워크 서비스나 프로토콜을 이용해야만 하는 경우·조직의 시스템 사용 규정을 반영하기 위해 접근 제어 메커니즘 설정시 IDS 관리자는 이같은 상황에서 탐지된 공격자에 대한 집중적인 관리를 해야 한다. 이와 같이 알려진 공격에 대한 대처 방법이 있지만 알려지지 않은 공격, 즉 새로 발견된 공격이나 변형된 공격에 대한 대응이 어렵다. 알려지지 않은 공격이 발견됐다면, 그것은 이미 해킹이 이뤄졌음을 의미한다. 하지만 예측되거나 발생 가능성이 있는 공격에 대해서는 어느 정도 대처할 수 있다. 공격자는 공격할 때 일반적으로 예측 가능한 단계를 거친다. 공격의 첫 단계로 시스템이나 네트워크를 스캔해 취약성을 발견하고 공격을 위한 포인트를 찾는다. 하지만 IDS는 공격의 첫 단계에서 이미 공격자의 수상한 행동을 포착하고 감시한다. 공격자가 공격 포인트를 정하고 시스템에 공격을 가할 경우 IDS 관리자는 이같은 행동에 대해 공격성을 판단하고 방어할 수 있다. 새로 발견된 공격이나 변형된 공격에 대한 임시적인 대응은 IDS의 기능을 이용해 관리자가 공격 패턴(Signature)을 등록할 수 있다. ·보호하고자 하는 대상 시스템의 중요한 파일로의 접근을 제어하기 위해 중요 파일명·매일 새롭게 보고되는 웜바이러스의 패턴 ·매일 새롭게 보고되는 Web-CGI 공격 패턴이같은 공격 패턴을 등록해 최신 공격 유형에 임시적인 조치를 취할 수 있다. 현재 국내 IDS의 경우, 위협적인 새로운 취약성과 바이러스에 대해 라이브 업데이트와 같은 방법으로 대처하고 있다. 또한 과다한 네트워크 트래픽이나 시스템 부하 발생시 성능이 뒷받침되지 않는 IDS의 경우, 즉각적인 탐지와 보고, 공격에 대한 대응이 제대로 이뤄지지 않고 정상적으로 작동하지 않을 수 있다. 이런 문제점은 오래 전부터 제기돼 왔고, 지난해부터 기가비트급 트래픽을 지원하는 IDS를 속속 선보이고 있다. 적절한 보안 정책 수립 IDS를 정확하게 이해했다면 관리자는 무엇을 보호할 것인가와 어떻게 보호할 것인가에 대한 보안 정책을 세워야 한다. 보안 정책은 불법침입자에 의해 네트워크, 컴퓨터 시스템, 데이터베이스 등 정보운영 환경과 각종 애플리케이션 등의 정보자산을 보호하고 신뢰성 있는 전산 네트워크 자원과 사용자에 대한 원활한 정보 서비스 제공하기 위해 반드시 필요하다. 또한 보안 정책으로 인해 기업은 정보자산을 어떻게 관리하고 보호할 것인지에 대해 조직의 운영 방향과 세부적인 지침을 세워 IDS를 활용함으로써 더욱 높은 효과를 얻을 수 있다. 보안 정책은 일반적으로 (표 1)과 같은 사항에 대한 지침을 세운다.
IDS와 파이어월, VPN 등 모든 보안 장비의 운영과 관리는 (표 1)과 같은 보안 정책에 따라 운영돼야 한다. 탐지된 경고(alert)에 대한 공격 여부를 규정지을 수 있으며, 세밀한 주의가 필요한 룰셋 조정을 할 수 있다. 많은 IDS 제품은 처음 설치 때 IDS가 설치될 곳에 네트워크 환경이나 각종 장비들에 대한 사전 작업을 거친 후 최적화한 상태로 설치한다. 하지만 실제로 운영하면서 IDS나 기타 주요 장비의 물리적인 위치는 변하지 않더라도 운영체제의 변경, 기존 서비스 중지나 신규 서비스 개시, 업무상 새로운 파트너, 운영자의 변경 등 여러가지 요인으로 처음 설치할 때 셋팅됐던 환경과는 많이 달라진다. 따라서 지속적으로 변경되는 항목에 적합한 IDS의 룰셋을 조정하는 것이 필요하다. 따라서 IDS 관리자는 IDS의 룰 조정에 따른 기술을 습득할 필요가 있다. 하지만 IDS에서 기본 설정 값을 변경하는 것은 매우 신중을 기해야 하는 작업이다. 반드시 자사의 네트워크 환경과 제공하는 서비스, 기타 주요 장비들과의 관계를 정확히 이해하고 수행해야만 한다. 이같은 변경 작업시에 보안 정책은 기준을 제시해 줄 수 있다. 또한 한가지 간과해서는 안될 것이 관리자의 보안 지식을 보유하는 것이다. 관리자가 보안 솔루션을 관리하는 것외에 폭넓은 보안 지식을 갖는 것은 무척 어렵고 험난하다. 하지만 관리자가 보안 지식을 습득해야 하는 것은 꼭 필요하기 때문에 가능하면 모든 방법을 동원해야 한다.인터넷 교육 사이트, 무료 강습, 세미나, 크랙 정보 사이트, 동호회, 메일링 리스트, 뉴스 그룹 등 정보 보안에 대한 관심과 연구가 뜨겁게 진행되고 있다. 관리자들이 이런 정보들을 최대한 이용해 누구도 쉽게 넘겨 볼 수 없도록 정보 자산을 지켜야만 하는 의무도 갖는다.IDS에서 모니터링되는 여러 경고들이 있는데 (그림 1)과 같이 갖췄을 때 IDS를 최대한 이용할 수 있다.
탐지된 경고 데이터 분석하기그럼 IDS에서 탐지된 경고를 분석해 보자. 예를 들어 (표 2) 같은 공격이 탐지됐다. 우선 IDS 관리자는 (표 2)와 같이 탐지된 경고에 대한 공격 여부를 판단해야 한다. 공격자로 탐지된 61.33.41.210은 대상 서버 61.33.41.132를 공격하기 위해 웹 애플리케이션의 취약성을 찾아 공격 포인트로 이용하기 위해 80번 포트에 취약성 점검 툴을 이용한 스캔(Scan) 공격을 시도했다. 이런 공격은 하나의 IP 또는 인접 IP에서 몇 가지 패턴이 아니라 수십여 개의 패턴을 거의 동일 시간 내에 대상 서버에 보낸다.
실제로 공격들이 대상 서버에 미칠 영향은 상당히 미약하다. 공격자는 대상 서버에 대한 정보를 조금 획득할 수 있는 정도다. 하지만 보고된 CGI 취약성 중에는 단지 인터넷 입력창에서 몇 가지 패턴을 입력함으로써 시스템의 루트 권한을 획득하거나 임의 명령어를 실행시켜 중요한 파일을 삭제하거나 변조할 수 있는 중대한 취약점이 있다. 종종 이같은 CGI 스캔 공격을 방어하기 위한 방법으로 룰셋을 무조건 방어로 설정했을 때, 웹 서비스가 안 되는 경우도 있으므로 관리자는 서버에서 동작하고 있는 서비스에 대해 정확하게 파악하고 있어야 한다.관리자는 이같은 공격을 파악하기 위해 보안 항목(Signature)을 위반한 공격자에 대한 정보에 대해 Traceroute 팝업창을 띄워 역추적할 수 있다. 그래서 공격자의 진행경로를 한 눈에 볼 수 있고, 탐지 리스트에서 공격자에 대한 도메인이나 MAC 어드레스를 실시간으로 보여주고 Whois 정보 검색 기능을 제공해 공격자에 대한 상세한 정보를 확인할 수 있는 것이다. 따라서 Whois 정보를 통해 획득한 연락처로 공격자에게 경고성 전자우편을 보내 정중하게 부탁하거나 강력하게 파이어월에서 공격자 IP를 차단해 더 이상 수상한 행동을 할 수 없도록 할 수도 있다. 하지만 좀 더 좋은 해결 방법은 시스템 내부에 있을 수 있는 취약성에 대한 패치를 수행하고 대비하는 것이다. 대부분의 IDS 관리자들은 단지 상관한테 보고할 것을 목적으로 결재를 위한 보고서를 작성한다. 일정 기간동안 가장 많은 공격을 시도한 공격자가 누구인지 순위를 매기거나, 가장 많이 공격받은 대상 서버가 어느 것인지에 역시 순위를 매기게 된다. 침입 통계 보고서, 옵션도 꼼꼼히 점검하지만 이같은 보고 양식들은 주의를 기울여야 하는 공격자를 선별하거나 보호할 대상 서버를 선별하는 데는 도움이 될 수 있지만, 실질적인 공격에 대한 탐지 내용을 포함하기는 어렵다는 한계를 갖는다. CGI 공격은 취약 시스템인 경우에 한번의 공격으로 타격을 받는다. 그리고도 보고서의 통계 정보에서는 당당하게 누락되는 것이다. 관리자는 이점에 유의해야 한다. IDS가 제공하는 간편한 톱 10 보고서에서 누락될 수 있는 사항에 대해 관심을 가져야 한다. 또한 옵션 선택을 통한 보고서를 최대한 활용해야 한다. 공격의 위험도가 높다는 것은 곧 침해를 받았을 경우 시스템에 미치는 영향이 높다는 것을 의미한다. 위험도가 높은 공격에 주의하고 어느 공격자가 시도했는지, 공격 시간대 혹은 일정 간격을 두고 주기적인 움직임에 대한 관찰이 필요하다. 또한 위험도가 낮은 공격이라 하더라도 흔히 네트워크에서 발생될 수 있는 공격들에 대한 주시도 필요하다. 예를 들어 핑 플러딩(Ping flooding)과 같은 공격인 경우 몇 시간 동안 계속 수만 건씩 탐지되고 계속 진행되거나 다시 재개될 움직임이 포착되면 관리자는 무슨 이유에서인지 원인을 규명해야 한다. 이같은 사항들은 통계 보고서에서 흔히 누락될 수 있는 중요한 사항들이다. 예를 들어 (표 3)과 같은 경고가 자주 탐지됐다고 하자. 공격자가 일정하지 않고 탐지되는 시간 또한 일정하지 않다. 이 경우 탐지된 경고가 공격일까 아닐까를 판단하는데 IDS 관리자의 지식이 동원돼야 한다. 우선 DNS Bind 버전을 어느 경우에 리퀘스트하는지를 생각해야 한다.
공격자의 DNS 서버와 대상자의 DNS Bind 버전이 차이가 날 때, DNS 서버는 자신의 버전 정보를 주고 상대방의 버전 정보를 요청한다. 또한 일반적으로 DNS 서버는 자신이 가지고 있는 정보를 주기적으로 갱신하기 때문에 상대방의 데이터를 요구해 갖는다. DNS Bind 버전에 대한 요청은 공격자가 공격하기 위해 보고된 Bind 버전에 대한 취약성 정보를 획득하고 대상 시스템의 버전을 확인한다. 하지만 지극히 정상적으로 DNS 서버가 동작하며 발생될 수도 있다. 그렇다면 우선 관리자는 공격자 IP를 확인해야 한다. Whois 정보를 이용해 공격자가 누구인지 어떤 용도로 사용되는 컴퓨터인지 알아야 한다. 만일 공격자의 서버가 DNS 서비스를 제공하는 서버라면 흔히 네트워크에서 일어날 수 있는 일에 해당할 것이다. 하지만 용도가 불분명한 사용자의 행동이라면 공격 의도를 가졌다고 보고 다음 행동을 주시해야 한다. 관리자는 이렇게 실제 공격은 아니지만 공격으로 탐지되는 오탐(False Positive)에 대한 판단을 할 수 있어야 한다. 결국, IDS에서 탐지된 경고가 쓸모있거나 버리는 것에 대한 최종적인 판단은 관리자가 하는 것이다. 판단의 주체는 능동적인 관리자관리자는 IDS가 침입탐지에 중점을 두는 시스템이고, 알려지지 않은 공격이나 예측하기 어려운 공격에 대해서 완벽한 방어를 할 수 없으며, 과다한 트래픽이나 시스템 부하 발생시 문제가 발생될 수 있는 점을 염두에 둬야 한다. 따라서 관리자는 각 솔루션 업체들의 사이트나 취약성 발표 사이트를 이용해 시스템의 취약성을 파악하고 패치해야 한다. 파이어월이나 TCP 랩퍼(Wrapper)와 같은 차단 프로그램을 설치해 운영하거나 사용자 정의 공격 패턴 등록 기능을 이용해 매일 새롭게 보고되는 취약성(웜 바이러스나 CGI 공격 유형과 같이 일정한 공격 패턴을 갖는 것은 일반 관리자도 등록할 수 있다)에 대한 정보를 받아 최신 유형에 대처한다. 패치나 업데이트가 불가능한 시스템의 경우 사용자(탐지된 공격자 IP)의 접근을 엄격히 제한하거나, 네트워크에서 트래픽 발생량이 많은 경우 기가 트래픽을 지원하는 IDS로의 교체를 고려하는 능동적인 자세를 갖고 보안을 담당해야 한다. 또한 보안 정책을 세워 일관된 관리를 하고 온오프라인의 다양한 방법을 활용해 보안 지식을 갖추고 이용할 때 IDS를 200% 활용할 수 있을 것이다. @