본문 바로가기

Security Indicator/Insight

[컬럼]IT관리자들의 10가지 실수- 두번째

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의 활성화를 시작한 김대중 전 대통령의 서거를 진심으로 애도합니다.

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