리포트

DBMS, DB 구축 절차, 빅데이터 기술 칼럼, 사례연구 및 세미나 자료를 소개합니다.

RT-CAAT 기반으로 본 실시간 보안 감사

작성자
dataonair
작성일
2002-12-31 02:30
조회
800











RT-CAAT 기반으로 본 실시간 보안 감사

취약성에 보안정책 위반까지 감사 …

보다 효율적인 보안 프로세스

박 형 근 과장(IBM 티볼리 시큐리티 컨설턴트, phk@kr.ibm.com

더욱 복잡하고 빨라진 다양한 위협요소들로부터 시스템을 보호하는데 있어 IT 시스템의 최대 복구 허용 시간이 갈수록 줄어들고 있어 실시간 보안 감사와 위험 관리 시스템의 도입이 필요성이 높아지고 있다. 따라서 보안 라이프 사이클을 고려한 보안 프로세스의 체계적인 관리 필요성이 대두되고 있다. 보안이 비즈니스에 상당한 영향을 미치면서 실질적인 위험 관리에 대한 요구가 증대되고 있는 것. 이에 본 지에서는 실질적 위험 관리를 위해 최근 대두되고 있는 RT-CAAT(실시간 컴퓨터 감사 기법) 기반으로 본 실시간 보안 감사의 기술 경향을 살펴본다.


아프리카의 평원에 두 친구가 가고 있었다. 그러던 중 배고픈 사자를 만났다. 이 절대절명의 순간, 한 친구는 자신의 가방에서 운동화를 꺼냈다. 이를 본 다른 친구가 말했다.


“넌, 아무리 뛰어도 사자를 앞지를 순 없어!”

그러자, 다른 친구가 말했다.

“아니, 난 너만 앞지르면 돼!!!”


이는 NetSec ′96에서 GTE Laboratories의 Len D’Alotto가 보안에 대해 단적으로 보여준 유명한 비유다. 그렇다. 보안은 이상과 같은 비유처럼 비즈니스로 보아야 한다. 완벽한 보안을 위해 모든 취약성, 모든 위협에 대해 대처할 필요는 없다는 것. 만약 모든 위협에 대처한다면 그것은 비현실적이다. 아니 그러한 요구를 한다는 것 자체가 보안을 포기한다는 말과 같다.

다시 말해 보안은 철저히 경제적이고 경영적이어야 한다는 것. 최소한의 비용으로 최대한의 효과라는 경제 법칙이 보안에도 마찬가지로 적용되어야만 한다. 경제를 논함에 있어서 기준은 수익이다. 그러나 보안에 있어서의 기준은 무엇일까. 그것은 바로 위험 즉 리스크(Risk)이다.


보안에 있어서 위험 혹은 리스크는 취약성(Vulnerability)을 가진 비즈니스 시스템에 대한 악의적이거나 비의도적인 공격(Threat)에 대해 비즈니스에 어느 정도 영향(Impact)을 주는가로 정의된다.


보안 수준이 비즈니스 척도


여기서 취약성이란 시스템 내에 존재하는 약한 부분이다. 그것이 하드웨어든 소프트웨어든 상관없이 문제의 가능성이 완벽하게 해소된 시스템은 없고, 그 문제가 바로 취약성이다. 심지어 취약성은 인간 그 자체를 포함한다. 인간으로부터 야기된 취약성은 인간의 비의도적 실수와 악의적인 행위를 불러 올 수 있는 여러 가지 상황이 있을 수 있다는 점이다.

이러한 취약성을 이용한 공격이 바로 위협(Threat)이다. 위협은 크게 외부적인 것과 내부적인 것이 있다. 외부적인 위협은 해커나 크래커로 대표되지만, 보다 실질적인 외부 위협은 바로 자동화된 툴들로 바이러스, 웜, 봇과 스파이웨어 등이 있다. 내부적인 위협은 주로 내부 직원들의 실수와 태업을 포함해 자료 파기·변조·유출 등의 악의적인 행위 등이 있다.

이러한 위협으로부터의 비즈니스적 영향은 단기적인 금전적 손실로부터 장기적인 기업 이미지 실추에 이르기까지 실로 다양하다. 그러나 일시적으로 운영되는 시스템을 공격당했을 때보다는 경영 핵심 시스템을 공격당했을 때가 일반적으로 그 영향이 더 클 것이다.

이렇듯 하나의 위험 안에는 여러 가지 취약성과 위협이 관여될 수 있고 다양한 정도의 비즈니스 영향을 줄 수 있다. 이를 수식화하면 다음과 같다.


리스크(Risk) = 공격(Threats) × 취약성(Vulnerabilities) × 영향(Impact)


그렇다면 보안의 목적은 리스크를 최소화하는 것이라 말할 수 있다. 그런데 어떻게 위험을 최소화할 수 있을까. 비즈니스와 깊은 연관이 있는 비즈니스 영향은 현실적으로 줄일 수 없다. 이는 비즈니스 그 자체로 영향 정도가 이미 정해지기 때문이다.

위협 역시 줄일 수 없다. 외부적이든 내부적이든 위협은 우리의 통제 영역 밖에 있다. 그렇다면 리스크는 어떻게 줄일 수 있다는 얘기인가. 위 수식에서 보면 우리에게 남은 영역은 바로 시스템 내에 존재하는 취약성이다. 시스템 내의 취약한 부분은 현실적으로 통제 가능하고 보완 가능하다.

따라서 위험 관리는 현실적으로 취약성 관리와 상통한다. 그러나 취약성만을 논한다면 그것은 실질적인 위험 관리가 아니다. 다양한 위협과 비즈니스 영향과의 상관관계가 고려된 취약성 관리만이 실질적인 위험 관리라 할 수 있다.


RT-CAAT 기반 보안 감사 및 컴플라이언스


보안 활동은 보안 감사(Security Audit)와 내부 통제(Internal Control) 이 두 가지 축으로 이뤄져 있고, 그 목적은 보안 컴플라이언스(Security Compliance) 확보와 위험 관리를 통해 비즈니스 목표를 달성하고자 하는 데에 있다.

보안 감사의 대상은 관리적인 영역과 물리적인 영역, 그리고 IT 기술적인 영역 모두가 대상이 될 수 있다. 그러나 보안 감사의 주체는 단지 보안 감사팀으로만 국한되지는 않는다. 더구나 제한된 보안 감사 자원을 효과적으로 운영하기 위한 CSA(Control Self Assessment, 자가 평가 통제) 기법의 도입이 적극적으로 검토되면서 전 IT 스탭들이 보안 감사 업무를 수행할 수 있다. 또한 보안 위협으로부터 IT 시스템의 최대 복구 허용 시간이 점차 줄어듦에 따라 실시간 보안 감사와 위험 관리 시스템의 도입이 점차 필요하게 되었으며, 보안 라이프 사이클을 고려한 보안 프로세스의 체계적인 관리도 필요하게 되었다.

본 고에서는 한정된 지면관계상 업계 공통으로 통용 가능한 IT 인프라 상의 기술적 보안에 대한 실시간 보안 감사와 보안 컴플라이언스 만을 논의하고자 한다.

현 IT 환경에 있어서 우리는 무수히 많은 시스템들과 애플리케이션들을 운영하고 있다. 이러한 상황 속에서 보안 감사 활동을 단지 사람의 손으로 일일이 평가한다는 것은 어쩌면 불가능한 일인지도 모른다. 오히려 감사인의 빈약한 기술과 지식으로 인해 감사 자체가 실패할 수도 있다. 따라서 이러한 IT 감사 업무의 어려움을 덜기 위해서 컴퓨터를 이용한 감사 기법들은 이미 오래 전부터 논의되어 왔다. 그러나 앞서 말한 바와 같이 현 IT 환경은 속도 경쟁이다. 발견된 취약점에 대해 제로 데이(Zero-day) 공격이 현실화된 이 시점에서 순간적인 보안 수준의 저하는 전체 보안 인프라를 위험에 빠뜨릴 수도 있다. 따라서 보안 감사 업무 자체도 실시간(Real Time)으로 수행하고 적정한 보안 수준을 지속적으로 지키고 있음을 확인해야만 한다. 이러한 필요에 의해 RT-CAAT(Real Time Computer Assisted Audit Technique, 실시간 컴퓨터 감사 기법)이 대두되었다. 흔히 RT-CAAT 기반 툴이라고 하면 취약성 스캐너를 떠올리기 쉽다. 그러나 이것은 너무나 잘못된 생각이다.

그럼 실시간으로 IT 환경을 감사하는 RT-CAAT 기반의 툴들과 취약성 스캐너는 어떻게 다른지에 대해 궁금증이 생길 것이다. 이것은 보안 정책 위반과 취약점이 어떻게 다른가라는 질문과 같다.

예를 들면 어떤 계정(ID)에 패스워드가 없거나, 너무나 쉬운 패스워드가 설정되어 있다면 이것은 취약점이다. 그러나 패스워드가 8자리를 설정하는 것이 보안 정책인데 6자리가 설정되어 있다면 이것은 보안 정책 위반이다. 이 두 가지를 점검하는 것은 서로 동일한 보안 감사 업무가 아니다. 다시 말하자면 일반적으로 취약성 스캐너라고 하면, 해당 업체에서 일반적으로 발표된 취약성 데이터베이스를 가지고, 기업의 현 보안 수준을 비정기적, 혹은 정기적으로 평가하여 보안 감사에 도움을 주는 유틸리티로 CAAT(Computer Assisted Audit Technique)의 범주에 포함시킬 수는 있다. 하지만 취약성 스캐너는 업계에서 제공하는 취약성 데이터베이스에 의존할 뿐 보안 정책이란 개념이 없다는 차이를 가진다. 오히려 보안 감사의 주된 업무는 현재 설정된 보안 정책의 위반 여부를 파악하는 것이고, 취약성 점검은 현재 알려진 보안 취약성 리스트에 따라 현 보안 정책의 수준을 평가하기 위한 활동으로 파악할 수 있다. 따라서 실제로 지속적인 보안 감사의 경우 그 대상은 취약성 보다는 보안 정책의 위반 여부를 감사하는 것이다.

현재 발표된 보안 감사 솔루션들 가운데에서 이러한 기능을 지원하는 것은 IBM의 ‘티볼리 시큐리티 컴플라이언스 매니저(Tivoli Security Compliance Manager)’, NetIQ의 ‘취약성 매니저(Vulnerability Manager)’, CA ‘e트러스트 취약성 매니저(eTrust Vulnerability Manager)’ 정도에 불과하다.

이 중 NetIQ와 CA의 제품은 취약성 관리에 좀더 초점이 맞춰져 있고, 내부 통제 시스템과의 연계성도 부족하다고 평가된다. 이에 본 고에서는 IBM 티볼리 시큐리티 컴플라이언스 매니저를 가지고 RT-CAAT 기반 툴들의 특징을 살펴보고자 한다.


RT-CAAT 기반 툴의 특징


개인적인 견해로 IBM 티볼리 시큐리티 컴플라이언스 매니저는 RT-CAAT 기반 인프라를 갖추고 있지만 보고서 부분이나 보안 정책의 라이프 사이클 관리 및 보안 정책 조정에 있어서는 각각의 환경에 맞는 개별적 구현이 필요하다는 점에서 아쉬운 면이 있다. 그러나 개화할 수 없다.

이런 점에서 오히려 프로젝트시 각 기업에 맞는 프로세스를 구현할 수 있는 유동성을 갖고 있다는 측면에서 이 제품을 예로 들어 설명해본다. 즉 IBM 티볼리 시큐리티 컴플라이언스 매니저의 제품 오버뷰(Overview)로서가 아닌 단지 RT-CAAT 기반 툴들의 기능적 특징 제고를 위해 상기 제품을 살펴보고자 하는 것이다.

표 1. IBM 티볼리 시큐리티 컴플라이언스 매니저 에이전트가 지원하는 IT자원 영역

지원 항목

세부 지원 사항

OS

AIX, Solaris, HP-UX, Linux, Windows 등

Application

DB2, JRE, Norton AntiVirus, CSA(Cisco Security Agent), ZoneAlarm Firewall 등


(1) 클라이언트/서버 기반 아키텍처와 지원하는 에이전트 수

일반적으로 RT-CAAT 기반 툴들은 다수의 에이전트(Agent)와 에이전트로부터 받은 정보를 저장 및 분석하는 서버로 이뤄져 있다.

특히 서버 내에는 다량의 보안 감사 데이터를 처리할 수 있는 RDBMS를 이용하는 것이 일반적이다. IBM 티볼리 시큐리티 컴플라이언스 매니저의 경우에는 C/S 기반 아키텍처와 RDBMS로 IBM DB2 UDB EE를 제공하고 있다.

RT-CAAT 기반 툴의 에이전트 수는 보안 감사할 영역과 직접적인 관계를 갖는다. 따라서 OS를 포함하여 다양한 IT 자원을 지원하는 에이전트의 수가 많으면 많을수록 자동 보안 감사 영역은 넓어진다. IBM 티볼리 시큐리티 컴플라이언스 매니저의 에이전트가 지원하는 IT자원 영역은 표 1과 같다.


(2) 스케줄 기반 에이전트 동작 시간 예약 기능

RT-CAAT 기반 툴의 에이전트에 있어, 실시간이라고는 하지만, 항시 서버와 에이전트 간에 데이터 커넥션(Data Connection)을 유지한다는 것은 비효율적이다. 따라서 검사할 항목 별로 년, 월, 일, 시, 분, 요일 간격으로 일정 스케줄에 따라 에이전트 단의 데이터를 업데이트하도록 하는 기능이 필요하다. 이는 보안 감사 시스템의 가용성 측면에서도 권장되는 기능이다.

또한 스케줄에 따른 에이전트 동작 시 타겟 시스템 상의 시스템 사용률도 중요한 항목이며, 가능한 한 에이전트 동작 여부를 알지 못할 정도로 타겟 시스템에게 주는 영향이 미미해야만 한다.


(3) 보안 감사 가능한 각 세부 항목과 보안 정책 탬플릿

RT-CAAT 기반 툴의 에이전트로부터 지원되는 각 OS, 애플리케이션 내의 어떤 항목을 수집해 올 수 있는가는 보안 정책 구현과 맞물려 상당히 중요한 사안이다. 즉 세부적인 항목의 수집이 가능할수록, 우리는 좀더 세밀 수 있는 영역이 넓어진다. 또한 각 영역에 대한 기본 값의 설정은 보안 정책 계획 시 기본적인 가이드라인 및 보안 정책 탬플릿(Template)으로써 기능한다. 각 OS별, 애플리케이션 별로 다 다르지만, 여기서는 예로 윈도 보안 정책에 대해서만 살펴보기로 한다.

현재 IBM 티볼리 시큐리티 컴플라이언스 매니저에서 윈도 타겟 시스템을 위한 에이전트 내에서 설정 가능한 보안 정책 내지는, 보안 검사가 가능한 윈도 속성을 정리해 보면 표 2와 같다.

이와 같은 항목들을 자동으로 보안 감사할 수 있다. 각 항목에 대해 기 설정된 디폴트(Default) 값들은 보안 정책 탬플릿과 같은 기능을 수행한다는 것은 이미 말한 바 있다. 또한 위 예시는 단지 윈도 시스템에 대해 국한된 내용으로 각각의 OS와 애플리케이션에 따라서 감사해야 할 보안 항목들은 서로 다르다.

표 2. 보안 정책·보안 검사 가능한 윈도 속성

항 목

세부 내용

File

Permission

- File Name: 보안 감사 대상 파일 이름

- Last Modified Date: 대상 파일의 최종 변경 날짜와 시간

- Version: 대상 파일의 버전 속성

- File Size: 대상 파일 크기 (기본 File Integrity 정보)

- File Users: 대상 파일의 Owner를 포함한 사용자

- File Attribute: 사용자에 따른 Read, Write, Execute, Append, Delete 권한 속성

- NTFS 여부: Local File System인지 Remote File System인지 여부

Registry

- Registry Key Name: 보안 감사 대상 Windows Registry Key Name

- Registry Value Name: 대상 Windows Registry Key 내의 Value 이름

- Registry String/Numeric Value: 대상 Windows Registry Key 내의 Value 값 (문자열 혹은 숫자)

- Registry Permission: 사용자에 따른 Registry의 Read, Write, Execute, Full Control 속성

Group

- Group ID: 보안 감사 대상 Windows Group