전문가칼럼

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

취약점분석도구의 현재와 미래 (2) - 취약점 분석도구의 기술적 요소

전문가칼럼
DBMS별 분류
Sybase
작성자
dataonair
작성일
2002-11-01 00:00
조회
12765





취약점 분석도구의 기술적 요소

김원규/나일소프트 보안사업부장


정보시스템에 불법적인 사용자 접근을 허용할 수 있는 위협들, 정상적인 서비스를 방해하는 위협들, 중요한 자료의 유출·변조·삭제에 대한 위협들을 일반적으로 보안 취약성이라 한다. 또 정보시스템에 보안취약성이 존재하고 있는지에 대한 점검작업을 수행하고 그 결과로 정보시스템의 보안수준을 분석하는 것을 보안취약성 점검 및 분석이라고 한다. 이러한 점검 및 분석을 도와주는 자동화도구를 보안취약점 분석도구라고 한다.


다양한 전산 자원의 취약점에 대처

정보보호진흥원이 운영하는 CERTCC-KR(www.certcc.or.kr/)에서 권고하고 있는 보안 권고문의 숫자는 5백 건이 넘으며, CERTCC(www.cert.org), BUGTRAQ (www.securityfocus.com), MITRE(cve.mitre.org)등이 발표한 권고문 또는 보안취약점의 수도 수천에 이른다. 이러한 수많은 취약점을 정보시스템 운영자 혹은 보안담당자들이 일일이 정보시스템의 보안 취약점 정보를 파악하여 대처하는 것은 사실상 불가능하다.

일반기업이든 공공·금융기관이든 모든 곳에서 컴퓨터(정보시스템)를 배제하고는 업무를 할 수 없다. 그런데 중요한 것은 각 기관의 특성이나 업무에 적절하게 단일화된 컴퓨터 운영체제을 사용하고 있지는 않다는 것이다. NT를 비롯해 2000, ME, 98, 95 등 다양한 윈도우 계열의 운영체제와 솔라리스, HP-UX, AIX, IRIX, Tru64, Unixware 등의 유닉스계열 그리고 레드햇, 수세, 터보, 칼데라 등과 같은 리눅스계열 등이 혼재되어 사용되는 게 일반적이어서 보안 담당자가 이들에 대한 정확한 보안 취약점을 파악하고 대처하는 게 쉬운 일이 아니다. 또한 이러한 정보시스템은 업무 환경상 HTTP, TELNET, FTP, SMTP, POP, RPC, BIND, NEWS, NetBios 등과 같은 다양한 네트워크 서비스를 사용할 수밖에 없어 항상 보안 취약점에 노출되어 있다고 할 수 있다.

이러한 이유로 인해 보안 취약점검, 수준분석 등과 같은 일을 몇몇 정보시스템 담당자가 알고 있는 지식을 총동원한다 하더라도 대응하기란 쉽지 않고 따라서 자동화되고 잘 정리된 보안 취약성점검 도구가 필요한 것이다.

이런 보안취약점의 종류는 세 가지 정도로 분류할 수 있다. 먼저 시스템 보안 취약점은 주로 운영체제 자체의 보안취약점을 말하며 Race Condition, 환경변수의 취약점, 계정 및 패스워드, 접근권한, 시스템구성, 네트워크 구성상의 보안 취약점 등이 있다. 두번째는 네트워크보안 취약점으로 RPC, HTTP, SMTP, FTP, BIND, FINGER 등 다수의 개별 네트워크 서비스 등에서 나타나는 보안 취약점들이 있다 세번째로 응용프로그램 취약점에는 웹 서버, 방화벽 서버, IDS 서버, 데이터베이스 서버 등 다수의 응용프로그램 서버가 가지고 있는 환경설정의 문제와 소스코드상의 문제점 등으로 나타나는 보안 취약점 등이 있다.

이러한 다양한 보안 취약점은 외부 혹은 내부공격자(사용자)에게 시스템에 불법 접근을 허용하거나 침입경로의 제공, 기타 서비스를 방해할 수 있는 정보를 제공하여 시스템에 심각한 피해를 초래한다.

sol200211007_01.jpg


제품 구분 및 취약성 데이터베이스

보안취약성 분석도구는 안전진단도구, 스캐너라고도 하며 진단대상과 검색대상에 따라 분류되기도 하지만 보통 상용제품으로 구분할 때는 시스템 스캐너, 네트워크 스캐너, DB 스캐너로 나눈다. 하지만 DB 스캐너의 경우 시스템에서 운영되는 특정 RDBMS(오라클, 사이베이스, 인포믹스 등)를 대상으로 하는 일종의 애플리케이션 스캐너로 범용성 측면에서 범위가 작다고 할 수 있다. 따라서 시스템 스캐너와 네트워크 스캐너를 좀더 자세히 알아본다.

시스템 스캐너(시스템 취약성 분석도구)는 시스템의 패스워드 취약점을 비롯한 내부 취약점, 설정오류, 파일 퍼미션 오류 등을 주로 점검하고 네트워크 스캐너에서 점검하는 대부분의 기능을 점검대상 서버 자체에서 점검하므로 상대적으로 정확한 취약점 정보를 제공한다. 이러한 시스템 스캐너는 시스템의 환경(일반적인 환경, 운영되는 응용프로그램 등)을 잘 알고 있는 시스템 담당자가 점검결과를 기초로 보안 취약점에 대한 조치를 취하여 안전하게 운영해 나가는 것이 일반적이다.

네트워크 스캐너(네트워크 취약성 분석도구)는 네트워크 자원에 대한 종합적인 점검기능을 제공, 여러 가지 방법으로 취약점 점검을 수행하므로 시스템 스캐너에 비해 상대적으로 모호한 점검 결과가 나올 가능성이 있으나 점검 서버마다 에이전트를 운영하지 않아 관리가 용이하다. 따라서 네트워크 스캐너는 보안 담당자가 네트워크 부하가 적은 상황이라면 일괄적으로 도구를 운영해 점검결과를 각각의 시스템 담당자에게 통보하고 시스템 담당자는 이를 면밀하게 검토, 보안 취약점을 보완해 나갈 수 있다.

시스템 스캐너와 네트워크 스캐너의 운영은 시스템담당자와 보안 담당자 등 역할에 따른 운영방법과 시스템의 중요도가 높은 것은 시스템 스캐너를 사용하는 방법이 있다. 이외의 시스템은 네트워크 스캐너를 사용해 취약점을 점검, 시스템의 중요도에 따라 운영하는 방법이 있을 수 있다. 시스템 스캐너와 네트워크 스캐너를 차이점을 간단하게 비교 정리해 보면 <표 2>와 같다.

그렇다면 취약성 분석도구가 제공하는 취약성 점검 보고내용을 알아보자. 취약점 분석도구의 핵심은 도구가 가지는 취약성 데이터베이스라고 할 수 있다. 취약성 데이터베이스가 가져야 할 기본적인 내용은 다음과 같다.

△취약점의 분류:
취약점은 운영체제, 프로토콜, 네트워크서비스 등과 같은 분류를 통해 정리되어야 하며, 그 취약점이 어떤 내용인지 사용자가 쉽게 알 수 있도록 자세한 설명을 가지고 있어야 한다.

△시스템에 미치는 영향:
취약점이 시스템에 미치는 영향에 따라 위험도를 구분하여 정리되어 있어야 한다. 위험도를 정하는 것은 예를 들어 Root권한 획득, 사용자 계정획득, 중요정보 유출, 파일내용변조 등의 취약점에 따른 위험을 고려하여 정해진다고 할 수 있다.

△취약점을 발견·해소하기 위한 방법:
취약점을 발견하기 위한 방법은 취약점에 따라 다르긴 하지만 보통 버전정보, 파일 속성 혹은 취약점 공격 시뮬레이션 방법 등이 포함되어 있으며, 취약점을 해소하기 위한 방법은 서비스의 중단, 버전 업그레이드, 소프트웨어 대체, 파일삭제, 접근 권한 변경 등 다양한 대처 방법이 정리되어 있어야 한다.

△취약점간의 관계설정:
취약점이 발견되었을 경우 연관된 다른 취약점이 존재하는지 어떤 관계인지를 표시되어야 한다. 취약점 데이터베이스의 가장 기본적이고 필수적인 요소들 외에 필요한 것이 있다면 취약점에 대한 관련 링크 정보라고 할 수 있다. 이러한 정보는 취약성 데이터베이스의 신뢰도를 높여주는 중요한 요소이다. 관련 링크 정보라 함은 취약점 내용에 대한 링크 뿐만 아니라 취약점을 해소하기 위한 링크도 포함되어야 한다.


취약성 분석도구의 선택

취약성 분석도구라고 하는 제품을 구매한다면 어떤 제품을 선택할 것인가 사실 국산제품과 외산 제품 모두 많은 상업용 제품들이 많이 소개되어 있다. 또한 인터넷상에 공개된 툴도 많이 있다. 어떤 제품을 선택할 것인가에 대한 몇 가지 선택 기준을 소개하면 다음과 같다

첫째, 공개 툴을 너무 신뢰하지 말 것. 인터넷상에 공개되어 있는 도구가 많이 있다. 이러한 것을 임시적으로 사용하는 것도 그리 나쁘지는 않지만 도구의 소스 및 내용을 살펴보면 시스템의 장애를 유발시키는 오류와 오진하는 문제점을 내포하고 있다. 물론 이러한 문제점을 감안하고 또한 자신이 사용하는 공개 툴의 소스레벨에서의 이해가 있다면 일시적으로는 도움이 될 수 있다. 하지만 이러한 공개 툴의 한계는 새로운 취약점에 대한 대처 속도가 늦고, 장애에 대한 지원 불가 등의 이유로 그리 권장할 것이 못된다. 상용제품 중에도 이러한 공개 툴에 사용자인터페이스 부분만 추가하여 출시된 제품도 있으니 면밀한 검토가 필요하다.

둘째는 한글화부분이다. 사용자 입장에서 보면 가장 중요한 요소가 한글 결과 보고서이다. 외산 취약성 분석도구를 사용하고 있는 곳의 담당자 대부분이 취약성 분석도구를 사용해 점검 결과를 분석하고 이를 적용하는 것이 사실상 불가하다고 한다. 일례를 들면 필자가 외산 도구를 사용하는 곳을 방문하였더니 수백장의 점검 결과를 출력을 하였지만 모두 영문으로 되어 있어 담당자가 점검결과를 분석할 엄두도 내지 못하고 곧바로 이면지로 활용하는 경우를 보았다. 주요한 취약점만이라도 결과가 한글로 되어있었다면 과연 그러했을까

셋째는 최신 취약점 업데이트(온라인 업데이트)여부이다. 최신 취약점에 대한 정보를 수집 및 분석하여 점검모듈을 개발할 수 있는 전담팀을 구성하고 있고 이 내용을 온·오프라인으로 업데이트 할 수 있는 기능을 갖추고 있는가

넷째는 취약성 분석도구의 안전성이다. 취약성 스캐너는 자체가 해킹도구로 사용될 수도 있고, 보유하고 있는 호스트의 취약점 결과는 매우 중요하므로 유출에 대한 대비가 있어야 한다. 즉, 취약성 스캐너의 자체 취약점은 없는가 예를 들면 에이전트와 콘솔간의 송수신 메시지의 암호화, 결과파일의 암호화 등이다.

다섯째, 다수의 사용기관이 존재하는가 여부이다. 취약성 점검도구는 공급 사례가 많은 것을 선택하는 것이 좋다. 공급사례가 많다는 것은 제품이 어느 정도 성능, 안정성 등에서 검증이 되었다는 객관적인 판단 기준이 될 수 있기 때문이다.

sol200211007_02.jpg

sol200211007_03.jpg


제공 : DB포탈사이트 DBguide.net