솔루션

배시 버그, 어떻게 대응할 것인가…“L7 장비로 위협 최소화 가능”

이민형

지난 9월 26일, 전세계 각국 컴퓨터침해사고대응팀(CERT)과 보안업계는 배시 버그(쉘쇼크)의 등장으로 바쁜 하루를 보냈다.

공격자가 배시 버그를 악용할 경우 시스템 관리자만 사용할 수 있는 모든 명령어에 접근할 수 있게 된다. 기밀정보 탈취나 삭제, 다른 시스템 공격 등 상상할 수 있는 모든 공격이 가능해져 매우 심각한 문제로 대두됐다.

각국 CERT들은 해당 취약점을 기관, 기업들에게 전파했고 IBM, HP 등과 같은 IT업체들은 배시 버그를 악용할 수 없는 업데이트 제공에 나섰다.

국내도 예외가 아니었다. 한국인터넷진흥원(KISA)은 배시 버그에 영향을 받을 수 있는 시스템들을 조사하고 이를 전파하는데 주력했으며, 안랩, 인포섹 등 보안업체들은 배시 버그를 막을 수 있는 긴급 패치를 배포했다.

CERT와 보안업계가 배시 버그 해소에 힘을 쏟은 이유는 리눅스와 유닉스 등 GNU 배시를 사용하는 모든 운영체제(OS) 모두에 영향을 끼칠 수 있기 때문이다.

대표적으로 유닉스를 기반으로 한 애플의 맥OS(Mac OSX)를 비롯해 데비안 리눅스, 센트OS 우분투 등 서버에서 사용되는 OS에도 적용된다. 특히 웹서버를 비롯해 각종 어플라이언스들도 리눅스를 사용하고 있어 제2의 하트블리드 사태로 이어질 가능성이 제기되기도 했다.

특히 웹서버에서 공격자가 배시 버그 취약점 공격에 성공할 경우, 심각한 결과를 가져올 수 있다.

가령 공격자가 패스워드 파일을 다른 곳으로 복사하거나 악성코드를 감염PC에 다운로드시킬 수 있으며, 공격자가 피해자의 방화벽 안에 침입하면 네트워크에 있는 다른 PC를 감염시킬 수도 있다.

이 취약점이 ‘배시 버그’라고 불리는 이유는 리눅스와 유닉스 OS의 쉘(Shell)이라는 일반적인 구성 요소의 하나인 배시에 영향을 미치기 때문이다. 배시는 사용자가 명령어를 간단한 텍스트 기반의 윈도에 입력하면 OS가 이에 따라 동작하게 만드는 명령어 해석기의 역할을 수행한다.

배시는 커맨드 명령으로 실행되는데, 다른 커맨드 라인 또는 응용 프로그램에서 명령을 받아 수행한다. 이 취약점은 공격자가 기타 다른 보안 취약점을 통해 시스템에 접근하는 과정이 필요하며 또한 이 과정에서 탈취된 사용자 계정의 권한에 근거해 할 수 있는 작업이 제한된다.

취약점이 공격에 사용되고 있다는 보고는 아직까지 많지 않다. 보안 전문가들이 취약점에 대해 POC(Proof- Of-Concept) 스크립트 및 모듈을 개발했으나, 이미 취약점이 알려짐에 따라 공격자가 패치가 안된 컴퓨터를 공격할 수 있어 사용자의 주의가 요구된다.

보안업계에서는 보안 어플라이언스에서 제공하는 대시보드(사용자인터페이스)가 가장 취약하다고 보고 있다. 공격자가 가장 쉽게 접근할 수 있기 때문이다.

어플라이언스 업체들은 원격에서 이뤄지는 공격 등을 막기 위해 어플라이언스에 관리용 포트를 따로 두고 있다. 원칙대로라면 관리를 위한 웹 사용자인터페이스는 외부에서 접근이 불가능해야 한다. 하지만 지만, 비용과 편의의 문제로 인해 이를 활용하는 기업은 그리 많지 않다.

배시 버그로 인한 피해를 최소화하는 방법을 살펴보자.

우선 기업들은 취약한 시스템을 식별하는데 노력을 기울여야 한다. 자사 인프라 중에 배시 버그에 영향을 받는 시스템이 얼마나 있는지, CGI 와 같이 배시 버그에 악용될 수 있는 웹 사용자인터페이스가 얼마나 산재해 있는지 등을 점검해야 한다.

또 주요 리눅스 배포판의 대부분이 해당 버그에 대한 패치를 발표했으므로 이를 업데이트 하거나, 배시가 아닌 다른 디폴트 쉘을 교체하는 것도 이 문제를 해결하는데 도움을 줄 수 있다.

어플라이언스 룰을 수정해 보안을 강화하는 방법도 있다. 대표적인 공개 네트워크 침입 탐지 시스템인 스노트(SNORT)는 이미 새로운 룰(Rule)을 공개했고, 대부분의 침입방지시스템(IPS) 솔루션 업체들도 이러한 룰을 발표했다. 기업들은 이러한 룰을 그대로 적용하면 된다.

사실 앞서 언급한 방법들은 문제를 즉각 해결하는데는 큰 도움이 되지 않는다. 보안솔루션 업체들이 문제 해결을 위한 패치를 내놓기까지 기다릴 수 밖에 없다는 뜻이다. 패치를 적용하기 전 공격이 들어올 경우 이를 차단할 수 있는 방법이 필요한 시점이다.

배시 버그와 같이 명령어를 기반으로 동작하는 취약점을 차단하는데 가장 효율적인 방법은 애플리케이션 레이어를 볼 수 있는 장비를 도입하는 것이다.

L7 스위치 등과 같은 L7 어플라이언스는 시스템 내부로 접근하는 명령어를 하나하나 뜯어볼 수 있다. 공격자가 이를 숨기기 위해 SSL 등으로 암호화를 하더라도 이를 다 복호화해서 탐지할 수 있는 장점이 있다.

이를 응용한다면 웹서버로 배시 명령어가 들어가기 전 L7스위치에서 차단할 수 있게 된다. 웹서버가 가진 취약점에 대한 패치가 완료되지 않은 상황이라도, 앞 단에 있는 스위치에서 모든 공격 명령어를 차단하게 되므로 위험도가 대폭 낮아진다.

변종이 나타나도 L7 어플라이언스는 문제가 없다. 공격자의 명령어가 훤히 보이기 때문이다. 보안업체의 패치가 나오기 전에 L7 어플라이언스의 룰만 새롭게 정리하면 대부분의 공격들은 차단할 수 있다.

L7 어플라이언스의 대표적인 사업자는 F5네트웍스와 시트릭스를 꼽을 수 있다. 이 중 F5네트웍스의 스위치, 방화벽에는 기본적으로 애플리케이션 레이어를 탐지할 수 있는 모듈이 탑재돼 있다.

특히 F5는 확장이 가능한 아이룰즈(iRules)를 통해 하트블리드나 배시 버그 등의 위협을 즉각 완화시킬 수 있는데, 아이룰스는 사용자 환경에 맞게 스위치 등 어플라이언스의 룰을 조정할 수 있는 기술이다.

하트블리드, 배시 버그 등과 같은 사례에서 알 수 있듯이, 앞으로는 애플리케이션 레이어를 볼 수 있는 어플라이언스가 기업 보안인프라에 필수 요소가 될 것으로 예상된다.

<특별취재팀>

이민형
webmaster@ddaily.co.kr
기자의 전체기사 보기 기자의 전체기사 보기
디지털데일리가 직접 편집한 뉴스 채널