김미희 이글루시큐리티 보안분석팀 과장

▲ 김미희 이글루시큐리티 보안분석팀 과장


[컴퓨터월드] ‘방심은 최대의 적’이라는 얘기가 있다. 가장 안전하다고 생각했던 요인에 의해 뜻밖의 사고나 재난이 일어날 수 있으므로 항상 조심하고 주의를 기울여야 한다는 의미다. 이 얘기는 국내 주요 방송사와 금융기관 6곳의 전산망을 동시에 마비시킨 3.20 사이버 테러(2013년) 이후 발생한 주요 보안 사고에도 어김없이 적용된다. 3.20 사이버 테러 이후 발생한 주요 보안 사고의 중심에는 대부분의 조직원이 신뢰하고 사내 접근 권한이 넓게 설정된 ‘중앙관리형소프트웨어’가 있었기 때문이다.

특히 ▲마스터 부트 레코드(MBR) 영역을 파괴하는 악성코드 유포로 약 열흘간 국가적인 업무 마비 사태가 발생했던 3.20 사이버 테러 ▲복원 자료 기준 무려 4만 2,608 건의 군 통신망 및 방위산업 자료가 탈취된 주요 대기업 2곳의 전산망 해킹 사고(2016년 6월) ▲700대의 내부망 용 PC를 포함한 약 3,200여 대의 PC가 감염된 군 내부망 해킹(2016년 8월)은 관리 부실로 인해 중앙관리형소프트웨어가 공격의 교두보로 이용된 대표적인 사례라 할 수 있다.

이와 같이 다수의 PC를 중앙에서 일괄적으로 관리·제어하기 위해 사용하는 중앙관리형소프트웨어를 노리는 공격 시도는 지속적으로 증가하고 있는 추세다. 이에 중앙관리형소프트웨어가 공격에 동원된 3.20 사이버테러와 군 내부망 해킹 사고 사례를 분석하며, 중앙관리소프트웨어가 어떤 방식으로 사이버 공격에 악용되고 있는지, 그리고 이에 유연하게 맞서기 위해서는 어떤 대응책 마련이 요구되는지 살펴보는 시간을 가져보고자 한다.


중앙관리형소프트웨어란 무엇인가? 왜 공격자들의 새로운 표적이 되었나?

우선적으로 중앙관리형소프트웨어가 어떻게 구성되어 있는지 알아보도록 하자. 중앙관리형소프트웨어는 특정 명령어를 통해 일괄적으로 패치를 배포하고 보안 정책을 설정하는 시스템으로 일반적으로 패치·자산·보안 관리 등의 업무를 수행하기 위해 사용된다.

중앙관리소프트웨어는 ▲관리자 페이지를 통해 다수의 에이전트에 일괄적으로 명령어나 파일을 전송해 중앙에서 제어하는 ‘관리서버’와 ▲관리서버에서 송신하는 명령어, 파일을 처리하기 위해 PC에 설치되는 ‘에이전트’로 구성돼 있다.

대표적인 중앙관리형소프트웨어로는 패치관리시스템(PMS), 데스크톱관리시스템(DMS), 백신 소프트웨어(Anti-Virus) 업데이트 시스템, 네트워크 접근통제 시스템(NAC), 망분리 솔루션, 망연계 솔루션 등을 꼽을 수 있다. 사내에서 사용하는 메신저나 그룹웨어, 서버 관리를 위한 액티브 디렉토리 플랫폼 등 전사적 차원의 일괄적인 관리를 위해 사용되는 모든 소프트웨어 역시 중앙관리형소프트웨어에 포함될 수 있다.


▲ 중앙관리형소프트웨어 구조 및 동작 예시 (출처: 이글루시큐리티 보안분석팀)

중앙관리형소프트웨어가 최근 사이버 공격의 교두보로 빈번히 이용되고 있는 이유는 무엇일까? 기업·기관을 노리는 공격자 입장에서는 다수의 에이전트를 개별적으로 공격하기 보다는 이를 일괄적으로 관리하는 중앙관리형소프트웨어의 관리자 페이지 계정이나 관리자 PC를 공격하여 기업 내부 전산망을 장악하거나 다수의 PC를 한번에 감염시키는 공격 방식이 훨씬 효율적이기 때문이다. ‘뱀을 잡기 위해서는 머리부터 잘라야 한다’는 얘기다.

이에 공격자들은 중앙관리형소프트웨어의 기술적 취약점을 먼저 찾아내 이를 이용하거나, 접근 통제가미흡한 관리자 페이지 접근 권한을 탈취하는 등 다양한 기법을 동원해 지속적으로 사이버 공격을 감행하고 있다. 아래 표에 정리된 것과 같이, 백신 소프트웨어 배포관리서버, 보안 프로그램, 자산관리 시스템 등 다양한 중앙관리형소프트웨어의 기술적 취약점 또는 이에 대한 관리 부실로 인해 2013년 이후 다양한 보안사고가 발생했음을 확인할 수 있다.

▲ 중앙관리형소프트웨어와 연관된 사이버 공격


중앙관리형소프트웨어와 연관된 사이버 공격 사례 분석

명확한 사고 원인이 밝혀지지 않는다면 이로 인해 추가적인 사고가 발생할 수 있는 만큼, 피해를 입은 기업·기관과 보안 업체들은 ▲해당 사고가 중앙관리형소프트웨어 자체의 보안 문제에 의해 발생한 것인지 ▲아니면 이에 대한 관리 부실로 인해 일어난 것인지 사고의 원인을 반드시 명확히 밝히고 이에 대한 대응방안을 마련할 필요가 있다. 3.20 사이버테러는 사고 원인을 놓고 중앙관리형소프트웨어와 관련된 다양한 가능성이 제기되었던 대표적인 사례 중 하나다.

3.20 사이버테러 사고 발생 직후, 피해를 입은 기관은 백신 소프트웨어 배포용 관리서버의 기술적 결함으로 인해 악성코드 유포가 이뤄졌다고 주장한 반면, 백신 소프트웨어 업체는 공격자가 기관 내 서버 계정 관리의 허술함을 이용해 악성코드를 퍼뜨렸다는 의견을 개진했다. H사는 백신 업데이트 서버의 관리자 계정 탈취를, A사는 인터넷데이터센터(IDC)에 위치한 업데이트 서버 해킹이 아닌 자산관리서버 관리자 계정 탈취를 각각 사고 원인으로 지목했다.

그리고, 약 한달 후 전혀 예상하지 못했던 새로운 사고요인들이 부각되기 시작했다. K사는 언론 보도를 통해 3.20 사이버 테러 공격 대상 중 하나였던 S은행와 J은행의 경우, 백신 업데이트 서버가 아닌 내부 업무프로그램을 통해 악성코드가 유포된 것으로 확인되었다고 밝혔다. M사 역시, 금융기관이 사용하고 있는 S사의 보안 인증 프로그램의 관리자 계정이 탈취되어 악성코드가 유포되었다고 주장하며, 사고 원인이 소프트웨어 자체의 기술적 취약점이 아닌 관리 부실일 가능성에 무게를 실었다.

민관군 합동대응팀은 4월 10일 진행된 기자 회견을 통해 S사의 보안 인증 프로그램은 3.20 사이버테러와는 무관하다고 발표했으나, 2013년 6월 한국인터넷진흥원이 S사의 공인인증서 보안 제품 취약점에 대한 보안 업데이트를 적극적으로 권고함에 따라 해당 보안 제품이 최초의 공격 통로로 이용된 것이 아니냐는 가능성도 일각에서 제기됐다.

▲ 3.20 사이버테러 타임라인 (출처: 이글루시큐리티 보안분석팀)

작년 8월에 발생한 국방부 내부망 해킹사건의 경우, 군 내부망이 뚫린 직접적인 원인은 아니지만 육·해·공군의 외부 인터넷망 PC 2만 여대를 관리하는 백신중계서버를 통해 악성코드 유포가 이뤄지며 사고의 단초를 제공했다는 점을 주목할 필요가 있다.

작년 12월 국방부는 8월 4일 최초 발견된 악성코드가 잠복기를 거쳐 9월 23일 육해공군의 백신중계서버를 통해 다량 유포된 사실을 확인했다. 이후 추가 피해를 막기 위해 9월 25일 백신중계서버를 네트워크에서 강제로 분리하고 피해 상황을 조사하던 과정에서 공격자가 8월부터 계룡대 국방통합데이터센터(DIDC) 서버를 통해 국방망에 침투, 이에 연결된 PC를 악성코드에 감염시키는 방법으로 군사 기밀을 포함한 일부 군사 자료가 유출된 사실을 확인했다고 발표했다.

국방부는 국가의 안전을 좌우하는 기관 특성상 인터넷에 연결된 인터넷망, 내부 전산망인 국방망(인트라넷), 군사 작전에 사용되는 작전망을 분리한 폐쇄적인 망분리 환경을 구축하고 있었지만, 사고 발생 약 2년 전 계룡대 국방통합데이터센터의 서버를 설치하는 과정에서 편의를 위해 군 외부 인터넷망과 내부망을 연결한 상태를 장기간 방치하고 있었던 것으로 나타났다.

또한 일반적으로 망분리 환경에서 백신 서버를 구성하는 경우, 망간 접점을 최소화하기 위해 망 별로 백신서버를 개별 구축하는 것이 원칙이나, 내부망과 외부망에서 동일한 백신서버를 사용하고 있었다는 점 역시 피해 확대에 큰 영향을 미친 주요 원인 중 하나로 지목되었다.

▲ 국방부 내부망 해킹사고 공격 시나리오(출처: 이글루시큐리티 보안분석팀)

앞서 두 사례에서 확인했듯이, 중앙관리형소프트웨어와 연관된 보안 사고는 소프트웨어 자체의 기술적 결함은 물론 이에 대한 관리 부실로 인해서 충분히 발생할 수 있는 만큼, 이를 소프트웨어 자체의 문제로 치부하기보다는 그 사고 원인을 명확히 규명하여 개선하는 데 힘을 기울일 필요가 있다. 더 나아가 중앙관리형소프트웨어가 공격에 악용될 시 발생할 수 있는 보안 문제에 대해 상세히 분류하며 이에 대한 대응책을 마련해야 한다.

외부자 관점, 내부적 측면에서 살펴본 공격 유형

그렇다면, 중앙관리형소프트웨어를 노리는 공격은 주로 어떻게 들어올까? 중앙관리형소프트웨어를 기준으로 놓고 ▲중앙관리형소프트웨어가 설치된 망 바깥에서 들어오는 외부자 관점의 공격과 ▲중앙관리형소프트웨어의 자체적인 문제 혹은 관리 소홀로 인한 내부적 측면의 공격으로 크게 분류할 수 있으며, 내외부적 관점의 공격은 아래와 같이 다시 세분화될 수 있다.

▲ 중앙관리형 소프트웨어 대상의 공격방식 분류

먼저, 외부자 관점의 공격 방식은 공격 경로와 수단에 따라 크게 세 가지로 분류될 수 있다. 첫째, 공격자가 중앙관리형소프트웨어를 직접적으로 공략하기 보다는 중앙관리형소프트웨어가 설치된 망에서 네트워크 접근 통제가 부실한 곳을 찾고 우회적인 접근 경로를 통해 불법적으로 접근하는 형태다.

예를 들면 공격자는 중앙관리형소프트웨어가 존재하는 망에 있는 방화벽, 침입방지시스템 등의 망관리가 소홀한 틈을 타 우회적으로 공격을 시도할 수 있다. 관리서버에 대한 최소한의 접근이 가능하도록 관리서버에 접근 가능한 IP를 설정해야 하는데 이를 설정하지 않거나, 방화벽에서 특정 IP에 대한 한시적인 접근 권한을 허용한 뒤 기간 만료 시에도 이를 차단하지 않는 예가 대표적이다.

둘째 계정 설정이 취약한 관리자 계정을 공략하는 공격시도도 지속되고 있다. 패치 관리, 자산 관리 등의 중앙관리형소프트웨어는 일반적으로 홈페이지 형태의 관리자 페이지와 이에 접속하기 위한 관리자 계정을 통해 운영되고 있다. 공격자들은 패스워드로 사용할만한 단어의 집합을 입력해 로그인을 시도하는 ‘사전대입공격(Dictionary Attack)’, 관리자 페이지 보안상의 허점을 이용해 데이터베이스 정보를 출력하는 ‘SQL 주입공격(SQL Injection)’등을 통해 관리자 계정과 주요 정보를 탈취하고 있다.

세 번째, 관리자 계정 접속을 위한 2차 인증 수단으로 이용되는 디지털 인증서를 사전에 탈취하고 이를 이용해 중앙관리형소프트웨어 관리자 페이지에 접속하여 악성코드를 유포하는 방식이다. 공격자가 맹목적인 신뢰를 받고 있는 인증서를 이용해 관리자 계정에 접속을 시도하기 때문에 공격자의 악의적 행위를 확인하는 것이 어려운 것이 특징이다. 또한, 정상적인 권한에 의한 접근인 만큼, 대부분의 중앙관리형소프트웨어가 아무 제한 없이 공격에 동원되는 것이 가능하다.

다음은 중앙관리형소프트웨어의 자체적인 문제로 인해 야기되는 내부적 측면의 공격 방식에 대해 알아볼 차례다. 여러 가지 보안 위협이 존재하나 가장 대표적인 형태는 중앙관리형소프트웨어 자체의 보안상 허점을 뚫고 들어오는 방식이다. 기업 PC관리시스템의 취약점이 악용된 국내 대기업 전산망 해킹사건이 대표적인 예로, 공격자는 관리자 권한이 없이도 원격 접속해 임의로 파일을 배포하고 원격에서 제어할 수 있는 미인증 우회 취약점을 이용해 내부 시스템에 잠입에 성공했다.

또한 파일 고유의 ‘해쉬값’을 이용해 중앙관리서버에서 최종 배포한 파일과 에이전트가 다운받은 파일의 동일성을 확인하는 무결성 검증이 이뤄지지 않는 경우에도 공격의 표적이 될 가능성이 높아진다. 공격자는 암호화되지 않은 값을 중간에서 가로채는 ‘중간자 공격’ 및 웹 서버나 게이트웨이의 MAC 주소를 변경해 데이터를 변조시키는 ‘ARP 스푸핑’ 공격을 통해, 에이전트가 파일을 다운로드하기 위해 접속하는 정상 URL을 악성 URL로 변조함으로써, 에이전트가 악성 파일을 실행하게끔 유도할 수 있다.

마지막으로 중앙관리형소프트웨어의 기능 및 관리서버에 대한 접근 권한을 부적절하게 혹은 잘못 설정하는 경우에도 공격이 발생할 수 있다. 업무 편의를 위해 부적절한 원격 접근을 허용하거나 관리자 범위를 지나치게 넓게 설정해 과도한 접속 권한을 부여하는 형태가 대표적이다. 중앙관리형소프트웨어의 기술적 취약점 점검은 물론 중앙관리형소프트웨어의 운영옺桓츩활용에 대한 명확한 보안 정책 설정 및 정기적 점검이 요구되는 이유라 할 수 있다.

관리 효율성과 보안성 강화, 두 마리 토끼를 잡는 방법은?

지금까지 중앙관리형소프트웨어가 공격에 악용된 주요 피해 사례를 분석하고, 외부적/내부적 관점에서 세부적인 공격 유형을 분류하는 시간을 가져보았다. 다수의 PC를 일괄적으로 관리·제어할 수 있는 여러 이점들에 힘입어 중앙관리형소프트웨어 도입은 지속적으로 증가하고 있지만, 최근 이와 연관된 대규모 보안 사고가 잇달아 발생함에 따라 효율성과 보안성의 두 마리 토끼를 모두 잡을 수 있는 대책 마련이 시급한 상황이다.

중앙관리형소프트웨어를 보다 안전하게 사용하기 위해서는 어떠한 노력이 요구될까? 우선적으로, 외부망과 내부망 별로 개별적인 관리서버를 구축하고 관리자 계정에 대한 접근을 엄격히 제한하는 등 공격자가 관리서버에 접근할 수 있는 경로를 최소화하는 것이 바람직하다. 또한, 정기적인 보안 점검을 실시하고 점검을 통해 발견된 취약점을 제거할 수 있는 패치 프로그램을 배포하며, 소프트웨어 자체의 기술적인 허점을 악용한 공격에 대비할 필요가 있다.

더불어 사내에서 사용하고 있는 모든 중앙관리형소프트웨어에 대한 보안 정책과 규제를 마련하고 조직원이 이를 잘 준수하고 있는지 살펴보는 것 역시 매우 중요하다. 앞서 발생한 대규모 사고 사례에서 확인했듯이, 소프트웨어 자체의 기술적 결함보다는 관리상의 미흡함으로 인해 야기되는 보안 사고가 적지 않은 비중을 차지하고 있기 때문이다. 특히, 관리자 계정이 탈취되는 경우에는 공격을 빠르게 탐지하기 어렵고 기술적인 취약점 없이도 공격에 빠르게 동원될 수 있으므로 각별한 주의를 기울여야 한다.

‘적을 사로잡기 위해서는 적의 우두머리부터 잡아야 한다’는 얘기가 있다. 적을 제압하기 위해서는 상대방의 핵심을 공략해야 한다는 의미다. 하지만 이는 역으로 공격자가 노릴만한 핵심요소를 안전하게 보호한다면 보다 효율적인 방어가 가능해짐을 의미하기도 한다. 정기적인 보안 점검 및 지속적 관리를 통해 중앙관리형소프트웨어의 보안성을 더욱 강화함으로써 중앙관리형소프트웨어 활용을 통해 얻을 수 있는 여러 이점들을 최대한으로 안전하게 누렸으면 한다.

저작권자 © 컴퓨터월드 무단전재 및 재배포 금지