태터데스크 관리자

도움말
닫기
적용하기   첫페이지 만들기

태터데스크 메시지

저장하였습니다.

세계적으로 유례가 없는 제로데이들의 공습, 한국을 강타하다.

* 좀 더 상세한 제로데이 공격 현장 (?)과 실제에 대해 내용을 기술 했습니다. 실제 컬럼에는 회사 로고와 명칭은 빠져 있습니다. 참고하세요  - 바다란

  • http://www.zdnet.co.kr/column/column_view.asp?artice_id=20130122143430

2013년 1월 11일 주말을 기해 국내 인터넷 환경에서는 지금까지 유례 없던 현상이 출현 하였다. 일반적으로 패치가 발표 되기 이전의 공격코드를 제로데이 공격이라고 칭한다. 공격코드를 대응할 방법이 없다는 점에서 모든 방패를 무력하게 만드는 절대적인 공격 기법이라고도 할 수 있다.

 

취약성을 보완하는 것을 패치라고 하며 일반적으로 운영체제 및 Application의 업데이트를 통해 새로운 버전으로 갱신을 하게 된다. 2000년 이후 지금까지 2003년 1.25 대란을 겪으며 발표된 패치의 중요성에 대해서 높은 주의를 가지게 되었으며, 이후에도 패치만 꾸준히 할 경우 대규모 피해는 발생하지 않는다는 것이 정석 이였다.

 

제로데이 공격들은 일반적으로 국가간의 첩보나 사이버전, 기밀탈취에 은밀하게 쓰이는 용도로 일반에게 알려져 있으며, 국가와 기업의 중요기밀 탈취를 위해 이메일 등을 통해 공격 하는 방식으로 이해를 하는 것이 일반적이다. 그러나 지금의 상황은 극도로 달라진 상황을 보이고 있으며, 그 결과는 매우 치명적인 결과를 초래하고 있다.

 

일반적으로 웹서비스를 해킹 할 때에는 내부로 침입을 하기 위한 통로로서 공격을 하거나, 정치적 의견을 알리기 위한 핵티비스트 경향을 띄는 것이 일반적이다. 단순히 중간거점으로 활용하거나 페이지 화면을 변조함으로써 의사를 전달 하는 용도로 이용된 것이 지금까지 대부분이 알고 있는 해킹의 유형이라 할 수 있다. 그러나 2000년대 중반 이후부터 공격자들은 또 다른 하나의 수단으로서 직접 활용을 하고 있다. 그 활용은 웹서비스의 소스를 수정함으로써 모든 방문자들을 대상으로 좀비 PC로 만들 수 있는 공격이 가능하다는 것을 인지하고 실행을 하게 된다. 2012년을 거쳐, 2013년이 된 지금은 대규모 공격 네트워크를 직접 활용하는 수준에까지 도달한 상황이다. 여기에 공격자가 권한을 가지고 변경한 웹서비스들을 ( 뉴스, 동영상, 온라인커뮤니티 등등) 방문한 사용자 PC를 공격하는 기법에 패치가 없는 제로데이들이 사용되는 상황까지 도달 하였다.

 

현재 시점에서 국내 인터넷 환경을 공격하는 제로데이가 하나도 아니며, 두 개가 대량 감염에 적극 이용 되고 있는 상황이 계속 관찰 되고 있다. 8억 5천만개 이상의 디바이스에 설치되어 운영되고 있는 Java에 대한 제로데이 공격이 그 하나이며, 국내 인터넷 상거래 환경의 상당수를 차지하고 현재도 사용중인 IE 6,7,8 버전에 대한 제로데이 공격이 또 다른 하나이다. 그 시작은 1월 11일부터 이다. IE 제로데이인 CVE 2012-4792 취약성과 Java 제로데이인 CVE 2013-0422 공격이 국내를 대상으로 대규모 공격한 정황은 PCDS (Pre Crime Detect System – 빛스캔)를 통해 확인이 되었으며 현재 전문분석이 진행중인 상황이다.

 

< 빛스캔의 PCDS를 통해 탐지된 IE, Java 제로데이 탐지 현황과 현실>

 

단 하나의 제로데이가 발생 하여도 파급력과 위험성은 높은데, 하나도 아닌 두 개의 제로데이가 직접 이용되고 모든 웹서비스 방문자를 대상으로 대량 감염을 시키는 상황은 절망적인 상황이라 할 수 있을 것이다. 지금의 상황에 대한 메시지는 극도로 위험함이라 규정 할 수 있다.

 

최근 국내에서는 금융관련된 피싱 및 소액결제 사기등이 급증하는 현상이 지난해 하반기부터 계속 되고 있다. 그 피해의 이면에는 사용자 PC의 권한을 획득한 악성코드의 역할이 절대적이라 할 수 있다. 어떻게 이 악성코드들은 설치가 되었는가?

 

공격전략

 

공격자들은 효율적인 전략을 통해 대규모 감염을 위한 매커니즘을 운용중이다. 이 매커니즘은 첫번째로 취약한 웹서비스들을 먼저 공격하여 권한을 획득 하는 것이다. 그 다음은 모든 권한을 가지고 있는 상태에서 웹서비스의 소스코드 중 극히 일부를 수정하거나 추가하는 형태를 보인다. 추가 되거나 수정되는 정보는 공격자가 이미 다른 서버에 올려둔 공격코드를 실행하는 트리거 역할을 하게 된다. 이 트리거는 공격자가 수정한 웹서비스를 방문하는 모든 사용자를 대상으로 하여 실행이 되게 된다.

 

  1. 웹서비스 권한획득 – 모든 권한을 가지고 있으나 단지 소스의 일부만을 수정함

  2. 소스코드의 일부를 공격자가 올려둔 공격코드가 실행 되는 주소로 변경

  3. 이제 웹서비스 방문자들은 모두 자동으로 공격코드의 영향권에 있으며, 좀비PC화됨

  4. 좀비 PC가 된 대량의 PC들에서 입력되는 모든 정보를 탈취하고, 금융기관 접속 시에는 URL을 변경하여 피싱사이트로 자동으로 연결 되도록 한다. ( DDos 공격 및 내부 침입등은 공격자의 선택 옵션일 뿐이다. )

 

< 공격자가 인위적으로 주요 웹서비스에 추가한 제로데이 공격 링크 실행 부분>

공격자는 권한을 획득한 웹서비스의 소스에 위와 같은 자동 실행 부분을 추가한다. 관련 이미지는 1월 11일에 발견된 국내 유력 웹서비스 소스 변경 부분이며, 모든 방문자가 방문 시에 자동으로 실행 되어 영향을 받는 부분이다. 추가된 소스코드의 상세분석에 따르면 IE 제로데이와 Java 제로데이를 동시에 활용하여 공격을 하는 전 세계에서 발견된 바 없는 제로데이를 두 개나 활용하는 소스코드이다. 해당 서비스에 방문하는 모든 사용자들은 영향을 모두 받았을 것이다.

< 취약성 공격 코드가 올려진 또 다른 국내 웹서비스 >

 

Pop.htm은 Java 관련되어 제로데이를 포함한 6 종류 이상의 취약성을 공격하여 권한을 획득하는 공격링크이며 popup.htm은 IE 관련 제로데이를 자동 공격하는 공격코드가 들어가 있는 부분이다.

 

현재 상황

 

IE 관련 제로데이의 경우 이미 1월 초부터 국내 인터넷을 대상으로 하여 테스트를 하는 정황이 포착 되었고, 시험이 완료 되었을 것으로 추정한 바 있다. 1월 11일을 기해 자바 제로데이와 동시에 공격에 사용된 정황은 충격적이다. 자바 제로데이의 경우는 테스트 없이 바로 대량 감염에 직접 이용되는 상황이 관찰 되었다.

< IE 제로데이 및 Java 제로데이 발견과 직접 활용에 관한 히스토리 >

 

지금 한국의 인터넷 상황은 기존의 취약성들에 대한 공격만으로도 60% 가량의 감염 성공률을 보이고 있는 상황에서 ( 악성링크가 자동 실행 되는 주요 웹서비스 방문자중 60% 가량의 감염 성공) , 제로데이들을 직접 활용함으로써 감염 성공률은 거의 90% 이상에 육박할 것으로 예상된다. 예를 들어 동영상을 보거나 파일을 다운로드 받는 곳, 브라우저로 뉴스를 보는 언론사이트 방문자의 10명중 9명은 현재 제로데이의 공격에 직접 노출 되어 있는 상황이 지금이다.

 

이에 빛스캔에서는 1. 11일을 기해 국내 인터넷 환경에 대해 위험성 수준을 매우 위험으로 상향하여 대응을 하고 있다. 일각에서는 아직 제로데이에 대한 공격이 해외에서나 발생 되는 일로 인지하고 있는 것은 매우 개탄스러운 현상으로서 현재 국내의 위험 상황을 제대로 파악하지 못하고 있는 것으로 여겨진다. 이미 두 개의 태풍은 한반도 상공에서 장기체류를 예정하고 있다.

 

설치된 최종 악성파일의 경우에도 1월 11일 최초 유포가 발생 되었음에도 불구하고 시일이 지난 이후에도 여전히 미보고된 악성코드 이거나 일부 백신만 탐지하는 형태를 확인 할 수 있다.

 

< 제로데이 공격을 통해 설치된 최종 악성파일 진단 결과 – 미보고 샘플>

< 제로데이 공격 이후 모든 방문자 PC에 설치되는 최종 악성파일 변종 진단 결과 – 일부 탐지>

 

대책:

 

공격기법을 막을 수 있는 대안도 없으며, 최종으로 사용자 PC를 좀비 PC로 변모케 하는 악성파일의 경우에도 백신제품들에서 제대로 탐지가 안 되는 상황은 왜 지금의 상황이 최악이고 위기의 중심에 서 있는지를 단적으로 대변하고 있다. 일부 탐지의 경우에도 최초 악성파일 유포 이후 3일의 시간이 지난 이후 진단된 결과이며, 미보고 샘플은 1월 11일 최초 유포가 시작 되었음에도 불구하고 여전히 보고된 바 없는 악성파일로 나타나고 있다. 무엇으로 막을 수 있을까?

 

 

현재 대책으로서는 IE 0 day 관련하여 긴급하게 MS에서 전례를 찾기 힘든 긴급 대응 패치를 발표한 상황이다. 보안패치는 IE 6,7,8 사용자 모두에게 해당이 된다. 발표 이후에도 공격이 계속 되는 것으로 보아 정확한 대응여부 검증에 대해서는 시일이 필요할 것으로 예상 된다.

http://technet.microsoft.com/en-us/security/bulletin/ms13-008

 

Oracle의 경우도 Java에 대한 패치를 발표 하였으나 현재 패치의 완전성에 대해서는 검증된 바가 없으며 여전히 공격은 계속 진행 중인 상황이다. 특히 국내는 취약한 웹서비스를 이용한 불특정 다수에 대한 대량 공격이 계속 되고 있어서 세계적으로 피해가 가장 심각한 측에 속할 것이다.

http://www.oracle.com/technetwork/topics/security/cpujan2013-1515902.html

 

IE의 경우 패치의 안정성 여부를 떠나 IE 6,7,8 버전에 대한 전체적인 업그레이드가 요구되고 있으며 Java의 경우 현재 패치의 비정기성도 문제가 있고 업데이트 설치 비율도 낮은 수준으로 판단이 되고 있다. 현재 상태에서도 2012년부터 발견된 자바 취약성과 2013년 신규 발견된 제로데이까지 합쳐진 최소 6 종류의 취약성에 대한 공격이 1월 11일 이후 주중에도 계속 발견 되는 상황에 처해 있다. 따라서 IE는 브라우저의 업데이트가 강력히 요구되며, Java는 미 연방정부의 권고안대로 삭제 및 사용금지가 현재로서는 유일한 대안이라 할 수 있을 것이다.

또한 국내의 위험을 적극적으로 알리기 위해 관찰 단계 상향이 필요하며, 제로데이 공격코드 유포와 관련된 웹 서비스들에 대한 강력한 통제 및 재발방지, 근본 원인 제거가 수반 되어야 할 것이다.

 

현재 상태는 인터넷을 활용하는 기업과 기관 모두에게 강력한 주의가 필요하다. 백신에 탐지 되지 않는 악성코드를 APT라 칭한다면 이미 지난 주말에만 수십만 건 이상의 APT들이 사회 각 분야에 침투한 상황이다. 통로를 제어하지 못하면 이 싸움은 필히 패할 수 밖에 없을 것이다.

 

절대적인 위기의 시기임을 잊지 말아야 할 것이다. 뉴스, 쇼핑, 영화, 방송 등등 모든 분야에서 제로데이가 당신의 방문을 기다리고 있다. 문제는 이제 심각한 상황으로 단숨에 진입한 상황이다.

 

우리는 지금의 순간을 지금껏 겪어 보지 못한 위기의 순간이라 느끼고 있다.

 

 

현재 빛스캔㈜은 국내 120만개의 웹 서비스와 해외 10만 여 개의 웹 서비스를 모니터링하며 악성코드 유포에 이용되는 악성링크를 추적하고 있다. 특히 전세계적으로 공격이 매우 극심한 국내의 상황에서 특화된 기술과 역량을 통해 집중적인 노력을 기울이고 있으며 매주 수요일 한주간의 한국 인터넷 위협현황에 대해 카이스트와 공동으로 정보를 제공 하고 있다. . 또한 국내기업으로는 최초로 해외 정보공유 사이트인 exploit-db 사이트에 KAIST 정보보호대학원과 공동으로 지난해 하반기에만 4종의 취약성 분석 문서를 공개함으로써 세계적인 역량을 인정받고 있다. 정보제공 서비스에 대한 문의는 info@bitscan.co.kr로 하면 된다.

Posted by 바다란

디지털 페스트 II

  • 본 컬럼은 지디넷 게재 컬럼입니다.

 

중세 유럽 인구 감소의 결정적인 원인. 통계에 의하면 전체 유럽 인구의 최대 절반에서 1/4 가량이 페스트의 영향으로 죽은 것으로 발표 되고 있다. 단 5년 만에..

 

< https://coursewikis.fas.harvard.edu/aiu18/Decameron >

 

인간 세상의 페스트와 같은 인터넷상의 악성코드들은 대규모 감염 매개체를 통해 확산을 거듭하고 있는 현재의 상황은 페스트가 종횡무진 활약 하였던 중세유럽과 다를 바가 없다.

피부가 검은색으로 변하는 흑사병이라 불리던 페스트와 지금의 악성코드 이슈는 인터넷상에서 공통점을 가지고 있고 인터넷 생활 비중이 높은 지금의 사회는 직접적인 영향을 받는 상황에 놓여 있다.

 

페스트의 사망률보다 높은 최소 60% 이상의 치사율을 가지는 공격코드가 난무하고 때론 제로데이라도 나올라 치면 그 비율은 상상이상의 비율로 높아진다.  공기를 통해 감염 되는 것이 가장 무섭고 대책이 없듯이, 생활 속에서 무심결에 하는 웹서핑 만으로도 감염이 되는 현재의 상황은 더 나을 것이 하나도 없다. 

 

공격기법은 극기야 자동화된 도구로 인해 사용자의 브라우저와 어플리케이션을 직접 공격하는 형태로 변경이 되고 있다. 사용자 PC를 공격하는 기법은 이제 운영체제를 넘어서 어플리케이션까지도 직접 공격하는 형태로 전환 된지 오래 전이며 지금은 나날이 강력해 지고 있음을 알 수 있다. IE 브라우저와 Flash, Java를 공격대상으로 하는 공격도구들은 단 한 순간이라도 빈틈이 보일 경우 완벽하게 권한을 장악한다. 패치를 다한다 하여도 수시로 출현하는 Zeroday ( 패치가 없는 취약성 공격) 공격코드들은 강력한 영향력을 행사하고 있다. 아래의 이미지는 사용자 PC를 공격하는 자동화된 공격도구의 구조도를 나타내고 있다.

< 자동화된 공격도구가 공격에 이용하는 취약성리스트 ( IE, Java, Flash 버전별 공격코드) >

 

대응은 점진적이고 느리게 진행되고 공격은 급진적으로 기술을 향상시켜 전체에 영향을 미치도록 하고 있다. 어디를 지켜야 하고 무엇을 보호해야 하는 최전선의 개념조차 없는 일선에서 진내사격을 뜻하는 Broken arrow가 난무 할 수 밖에 없는 지금의 상황은 어쩌면 스스로가 초래 했는지도 모를 일이다.

 

오래 전부터 경고한 내용이지만 지금껏 그에 대한 대비나 대처도 방향성 측면에서 변화를 따라가지 못한 면이 있다. 이 링크의 컬럼 조차도 2010년에 작성된 것이며 컬럼내에 언급된 대책은 2008년에 언급된 내용이다. ( http://www.zdnet.co.kr/column/column_view.asp?artice_id=20100307155931 )

 

 

2010년의 디지털페스트 컬럼의 경우 추정을 통해 상당히 높은 수준의 위험이 계속 되고 있음을 알렸으나 2012년 상반기에 수집된 공격자의 로그를 통해 치명적인 공격 성공률에 대한 데이터를 확보 할 수 있었다. 그 결과는 사뭇 충격적인 현실을 나타내고 있다.

 

< 특정일시의 새벽 3시간 동안 국내 사이트 두 곳을 통해 유포된 악성코드 감염 실태>

통계데이터를 살펴보면 다양한 공격 기법들이 사용자 PC에 영향을 미쳤고 최종 결과로는 새벽 3시간 동안이지만 전체 57000명 가량의 순수 방문자들중 3400명 이상의 유니크한 PC의 권한을 장악한 것으로 나타나고 있다. 즉 공격 성공률은 60% 가량 됨을 알 수 있다.

 

기간상이나 감염 비율상으로 볼 때 인터넷상의 페스트라 불릴 수 있는 악성코드의 전파력과 전염력은 이미 중세의 치명적인 페스트를 한참 앞서고 있는 상황이다. 중세의 페스트는 공기로 감염된다 하였으나 지금의 디지털 페스트는 웹서핑 만으로도 감염이 된다. 일상생활에 밀접한 인터넷 어디에도 악성코드는 존재하고 있고 불특정 다수를 향해 수시로 공격코드는 실행이 된다.

 

윈도우 패치를 제때에 하는 사람들은 얼마나 있을 것이며? Java와 Flash의 패치를 매번 확인하여 적용하는 사람들은 얼마나 있을까? 그리고 그 패치들은 얼마나 자주 나왔던가?

 

프로그램의 문제를 없애주는 패치를 적용해도 무용지물인 공격코드들도 난무하는 세상에서 안전한 곳은 어디에도 없다. 지금의 문제는 대량감염이 가능하게 된 것이 가장 큰 문제이고 그 감염의 도구로 이용 되는 곳은 대부분의 웹서비스들이 된다. 그리하여 방문만 하여도 공격코드는 자동으로 사용자 PC로 내려와 실행이 되고 결국 권한을 획득하게 된다. 이후에는 공격자의 의도대로 모든 것이 이루어 지는 상황이다.

 

공격자들은 현명하게도 과시보다는 이득을 택했으며 그 결과 웹페이지의 화면을 바꾸거나 하는 짓들은 하지 않는다. 웹서비스의 모든 권한을 가지고 있으면서도 단지 한 줄의 소스를 변경 하거나 추가 할 뿐이다. 그 결과는 해당 웹서비스를 방문하는 모든 사용자들에게 공격코드의 실행으로 돌아간다. 10명중 6명이 감염이 되고 새로운 공격기법이라도 추가 되는 날에는 당장 90% 가량이 직접적인 영향을 받을 수 밖에 없는 현재의 위험은 상상 이상의 위협이 현실화된 것을 보여주고 있다.

 

경험으로부터 배우지 못하고 애써 외면하며 등 돌린 결과는 부메랑이 되어 겁 없이 세상을 지배하고 있다.

페스트라는 용어 이외에 더 적절한 의미를 찾을 수는 없는 상황이 지금의 상황이다. 악성코드는 지금 이 순간에도 너무 가까운 곳에 존재한다. 마치 공기처럼!

 

 

하나의 새로운 취약성을 발견하거나 공격기법이 발견되면 이젠 눈 깜짝할 사이에 전체가 영향을 받는 구조를 공격자들은 만들고 선보이고 있다. 모든 것이 네트워크로 구축되어 조종이 되는 BotNet 처럼 악성코드를 유포하는 네트워크 체계를 MalwareNet이라 할 수 있다. MalwareNet의 심각성과 전략에 대해서 알아보면 다음과 같다.

< 공격 전략의 도식화>

 

여러 악성링크를 사전에 만들어 두고 취약성이 있는 다수의 서비스나 광고를 이용하는 언론사 등등에 침입을 한다. 침입 이후에는 웹 소스를 변경하여 화면상으로는 아무런 징후를 느낄 수 없으나 자동실행이 되어 사용자의 브라우저를 통해 직접 공격을 하도록 만들어 둔다. 일반적인 예로 다음과 같이 변경을 하는 사례들이 많이 발견 된다.

< 공용 함수 역할을 하는 Js 파일 내에 사용자가 인지 할 수 없는 사이즈의 링크를 추가하여 실행>

 

Js 파일의 경우 웹서비스 방문 시에 자동으로 사용자 PC로 불려지며 사용자의 브라우저상에서 서비스의 기능들을 수행하도록 만들어 주는 역할을 한다. 아주 쉽게 웹페이지에서 주민번호 입력을 체크하거나 전화번호를 체크하여 잘못된 숫자나 범위가 입력 되는 것을 검토하고 방지하도록 하는 기능들도 대부분 공용 JS 파일에 넣어두고 활용 한다. 사용자가 회원가입을 위해 서비스를 방문하는 순간 숫자의 범위나 입력 값을 체크하는 기능들도 기본적으로 사용자 PC에 내려진 상태에서 실행이 됨을 말한다. 그 상태에서 위의 코드가 실행이 된다는 것은 악성링크를 사용자 PC로 불러와서 실행 하라는 것과 동일한 의미가 된다.

 

A라는 웹서비스에 악성링크가 들어 있다면 방문하는 모든 사용자들은 그 내부의 악성링크를 찾아서 클릭하지 않더라도 자동으로 실행이 되고 영향권 내에 들어가 있는 상태라 할 수 있다.

 

만약 A라는 웹서비스 이외에도 수없이 많은 웹서비스에 동일한 악성링크를 넣어둔다면? 그리고 공격자는 위의 이미지처럼 S.asp 라는 악성링크의 내용만 변경 한다면 어떻게 될까? .. 순식간에 수십에서 수백여 개 이상의 웹서비스들은 또 다른 형태의 악성코드들을 즉시 전송하는 새로운 패러다임이 형성된다. 디지털 페스트라고 부를 수 있는 강력한 영향력은 여기에서부터 출발이 된다고 할 수 있다.

 

일반적으로 바이러스나 공격이라고 하는 것들은 기존의 관념대로라면 이메일을 통해서 바이러스를 받거나 이상한 프로그램을 다운 받아서 설치할 경우에 발생하는 것이라고 지난 오랜 시간 동안 알려져 왔었다. 그러나 그 시기에도 대규모 유포 시도들은 산발적으로 계속 되어 왔으며, 지금에 이르러서는 네트워크를 구성한 다단계 유포 형태로 고착화 된 상황이라 할 수 있다.

 

 

 

사실상 전 국민의 PC에 대해 동시에 각 어플리케이션과 운영체제에 대해서 패치를 한다는 것은 불가능하다. 현재 공격자들의 전술상으로 살펴 볼 때 대규모 유포에 이용 되는 악성링크를 빠르게 발견하고 선제적으로 차단하여 감염이 확산 되지 않도록 하는 것이 최선이라 할 수 있을 것이다.

 

1. 공격 링크의 조기 발견 및 피해 범위 최소화

2. 근본적인 문제 원인이 되고 있는 취약한 웹 서비스들의 주기적 관리 체계 및 보호 방안

3. 보안이라고 하는 것은 이제 일상 생활에 직접적인 영향을 미치므로 전체적인 지식 강화

 

단계별로 1,2,3 단계로 나누어서 진행이 되어야 하며 가장 급한 것은 피해 범위의 최소화가 될 것이다. 2008년에 제시한 해결책은 여전히 유효하다. 그리고 아직도 상황은 그대로이다. 전자 상거래의 기반이 되는 공인인증서 부분에서도 인증 관련 서비스에서 조차도 악성코드 유포가 발생 되는 지금의 현실은 공포감을 넘어선 심각한 상황이라 할 것이다.

 

상대를 알아야 이길 수 있고 최소한의 통제력은 지니고 있어야만 조절이 가능하다. 그러나 지금의 상태는 그 어느 것도 하지 못한 상태이다. 디지털 페스트는 날이 갈수록 더 강력해 지고 있다. 지금 이 순간에도..

 

www.facebook.com/bitscan 에 더 많은 한국 인터넷 위협에 대한 자료와 설명들이 공개 되어 있습니다.

Posted by 바다란

* 전자신문의 보안전문 저널인 boan.com 에 기고된 컬럼 글입니다.

 현재의 Stuxnet 에 대한 대응이나 SCADA 부분에 대한 논의들이 논점이 빗나가는 부분들이 많아서 향후 필요한 부분들에 대한 대책과 문제점을 짚어 봤습니다. 표현이 정제되지 않은 Raw 컬럼을 사이트에 게재 합니다. 여기는 링크들이 정상적으로 살아 있습니다.

===============================================================================


Stuxnet이 주는 충격은 실생활이 직접적으로 영향을 받을 것이라는 점에서 많은 사람들에게 각인이 되고 있다. 또한 앞으로 기반시설에 대한 보안 이슈와 관심도 그 어느 때 보다 높아 질 것으로 예상 된다. 세계적으로 이슈가 되고 있는 Stuxnet은 일반적인 보안업체에서도 향후의 방향성에 대해서 한번쯤 고민을 해야 될 이슈를 던져 주고 있다. 기존과는 다른 접근이 필요한 분야라는 점도 인식을 해야 할 것이다.

 

현상으로 돌아가면 시만텍의 Stuxnet에 대해 한국내 감염 수치가 8% 이상일 것이라는 점은 사실이다. 더불어 시만텍의 CTO 슈나이더의 통계수치도 사실이다. 실제 감염된 것은 맞지만 기사내의 정부 당국자의 이야기가 분명한 사실을 이야기 한다. 감염된 것은 맞지만 실제 기반시설 장비에는 감염이 안되었다는 것이 정확한 이야기이고 사실에 가까운 것이라 할 수 있다.

 

Stuxnet은 기반시설 장비에만 감염되는 것이 아니다. 기본적인 윈도우 취약성을 이용하여 전파가 되고 USB를 통한 전파도 일반적이기에 시만텍에서 이야기한 감염수치 부분은 단순 PC 감염으로 봐야 한다. 즉 해외에서 언급된 통계치의 대부분은 실제의 위험과는 약간 괴리감이 있는 수치일 가능성이 높다. Stuxnet은 분명 위험한 웜이고 타켓화된 웜인 것은 명확하다. 큰 피해를 입힐 가능성이 매우 높음을 증명한 실질적인 위협이며 사이버상의 위험이 더 이상 현실과 괴리가 있는 동떨어진 이야기가 아님을 실제적으로 증빙한다. 그렇다면 비록 허수라 하더라고 감염 수치를 무시 할 수 있는가? 라는 질문을 할 수 있다.

 

현재 정확한 감염 수치는 그 어디에서도 얻을 수 없다. 모든 탐지 사례를 허수라고 가정한다 하여도 찾아내지 못한 곳 중 하나라도 웜이 기반시설망에 존재하는 순간 아수라장이 될 수 밖에 없다. 그것은 폐쇄망의 특징에 기인하기도 하고 대응의 어려움에 기인하기도 한다. 기존의 온라인 상에서의 대응과는 상당부분 다른 관점으로 보아야만 한다.

기반시설을 위협하는 Stuxnet의 위험성은 실제 기반시설 운영 시스템에 직접 영향을 미칠 수 있고 조정이 가능하다는 점에서 웜 자체가 가지는 심각성과 의미는 높다. 그렇다면 향후에 기반시설 장비를 보호하기 위해 무엇을 어떻게 해야 하는지에 대해서도 상당수준의 경각심을 가지고 준비를 해야만 한다.

현재의 감염수치는 온라인상에서 수집된 데이터들이 대부분이라 폐쇄망을 기본으로 하는 SCADA 시설에서는 신뢰도가 떨어질 수 밖에 없을 것이다. 그러나 목표의 중요성으로 볼 때 향후 더 치밀하고 은밀한 방식으로의 접근과 공격이 증가 할 것임은 당연한 사실이다.

 

2002년 즈음에 기반시설의 보안에 관련된 문서를 작성한 적이 있다. 그 문서에는 전문가와 비전문가를 막론하고 항상 오해를 하는 세가지 주요 부분을 정리한 바가 있다. 그 세가지는 다음과 같다.

 

 

1.      제어시스템은 물리적으로 분리된 독자적 네트워크 상에 존재한다

 

일반적으로 분리된 독자적 네트워크 상에 존재하는 것은 사실이다그러나 아주 적게나마 원격에서 접속이 가능한 지점이 존재하고 기업정보시스템과의 연동의 필요성으로 인해 통합된 지점이 거의 존재한다.

 

2.      SCADA시스템과 기업정보 시스템과의 연결에는 강한 접근제어 정책으로 보호되고 있다.

 

대부분의 경우에 SCADA시스템은 방화벽과 보호장치가 이중으로 되어 있는 구조 이나 정보시스템으로부터 혹은 외부로부터 접속이 가능한 몇몇 개의 접속지점이 반드시 존재한다.중대사고 발생시의 Hot line 혹은 외부에서 연결을 통한 연결지점, 정보시스템에서 

정보의 활용을 위해 제어시스템과 연결이 되는 부분이 반드시 존재한다.

 

3.      SCADA 시스템을 운용하기 위해서는 특별한 지식이 필요하며 침입자가 접근하고 제어하기가 어렵게 만든다.

 

SCADA 시스템의 운영에 사용하는 소프트웨어나 제어장치에 대한 매뉴얼은 이미 전체의70프로 이상이 인터넷 상에 공개가 되어 있다.  그러므로 이전과 같이 정보가 없어서 지식을 획득하지 못하는 일은 없다.  SCADA시스템을 제작하는 회사는 사후지원과 Update등을 위해 인터넷을 통해 다운로드 받는 형태로 매뉴얼을 제공하는데 이를 통해 충분한 지식의 습득이 가능하다.

 

 발췌 Critical Alert for Cyber Terror-p4ssion 2002

 

2002년에 작성한 항목이나 현재도 인식에 관해서는 별반 다르지 않다. 각 항목별로 현재의 Stuxnet 사례는 좋은 예시가 될 수 있다.  기반시설은 물리적으로 분리된 망에 존재하며 정보시스템과의 연결에는 엄격한 통제가 있고 방안들이 있어서 접근이 불가능하다. 또한 장비의 운영에는 특별한 지식이 필요해서 침입자가 접근하고 제어 하기가 어렵다.”라는 일반적인 인식들은 지금의 Stuxnet을 살펴보면 해당사항이 없음을 알 수 있다.

 

비단 지멘스 장비에만 국한된 문제일까?

지멘스사의 솔루션 이외에도 몇몇 대형벤더(이를테면 GE) 들의 전 세계적인 SCADA 장비 점유율이 높은 상태여서 공격자 입장에서는 좀 더 쉽게 공용적인 공격기반을 만들 수 있다. 이번 Stuxnet은 지멘스 장비를 대상으로 하였지만 앞으로는 보다 더 타켓화 되고 일반화된 형태의 공격들이 일상적으로 발생이 될 것이다. 가능성에 대해서만 인지를 한 국가들 조차도 기반시설 장비가 위험해졌을 때의 파괴력과 영향력에 대해서 확실하게 인식을 하였을 것이고 사이버 전장의 영역은 이제 기반시설 장비까지도 직접적으로 노릴 것이다. 아마 오래 전부터 해왔던 많은 행위들이 이번에 노출되었다고 보는 것이 정확하지 않을까?  폐쇄망 내부의 감염을 위해 작성한 감염코드가 일반 인터넷 영역에 우연히 노출 되면서 확산이 되고 알려지지 않았을까? 그 모든 가정을 한다 하여도 이제는 실제의 영역에 들어온 부분이다. 이미 예전부터 준비가 되어 있어야 하지만 지금의 상태는 어떠하고 또 대응책은 적절한지, 알려지지 않은 위협들에 대해 충분히 인지 하고 있었는지가 향후를 가늠할 핵심이 될 수 밖에 없다.

 

SCADA 장비에 대한 위험들은 수면 아래에서 Stuxnet을 통해 수면위로 떠올랐다. 이제 우리는 실존 하는 위협을 마주하고 있다. 실존하는 위협에 대해 대응하고자 한다면 우선 현황을 이해해야 한다. 현실에 대한 이해를 바탕으로 현실적인 대책들이 수립되어야 한다.

 

SCADA 장비가 운용되는 곳들의 일반적인 특징

 

1.     폐쇄망

일반적인 네트워크 라인과 분리가 되어 있으나 내부에서의 통신을 위한 제한적인 라인들은 장비들끼리 연결 되어 있을 것이다. 또 통제시스템도 마찬가지로 연결 되어 있을 것이다. 폐쇄망이라는 의미는 인터넷 연결이 되어 있지 않다는 의미 일뿐이며 독자적인 설비 상태로 존재하는 것이라는 것을 이해하자.

2.     중단 없는 운영

기반시설에 운영되는 장비는 대부분 24시간 365일 운영을 원칙으로 할 수 밖에 없다. 발전시설과 전력, 교통등 다양한 기반 분야에 활용되는 장비들의 특성은 항상 작동 되고 있어야 한다는 의미이다.

3.     독자적인 프로토콜 사용 및 목적에 맞게 변형된 장비나 운영체제의 사용

SCADA 장비에는 복잡하지는 않으나 독자적인 프로토콜이 사용된다. 다만 이 프로토콜의 사용법과 활용도에서는 인터넷에 일정수준 공개되어 있으며 장비를 직접 제어하는 PLC 명령코드는 그리 어렵지 않다. 목적에 맞도록 운영체제도 일정수준의 기능을 제거하거나 용도에 맞도록 변형된 임베디드 운영체제가 사용되고 장비도 독자적인 변형을 가진 장비 형태가 사용된다.

 

 

크게 위의 세가지 사항을 일반적인 특징으로 볼 수 있다. 특징을 고려하지 않은 대응과 대비책은 많은 문제를 가질 수 밖에 없으며 현실적인 적용이 어려울 수 밖에 없다. 현재 SCADA 보안과 관련된 부분은 정책적인 부분과 정기적인 외부 노출 부분에 대한 부분적인 보안점검으로 이루어 지고 있는 것이 현실이며 임베디드 운영체제를 사용하는 SCADA 장비에는 별도의 보안솔루션 설치가 어려운 부분들이 많이 있다. 따라서 직접적인 대응은 많은 난관을 가지고 있다.

 

Stuxnet의 처리와 관련하여 각 백신제조 회사들 마다 온라인에서의 제거용 전용백신을 올리고 있으며 설치하여 탐지 및 제거 할 것을 권고한다. 또 운영체제에 대한 보안 패치를 적용 할 것을 대부분 권고하고 있다. 실상과 거리가 있다고 볼 수 밖에 없다. 폐쇄망에 있는 장비에 적용 하기 위해서는 온라인과 연결된 망에서 USB나 별도 이동식 매체를 이용해 백신과 보안업데이트를 다운 받은 이후 폐쇄망 내의 개별 시스템에 연결하여 문제를 처리해야 된다. 이 과정에서 더 많은 문제들이 확산될 가능성도 충분히 있다.

 

폐쇄망이라는 의미는 내부의 별도 네트워크를 가지고 있으며 외부 연결과는 차단된 상태를 의미한다. 즉 내부로 어떤 방식으로든 유입이 되었을 경우 물리적 단절을 통해 근본적인 보안이 해결된다는 폐쇄망 내에서는 무방비 상태일 수 밖에 없다. 무방비 상태라는 것은 웜의 확산과 전파를 막을 수 있는 단계나 도구가 많지 않음을 의미한다. 또한 탐지와 관련된 측면에서도 비정상적인 시스템 운영을 하게하는 악의적인 명령과 또 폐쇄망내에서의 웜의 확산을 막거나 탐지하기 위한 보안장비의 설치도 현실적인 어려움이 있다. 프로토콜 체제가 다르고 또 새로운 유형의 위험을 탐지 하기 에는 기존의 PC 체계에서의 대응 도구들로서는 한계가 있다.

 

운영체제의 업데이트와 중요 보안 설정과 관련된 부분들은 중단 없는 운영이라는 SCADA 장비의 기본 전제에 비추어 볼 때 설치가 어려운 부분이 있다. 대부분의 업데이트와 보안설정은 활성화를 시키기 위해서는 리부팅이 필수이기 때문이다. 따라서 현재 운영중인 기반시설 장비들에 대해서는 직접적인 대응이 어렵다. Stuxnet의 경우에도 시스템의 중요 DLL을 설치하는 방식이므로 완벽한 제거를 위해서는 메모리에 올려진 DLL까지 제거해야 가능하다. 메모리 클린은 당연히 리부팅을 통해서만 가능해진다. 대체장비를 투입한 이후에야 제거나 보안성 강화등이 가능한 형태가 된다.

 

독자적인 운영체제의 변경과 별도 장비의 사용도 만약 보안설정과 시스템의 업데이트를 할 경우 정상운영이 어려운 상황이 발생 될 수 있다. 장비의 정상적인 운영을 위해서는 SCADA장비 제작사와의 긴밀한 협력을 통해 각 상황에 따른 정상 작동 여부를 오랜 기간 관찰 해야만 안정성을 확보 할 수 있다.

 

지금의 SCADA장비에 대한 대응은 현실과는 동떨어져 있으며 주의 사항과 문제 부분에 대해 신중한 접근이 부족하며 단순한 온라인 상에서의 PC의 악성코드 처리와 동일한 관점으로 접근을 하고 있다. 현실적인 상황 인식이 부족한 부분이다.

 

그렇다면 SCADA 장비에 대한 보안 강화와 향후에 급증 할 것으로 예상되는 기반시설 장비들에 대한 공격에 대해 어떤 식으로 대처를 해야 근본적인 위험을 줄일 수 있을 것인가에 대해 생각해 보자.

 

폐쇄망의 특성과 임베디드 운영체제, 기존의 PC와는 상이한 프로토콜 및 운영원칙은 기본적인 보호 대책을 다른 관점에서 살펴야 된다.

 

일차적으로는 시스템 자체의 변화를 감지 할 수 있는 수동적인 탐지 도구가 필요하며 각 중요 시스템마다 상황을 일목요연하게 파악 할 수 있는 체계도 필요하다. 수동적인 탐지 도구라는 의미는 시스템의 상태변화 (DLL 혹은 중요 시스템 파일의 교체, 비정상적인 사용자 및 권한의 탈취, 명령실행 등)를 모니터링 하고 이상유무를 상시적으로 체크할 수 있는 시스템을 의미한다. 기존의 PC기반의 악성코드 탐지와 같은 패턴매칭으로 대응 하는 것은 어려움이 있다. 또한 폐쇄망 네트워크내에서 어느 지점이나 문제를 통해 문제가 확산되는지 여부를 확인 하는 것도 어려움이 있다. 이미 2003년의 1.25 대란때의 슬래머 웜에 의해 미국의 오하이오 핵발전소가 정지된 사례도 충분히 있는 만큼 물리적인 단절 만으로 대책이 완료 되었다는 생각은 잊어 버릴 때가 되었다. 어떤 경로를 통해서든 침입이 성공하게 되면 치명적인 위험이 존재하게 되고 또 자체적인 전파가 가능한 유형이라 폐쇄망 내부에서의 확산도 손쉽게 이루어 질 수 있다.  기반시설 시스템의 보호를 위해서는 통신을 위한 가장 제한적인 프로토콜과 연결만이 허용 되어야 하고 그 기반 하에서 시스템의 변화를 감지 할 수 있는 수동적인 탐지 도구 및 전체적인 현황을 볼 수 있는 시스템과 체계가 필수적으로 요구된다.

 

향후의 사이버전은 온.오프라인을 망라하게 되고 일상생활에도 치명적인 영향을 줄 수 있다. 오래전 예상한대로 그 위험은 이제 실제상황이 되어 버렸다. 일이 발생 되기 이전에 문제에 대해서 대비 하는 것이 필요하며 문제가 발생 되었을 때는 차분하게 향후의 위험들 까지도 고려하여 대비책을 세우는 것이 정답이다. 단순한 현황 파악만으로는 위험한 상황은 지속 될 것이다.

 

이 모든 것은 이미 오래 전부터 예상 되었던 바이다. 이제는 수면위로 올려진 문제를 적극적으로 또 장기적으로 보호 할 수 있는 방안에 대해서 심도 있게 고민을 해야 할 시기이다.

 

-바다란 세상 가장 낮은 곳의 또 다른 이름

 

참고자료:

 2009년에 작성한 문서. Inevitable cyber warfare

 2002년에 작성한 Critical alert for cyber terror

다이하드 4.0 cyber terror 

 


ps> 두 가지 정도 빠른 시일내에 작성할 내용들이 있습니다. 2010년의 이슈중 미래에 영향을 미칠 이슈들과 중국발 해킹의 심각성을 좀 리얼하게 보여줄 컬럼들을 준비 중입니다.





Posted by 바다란

2009년 4월에 기고한 Facebook과 Twitter의 문제점 들입니다. 그때 당시만 해도 국내에서는 아직 인지도가 떨어질 때였고 사건 사고의 심각성도 모를때 였습니다만 이제는 사용 하시는 많은 분들이 아실 것 같습니다. 이 문제들도 한번쯤 읽어 보시기 바랍니다.

 

Small world Security (Koobface, Mikeyy )  - zdnet 컬럼 바다란.

 

Internet Security의 변화는 지금의 시대에 이르러 완연하게 전환점에 도달해 있다.

기술의 발전과 도구의 개념에서 필수적인 매체로 전환됨에 따라 더욱 밀접하게 사회와 그리고 개개의 인간과 연관성을 지니고 있다. 더불어 취약성과 공격이라는 관점도 변화를 역력하게 보여주고 있다.

 

Internet이라는 개념은 이제 생활의 도구에서 필수적인 요소로 완전하게 자리매김을 하고 있는 상황이며 그 중에서도 Social Network Service 영역은 국내는 물론 전 세계적으로 가장 큰 흐름을 보이고 있는 부분이다.

 

Small World Theory는 케빈베이컨의 6단계를 의미한다. 사람과 사람 사이의 관계에서는 6단계만 거쳤을 때 모르는 사람이 없다는 내용이며 Small world라는 개념으로 이야기 하기도 한다. 마케팅 및 Social Network Service 영역의 기본 바탕이 되는 개념이고 국내의 많은 사이트들과 세계적인 흥행을 하고 있는 여러 서비스들의 기본적인 이해와 연관이 있다. Small World Security는 어떤 관련이 있을까? 관계로 맺어진 Service Network는 과연 안전한가 하는 질문과 함께 가볍게 시작한다.

 

Twitter(www.twitter.com) Facebook(www.facebook.com) 유형의 서비스는 전 세계적인 반향을 얻고 있는 서비스라 할 수 있다.  공격은 항상 가장 많은 반응을 얻을 수 있는 부분에 집중이 된다. 4월에 외신에서 언급된 두 SNS 사이트에서 발생된 이슈들은 한번쯤 심각하게 언급이 되어야만 하는 이슈이다.

 

그럼 어떤 일들이 있었을까?  드러난 사실만을 가지고 분석과 유추를 해본다.

 

먼저 Koobface Facebook에서 발생된 Malware를 의미하고 이 악성코드는 지독하게도 Facebook과 유저를 괴롭혀왔다.  단순하게 Facebook이 지닌 구조를 이용하여 Friend List등에 악성코드를 설치하는 링크를 가진 여러 유형의 메시지를 전달한다.  당연히 무작위적인 스팸보다는 성공률이 높다. 악성코드를 설치하는 링크를 순수하게 Facebook Friend List 구조 (쉽게는 국내의 SNS 1촌관계를 의미)를 이용하여 메시지를 전달함으로 인해 성공률이 높아진 것이다. 또한 다운로드의 경우는 Adobe Flash를 가장하여 설치를 하도록 유도함으로써 악성코드 설치 성공률을 대폭 늘린 케이스다.

3월에 이르러 Facebook은 다른 대응 방안을 모색한다. Koobface라 이름 붙여진 웜의 경우는 다운로드를 통해 사용자의 PC에 설치가 되며 사용자의 정보유출은 물론 Botnet을 구성하는 하나의 좀비 PC로도 활용이 가능한 유형이였고 전파 유형도 구조를 이용하여 지속적인 스팸과 메시지를 보냄으로 인해 기업의 비용도 높아 졌을 것이다. 확산의 속도도 굉장히 빨랐을 것은 명확하다. 개별 소스코드의 수정을 통해서는 이미 설치된 웜에 대해서 대응 하기가 어렵고 Friend List를 이용하는 방안을 수정한다 하여도 공개된 부분인 만큼 분석을 통해 새로운 변형들이 지속적으로 출현 할 수 밖에 없는 상황이였을 것이다.

 

<koobface 웜을 설치하는 다운로드 경로를 지닌 메시지 >

 

구조를 이용한 확산과 신뢰관계를 기반한 악성코드의 확산은 대규모 Botnet의 구성과 정보의 유출이라는 상황에 직면 할 수 밖에 없게된 Facebook은 최근 몇년간 활발하게 Anti Virus 영역에 진출하고 있는 Microsoft와 협력하여 악성코드에 대한 대응을 시도하게 된다. 그 결과는 2주 동안 20만회의 Koobface웜 설치 시도를 133600 여대의 PC에서 탐지하고 제거하게 된다. ( ref: http://news.cnet.com/8301-1009_3-10210376-83.html ) 또한 탐지된 변형만도 100여 종에 이르고 있어서 추가적인 내용은 더 크게 나타날 것으로 보인다.

 

 

속임수라 부를 수 있는 사회적 공학기법 (Adobe Flash 설치로 위장한 점과 흥미를 유발하는 메시지 관점)과 관계를 이용한 설치 경로 제공은 특정 서비스에 국한될 수 밖에 없는 문제를 가지고 있지만 대규모 사용자를 가지고 있는 서비스의 경우에는 특정 서비스에 국한 되더라도 충분한 효과를 가지고 있음을 보이는 것이다.

 

서비스와 연관된 공격은 사실 이 경우가 처음은 아니며 구글에서 운영하는 Orkut의 경우에도 이미 관련된 사례가 존재하고 있다.

(http://blog.naver.com/p4ssion/50026431192 )

 

Koobface 이슈를 보며 이제는 서비스에 국한된 웜이나 악성코드의 경우에도 전역적인 대응이 가능한 매개체 ( Anti virus 업체도 매개체 중의 하나이다.)를 이용하여 대응을 해야 할 정도로 난이도가 있고 서비스업체 자체적으로 처리 하기에는 어려움이 많아짐을 보이고 있다.

 

Mikeyy” 라는 이름은 Michael Moony라는 17세 소년의 애칭으로 볼 수 있다. 이 이름은 최근 몇 주간을 Micro Blogging 서비스로 유명한 Twitter 4월을 시끄럽게 만들었다.

Twitter( Micro Blogging 서비스)를 시끄럽게 했던 이슈는 XSS ( Cross site scripting ) 취약성을 이용한 Application Worm 이라 할 수 있다.

( ref: http://blogs.zdnet.com/security/?p=3125  )

17세 소년은 Twitter에게 문제를 해결 할 수 있도록 제안하는 어떤 통로도 발견 할 수 없었고 문제에 대한 의견을 받은 적이 없어서 어쩔 수 없이 이런 행위를 할 수 밖에 없다는 정당성을 주장하기도 하였지만 피해를 입힌 것은 분명하여 어려움이 있을 것으로 예상 하였다. 그러나 전체적으로 악의성은 적으며 취약성을 알리고자 한 목적이 주된 목적이라는 것이 어느 정도 감안이 되는 방향으로 인식이 되는 것으로 보인다. 문제 해결에 대한 반응이 없을 때마다 추가적인 공격을 시도하고 그 이후 일정수준에서 종료를 하는 방식으로 ( 종료는 중간에 반드시 참고를 하도록 되어 있는 링크를 제거하는 형태로 이루어졌다. ) 이슈화를 시켜 반응을 이끌어낸 점은 분명히 있다.

 

4.17일에 추가된 소식은 4~5가지의 변형을 이용한 XSS 취약성 공격을 직접 보고 능력을 인정한 ExqSoft라는 이름의 Web application 개발 회사에서 Security 담당으로 채용을 했다는 것으로 전해진다.

 

문제의 이슈는 관계형 네트워크 서비스의 장점을 이용하여 악성코드도 충분히 심각한 피해를 입힐 수 있다는 점이고 공격자가 사용한 XSS 공격코드가 만약 악성코드를 다운로드 하거나 설치하는 유형 이라면 심각한 피해를 일으킬 수 있었음을 의미하기도 한다.

 

공격의 출발은 아주 작은 부분에서부터 시작하여 급격하게 확산하는 과정을 거치는 것이 Service Application을 공격하는 유형이다. Twitter worm의 시작은 초기 4개의 계정에서 출발한 것으로 알려진다.  4개의 계정도 공격자가 생성한 계정이며 이 계정에는 외부 링크를 포함하고 있던 것으로 확인된다. 새로 개설한 계정정보를 확인하는 다른 사용자들에게 자동으로 감염을 시키며 외부 링크에 존재하는 스크립트 파일은 또 다시 감염된 사용자의 Twitter 계정정보를 이용하여 profile을 변조하고 사용자의 전체 Friend list에 대해 스팸유형의 메시지를 대량으로 발송하는 것을 반복하도록 코딩이 되어 있다.

 

이 중에는 아래와 같은 특정 사이트 링크로 사용자의 Profile을 변경한 유형을 직접 살펴 볼 수 있다. 아마 1주일만 있었어도 전체 Twitter 사용자의 상당수가 피해를 입었을 것으로 볼 수가 있다. 더불어 악의적인 행위를 하고 악성코드의 전파를 위한 방식을 좀 더 koobface와 같이 교묘하게 하였다면 더 심각한 피해는 불을 보듯 뻔한 사례이다.

 

 

< Twitter worm 에서 변조한 Twitter 사용자의 Profile>

 

이미 2007년의 Myspace웜의 경우에도 발생 하였고 Google의 서비스에서도 발생하였으며 Yahoo, AOL 등과 같은 연관 관계가 있는 서비스 및 Social Network Service를 주력으로 삼고 있는 서비스 기업에는 모두가 수 차례씩 경험이 있을 것이다. Twitter에서 발생한 이슈의 경우는 심각하게 변화하기 이전에 이슈화만을 목적으로 진행한 것이며 개인 PC 및 여러 서비스 부분에 매우 심각한 영향은 존재하지 않았으나 위험성은 충분히 확인된다.

 

 

Small world는 인간 세상의 온라인화를 명확하게 보여주고 있다. 인간의 관계의 측면은 서비스의 프로그래밍적인 구성으로 연결이 되고 있고 이와 같은 구조는 그리 어렵지 않게 파악이 가능하다. Web을 이용한 구성은 접근성의 확대와 서비스의 세계화에 기여하지만 그 구성의 기본을 파악하는 것과 구조를 이해하는 것은 어렵지 않다.

공격자들의 기본은 항상 적은 노력으로 많은 효과를 얻는 곳을 중점적으로 노린다. 운영체제에 대한 일방적인 Worm 유형으로 공격을 하였다면 이제는 보다 더 대상을 구체화 하고 확산효과를 확실히 볼 수 있는 SNS 와 같은 유형으로도 손쉽게 확대된다.

 

최종적으로 올해 4월에 발생된 두 가지 정도의 이슈에서 살펴봐야 할 점은 몇 가지 정도가 존재한다..

 

-      Application에 대한 공격은 개별 Application에 대한 공격을 넘어서 특정 사이트에서 구성하고 있는 논리적인 구조에 대한 공격도 이제는 일반적인 유형이며 대응을 위해 Anti Virus 솔루션까지도 동원을 하여야만 가능한 범주에 들어섰다는 점이다.  이 점은 Facebook에서 발생된 악성코드 전파 유형이 Facebook 자체의 Web Application Logic을 이용하여 전파되고 확산되는 유형을 가지고 있으며 더불어 시스템에 피해를 끼치는 유형까지도 동시에 확산이 되었다는 점이다.  즉 확산속도는 Small world Theory에 걸맞게 급속 확산이 되고 더불어 개인PC를 완벽히 제어하는 악성코드까지 설치 됨으로 인해 피해는 심각한 상황이 된다.

 

-      특정 기업이나 서비스에 특화된 확산 방식을 보임으로 인해 지금까지 출현한 형태 보다 난이도 및 피해가 심각한 유형이 발생될 경우 특정 서비스의 몰락을 매우 손쉽게 가져 올 수 있다는 점이다. 기업측면에서는 서비스에 특화된 보호대책을 반드시 강구해야만 하고 초기 단계에 발견과 대응이 가능한 구조적인 조직과 인력을 유지해야만 한다는 점이다. 새로운 부담으로 다가올 수 있다.

 

-      현재 보다는 악성코드의 결합유형을 보았을 때 향후에는 여러 서비스를 동시에 공격하고 전파하는 Application 차원의 Fusion Worm도 멀지 않아 확인이 가능할 것으로 보인다.

 

 

생소한 내용으로 보일 수 있지만 피해는 개인 사용자에게 직접적으로 다가온다는 점이며 개인 사용자의 관점은 국내와 국외를 가리지 않는다. 국내 서비스에 대한 공격도 만약 이득을 취할 수 있다면 언제든 발생이 가능한 부분이다. 메신저를 이용한 메시지나 악성코드 설치 유형도 동일 관점에서 볼 수 있다. 다만 Web Application의 논리적 구조를 이용한 공격의 경우는 개인 PC외에도 Web Service 상에서도 살아서 그대로 존재하고 있어서 계속 되는 것이 다를 뿐이고 개인 PC 차원의 대응 외에도 서비스 기업 자체의 대응도 있어야만 해결이 된다. 문제의 해결을 위해서는 좀 더 체계적이고 협력적인 관계가 요구 될 수 밖에 없다.

 

국내의 현실은 본 글에서 언급한 Application Attack에 대한 관점보다 더 심각한 상황이지만 어디에서도 언급을 하지 않는다. 아니 전체 인터넷 서비스에 대해 논의가 되지 않는다. 경쟁력과 가능성을 지니고 있음에도 불구하고 애써 외면 당하는 현실이 안타깝기만 하다. Security라는 관점에서 현재의 문제점을 한번쯤 고민 해야만 할 것이다.

 

무형의 가치가 더 중요한 의미를 지니고 있는 시대에 유형의 가치만을 보려고 하는자 얼마나 어리석은가!

 

Internet은 넓으면서도 얼마나 작은 세상 이던가!

 

바다란 세상 가장 낮은 곳의 또 다른 이름 ( http://p4ssion.pe.kr )

 

   

Posted by 바다란

10가지 어리석은 실수들-2

 - 바다란, zdnet 보안컬럼니스트

 

전편에는 시스템 및 네트워크 부분에서 빈번하게 발생 되는 케이스들을 살펴 보았다. 10여 년의 기간 동안 일선에서 침해사고를 담당하고 보안구성에 대한 업무를 진행하면서 상당수의 침해사고 발생 이후의 확산에 가장 큰 영향을 끼친 부분으로 보고 있다. 이번 컬럼의 내용은 2005년 이후 현재까지 진행중인 대부분의 침해사고에 해당되는 Application에 관련된 부분이다.

네트워크 관리자가 아닌 IT 관리자라 칭한 이유도 범위를 한정하여 발생 되는 부분이 아니며 전체의 관점에서 바라보아야 할 이슈이다.

 

Application에 관련된 보안 부분은 2000년대 이후 장대하고 중요한 흐름을 보이고 있다. 인터넷의 발달과 생활의 밀접화는 주변의 많은 것들을 변화 시켰고 생활에 밀접한 많은 것들을 인터넷 연결이 가능한 많은 부분들로 변하게 하고 있다.

Web 2.0 이라는 용어 자체도 생활에 밀접한 사용자친화형, 생활형을 가진 인터넷상의 삶과 동일하게 볼 수 있다. Web 2.0의 발달이 의미 하는 것은 사용자와 더 친밀하고 생활에 더 밀접한 요소들이 인터넷과 연결 되어져 있음을 의미한다.

 

Twitter 와 미투데이를 이야기 하고 블로그와 SNS의 생활 밀접도는 활동성이 큰 계층에 대해 상당히 높은 비중을 가지고 있다. 사용자간의 밀접도가 높고 연결관계를 가짐으로 인해 예전과는 비교 할 수 없을 만큼의 파급효과를 가지고 있고 위험도 동일하게 존재한다.

Web 2.0에서 발생될 수 있는 위협들에 대해서는 예전에 정리한 자료가(첨부파일) 여전히 유효하며 참고 할 수 있을 것이다.

 

본 컬럼에서 언급하는 Application Web Application으로 한정하여 논의를 하도록 한다. 넓은 범주의 Application이라 하더라도 인터넷 연결이 가능한 대부분의 Application은 동일한 문제들을 지니고 있는 것은 명백한 사실이며 현실이다.

 

< Major Attack trends by p4ssion>

 

전체적인 공격동향의 변화를 정리하고자 2007년에 작성한 이미지이고 현재도 별반 달라진 내용은 없다. 2005년을 기점으로 하여 국내를 기준으로 보면 자동화된 Application Attack이 최초 출현하고 이후에는 폭발적으로 증가한 상태로 볼 수 있다. 전 세계적으로도 Application Attack 관련 하여서는 2005년 이전에는 전문가에 의한 부분적이고 국지적인 침해들이 있었으나 2005년을 기점으로 하여 Web application을 공격하는 도구가 출현함에 따라 파급력이 매우 커지는 결과를 초래 하였고 현재는 인터넷 환경의 가장 큰 위험으로 등극한 상황이다.

 

수많은 개인정보의 유출과 도용 사례, 대규모의 좀비 PC, 서비스에 대한 직접적인 DDos 공격과 같은 모든 주요 사안들이 Application Attack과 연결되어 있다. 본 컬럼에서 필자는 이점에 대해서 분명히 하고자 한다. 2005년을 기점으로 국내 및 세계의 인터넷 위험도는 급격하게 증가 하였으며 보호를 위한 노력이 느리게 진행됨에 따라 지금까지의 위험보다 더 크고 복잡화된 위험들이 이미 다가와 있음을 분명히 한다.

 

 

기존의 소규모 혹은 국지적으로 이루어지는 해킹사고의 경우 침해사고의 범위와 피해 대상이 제한적 이였다. 그러나 현재의 환경은 개인의 PC를 대상으로 하고 있으며 종래에는 서비스까지도 위협하는 단계에 도달해 있다. 공격자들은 공격 범위와 대상에 대해 제한이 없으며 모든 개인 사용자의 PC를 개별적으로 공격할 필요성도 없다. 공격은 웹서비스가 대신해 준다. 공격자는 다만 주된 지점만을 공격하여 악성코드를 유포 하도록 만 하면 된다.

 

주된 지점에 대한 공격은 SNS, 게시판, 덧글, 동영상 등을 이용한 악성코드 전파들도 있으며 더 근본적인 기저에는 취약한 Web Application에 대한 권한 획득이 가장 근본적인 문제이다. Web Application에 대한 직접적인 공격을 통해 DB에 저장된 데이터를 절취해 가고 Web Application의 소스코드를 변조하여 방문하는 모든 사용자에게 악성코드를 유포하도록 한다.

 

Web Application에 대한 자동화된 공격도구의 출현은 보안에 대한 패러다임을 바꾼 것이 아니라 인터넷 산업 자체의 패러다임을 바꾼 중대한 전환점이라 할 수 있다. 공격 도구의 자동화가 끼친 영향은 DB의 사용자 정보 유출 과 정보 유출이 일차적인 목적 이였으나 불특정 다수에 대한 악성코드 유포의 도구로 활용 됨에 따라 큰 전환점이 일어난다.

 

방문 하는 모든 사용자의 PC에 취약성이 존재하면 반드시 감염이 되고 모든 사용자의 정보는 공격자에게로 전송이 되고 조정이 된다. 수백 만대가 넘는 좀비PC의 확보는 상당 부분 유사한 형태로 이루어 졌을 것이다. 유출된 개인정보들은 DB에 저장된 정보 이외에도 개인 사용자 PC에서 전송되는 정보들도 있다. 엄청난 양의 개인정보들은 이미 유출 되었고 활용이 되고 있다. 그 결과 정확도와 신뢰도가 높은 보이스 피싱과 일반적인 피싱 공격들이 연이어서 발생 하는 것뿐이다. 더불어 권한 획득된 개인 PC를 이용하여 DDos 공격을 하고 개인정보를 이용하여 서비스의 혼돈을 초래하며 거래를 통해 이득을 얻어내고 있다.

 

모든 전문가들이 개인PC의 보안을 강화하라고 한다. 그러나 보다 근본적으로는 모든 IT 서비스에 대해 보안성 검증이 먼저 되어야 할 것이다. 전파가 가능한 매개체를 줄이면 피해는 국지적으로 발생 할 뿐이다. 지금은 그 어떤 것도 되어 있지 않고 개인의 책임만을 이야기 한다. 일면 무책임 하기도 하다. 물론 개인PC에 대한 보안성 강화는 당연히 있어야 하는 일이다.

 

 

일반적으로 우리가 악성코드라고 부르는 것은 백신에서 악성코드라고 탐지를 할 때에야 비로소 알게 된다. 악성행위를 하는 프로그램은 백신개발사에 의해 분석되고 등록되기 이전에는 악성코드라고 탐지가 되지 않는다.

 

만약 새로운 유형의 악성코드가 지금껏 발표되지 않은 비공개된 취약성을 이용하여 개인PC를 공격 한다면 사전에 발견 할 수 있을까? 아직 기술의 진보는 여기에 완전하게 이르지 못했다.  그렇다면 웹 서비스를 통해 새로운 유형의 악성코드가 유포 된다면 감염자는 얼마나 될 수 있을까? 방문 하는 사용자의 상당비율이 감염이 될 것임은 불을 보듯 뻔하다. 지금은 얇디 얇은 유리와 같은 상태로 인터넷 서비스와 산업이 유지되고 있는 상황이다.

 

지금의 현실은 상상하기에도 끔찍한 현실이다. 그러나 이 현실 속에서도 생존 해야만 미래가 있다. 그 생존을 위해서는 문제를 공론화 하고 풀어가는 과정이 필요한데 숨기려고만 한다. 풀어가는 과정 조차 없고 문제의 핵심에 대한 논의도 거의 없는 상태이다.

 

 

기본적인 현실에 대한 간략한 설명을 우선 하였고 각 항목별로 어떻게 연결이 되는지 확인을 해보자. 이제 열 가지 실수 중 남은 부분을 살펴 보면 다음과 같다.

 

Failing to test noncritical applications for basic vulnerabilities

 

중요하지 않은 Application이라는 용어에 몇 가지 의미가 있을 수 있으나 이 부분에서는 외부로부터 http 접근이 허용이 된 모든 Application이라고 보아야 바람직하다. 일반적으로 외부로부터 침입에 활용되는 매개체는 2005년 이전의 직접적인 서비스 공격에서 서비스 포트에서 운영이 되는 Web application으로 옮겨져 있다. 지금의 공격도 여기에 집중이 되고 있다. 항상 외부로부터의 관점에서 취약성을 평가해야만 안정성을 보장 할 수 있다. 일반적으로 각 서비스 회사마다 하나에서 수십, 수백여 개의 서비스 URL들을 운영 하고 있을 것이다. 그러나 대부분의 보안상 위험에 대한 관점은 주된 서비스 몇 개에 한정 되어 있다. 위험에 대한 모니터링과 보안에 대한 강화들도 대부분 주요 서비스에만 집중 되어 있는 상황이다. 특히 Application에 대한 보안성 강화는 많은 노력과 시간들이 소요 됨으로 인해 주요 서비스만 시행을 하는 경우만 많다. 내부망에 침입 할 수 있는 주변 Application에 대한 관리가 소홀하고 취약성 제거가 이루어 지지 않는다면 그 동안의 모든 보안강화 조치는 우회를 통해 완전하게 무력화 된다.

 

우회 할 수 있는 여러 통로들이 있고 어차피 동일한 결과를 가져 오는 상황에서 보안이 강화된 사이트들을 직접 공격할 이유는 전혀 없다. 중점 관리의 영역에서 벗어나 있고 외부에 오픈된 상태로 존재하는 web application의 존재는 전체를 위험하게 만들 수 있다. 우회하여 권한을 획득하고 해당 서버에 백도어를 설치한 이후 주변 서버로 제한 없이 공격을 실행 하고 확대하는 것은 보호되고 있는 서비스망 전체를 무너지게 만든다.

 

결론적으로 서비스를 제공하는 모든 Application에 대해서 외부에서의 오픈 현황을 정기적으로 확인하고 오픈된 서비스에 대해서는 반드시 취약성 존재 유무를 확인하고 제거 하여야만 된다. 본질적으로는 허가를 받지 않은 서비스는 외부에 오픈 되어서는 안 되는 것이 기본이나 예외적 상황은 언제든 발생하게 마련이다.

 

벽은 눈 앞에만 쌓여 있고 한 걸음만 옆으로 비껴가면 벽은 없는 것과 마찬가지 이다. 좀 더 나아가 서비스별로 접근제어도 고민 하여야 하고 내부망에서의 위험 인지를 위한 방안들도 고민 하여야 사고가 발생 하더라도 피해의 최소화가 가능하다.

 

보안은 침입을 막는 것도 중요하나 더 중요한 부분은 침입에 대한 피해를 최소화 하고 분석과 재발방지를 위한 대안 제시가 가능한지가 핵심이다. 전문가의 역할이기도 하다.

 

 

 

Not adequately protecting your servers from malware.

 

Malware라는 개념은 악성코드라는 개념으로 볼 수 있고 일반적인 백도어와 키로거등을 총칭한다.현재의 항목에서 논의되는 사항은 바로 위의 항목 부분에서 언급한 내용과 동일하다. 대부분의 서비스 관리자는 바깥으로부터의 침입에만 여력을 기울이는 경향이 매우 크다. 그러나 항상 모든 Application은 취약점이 있다는 자세로 그 다음 단계를 준비하는 것이 반드시 필요하다. 대부분의 공격자들은 침입 이후에는 계정정보를 획득 하거나 백도어를 설치 할 때 알려진 도구를 일반적으로 사용 한다. 이 경우를 탐지 할 수 있는 도구가 필요하며 일반적인 백신 제품의 설치가 필요하다. 서버군이 많을 경우에는 중앙통제가 가능한 형태의 백신 제품을 사용 하여야 관리와 통제가 용이하다. 최소한 알려지지 않은 도구를 사용하더라도 발견 즉시 전체의 서버군에 적용 할 수 있어야 한다. 그래야 피해를 확실히 알고 종합적인 대책이 가능하다.

 

우회 침입 이후의 공격자의 행동을 탐지하고 제약하기 위한 도구들의 운영미비는 항상 존재한다. 또한 공격자들은 침입 이후 (침입자체를 백신제품이 완전히 탐지 하지는 못한다.) 백신 제품이 활성화 되어 있을 경우 백신 제품을 비활성화 시키고 의도한 바를 하고자 한다. 만약 중앙통제 및 관리가 되지 않는 제품이라면 놓칠 수 밖에 없는 부분이다.

 

 

Not knowing where credit card or other critical customer data is stored.

 

서구권역의 경우 중요한 개인정보는 거래 및 카드 관련된 내용, 사회보장번호등이 가장 중요한 내용으로 취급된다. 국내의 경우에는 개인의 신상에 관련된 정보들이 휠씬 더 중요한 의미를 가지고 있다. 카드 도용 사고는 서구권역에서 비일비재하게 발생 되는 이슈이고 사고 발생 이후의 추적을 통해서 문제들을 제거하는 경우가 일반적이다. 국내의 경우는 금융 관련된 거래에는 여러 다양한 제약 조건들이 있어서 공격자가 데이터를 가져간다 하여도 어려움이 존재한다.  장단점이 있지만 국내의 경우는 개인정보가 고유한 Identity를 나타냄으로 인해 여러 유형의 피싱에 이용 될 수 있고 보다 더 복잡한 문제들을 일으키게 된다. 따라서 Data의 보호는 최우선 순위이고 대부분의 IT관리자들이 이점을 잘 알고 있다.

 

Data의 관점은 보호 관점에서 분류가 달라 질 수 있다. 개발소스가 될 수도 있고 고객정보가 될 수도 있다.

 

최 우선순위에 해당하는 보호 대책이 적용 되고 있는 중요 데이터 저장 서버 이외에도 백업된 데이터 및 개발자나 관리자의 PC에 남겨진 데이터들에 대한 관리들도 제대로 되고 있는지 살펴 볼 필요는 있다. 개발자나 관리자 이외에도 고객상담과 관련된 분야에 있어서도 고객 관련된 데이터를 취급함으로써 문제 발생 소지는 높다.

 

공격자는 강화된 수준의 중요 데이터 저장 서버를 직접 공격하기 보다는 우회하여 주변의 백업 혹은 개발자, 관리자, 고객상담 관련 부분에 대한 우회 공격을 통해 손쉽게 정보를 빼내어 갈 수 있다.

 

정책적이고 기술적인 측면에서 중요 Data에 대한 접근과 관리 및 보관에 대해서는 엄격한 적용이 필요하고 보호대책도 준수 되어야 함을 알 수 있다.

 

 

 

Failing to find SQL coding errors. ( or Application vulnerability)

 

 

Application의 취약성을 찾는 것은 항상 어렵다. 특히 C/S Application이 아닌 변화와 갱신이 많은 Web Application에 대해 보안성을 항상 최상으로 유지하는 것은 상당히 어려운 수준의 업무임은 틀림 없다.

 

SQL Injection 공격은 현재 직접적인 Web server 침입과 Data의 절취에 직접 사용이 되고 있는 공격 기법이고 자동화된 도구가 대량으로 출현한 상태라 Web Application의 안정성은 높은 수준으로 위협을 받고 있다. 문제 해결을 위해서는 장비 도입을 통해 임시적으로 막는 방법들이 있고 또 한가지는 근본적인 소스코드의 문제점을 수정하는 방법이 있다. 웹 보안 장비의 도입을 통해 막는 방법은 우회할 수 있는 여러 기법들과 새로운 공격 기법의 출현에 따라 무력화 되면 새로운 공격 기법이나 우회 기법이 나올 때 마다 업데이트를 진행 해 주어야만 하는 점이 있다.

 

특징을 가진 웹 사이트의 경우에는 각 사이트마다 특징에 맞는 구성을 해주어야 하는 점도 있어서 공격 유형의 변화에 빠른 대응을 하기란 어려운 점들이 있다. 근본적인 문제 해결을 위해서는  전문인력을 통해 보안성을 점검하거나 스캐너, 소스코드 리뷰 등을 통해서 소스코드에 존재하는 문제점을 찾아 내고 수정 할 수 있도록 가이드 하여야 한다.

 

보안장비의 경우에는 변화되는 공격에 무력하다는 점과 특징이 있는 경우에는 Customizing이 대량으로 필요하다는 점에서 어려움이 존재한다. 그러나 당장의 소스코드 개선 여력이 없는 곳에서는 알려진 위험을 막기 위해서라도 도입 하는 것은 바람직하다. 근본적인 개선은 아니며 향후 문제 발생 소지가 계속 존재한다는 점은 절대 잊지 말아야 한다.

 

전문인력을 통해 진단을 하고 소스코드를 리뷰 하는 행위의 문제점은 웹 서비스 개발보다도 리소스 비용 및 시간 소요가 더 오래 걸리는 경우가 많다는 점이 문제다. 치명적인 문제점이라 할 수 있다. 또한 템플릿 을 기반으로 하여 Secure programming을 진행하는 경우 웹 개발자에게 획일화된 프로그래밍을 하도록 제약 함으로써 창의성을 해치는 결과를 가져 오기도 한다.

 

두 방안 모두 장단점이 있으나 여력이 있는 서비스 업체와 그렇지 않은 업체 사이에 선택은 다를 수 밖에 없을 것이다. 현재의 인터넷 환경은 가난하고 여력이 없는 서비스에 대해서는 무지막지할 정도로 가혹한 환경이다.  이 부분에 대해서는 근 시일 내에 컬럼으로 효율적인 대응 방안을 정리 할 수 있도록 하겠다.

 

 

Not following the Payment Card Industry Data Security standards.

 

위의 항목은 국내의 현실과는 약간 다른 항목이다. 국내에서 통용되는 부분으로 논의하자면 좁은 범주의 정보보호관리체계인증(ISMS), 정보보호안전진단, ISO 27001 (이전의 BS7799)등에 존재하는 Data 보호 규정을 준수 하여 Data를 보호해야 한다는 것을 의미한다. Data의 보호를 위한 규약들은 기본적인 규칙의 준수를 의미한다. 기밀성이 필요한 데이터에 대한 암호화, 외부로부터의 접근제한, 접근자에 대한 통제, 기본적인 서비스 보안구성, 암호화된 데이터의 전송 등은 필수적으로 고려해야 할 대상이다. 상세한 설명은 곳에서 찾을 수 있다.

 

 

이상과 같이 전편에 이어 이번 편에 이르기까지 10가지의 실수들에 대한 언급을 통해 자주 발생 되는 침해사고에 대한 내용들과 연관된 부분들을 살펴 보았다. 물론 개인적인 경험들이 들어간 내용이라 정확한 방향이라고 언급하기에는 어려운 부분이 있다. 여러 해 동안을 일선에서 살펴보고 대응을 하는 과정에서 일관되게 발견 되는 문제점으로서 언급을 하였다는 정도로 인식을 해주시면 바람직할 것이다.

 

현재의 인터넷은 침해사고에 대한 언급을 하기 이전에 상당히 위험한 상황에 처해 있으며 앞으로 상당 수준의 노력을 기울여야만이 일정 수준의 성과를 보장 할 수 있는 상태이다. 위험성은 은폐한다고 해서 사라지지 않는다. 은폐든 무지든 마찬가지의 결과다. 더 큰 결과로 산업을 위협하게 될 것이다. 이제는 직접적인 위협이 됨을 이미 여러 번 목격을 하였지만 아직 큰 방향성도 없다.

 

사막의 여행자는 눈 앞의 끝없는 사막이 아니라 밤하늘의 별을 볼 수 있어야만 생존 할 수 있다고 한다.  지금 우리는 어디쯤인지도 모르는 것은 아닐까?

 

 

인터넷과 IT의 활성화를 시작한 김대중 전 대통령의 서거를 진심으로 애도합니다.

유난히 큰 분들이 많이 가십니다. 어쩌면 인간의 탐욕에 대한 재앙이 아닐까 생각 되어 씁쓸합니다.

Posted by 바다란

IT 관리자들의 10가지 어리석은 실수들-(기본 인프라)   -zdnet column

 

Pc world 실린 내용 이나 의미 있게 살펴 보아야 할 내용들도 존재하고 다른 관점에서 보아야 할 이슈들도 존재한다. 침해사고가 창궐하고 있는 불황의 시기에 주관적인 의견도 도움이 되는 부분을 발췌하여 활용 한다면 서비스의 안정성 유지에 충분한 역할을 할 수 있을 것이다. 노골적인 표현 그대로 어리석은 실수라기 보다는 잘 지켰다면 문제들이 많이 줄었을 것이라는 아쉬움의 표현이라고 받아 들였으면 하는 바램이다. 한국적 IT 서비스에서 일반적으로 발생하는 침해사고에 관한 10가지 정도의 이슈로 참고 하셨으면 한다. 우선은 기본 인프라에 관련된 5가지 정도의 이슈에 대해 정리 한다.

 

차분하게 기업의 IT 보안 현실과 여러 가지 진행중인 개선 과제들이 무엇을 위한 것인지를 되돌아 보고 동일한 실수나 위험들이 반복 되지는 않는지 또는 기본적인 부분들은 어느 정도 대비가 되고 있는지도 살펴 보는 기회가 되었으면 한다.

 

본 컬럼에는 인터넷의 시작과 더불어 지금까지 계속된 일반적으로 알려진 이야기들도 존재하고 현재에 이르러 급격하게 나타난 이슈들도 존재한다. 시대의 상황에 맞게 기본적인 틀들을 지켜야 함은 변함 없는 규칙이다. 최소한의 규칙 준수는 피해의 가능성을 그만큼 줄여 줄 수 있기 때문이다.

 

기업의 보안에 있어서 가장 흔한 문제는 일어 났던 사고들이 반복해서 일어나고 시스템의 규모와 어플리케이션의 규모가 커짐에 따라 이미 알고 있는 부분 조차도 신경을 쓰지 못하여 방치된 기본적인 문제들이 추가적인 침입을 초래하는 상태에 이르는 문제이다. 이전까지는 발견을 하지 못하다가 침해사고를 경험한 이후에야 문제는 기본적인 것에 있음을 알게 된다.. 그러나 개선은 매우 더디게 진행된다. 이것이 지금까지의 루틴화된 대응방식들 이였다.  

근본적으로는 IT 보안 관리자 혹은 역량 있고 강력한 지원을 받는 IT 관리자가 극심하게 부족한 이유이기도 하고 경영과 분리된 기술로 치부 되고 있어서 더 심각한 양상을 우리나라에서는 띄고 있기도 하다.

 

IT 서비스를 운영하는 회사에서 IT 서비스의 생존을 유지하는 것은 절대적인 일이다. 경영의 효율과 마케팅의 최적화로도 커져가는 구멍을 막을 수는 없다. 그대로 방지할 경우 구멍은 점점 더 커져 종래에는 모든 일들을 수포로 돌아가게 한다. 보안에 투입되는 비용은 그대로 소모되는 비용이 아닌 미래의 불확실성을 줄여주고 예측 가능한 범주의 안정성을 일정수준 보장하는 의미가 있다. 일회적인 투입이 아닌 지속적인 투자와 관심만이 많은 부분의 위험을 줄일 수 있으며 서비스의 영속성이 보장된다. 마케팅의 귀재들이 있는 회사라 할지라도 기본적인 보안이 되어 있지 않다면 그 어떤 마케팅도 의미 없는 것이 되어 버린다. IT 서비스 회사에서의 보안은 이제 절대적인 이슈이지 부수적인, 있으면 좋은 그런 요소는 아니다.

 

 

참조 기사에서는 Network 관리자라고 칭하였으나 적당하지 않은 부분도 있어서 IT 관리자로 호칭하도록 한다. 또한 각 열 가지 항목만을 발췌하고 설명은 주관적으로 제시를 한다. 반드시 필요한 항목임에는 두말할 필요가 없다. 실정에 맞지 않는 부분은 현실에 맞도록 재해석을 하였다.

 

 

-Not changing the default passwords on all network devices

 

Default 계정과 패스워드에 대한 이슈는 운영체제가 생기고 네트워크로 연결된 이래 항상 논의되는 문제이다. 계정과 패스워드 관리에 대한 정책들은 요 근래에야 많은 부분 지적이 되고 있으나 일반적인 침해 사고에서 여전히 무시할 수 없는 부분이 Default 계정 및 패스워드에 의해 발생 되는 것은 엄연한 현실이다.

 

네트워크 장비 ( 스위치, 라우터), 운영체제 , DB, Application과 같은 모든 IT자산에 대해 존재하는 Default password와 계정의 변경은 반드시 확인이 되어야 한다. 패스워드에 대한 Life cycle을 유지하고 관리 할 수 있어야 하며 모든 IT 자산에 대해 분명한 검토들이 있어야 한다. 지금 이 글을 읽고 있는 독자들 중에서 IT관리를 하시는 분들도 관리하에 있는 모든 시스템들의 Default 계정과 패스워드를 완벽하게 제거 하고 있다고 확언 하실 수 있는 분은 그리 많지 않으리라 생각된다.

 

공격자들은 기본적으로 초기 침입 성공 이후 (근래에는 대부분 웹 Application 공격 및 이메일 등을 통한 백도어 설치로 침입 성공) 거점을 통해 내부망에 대한 스캐닝 작업들을 시작하게 된다. 내부망에 대한 스캔 작업으로 인해 발견 되는 것들은 시스템에 대한 취약성 및 네트워크 장비에 대한 취약성과 계정과 패스워드에 대한 취약성들도 발견 하는 것이 일반적이다. 그 이후에는 장비에 접근 하여 공격자가 원하는 대로 조정을 하거나 변화를 시키는 유형이 일반적인 공격 유형이다. 현재 큰 문제로 지적되고 있는 Mass Sql injection에 관련된 문제와는 다른 관점이긴 하나 고전적인 유형이며 가장 일반적인 침입의 유형으로도 여전히 유효하다는 점에서 의미를 가진다.

 

외부에 드러난 직접 접근이 가능한 통로에는 많은 문제들이 해결 되어 있을 것이나 내부망에 존재하는 모든 장비에 대해서 확신을 하기에는 문제점이 있을 것이다. 외부자에 의한 문제와 내부자에 의한 문제 모두 문제가 발생 될 수 있는 지점을 최소화 함으로써 예방이 가능한 이슈들이다.  단순하게 IT관리자의 의지만으로 일련의 문제제거들이 진행 되기에는 어려움이 있다.  단순반복적으로 보이는 업무들이 있어야 체계를 이룰 수 있으므로 경영진의 의지와 이해는 문제제거를 위해 필수적이다. 무조건적인 관리의 부실과 문제로 내몰기에는 지금의 시스템들은 너무 크고 많다.

 

 

-Sharing a password across multiple network devices

 

일반적으로 모든 시스템에 대해 별개의 패스워드를 사용한다는 것은 불가능하다. 특히 규모가 큰 서비스를 운영할 경우에는 사실상 불가능한 작업이라 할 수 있다. 영역별로 분리 하거나 의미 있는 단위로 구분하여 공용 패스워드를 사용하는 것이 일반적인 경우라 할 수 있다. 패스워드에 대한 복잡도와 관리는 현재 상태에서는 상당 수준에 올라와 있는 곳들도 있으나 다른 관점으로 보면 근본적인 문제들이 존재한다.

 

문자와 특수문자, 숫자를 결합하여 패스워드를 만들고 이것을 소수의 관리 인원들만 알고 있는 것은 일면 타당한 보안성을 유지하고 있는 것으로 보인다. 그러나 외부 업체와의 작업들은 있을 수 밖에 없고 해당 업체와의 작업을 진행 하기 위해서는 경우에 따라서는 계정정보를 전달 해 줄 수 밖에 없는 상황들이 발생한다. 이런 경우에 전체의 시스템들에 문제가 생길 수 있는 가능성은 높다. 너무 어렵게 패스워드를 만드는 것들도 절차상으로는 부합하나 직접적인 입력과 기억의 어려움으로 인해 패스워드를 적은 포스트잇 등을 화면에 붙여 놓는 것을 자주 보게 된다. 이 경우도 동일한 위험으로 간주 할 수 있다.

 

패스워드 관점에서는 주기적이고 영역별로 나뉘어진 관리가 필요하며 소수의 인원에게만 공유 되어야 한다. 그리고 권한 별로 계정에 대한 구분이 명확하게 나뉘어져 있어야만 한다. 최소한 대규모 서비스 운영이나 몇 십 혹은 몇 백대 이상의 시스템을 운용하는 곳에서라면 각 서비스 구분 별로 별도의 규칙과 절차를 통해 Secure한 패스워드를 유지하는 절차를 구비하는 것이 필요하다. 침해사고 방지의 가장 큰 부분은 피해 확산을 최소화 하는 부분도 큰 부분이며 패스워드에 대한 정책적인 관리와 구분은 가장 기본적이며 큰 효과를 볼 수 있는 영역이기도 하다.

 

외부 노출된 Application 취약성이나 내부로 침입한 악성코드에 의해 단 하나의 계정과 패스워드가 유출 되었다고 한다면 체계적인 영역구분과 관리 절차가 없는 서비스에 대해서는 모든 것에 대한 권한을 넘겨 준 것과 동일 하다고 볼 수 있다.

 

 

-Misconfiguring your access control lists.

 

 

대부분의 서비스를 운영하는 회사에서는 외부에서의 직접적인 접근을 금지하고 있다. ACL이라는 것은 네트워크 장비나 서비스 서버 단위에서 접근 할 수 있는 영역을 제한하는 용도로 사용되는 모든 것을 총칭한다. 단순하게 네트워크 장비에서의 접근제어 리스트를 가지고 있는 것 외에도 서버 단위에서의 ipchain iptable 그리고 비슷한 기능을 하는 도구들을 모두 총칭한다.  잘못 설정된 ACL 이라는 의미 보다는 명확한 의미의 접근제어가 필요하다는 내용으로 이해 하면 될 것이다.

 

일반적으로 외부에서 접근을 제한적으로 허용하기 위해 VPN을 많이 활용한다. 접근 할 수 있는 host를 한정하거나 VPN 접근 전용의 계정과 패스워드를 통해 허가된 사용자만이 접근 할 수 있도록 구성하는 것이다. 그러나 일단 접근한 이후의 통제 방안에 대해서는 잘 논의 되지 않는다. 일단 외부로부터의 접근을 단일통로로 제한하는 것으로 끝나는 경우를 많이 볼 수 있다.

 

여기에서 지적하는 부분은 외부에서의 접근 이후에도 효율적인 통제들이 필요함을 예로 들고 있다. 권한에 대한 확실한 적용으로 접근이 가능한 영역과 접근 해서는 안 되는 영역에 대해서 분명한 구분이 필요하며 적용이 필요하다는 점을 언급 하고 있다.

 

기본적으로 외부에서 접근 할 수 있는 통로는 제한적으로 구성을 하고 이후 사용자 각각 혹은 그룹별로 접근이 가능한 군을 형성하여 해당 군 이외에는 경유하여 접근이 되지 않도록 구성하는 것이 중요하다.

 

서비스 구성 네트워크 단위에서 외부 접근 지점과 권한 별로 접근이 필요한 시스템들을 최소화 하고 한정 하게 되면 기본적인 ACL의 미비로 인한 추가적인 사고를 막을 수 있다.

 

침해사고의 경우에는 외부에서 접근이 가능한 계정을 탈취한 이후에 VPN이나 경유 서버를 통과하여 내부망에 대한 자료 유출 및 악성 행위들이 발생 되는 경우도 종종 발생된다. 명확한 역할에 따라 접근제어의 시행은 이런 문제를 막기 위해서 필요하며 경우에 따라서는 접근 계정의 유효성과 접근 기록들에 대해서 기록을 유지하여 비정상적인 접근과 비정기적인 접근에 대해 판별 하는 로직들을 도입하게 되면 보다 큰 효과를 거둘 수 있다.

 

 

-Failing to configure your router to prohibit unwanted outbound traffic

 

현재 사용자의 PC와 기업의 내부 시스템을 위협하는 악성코드들은 대부분 백도어 기능을 가지고 있다. 백도어의 기능은 침입이 성공한 이후 외부와의 연결을 유지하고 명령을 실행 하도록 하고 있다. 물론 2009년 7월에 발생된 DDos 이슈와 같이 특정 IP로의 주기적인 연결 시도를 통해 다음 명령을 받는 유형이라면 위와 같은 정책도 그다지 큰 의미는 없다. 본 컬럼에서 논하는 이슈는 일상적으로 발생 되는 이슈들에 대한 문제이며 참고적인 사항일 따름이다.

 

서비스 시스템에 침입한 이후 재 침입을 하기 위해서 공격자들은 일반적으로 재 침입이 용이하도록 외부에서 직접 접근이 가능한 통로를 만들어 두게 된다. 이런 통로들을 백도어라고 총칭한다. Botnet Client이든 Command shell 이든 대부분의 기업 서비스 망에서는 외부에서 내부로 유입되는 Inbound Traffic에 대해서는 엄격한 기준을 적용하지만 내부에서 외부로 나가는 Outbound Traffic에 대해서는 무척 관대한 편이다. 장비의 성능 이슈도 무시 할 수 있는 부분은 아니기에 특별한 문제가 없다면 외부로 전달 되는 트래픽에 대한 통제는 그리 심한 수준은 아니라고 할 수 있다.

 

성능문제로 모든 부분에 대해서 적용하기는 어렵더라도 역할 별로 구분된 시스템들에 대해서는 최소한의 규칙들은 지켜져야 한다. 시스템에 기본으로 설치된 다수의 서비스들에 대해서도 시스템의 목적에 맞도록 여러 서비스들은 제거나 중지를 통한 비활성화를 거치거나 장비 단위에서의 허용 트래픽만을 규정 하는 행위들은 필요하다.

 

서비스별로 사용 서비스에 대해서 정의를 하고 해당 서비스만 사용하도록 하는 기본 보안설정이 필요하고 대규모 서비스의 경우 서비스 군으로 분할 하여 Outbound traffic을 서비스별로 제한 하는 작업들도 침해사고의 확산을 방지 하는데 도움을 줄 수 있을 것이다.

 

 

-Allowing nonsecure remote access and management software

 

시스템과의 거리상 대부분의 서비스 기업 관리자들은 리모트 관리 도구들을 많이 사용한다. 그러나 특별한 접근제어설정을 가지고 있지 않거나 계정과 패스워드의 문제로 인해 손쉽게 침해를 입기도 한다. VNC PC Anywhere, Terminal Service, SSH 등은 관리도구로 일반적으로 사용이 되는 접근 도구들이다. 각 사용 도구별로 기본적인 보안설정의 부족과 안전하지 않은 패스워드 혹은 변경 없는 패스워드의 사용은 종종 공격자들의 주된 타켓이 되고는 한다.

 

더불어 외부 네트워크 영역에 대해 VPN 과 같은 경유 서버가 없는 경우 직접적으로 열려져 있는 경우들이 많이 발견이 된다. 관리의 편리성을 논하기엔 지금의 시절은 호락호락 하지 않다. 외부에서의 열려져 있는 포트정보와 열려져 있는 서비스들에 대해서는 주기적인 점검이 이루어 져야 하고 장비를 통한 통제들도 필수적으로 이루어 져야 한다.

 

원격에서의 관리를 위한 도구들은 손쉬운 공격자의 목표가 되고 있으며 주기적인 검토와 보안성의 강화 (접근 IP 제한, 패스워드의 변경과 난이도 상승) 만이 기본적인 보안수준을 보장 할 수 있다.

 

접근 할 수 있는 IP에 대한 한정과 권한의 조정, 패스워드에 대한 관리 철저, 외부로 나가는 트래픽에 대한 제한과 접근제어의 철저는 가장 기본적으로 요구되는 인프라 보안의 구성요소이다.

 

10가지 정도의 항목에서 현재 컬럼은 인프라와 기본적인 보안에 관련된 부분을 정리했다. 참조한 기사와는 다른 방향으로 논의된 부분들도 있으나 각 항목에 대해서는 현재의 상황에 맞도록 설명을 하였고 세부적인 해석들은 환경에 따라 다를 수 있으므로 참고용도로의 이해가 필요하다. 규모에 따른 대응방안들도 다를 수 있기에 원칙적인 면에서 지켜야 할 룰 정도로 참고 할 수 있을 것이다.

 

다음 편에서는 10가지 실수라고 총칭 되는 부분에서 지금의 시대에 가장 큰 화두로 대두된Application과 관련된 부분을 다루도록 하겠다. 네트워크 관리자만을 위한 참고가 아닌 전체 IT관리자를 위한 참고가 될 수 있도록 항목에 대한 확장과 해석들은 달라 질 수 있음을 알려 드린다.

 

기본적인 노력들이 끊임없이 이루어져야만 변화도 효과가 있을 수 있다.  -바다란

Posted by 바다란