[보안 시스템 관리 방안①] 보안 시스템의 이해 및 기본 요소
상태바
[보안 시스템 관리 방안①] 보안 시스템의 이해 및 기본 요소
  • 이용학 코코넛 기술본부 대리
  • 승인 2004.02.11 00:00
  • 댓글 0
이 기사를 공유합니다

OS 또는 서버 서비스 프로그램의 보안 결함을 이용한 침해 사고, 설정 및 패스워드 관리 부주의로 인한 침해 사고, 애플리케이션 보안 결함으로 인한 침해 사고만 철저히 주의해 관리한다면 이제까지 수백 개 사이트에서 발생한 해킹 위협과 침해 사고를 사전에 방지할 수 있다. 물론 이 3개 사항 이외에도 사이트의 특수성에 의해 고려해야 할 사항이 있을 것이고, 이 3개 사항을 준수하는 것이 그리 쉬운 작업도 아니다. 이번 호에서는 이제까지 대부분의 침해 사고를 발생시켰던 결함과 이런 요소를 차단해 침해 사고의 발생을 최소화할 수 있는 보안 제품이 어떤 것이 있는지 살펴본다. <편집자>

최근 5∼6년 동안의 보안 상황은 IT 기술 및 인프라의 눈부신 발전과 더불어 많은 사람들이 감당할 수 없다고 생각할 정도로 변했다. 2003년 1월 25일의 인터넷 대란이라고 호칭되는 SQL웜으로 인터넷이 마비되는 상황을 경험하면서 정부 관계자, 기업 관계자들은 물론 일반 인터넷 사용자까지도 보안 문제로 발생되는 피해를 직접적으로 경험할 수 있는 계기가 됐다. 경험하지 않으면 잘 받아들여지지 않기 때문에 이 때의 경험은 최초로 대규모 사용자에게 보안의 문제점 및 현황에 대해서 극명하게 현실 인식을 시켜준 계기가 됐다.

물론 이런 사건도 자주 발생하지 않으면 결국 잊혀지기 마련이다. 하지만 최근 몇 년 동안을 회고하면 코드레드나 님다, SQL웜 등을 통해 알 수 있듯이 1∼2년에 한번씩은 발생하고 있다. 따라서 올해나 내년 초쯤에는 이와 비슷하거나 더 규모가 큰 사태가 재발할 가능성도 무척 높다. 다행히도 최근 몇 년의 경험을 통해 많은 기업들이 보안에 많은 투자를 하고 있는 것이 보안업체에 재직하면서 뚜렷이 느껴진다. 그러나 많은 기업들은 여력이 없거나 혹은 관심이 없는 탓에 여전히 개선의 여지가 많이 보이는 것도 사실이다.

대중의 보안 인식은 여러 가지 사건에 의해서 획기적으로 높아졌음은 앞서 지적했고, 이에 따른 보안 인력의 증가와 기술의 증가도 언급하지 않을 수 없다. 불과 몇 년 전만 해도 해킹 기술에 사용되는 어휘 등은 몇몇 인터넷 사이트에서만 볼 수 있는 소수의 보안인력만이 공유했었다. 하지만 지금은 일반 잡지에서도 종종 보안 특집을 통해 자세한 보안 기술이나 동향을 설명하는 수준까지 다다랐고, 많은 보안 전문 교육과정을 통해 심도 있게 보안에 대한 기술적인 지식을 소유하고 있는 인재가 많아지기 시작했다.

결국 이는 필연적으로 정보의 대량화와 고급화로 이어졌다. 일례로 ‘버퍼 오버플로우’라는 공격 기법은 공격 기법 중 가장 이해하기 어려운 기술로 소수의 사용자들만이 공격코드를 만들어 낼 수 있었다. 하지만 지금은 인터넷을 통한 정보의 교환과 각종 해킹 대회가 개최돼 많은 사람들이 이 공격에 익숙해졌고, 각종 변이 방법과 진보적인 방법에 대해 계속 인터넷을 통해 정보가 교류되면서 기술 정보도 고급화됐다. 지금까지 계속 몇 년 전과 비교해 거부감을 갖는 사람도 있을 수 있겠지만, 과거는 현재의 거울이 되고, 미래의 반추가 되므로 중요한 사항에 대해서는 앞으로도 연재를 하면서 계속 비교하게 될 것이다.

보안 요소의 우선 순위

총 6편으로 기획된 이번 연재를 시작하면서 많이 고민했다. 앞서 언급했듯이 각종 매체를 통한 보안 연재물들의 홍수 속에서 비슷한 종류의 글을 쓸 것인가, 아니면 아예 연재를 하지 않을 것인가. 여러 가지 고민을 통해 이번 글쓰기의 방향을 논란의 소지가 다분히 있을 수 있는 방향으로 정했다. 바로 ‘보안의 순서’라는 주제다.

필자도 보안에 대한 많은 정보를 인터넷에서 얻고 있고 ‘보안의 요소’에 대한 문서는 많이 봤지만, 많은 보안 요소의 실제 적용 순서에 대한 정보는 별로 기억나지 않는다. 물론 당연하게도 많은 분들이 여기 정한 순서에 대해 의문을 제기할 것이라고 생각한다. 사전에 그런 의문에 대해서도 동의할 수 있다. 지금 글을 쓰고 있는 필자조차도 보안 요소는 상황에 따라 우선 순위가 적용돼야 한다고 주로 생각해 왔기 때문이다.

하지만 이렇게 순서에 대해 말할 수 있는 것은 일반적인 상황에 대해서라고 변명하고 싶다. 보안관리자의 입장에서 3∼4년 동안 수백개의 네트워크 및 수천대의 서버에 대한 보안 시스템 설계, 설치, 운영, 대응, 포렌식(Forensic)을 해 오고, 해커의 입장에선 수십 개의 사이트에 대한 모의해킹을 통해 얻어진 ‘일반적인 상황’이라면 어느 정도 일반적인 사이트에 해당이 될 것이라 생각한다.

보안의 순서를 논하기 전에 먼저 일반적인 상황에 대해서 좀 더 기술적으로 세밀히 언급할 필요가 있다. 보안이라는 것이 실제로 IT의 범위와 일맥 상통해 그 범위가 이루 말할 수 없다. 그런 엄청난 보안의 넓은 분야와 요소에서 그 순서를 논하는 것조차 넌센스에 가까울 수 있기 때문에 여기서는 앞으로 연재될 내용에서 가정하고 있는 기본적인 대상을 정리하고자 한다.

기본적인 대상은 3가지로 정리하도록 하겠다. 일단은 무엇을 침해 사고로부터 예방하고자 하느냐의 문제다. 이 무엇에는 여러 가지가 대입될 수 있지만, 여기서는 서버군으로 한정짓도록 하겠다. 뒤에 연재될 내용이 클라이언트까지도 어느 정도 해당될 수 있지만 주로 서버에 한정해 보안 요소나 대책을 언급할 계획이다. 실제로 보안의 3대 요소인 기밀성, 무결성, 가용성의 측면에서는 클라이언트 보안이나 서버 보안이나 마찬가지지만 방법적인 요소와 위험 요소는 상당히 다르다.

두 번째로 누구로부터 대상을 보호할 것이냐는 문제다. 이 누구의 대상은 여러 가지가 될 수 있지만 간단하게 내부 사용자, 외부 사용자, 관리자 등이 될 수 있다. 앞으로 설명될 연재물에서는 외부 사용자, 즉 해커라고 쉽게 일컬어지는 위협요소를 선정한다. 내부 사용자나 관리자를 포함시킬 경우, 보안 요소가 더 많아지고 까다로워지며 관리적인 요소들이 많이 포함될 수 있기 때문에 이번 연재에서 다 언급하기는 어렵기 때문이다.

마지막으로 어떤 대상을 고려하고 연재를 할 것인가라는 문제다. CEO, CIO, 시스템 관리자 등의 여러 대상이 있을 수 있겠지만, 가장 적합한 대상은 실제 네트워크 및 서버의 보안 경험을 바탕으로 한 글이기 때문에 직접 네트워크와 서버의 보안 실무자와 관리자일 것이다. 물론 간단한 개념을 얻기 위한 CIO의 참고 자료로도 무방할 것이다.

3대 해킹 경로 및 방법

이제 본론으로 들어가 향후 연재될 내용을 참고해 보안의 기술 요소를 생각해 보고 우선 순위를 결정해 보도록 하겠다. 일단 보안을 하기 위한 어떤 기술 및 제품이 필요한가 생각하기 전에 해커가 어떤 경로로 주로 침입하고 어떤 방법을 사용하는가를 파악하는 것이 중요하다. 이 경로 중 빈번히 발생하는 것부터 차단하는 것이 바로 가장 간단한 우선 순위가 될 것이다. 수년 동안의 보안 시스템 운영 및 해킹 대응, 모의 해킹의 결과로 다음과 같은 3가지가 대부분의 외부 해킹 사건의 단초가 됐다.

· OS 또는 서버 서비스 프로그램의 보안 결함을 이용한 침해 사고
· 설정 및 패스워드 관리 부주의로 인한 침해 사고
· 애플리케이션 보안 결함(주로 웹 프로그래밍 시 발생)으로 인한 침해 사고

의외로 간단하게 위의 3가지 사항만 철저하게 관리하면 이제까지 수백 개 사이트에서 발생한 해킹 위협과 침해 사고를 사전에 방지할 수 있다. 물론 위의 3개 사항 이외에도 사이트의 특수성에 의해 고려해야 할 사항도 있을 수 있다. 뿐만 아니라 계속 설명되겠지만, 위에서 언급한 3개 사항의 철저한 준수가 그리 쉬운 작업이 아니라는 것은 이미 알고 있거나 곧 알게 될 것이다.

첫 항목부터 약간의 부가 설명을 통해 좀 더 이해하기 쉽도록 하겠다. ‘OS 또는 서버 서비스 프로그램의 보안 결함’은 통칭 소프트웨어 보안 결함으로 불린다. 여기에서는 세 번째 항목과의 분리를 위해서 말을 바꿨다. 세 번째 항목인 ‘애플리케이션 보안 결함’도 결국은 소프트웨어 보안 결함이 되기 때문이다. 여기에서 2가지를 분리한 것은 결함을 만드는 주체가 틀리고 결국 대응 주체도 틀리기 때문이다.

첫 번째 항목은 OS나 웹 서비스 프로그램(아파치, IIS 등)과 같은 프로그램에서 발생하는 취약점을 말하는 것이고, 세 번째는 개별 사이트에서 PHP, ASP 등을 통해 개발하고 구축한 자체 웹 서버 사이트 프로그램에서 발생한 취약점을 말한다. 실제로 90% 이상의 침해 사고가 이 소프트웨어적인 보안 결함에 의해서 발생한다. 침해 사고 이전까지 보안에 관심이 없었던 대부분의 사이트는 이 결함을 이용해 침해 사고가 발생했으며 더욱 나쁜 것은 자동화된 공격 프로그램이 바로 첫 번째 항목의 결함을 이용해 대규모의 침해 사고를 발생시킨다는 것이다. 과거에 명성을 떨쳤던 코드레드, 님다, SQL웜 등이 모두 이에 해당한다.

따라서 가장 빠른 시간에 소프트웨어 결함을 제거하는 것이 해결책이 된다. 하지만 상황은 그리 녹록치 않다. 2002년 마이크로소프트는 72개의 결함에 대해 보안 권고문을 제공했으며 2003년도에도 11월까지 적지 않은 51개의 보안 권고문을 제공했다. 여러분들이 마이크로소프트 이외의 다른 OS를 사용하고 있다면? 거기에 상용 버전의 다른 서버 프로그램을 사용하고 있다면? 거기에 서버의 대수가 수십 대에서 수백 대에 이른다면? 이 문제를 해결하는 것이 그리 쉬운 문제가 아님을 알게 될 것이다. 그 이외에 더 어려운 세부적인 사항은 패치와 관련된 다음 연재에서 논의될 것이다.

두 번째 항목인 ‘설정 및 패스워드 관리 부주의로 인한 결함’은 실제 침해 사고의 비율에서 많은 비중을 차지하지는 않지만, 모든 알려진 소프트웨어 보안 결함을 다 제거한 후에 여전히 외부의 공격에 취약할 수 있는 빌미를 제공한다. 모의해킹을 하다 보면, 해당 서버에 알려진 취약점이 없음에 고민하다가 아주 쉽게 특정 계정의 패스워드가 계정과 일치한다거나 유추 가능하다거나 더 심하게는 패스워드가 설정돼 있지 않은 경우를 발견하고 침입에 성공하기도 한다.

또한 극히 일부 자동화된 공격 프로그램이 이 결함을 이용하기도 한다. 설정과 관련된 결함도 가끔 발생한다. 일부 사이트는 단순한 프로그램을 이용해 인증 없이 웹 사이트의 페이지 내용을 삭제하거나 변경도 가능하다. 특히 웹 서비스의 경우 복잡한 설정 기능을 웹 개발자가 관리해 설정 관련 결함이 많은 사이트에서 종종 발견된다.

마지막으로 ‘애플리케이션 보안 결함(주로 웹 프로그래밍 시 발생)으로 인한 결함’이 있는데, 최근에 침해 사고의 비율이 높아지고 있으며 일부 보안을 상당히 갖췄다고 하는 사이트도 의외로 쉽게 공격 가능한 결함을 가지고 있다. 실제로 IT의 모든 정보가 웹으로 통합돼 서비스되는 추세로 가면서 기존의 웹 서비스와는 달리 현재의 웹 서비스는 엄청나게 복잡한 컴포넌트와 시스템을 갖추게 돼 소수의 보안관리자가 감당할 수 있는 수준을 넘어서고 있다.

이제까지 대부분의 침해 사고를 발생시켰던 결함에 대해서만 간략하게 설명했다. 이제부터는 이런 요소를 차단해 침해 사고의 발생을 최소화할 수 있는 보안 제품이 어떤 것이 있는지 정리해보겠다.

해킹 차단을 위한 방법

첫 번째 항목의 결함을 제거하는 근본적인 방법은 빠른 시간에 결함 정보를 취득하고 패치를 적용하는 것이다. 이것을 도와주는 툴로써 최근에 많이 발전하고 있는 패치 매니지먼트 시스템이 있다. 기존에는 수동으로 많이 사용했지만 정보의 수급이나 패치 적용시의 문제점, 대규모 시스템 등에서도 용이하게 관리자가 대응할 수 있는 기능을 많이 제공하는 자동화 시스템이 최근 시장에 많이 공개되고 있다.

완벽한 해결책은 아니지만 침입차단시스템(F/W)을 통해 외부에 공개되는 서비스를 최소화하는 강력한 정책을 적용할 수도 있다. 또한 취약점 점검 도구를 통해서 주기적으로 누락된 패치나 관리되지 않는 시스템이 있는지 확인하는 것도 좋다. 침입탐지시스템을 이용해 침입 시도 발생 시 탐지하는 방법도 제안될 수 있으나, 이미 침해 사고 발생이 이루어진 뒤가 될 가능성이 높으므로 침입차단시스템 하나만을 이용한 결함 차단은 피하는 것이 좋다.

두 번째 항목의 결함에 대한 차단 방법은 그리 쉽지는 않다. 앞서 언급했던 네트워크 취약점 점검 도구를 이용해 외부에 드러날 수 있는 설정상의 취약성을 미리 찾아내 제거하거나 서버 취약점 점검 도구의 패스워드 크래킹을 이용해 사용자 패스워드를 주기적으로 점검하는 방법이 있다. 부가적으로 침입차단시스템을 통해서 명시적으로 허용되지 않는 내외부의 모든 접속을 차단하는 것도 효과를 발휘한다. 패스워드 유출을 방지하고 부수적으로 내외부 통신의 기밀성을 유지하기 위한 가상사설망(VPN)도 하나의 보완책이 될 수 있다.

마지막 항목인 세 번째 항목의 결함은 자체적으로 웹 사이트 디자인, 구축 시 일반적으로 발생할 수 있는 보안 결함이다. 이 보안 결함에 대해 최소화할 수 있는 구축 방법론에 대해 내부 개발자에 대한 교육 및 감사가 지속적으로 수행돼야 한다. 이런 종류의 결함은 기존의 네트워크 취약점 점검 도구가 발견하는데 한계가 많다. 모의해킹과 같은 방법으로 테스트 해 볼 수도 있으나 정확한 기준이나 검증된 방법론의 부재, 모의해킹 인력에 대한 기술적 검증이 부족해 결과에 대한 신뢰가 만족되지 않는 경우가 많으므로 추천되지는 않는다.

최근 이런 종류의 웹 공격과 관련해 많은 보안 기술이 개발되고 있으나 한계가 많아 가까운 시일 내에 효율적인 답을 제공해 줄 것으로 보이지는 않는다. 따라서 내부적으로 지속적인 교육과 감사가 반드시 필요하다. 향후에도 이 결함을 이용한 침해 사고가 다른 것에 비해 계속 증가할 것으로 예상된다.

침해 사고 방지를 위한 보안 툴

세 가지 종류의 침해 사고를 유발할 수 있는 결함을 차단하기 위한 여러 가지 요소를 확인했다. 이런 요소 중 어떤 것이 먼저 구축돼야 할 것인가? 아마도 많은 논란이 있을 것이고 개별 담당자들이 위의 세 가지 항목 중에 한가지 침해 사고를 사전에 경험했다면 무엇보다도 그것을 해결하기 위한 요소를 최우선적으로 도입할 것이다.

실제로 이 글을 쓰기 전에도 논의가 많이 됐지만 결국은 대부분의 침해 사고를 유발한 것으로 지적된 첫 번째 항목의 결함을 제거할 수 있는 패치 매니지먼트 시스템이 우선적으로 선정됐다. 실제로 이 시스템은 보안 제품 분야에서 최근에 필요성이 강력하게 부각됐으며 가장 논의가 많이 되고 있는 것 중 하나다.

두 번째로 우선되는 보안 시스템은 침입차단시스템이다. 이 시스템은 첫 번째 항목의 결함도 보호할 수 있고, 두 번째 항목 역시 강력한 보안 정책을 통해 일부 보완될 수 있다. 많은 침해 사고에서 패치가 완벽히 설치돼 있지 않았더라도 침입차단시스템을 이용한 강력한 보안 정책이 구현됐을 경우 차단되는 경우를 많이 보게 된다.

세 번째로 우선되는 제품은 가상사설망이다. 보안 분야 중 유일하게 비용으로 인한 투자를 회수할 수 있어 계속적으로 보안 산업에서 중요한 위치를 차지하고 범위를 확대하고 있다. 특히 외부의 유동 IP 사용자가 적절한 인증과 암호화를 통해 안전하게 내부의 서버 시스템에 접속할 수 있도록 함으로써 패스워드 유출이나 통신 내역 유출을 차단할 수 있다.

마지막으로 침입탐지시스템의 적용이 필요하다. 이 제품은 전 세계적으로 많은 논란을 제공하고 있다. 실제로 이 제품을 도입해서 모니터링하게 되면 기본적으로 발생하는 수많은 로그에 의해 압도되게 된다. 가장 많은 보안 지식을 필요하며 실제로는 제대로 모니터링하기 위해서는 24시간 관제를 필요로 하기 때문에 비용이 상당하다. 이 단계에서는 보안서비스를 이용해 비용대비 효과를 최대화시키는 것을 고려할 만 하다.

이제까지 간단하게 대부분의 침해 사고를 유발한 결함과 그 결함을 통한 침입을 차단하기 위한 보안의 요소 기술들, 그리고 마지막으로 그 침해 사고의 빈도에 따른 적용 순서를 나열해 보았다. 미리 언급했던 보안 대상의 정의에 의해 또는 우선 순위로 인해 통합보안관리 시스템 등의 언급이 빠지고, 내용의 복잡성과 규모, 그리고 보안 제품의 미성숙으로 인해 세 번째 항목에 대한 대처가 자세히 논의되지 않았다. 이런 항목들은 다음에 기회가 있을 경우 자세하게 논의하겠다. 다음 호부터 우선 순위에 입각해 하나 하나씩 개별 제품에 대해 상세하게 알아보도록 하겠다.


댓글삭제
삭제한 댓글은 다시 복구할 수 없습니다.
그래도 삭제하시겠습니까?
댓글 0
댓글쓰기
계정을 선택하시면 로그인·계정인증을 통해
댓글을 남기실 수 있습니다.