'화이트리스팅이란 무엇인가' 그 작동 방식과 베스트 프랙티스
본문
화이트리스팅(whitelisting)이란 일종의 사이버보안 전략으로 사용자는 관리자가 사전에 허용한 컴퓨터 상에서만 작업을 할 수 있다. IT 직원은 사이버 공격자보다 한 발 앞서 악성코드를 파악하고 차단하는 대신, 컴퓨터나 모바일 기기가 접근 가능한 승인된 애플리케이션의 목록을 작성한다. 즉, 사용자는 오로지 허가된 기능에만 접근 권한이 있으며, 사용자가 접근 가능한 것은 관리자가 안전한 것으로 판단한 것뿐이다.
화이트리스팅은 상당히 극단적인 잠금 조치로서 적절히 실행하면 많은 사이버보안 문제를 저지할 수 있다. 그러나, 최종 사용자 입장에서는 무척 불편하고 짜증스러울 수 있고, 신중한 실행과 적절한 지속적 관리가 필요하며, 그렇다고 공격을 완벽하게 차단하는 것도 아니다.
화이트리스트와 블랙리스트의 비교
사용자나 관리자에겐 ‘블랙리스트(blacklist)’가 좀더 익숙한 개념이다. 블랙리스트란 보호하려는 시스템으로부터 차단해야 하는 위험한 것들의 목록이다.
많은 바이러스 차단 및 악성코드 차단 프로그램은 사실상 블랙리스트다. 알려진 악성코드 목록이 포함되어 있어 이런 프로그램이 컴퓨터에서 탐지될 때면 자동으로 차단하기 때문이다. 블랙리스트에는 꽤 명백한 단점이 있다. 최신 공격을 차단하려면 지속적으로 업데이트해야 한다는 점이다. 말 그대로 바이러스 차단 소프트웨어는 제로데이(zero-day) 공격은 차단할 수 없다.
화이트리스트는 블랙리스트를 뒤집은 것이다. 즉, 화이트리스트를 실행했다면, 해당 목록에 있는 것을 제외한 세상 모든 것을 블랙리스트에 등재한 셈이 된다. 언뜻 보기에는 화이트리스트 방식의 보안은 식은 죽 먹기가 될 것같다. 해당 시스템에는 이미 안전하다고 확인된 것만 접근할 수 있으므로 새로운 악성코드가 해당 인프라에 위협으로 등장할 일을 염려할 필요가 없기 때문이다.
그러나, 화이트리스팅에도 매우 명백한 단점이 있다. 첫째, 사용자가 원하는 방식으로 시스템을 사용할 자유가 제한된다. 그리고 일반적으로 하루 8시간을 업무용 컴퓨터 앞에 앉아 보내는 사람은 업무용 컴퓨터를 ‘자신의’ 시스템이라고 생각한다. 또한, 화이트리스트 구축에는 꽤 많은 노력이 든다. 알려진 악성코드와 공격 사이트의 블랙리스트라면 한 업체가 작성한 것을 널리 사용할 수 있지만, 각 조직에서 사용해야 할 프로그램의 화이트리스트는 저마다 다를 것이다. 물론 약삭빠른 공격자가 ‘스스로를 화이트리스트에 등재’할 수 있는 방법도 있다.
애플리케이션 화이트리스팅의 종류
일반적으로 지금까지 설명한 종류의 화이트리스팅은 ‘애플리케이션 화이트리스팅’이다. 즉, 보호된 컴퓨터 상에 특정 애플리케이션만 실행되도록 허용하는 것이다. 화이트리스팅이란 용어는 이메일이나 IP 주소의 경우에는 약간 달라지는데 그 내용은 후술할 것이다.
미국 국립표준기술연구소(NIST)에는 애플리케이션 화이트리스팅 지침서가 있다. 만들어진 지 몇 년이 지났지만 화이트리스팅 입문서로는 여전히 훌륭하다. 여러 가지 주제에 대해 심도있게 들어가는데 이번에는 기본적인 내용을 다룰 예정이다.
화이트리스팅은 어떤 위협을 차단하는가? 애플리케이션 화이트리스팅은 2가지 다른 종류의 보안 위협을 효과적으로 차단한다. 가장 확실한 차단 대상은 악성코드다. 키로거(keylogger) 또는 랜섬웨어와 같은 악성코드 페이로드의 경우, 화이트리스트에 없으면 실행이 되지 않는다.
화이트리스팅의 장점은 이것만이 아니다. ‘섀도우 IT(shadow IT)’를 차단하는 도구가 될 수도 있다. 최종 사용자나 개별 부서가 안전하지 않거나 정식 라이선스가 없는 프로그램을 컴퓨터에 설치하려고 하면, 화이트리스트에 등재되어 있지 않은 것이라면 설치가 중단되며 IT 부서에 이 사실을 통보한다.
애플리케이션 화이트리스트는 어떻게 작성하는가? 2가지 방식이 있다. 첫 번째는 화이트리스트 소프트웨어 업체에서 제공한 표준 목록을 사용하는 방식이다. 해당 환경 유형에 대표적으로 사용되는 애플리케이션이 등재되어 있는데 적절히 가감할 수 있다.
두 번째는 악성코드 등 원하지 않는 소프트웨어가 없는 것으로 파악된 시스템을 가지고 검사를 거쳐 다른 여러 시스템에 대한 모델로 사용하는 방식이다. 이 방식은 키오스크 등 대중이 사용하는 장치에 적합하다. 이들 장치는 실행하는 애플리케이션이 한정되어 있으며 맞춤 설정이 많이 필요 없기 때문이다.
화이트리스팅 소프트웨어는 승인된 애플리케이션과 미승인 애플리케이션을 어떻게 구분하는가? NIST 지침서에는 이런 구분 목적에 사용할 수 있는 다음과 같은 다양한 속성이 나와 있다.
파일 이름
파일 경로
파일 크기
소프트웨어 공개업체의 디지털 서명
암호화 해시
어떤 속성을 사용해야 하고 각 속성에는 어느 정도의 무게를 주어야 하는지가 바로 화이트리스팅 기술의 핵심이다. 예를 들어, 지정된 파일 이름이 있거나 지정된 폴더에 위치한 애플리케이션만 실행을 허용하는 화이트리스팅 소프트웨어의 보호 장치를 우회하려는 공격자라면 악성코드에 해당 파일 이름을 붙여 허용된 위치에 두기만 하면 될 것이다.
정확한 파일 크기를 지정하거나 암호화 해시에 대한 확인을 요구하면 화이트리스팅 소프트웨어를 속이는 일이 어려워지지만, 이 정보는 애플리케이션 파일을 변경할 때마다, 예를 들어 파일이 패치할 때마다 화이트리스트에서 업데이트해야 한다. 만일 패칭이 화이트리스팅 소프트웨어를 방해할 가능성 때문에 연기된다면, 그 자체로도 보안 구멍이 생길 수 있다.
NIST의 지적대로, 컴퓨터에 대한 잠재적인 위협은 가동 중인 애플리케이션 뿐만이 아니다. 화이트리스팅 소프트웨어는 다양한 라이브러리, 스크립트, 매크로, 브라우저 플러그인, 구성 파일, 윈도우 시스템, 애플리케이션 관련 레지스트리 항목 등을 감당해야 한다.
다양한 업체가 여러 세부 단계로 이를 처리할 수 있다. 일부 화이트리스팅 소프트웨어는 승인된 애플리케이션의 특정 행동 역시 화이트리스트에 등재할 수 있다. 이럴 경우, 공격자가 애플리케이션을 장악해 버려도 간편하게 관리할 수 있다. 화이트리스팅 소프트웨어는 운영체제의 권한 구조와도 통합되어야 한다. 그래야 다른 사용자가 아닌 일부 사용자(관리자)만이 애플리케이션을 화이트리스트에 올릴 수 있다.
화이트리스팅 베스트 프랙티스
화이트리스팅을 최대한 활용할 수 있는 방법은 무엇일까? 다음은 NIST가 권고 사항인데, 이를 따르면 된다.
조직 내 화이트리스팅은 단계별로 도입하는 것이 좋다. 그래야 뭔가 잘못됐을 때 전사적 운영이 지장을 받지 않는다.
화이트리스트가 실제로 정확한지 시간을 들여 확인해야 한다. 화이트리스팅 프로그램의 질은 화이트리스트 그 자체의 질보다 더 좋을 수는 없다. 해당 기관이나 기업이 IT 인프라 전체에 어떤 애플리케이션을 설치했는지, 또 어떤 애플리케이션이 진정 필요한지 감사할 기회로 생각하라. 화이트리스트에 어떤 대상을 올릴지 알아내려면 화이트리스팅 정책을 수립해야 할 것이다.
화이트리스트의 관리를 소홀히 해서는 안된다. IT 분야는 변화무쌍하다. 더 이상 사용하지 않는 소프트웨어도 생기고 업데이트가 필요한데 업데이트하면 화이트리스트에서 인식하지 못하는 소프트웨어도 있다. 해당 조직의 임무 수행을 위해 새로운 소프트웨어가 필요해지는 경우도 있다. 이런 유지 관리 업무를 수행하려면 자원이 필요하다. 직원에게 본인 업무의 일환으로 맡기거나 업체에게 비용을 지불하고 맡기거나 아니면 이 2가지 방법을 적절히 병행해야 한다.
보안 프로그램에서 화이트리스팅이 적합한 위치
화이트리스팅은 만능 도구가 아니며, 사용자가 관리하는 모든 컴퓨터에 이상적인 해결책이 아닐 수도 있다. 칼립틱스 시큐리티(Calyptix Security)는 애플리케이션 화이트리스팅이 적절한 3가지 대상을 제시한다.
다른 컴퓨터에 연결된 중앙 관리 호스트
고위험 환경의 컴퓨터
사용자에게 관리자 권한이 없는 노트북 컴퓨터 또는 키오스크
사실 화이트리스팅은 모든 걸 해결할 수 없으며 기업 내 보안 환경에 맞춰야 한다. 화이트리스팅이 적절하지 않은 컴퓨터를 보호하거나 화이트리스팅이 놓치는 것을 잡아내기 위해서는 여전히 악성코드 방지 시스템, 엔드 투 엔드 보호 시스템, 경계 방어 시스템이 필요하다.
최고의 애플리케이션 화이트리스팅 소프트웨어
윈도우 10과 맥OS를 비롯한 대부분의 상용 운영체제에는 일부 화이트리스팅 기능이 내장되어 있다. iOS 장치와 안드로이드 장치에 애플리케이션을 설치하기 위한 앱 스토어 같은 것은 애플리케이션 화이트리스팅의 한 형태로 볼 수 있다. 표면상, 안전한 것으로 인증된 애플리케이션만 허용되기 때문이다. 대부분의 모바일 관리 소프트웨어는 좀 더 세부적인 통제를 허용한다.
그런데 서드파티 업체 중에는 더욱 강력하거나 더욱 세부적인 화이트리스팅 소프트웨어를 제공하는 업체가 있다. 이런 소프트웨어는 더 큰 제품/서비스 또는 보안 제품군에 속하는 경우가 많다. 인기있는 제품은 다음과 같다.
앱로커(AppLocker): 마이크로소프트 엔터프라이즈 운영체제 에디션용으로 제공
비욘드트러스트(BeyondTrust): 맥과 윈도우는 물론 유닉스 같은 운영체제용으로도 제공
폴리시팩(PolicyPak): 사내에 설치된 컴퓨터는 물론 원격 컴퓨터에서도 작동
센트리파이(Centrify): 제품군 전반에 걸쳐 제로 트러스트(zero trust) 원칙을 강조
카스퍼스키 화이트리스트(Kaspersky Whitelist): 협력 호스트 서비스
이메일 및 IP 주소 화이트리스팅
마지막으로, IT 보안 분야에서 ‘화이트리스트’라는 단어가 사용되는 것이 눈에 띌 2가지 다른 맥락을 언급하자면 바로 이메일과 IP 주소다.
이 2가지 분야에서 화이트리스트의 의미는 애플리케이션 화이트리스팅의 의미와는 사뭇 다르다. 물론, 지극히 한정된 이메일 주소만 연락을 허용하거나 특정 IP 주소의 컴퓨터만 웹사이트 접근을 허용한다면 웹사이트를 보유하거나 이메일을 사용하는 목적이 대부분 상실될 것이다.
이런 맥락에서 ‘화이트리스팅’의 일반적인 의미는 특정 IP 주소가 해당 사이트에 접근하는 일이 자동화된 보안 프로세스에 의해 차단되지 않도록 하거나 특정 수신자의 이메일이 스팸 폴더로 이동되지 않도록 하기 위해 수동 절차를 밟는 것을 의미한다.
후자에 집착하는 것은 물론 이메일 마케터들이다. 이들은 자신이 보낸 이메일이 스팸 처리되는 일이 없도록 어떻게 하면 이메일 주소를 화이트리스트에 등재하는지 그 방법을 공유하는 것에 관심이 매우 높다. 전자는 열심이 지나친 방화벽의 산물이다. 자칫하면 사용자가 자신의 웹사이트에도 접속하지 못하는 일이 생길 수 있다.
Josh Fruhlinger | CSO
ITWorld | 원문보기 | 2020.06.22
댓글목록 0