해결책보다 문제가 더 많은 상황, 그것이 진짜 문제
본지에서는 4사분기를 맞이하여 조금 긴 듯한 특집 기사를 시리즈로 준비했습니다. 애플, 암호 관리 프로그램, 보안 업계의 희망, 해외 핵 관련 시설의 보안 실태, 사이버 보안의 10가지 요소들에 대한 이야기를 나눌 예정입니다. 첫 번째 이야기의 주제는 ‘애플’이었습니다.
▲ 앞이 안 보여. 아니, 보여도 안 보이는 거 같아...
[보안뉴스 문가용] 이제 기업들이라면 어느 정도 취약점 관리 프로그램을 나름 갖추고들 있다. 시스템 고장과 같은 단순한 사건에서부터 보안 관련 오류가 발생했을 경우 무엇을 어떻게 처리해야 하는지 대략적으로나마 정해두고 있는 것. 문제는 있다는 것 자체에 의의를 두고 그것을 보강하고 다듬는 작업을 좀처럼 하지 않는다는 데에 있다.
취약점 스캐너치고 완벽한 것 없고 사업과 업체의 성격에 따라 취약점의 심각한 정도도 다르기 마련인데 그냥 남들이 하는 대로 기계적으로 적용해놓고 몇 년씩 그대로 두는 경우가 많다는 것. 이는 과장 하나 없이 눈 뜨고 일어나면 새로운 취약점과 공격방법이 발견되는 현 상황에서 전혀 효과를 발휘할 수 없는, 말 그대로 무용지물인 시스템이다.
그러나 보안에만 철저하게 신경 쓸 수 없는 기업의 입장이라는 것 또한 존재하기 때문에, 그런 업체들을 대신하여 보안을 전문으로 하는 이들이 주로 확인하고 항상 신경 쓰는 것들을 10가지 정리해보았다. 이것만 다 확인하고 신경 써도 어지간한 방어는 될 것이다.
1. SAP의 오류들
기업의 업무 환경에서 널리 활용되고 있는 SAP는 이상하게 대부분 ‘보안 점검 대상’에서 제외되는 경우가 많다. ERP 보안전문 기업인 오냅시스(Onapsis)에 의하면 SAP를 사용하고 있는 수백 개의 기업들을 조사한 결과 95%가 넘는 곳에서 대단히 치명적인 오류를 그대로 간직한 채 사업을 운영 중에 있었다고 한다. 기업의 가장 중요한 정보를 다루는 업무가 SAP에서 많이 진행되고 있으며 세계 2000대 기업의 87%가 SAP을 사용하고 있다는 걸 생각해보면 이는 웃으며 넘길 수 있는 결과가 아니다.
“해커들 입장에서 당연히 제일 노리고 싶은 취약점 중 하나죠. 실제로 SAP 취약점은 많이 연구되고 있기도 합니다. 실제 공격이 일어나 중요한 기밀이 노출되거나 사업을 아예 접어야 하는 수준에 이른 곳도 많습니다. SAP 업데이트는 기업들이라면 반드시 최고로 신경 써야 하는 부분이라고 봅니다.” 오냅시스의 CEO인 마리아노 누네즈(Mariano Nunez)가 강조한다.
SAP 취약점을 익스플로잇 하는 방법은 크게 세 가지로 나눌 수 있다.
1) SAP 시스템 사이의 피버팅을 사용해 신용카드 정보와 같은 고객 정보를 훔친다.
2) 해커가 SAP J2EE User Management 엔진에 백도어용 사용자들을 만든 후 공격한다.
3) 사내 SAP 프로토콜을 직접 공격한다.
SAP를 사용하는 기업이라면 SAP와 취약점 스캐닝에 신경 써 가시성을 확보하는 것이 중요하다. 마리아노 누네즈가 말하듯 “매일매일 SAP를 검사하고 취약점이 나오는 족족 해결부터 하라는 게 아니”라는 것. “기업이 SAP의 보안을 관리한다는 건 기업이 보유하고 있는 자산을 관리한다는 것이고 그 자산들에 대한 보안의 수준이 어느 정도 되는지 점검하는 겁니다.”
그렇다고 고치지 말란 말은 아니다. “요즘은 해킹 도구가 널리 퍼져서 해킹 지식이 크게 없어도 반쯤 장난으로 해킹해보는 사람들이 많습니다. 그런데 그런 것에 일일이 당하면 안 되겠죠. 모든 공격을 막을 순 없어도, 무심코 해보는 공격에 당하는 건 막아야지요.”
2. 네트워크 하드웨어의 취약점
네트워크 관련 장비들이 계속해서 늘어나고 있다. 라우터, 접근점, 프린터, 보안 카메라 등 일일이 나열하기가 힘들 정도다. 그렇기 때문에 이런 장비들에서 속출하고 있는 취약점이 공격의 방법과 폭을 늘려주고 있다.
“게다가 네트워크에 아무런 예고도 없이 새로운 장비들이 연결되었다가 끊기곤 하죠. 정말 무심코 연결해서 사용해요, 아무 기기나 가져와서요. 모바일이 대세인 요즘은 더 그렇죠. 사고가 날 때까지 이런 위험한 습관에 대해 아무런 생각을 하지 않습니다. 이런 상황에 업데이트가 일괄적으로 이루어지긴 불가능하죠.” 아이사이트 파트너즈(iSIGHT Partners)의 취약점 관리자인 제리드 셈라우(Jared Semrau)의 설명이다. “게다가 기기들마다 설치된 앱들은 또 얼마나 천차만별인지...”
그런 수많은 종류의 기기들을 일일이 추적하거나 관리하기 힘들다는 게 문제의 핵심이다. 그러니 이미 업그레이드가 나와 있는 ‘한 물 간’ 취약점을 통한 공격도 허용하게 된다. 그렇다고 제조사가 보안을 심각하게 고려하여 소비자들의 상태를 돌봐주느냐 하면 그렇지도 않다. 심지어 기기들의 보안상태를 만든 사람들이 다 파악하지 못하는 게 현실이다.
하지만 최근 UC 산타 바바라(UC Santa Barbara)의 보안 연구원들이 자동 펌웨어 분석 툴인 앵거(Angr)를 개발함에 따라 적어도 네트워크에 소리소문 없이 흘러들어온 하드웨어들의 펌웨어 보안 문제는 어느 정도 해소할 희망이 보이고 있다. 그러나 그것은 작은 희망의 시초일뿐 아직 기업 네트워크의 관리를 맡고 있는 사람들은 보안에 대해 피곤할 정도로 신경을 써야 하는 게 사실이다. “네트워크 장비는 의외로 보안의 회색지대에 놓여 있습니다. 완전한 사각지대도 아니면서, 그렇다고 세세한 점검을 받는 곳도 아니죠.”
이 문제를 해결하는 데에는 어떤 방법들이 있을까? “일단 믿을 만한 브랜드의 제품을 사용하는 게 좋습니다. 그런 회사들이 보안에 더 적극적이거든요. 또한 되도록 자국 내에서 AS 받기가 쉬운 제품을 사용하는 편이 좋습니다.” 가장 중요한 건 아직 네트워크에 무분별하게 삽입되었다가 빠지곤 하는 장비를 일일이 관리할 방법이 사실상 없다는 걸 기억하는 것이다. “사람이 직접 나서야 하는 분야입니다. 소규모 사업장이 아닌 바에야 네트워크 장비들을 편하게 관리하는 법이란 아직 존재하지 않습니다.”
3. 경계 경로 프로토콜(혹은 외부 라우팅 프로토콜) 하이재킹
네트워크 하드웨어 이야기가 나왔다면 경계 경로 프로토콜(Border Gateway Protocol, 이하 BGP) 트래픽 라우팅의 하이재킹 이야기를 하지 않을 수 없다. 이는 최근 인기가 급상승 중인 공격 방법이기도 하다. 인터넷 라우팅 테이블을 조작해 IP 주소들을 다량으로 차지하는 공격이다.
“자기 소유가 아닌 IP 주소 공간이 마치 자기 것인냥 만드는 것이 핵심입니다. 라우터가 특정 데이터로 접근하기 위해 거쳐야 할 경로를 설정할 때 그 IP를 포함시키도록 하는 것이죠. 라우터가 해당 IP를 ‘합법적’이라고 받아들이면 그 라우터에서부터 나오는 정보가 IP를 거짓으로 차지하고 있는 해커들에게 전송됩니다. 이 방법이 지금 해커들 사이에서 각광받고 있습니다.”
하지만 BGP 하이재킹은 사실 보안 문제라기보다 환경설정 문제에 가깝다. 이 방법에 노출된 기업이 할 수 있는 조치란 매일 발생하는 수백 만 건의 정상 및 악성 인터넷 라우팅 변화를 매일 하나하나 점검하는 것이 전부다. 최근 이 문제를 보다 쉽게 해결하기 위해 오픈DNS(OpenDNS)의 네트워크 엔지니어인 안드리 퉁크(Andree Toonk)가 BGP 스트림(BGP Stream)이라는 툴을 개발했다. 네트워크를 스캔하여 라우팅 공격이 탐지될 경우 트위터로 경고 메시지를 날리는 기능을 가졌다. 이 툴은 오픈DNS가 제공하는 BGPMon이라는 비정상 BGP 라우팅 변화 탐지 서비스와 연동이 된다.
4. 안드로이드 취약점
안드로이드에서 취약점 발견되는 거야 이제 놀랍지도 않을 정도다. 카스퍼스키의 연구원들에 의하면 모바일 공격의 98%가 바로 이 안드로이드를 표적삼고 있다. 지데이터(G DATA)에 의하면 새로운 안드로이드 멀웨어가 18초에 한 번씩 출현한다. 그래서 2015년 말에는 새로운 안드로이드 멀웨어가 적어도 2백만 개를 넘어설 것이라고 예측한다. 최근에는 4.3 이상 버전을 사용하는 안드로이드 기기라면 그 어떤 정보라도 루팅이 가능하다는 사실도 드러났다.
하지만 최근 들어 안드로이드 생태계를 가장 많이 괴롭힌 건 스테이지프라이트(Stagefright) 멀티미디어 플레이백 엔진에서 발견된 취약점이다. 이 취약점을 악용하면 디도스 공격, 원격 코드 실행 공격, 지문 채취 프레임워크에 대한 공격이 모두 가능하다는 게 드러났다. 지문 정보를 해커가 가져가면 지불 인증 절차에도 관여할 수 있게 된다. 이런 공격들에 대해서 아직까지 제대로 된 대처법이 나오지 않았다는 게 진짜 무서운 점이다. 안드로이드는 사용자도 많기도 하고 취약점도 빈번하게 발견되기 때문에 네트워크 관리자를 넘어 회사 경영진 차원에서 직원들의 업무 목적을 위한 사용을 관리하는 수밖에 없다.
5. 커베로스 티켓
액티브 디렉토리(Active Directory)에 있는 취약점을 악용하면 커베로스 티켓을 가짜로 만들 수 있다는 사실이 알바 덕웰(Alva Duckwell)과 벤자민 델피(Benjamin Delpy)에 의해 드러나면서 마이크로소프트의 로그인 절차에 대한 불신이 퍼지게 되었다. 게다가 이렇게 가짜로 만든 커베로스 티켓은 10년까지도 사용이 가능하다고 알려져 있다.
하지만 댄 솔루션즈(DAn Solutions)의 CTO인 션 멧카프(Sean Metcalf)에 의하면 이런 공격은 탐지도 가능하고 잘만하면 피해를 상당히 줄일 수도 있다. “도메인 관리자 계정으로 로그인 할 수 있는 컴퓨터와 시스템 수를 제한시켜야 합니다. 그리고 관리자 그룹을 정해놓고 그 그룹에 속하는 계정마다 권한을 다르게 주어야 합니다. 즉 한 계정으로 모든 걸 할 수 있게 만들지 말라는 겁니다. 이렇게 하면 설사 해커가 계정에 접근한다고 해도 할 수 있는 일이 크게 줄어듭니다.”
6. 로직 오류
로직 오류는 파악과 수정 모두 까다롭다. 그래서 그냥 방치되는 게 보통이다. “발견이 어려운 만큼 보상도 크죠. 논리 구조에 취약점을 발견한 공격자는 여러 가지 ‘규칙’들을 교묘히 피해갈 수 있게 됩니다.” 오픈 웹 애플리케이션 시큐리티 프로젝트(Open Web Application Security Project)의 아시시 라오(Ashishi Rao)와 데이비드 펀(David Fern)의 설명이다.
로직 오류를 악용한다는 건 쉽게 말해 “합법적인 방법으로 애플리케이션을 사용하되 그 결과물이 조직이나 시스템 전체에 나쁘게 나오도록 하는 것”이다. 주식 거래 애플리케이션을 정상적으로 사용하되 거래 내역이 공개되게끔 한다거나 특정 가격을 조정할 수 없도록 만들거나 하는 것을 말한다. “게임을 하다보면 왜 개발자가 의도치 않은 지름길이 발견되거나 절대 타격을 받지 않는 장소를 찾아내는 사람들이 있어요. 즉 의도보다 쉽게 게임을 마칠 수 있게 되는 건데, 이와 비슷하다고 볼 수 있습니다. 하지만 훨씬 나쁜 쪽으로 발현되는 거죠.”
“로직 오류는 탐지가 쉽지 않습니다. 기존의 코드 분석을 통해서는 확 드러나지 않기 때문이죠. 예를 들어 하트블리드의 경우 바운드 체크하는 기능이 ‘빠져 있던 게’ 문제였죠. 그게 없으니 해커들이 민감한 정보를 마구 읽어드릴 수 있었던 것이고요. 잘못된 코딩이라면 눈에 띄겠는데, 없어서 문제가 된 경우는 어지간해선 알아채기가 힘듭니다. 로직 오류라고 하면 이런 예가 많습니다.”
이 문제를 해결하려면 코드에 대한 깊은 이해가 필수다. 그것에 더해 해당 애플리케이션이 사용되는 업무 환경과 사업의 방향 전체에 대한 이해도도 필수다. “또한, 왜, 이발사가 자기 머리 못 깎는다고 하잖아요? 본래 코드를 짠 사람이 아니라 전혀 다른 제3자가 코드 분석을 해보는 것도 좋은 방법입니다. 또한 전체적인 시야를 가진 사람일수록 로직 부분의 취약점을 더 잘 간파하니, 보다 많은 사람들의 의견을 물을 수 있도록 회사 차원에서 방법을 강구해줘야 합니다. 그냥 개발 부서에 코드 던져놓고 ‘오늘까지 분석해와’하는 방식으로는 로직 오류 절대 못 잡습니다.”
7. 크로스 인스턴스 취약점
최근에 클라우드가 대세가 되면서 앱도 시스템에 직접 설치하는 것보다 서비스형 소프트웨어 즉 SaaS를 사용하는 사람들이 늘어났다. 이 때문에 발견된 게 크로스 인스턴스(cross-instance) 취약점이다. “SaaS형 애플리케이션의 경우, 다양한 기업들이 한 도메인의 한 인프라를 사용해서 완전히 다른, 제각각의 인스턴스를 만들어내고 있는 상황이죠. 이런 구조가 기존의 웹 보안 아키텍처를 완전히 박살내고 있습니다. 이전의 웹 보안 아키텍처라고 하면 ‘신뢰 영역’이 각각 다른 공간을 차지하고 있을 거라고 전제 하에 구성되니까요. 여기서 취약점이 발생하고 오류가 생겨납니다.” 아달롬 랩스(Adallom Labs)의 보안 전문가인 토머 슈와츠(Tomer Schwartz)의 설명이다.
“SaaS형 애플리케이션과 다른 애플리케이션들 사이의 신뢰 관계 역시 취약합니다. SaaS 애플리케이션들은 다른 시스템들과의 상호작용과 정보 교환을 목적으로 한 클라우드 API나 그와 비슷한 툴들을 여럿 가지고 있습니다. 즉, 애플리케이션을 중심으로 한 독자적 생태계가 형성되는 거죠. 이 생태계는 그런데 아직 완전히 정의되지도 않았고, 따라서 연구도 덜 된 편이며 아무도 모니터링 하지 않습니다.”
이 말이 좀 어려울 수 있는데, 애플리케이션 사이에서 특정 정보가 교류되고 기능이 공유되는 걸 그저 편리한 기능이라고만 생각한다는 것이다. 예를 들어 카카오톡이 내 모바일 주소록의 번호들을 자동으로 등록시켜주는 것에 대해 아무런 거부감이 없는 걸 떠올리면 된다. 분명히 카카오톡과 주소록은 별개의 애플리케이션인데 둘은 가장 핵심이 되는 정보를 공유하고 있는데 말이다. “이렇게 발생하는 취약점은 탐지가 어렵습니다. 왜냐하면 몇 개 이상의 앱들이 가진 기능의 조합에서 아무도 의도치 않게, 거의 자연스럽게 생겨나는 것이기 때문입니다. 인간으로서는 예측이 불가능한 영역에 있는 취약점이죠.”
그래서 최근엔 이런 종류의 취약점을 해결해주는 걸 전문으로 하는 업체나 서비스가 생겨나고 있다. 이들은 클라우드 내 활동들을 모니터링하면서 비정상적인 활동을 파악해나가는 걸 골자로 하고 있다. “이는 최근 유행하는 행동 패턴 분석이나 컨텍스트 보안, 머신 러닝과 어느 정도 겹치고 있습니다.” 그 말의 이면에는 ‘아직 불완전한 해결 방안’이라는 뜻이 숨어있다.
8. 어도비 플래시
이젠 보안 전문 기자들도 그냥 지나쳐버릴 정도로 흔한 취약점의 대명사가 된 어도비 플래시. 그런데 일반 업무 환경 및 시스템 중 플래시 없는 걸 발견하기가 힘들 정도다. 유명하고 잘 알려져 있지만 막상 없애는 것 또한 불가능해 골칫거리인 취약점이다. 올해만 해도 해킹팀(Hacking Team)이란 이탈리아 업체가 뚫리면서 가장 먼저 드러난 게 어도비 플래시의 제로데이 취약점이었다.
그것 외에도 어도비 플래시가 하도 자주 해커들에게 뚫리자 보안 전문가들 사이에서는 플래시를 아예 사용하지 말자는 말도 나오고 있고 대형 브라우저 생산업체들은 잠시 플래시 호환 기능을 막아두기도 했다. “솔직히 이걸 근본적으로 해결할 수 있는 건 어도비 뿐입니다. 어도비에서 큰 결단을 내려야 합니다. 없애든지 아니면 아예 처음부터 깨끗한 코드를 제대로 만들든지.” 기업의 보안 담당자 입장에서는 매일처럼 뉴스를 보면서 업데이트를 빠르게 적용하는 수밖에 없다. 네트워크 내 시스템에 한해서는 플래시를 금할 수도 있지만, 이는 요즘과 같이 플래시 콘텐츠가 많은 때엔 오래 가지 않는다.
9. 외주업체 혹은 외주 서비스
솔직히 대기업들의 보안은 어지간해선 매우 튼튼하다. 다만 이런 대기업들과 사업적인 관계를 맺고 있는 외주업체 혹은 외주 서비스들이 문제가 된다. 소프트웨어 공급 업체인 소나타입(Sonatype)에서 조사한 결과, 대형 소프트웨어 및 금융 기업들이 파트너십을 맺고 있는 외주기업은 평균 7600개에 달했다. 소프트웨어 하나를 개발하기 위해 사용되는 또 다른 소프트웨어 요소들은 평균 24만 개에 달했다고 한다. 이걸 하나하나 관리한다는 건 웬만큼 큰 기업들이라고 해도 선뜻 투자하기 힘든 자원과 시간을 필요로 한다. 그리고 실제로 많은 외주업체 및 외주 서비스가 방치되고 있다.
외주업체를 관리한다는 건 사실 권한 밖의 일이다. 그렇다고 국가가 나서서 법령으로 갑을 관계를 정해줄 수도 없는 일이다. “이건 회사 대 회사로 계약을 맺을 때 계약서에 보안 관련 조항을 정리해서 넣는 수밖에 없습니다. 약속을 잘 해야 한다는 거죠. 책임소재도 분명히 물을 수 있게 되고요.” 별다른 계약서 없이 사용하는 외주 애플리케이션의 경우 역시 아직까지는 원 개발자가 내놓는 패치나 업데이트를 적용하는 게 사용자가 할 수 있는 일의 거의 전부라고 봐도 무방하다. “업데이트를 잘 해주는 업체의 서비스나 앱을 처음부터 사용하는 것이 중요합니다.”
10. 최종 사용자
시스템과 네트워크를 아무리 단단하게 만들어도 결국 사용자 한 명이 모든 걸 무너트리는 게 가능하다. 그래서 최종 사용자를 보호하기 위한(혹은 최종 사용자로부터 네트워크를 보호하기 위한) 여러 기술적인 솔루션들이 시장에 등장해왔다. 하지만 RSA 퍼스트와치(RSA FirstWatch)의 수석 매니저인 알렉스 콕스(Alex Cox)의 표현을 빌린다면 “데이터와 시스템 등 해킹의 기술적인 면에 너무 치중한 나머지 ‘사람’이란 요소를 놓친” 것들이 대부분이었다. “결국 ‘누가’ 데이터에 접근하느냐, 그 ‘누군가’가 할 수 있는 일이 무엇이며 품을 수 있는 의도는 무엇인가와 같은 보안 사고의 중요한 요소는 완전히 배제되었죠.”
이게 바로 요즘 대세가 되고 있는 ‘내부자에 의한 사고’인데 “이는 예측할 방법도, 100% 예측이 성공했던 사례도 없”기 때문에 보안 담당자들의 마음 한 구석에 늘 묵직하게 앉아있는 부담감으로서 존재해왔다. “열 길 물속은 알아도 한 길 사람 속은 모르니까요.”
이를 해결하기 위해서는 “기업 전반 혹은 사회 전반의 보안 인식 고취 노력이 필요”하다. 또한 수상한 행동이나 활동 사항을 신고할 경우 보상을 해준다는 식으로 동기를 부여할 필요도 있다. 아무리 실수였다지만 악성 링크를 눌러 사고를 야기한 사람들이 너무 쉽게 용서되는 현상도 기피해야 한다. “기술적인 측면에선 기업 전체 네트워크의 가시성을 확보하는 게 중요합니다. 그래야 최대한 빠른 시간 안에 문제를 해결하고, 더 크게 번지는 걸 막을 수 있죠.”
또한 장기적인 분석도 중요하다. “피싱 공격이 유독 자주 들어온다거나 멀웨어가 자주 발견되거나 하는 네트워크라면 최종 사용자 혹은 엔드포인트 보안에 힘을 주는 등 상황별로 가장 적절한 보안 대책을 마련하는 것이 중요하겠죠. 교육이 중요하다지만 모든 사람에게 모든 걸 가르쳐줄 수는 없습니다. 가장 급하고 위험한 것을 우선적으로 선별해 그것부터 해결하는 게 훨씬 현실적이고 효과가 높습니다.”
Copyrighted 2015. UBM-Tech. 117153:0515BC
[국제부 문가용 기자(globoan@boannews.com)]
<저작권자: 보안뉴스(www.boannews.com) 무단전재-재배포금지>