1장. 보안 개요

사업을 운영하고 개인 정보를 관리함에 있어서 네트워크로 연결된 강력한 컴퓨터의 사용이 나날이 증가하고 있습니다. 이제 거의 모든 산업 생산이 네트워크와 컴퓨터 보안을 중심으로 이루어 집니다. 사업체들은 보안 전문가의 지식과 능력을 바탕으로 각 사업체에서 필요로 하는 운영 체제 요건에 맞게 시스템을 적절히 사용자 설정합니다. 대부분의 사업체는 직원들이 회사 IT 자원을 지역적으로나 원격적으로 액세스하는 끊임없이 변화하는 환경을 갖추고 있습니다. 따라서 그 어느 때 보다 컴퓨터 시스템 보안에 대한 필요성이 매우 강조되고 있습니다.

그러나 불행히도 대부분의 기업에서는 (개인 사용자도) 컴퓨터 용량을 늘여 생산성을 높이는데 더 중점을 두고 예산 문제로 컴퓨터 보안의 중요성을 간과하고 있습니다. 종종 postmortem (사후 검토) — 이미 시스템에 제 3자가 침입한 후에 적절한 보안 조치를 취하는 경우가 많습니다. 컴퓨터 보안 전문가들은 인터넷과 같이 신뢰할 수 없는 네트워크에 연결하기 이전에 적절한 보안 조치를 취하는 것이 대부분의 침입을 방지할 수 있는 최선의 방법이라고 동의합니다.

1.1. 컴퓨터 보안이란 무엇인가?

컴퓨터 보안이란 컴퓨팅과 정보 프로세싱의 광범위한 개념을 포괄하는 일반 용어입니다. 컴퓨터 시스템과 네트워크를 통하여 매일 사업을 운영하고 중요한 정보를 저장, 액세스하는 사업체는 자사의 데이터를 가장 중요한 자산으로 간주합니다. 총소유비용 (TCO: Total Cost of Ownership)와 서비스 품질 (QoS: Quality of Service)과 같은 개념이 이제 일상 비지니스 용어로 자리잡게 되었습니다. 이러한 개념을 바탕으로, 사업체는 회사의 데이터 보존과 고가용성과 같은 측면을 고려하여 관리 비용을 책정하고 계산합니다. 전자 상거래와 같은 사업체에서는 얼마나 데이터가 신용 가능하여 사용 가능한가에 따라서 성공과 실패 여부가 판정됩니다.

1.1.1. 컴퓨터 보안의 역사

Matthew Broderick 주연의 "Wargames," 이라는 영화에서 고등학생 주인공은 미국 국방부 (DoD) 수퍼 컴퓨터를 해킹하여 고의아니게 핵 전쟁 위협을 야기시키게 됩니다. 이 영화에서 주인공은 모뎀을 사용하여 (WOPR이라고 불리는) DoD 컴퓨터에 접속한 후 핵 미사일 저장고를 관리하는 인공 지능 소프트웨어와 게임을 합니다. 이 영화는 구 소련과 미국 사이에 "냉전"이 진행되던 시기에 개봉되어 1983년 많은 관객의 호응을 얻었습니다. 이 영화의 인기로 많은 개인과 그룹이 이 영화의 주인공이 사용한 방법 war dialing — 특정한 지역의 아나로그 모뎀 접속 번호를 검색하여 전화 번호 앞자리를 맞추는 방법과 같은 유사한 방법을 사용하여 보안 시스템을 해킹하기 시작했습니다.

10 년이 지난 후 미연방 수사국 (FBI)와 전국의 컴퓨터 전문가들의 도움을 받아 4년 간의 끈질긴 추적 후에 악명높은 해커 Kevin Mitnick을 체포할 수 있었습니다. 이 해커는 25 건의 컴퓨터와 접근 장치 사기를 통한 미화 8천만 달라에 이르는 지적 재산 피해와 Nokia, NEC, Sun Microsystems, Novell, Fujitsu, Motorola에서 소스 코드를 훔쳐낸 장본인 입니다. 당시 이 사건은 FBI에 의해 미국 역사 상 가장 큰 컴퓨터 관련 범죄로 여겨졌습니다. 범인은 통합 68 개월 징역 선고를 받고 60 개월 간의 징역 생활 후 2000년 1월 21일에 가석방되었습니다. 그 후 그는 2003년 까지 컴퓨터 사용과 컴퓨터 관련 일을 하지 못하게 금지당했습니다. 당시 수사관들은 Mitnick을 다른 사람을 이용하여 암호를 알아낸 후 위조 신분증을 사용하여 시스템에 액세스하는 — 사회 공학 (social engineering)의 귀재라고 불렀습니다.

공개 네트워크를 통하여 개인 정보, 재정 정보 및 기타 비밀 정보를 알아내려는 사람들이 증가함에 따라 시간이 지나면서 정보 보안도 발전되었습니다. Mitnick과 Vladimir Levin과 같은 케이스 (자세한 정보는 1.1.2 절을 참조하십시오)가 계속적으로 발생하자 모든 분야의 산업체들이 자사의 정보를 전송하고 발표하는 방식에 대하여 재고하게 되었습니다. 또한 데이터 보안을 증강시키고자 하는 노력은 인터넷의 인기가 높아짐에 따라 더욱 증강되었습니다.

개인용 컴퓨터를 사용하여 인터넷 상에 있는 자원에 액세스하는 사용자의 수가 계속 증가하고 있습니다. 정보 검색에서 이메일과 전자 상거래에 이르기까지, 인터넷은 20 세기의 가장 중요한 개발로 간주됩니다.

그러나 인터넷과 이전 프로토콜은 신뢰를 바탕으로(trust-based) 개발되었습니다. 즉, 인터넷 프로토콜은 그 자체로 안전하지 않도록 설계되었습니다. TCP/IP 통신 스택에는 아무런 승인 보안 표준도 내장되지 않았기 때문에 악의를 품은 사용자나 프로세스가 네트워크를 통해 해킹할 수 있는 위험이 높습니다. 최근 인터넷 통신이 보다 안전해졌지만, 여전히 완전히 안전한 것은 없다는 교훈을 주는 사건이 계속 발생하고 있습니다.

1.1.2. 컴퓨터 보안 발전사

컴퓨터 보안의 생성과 발전에 공헌한 여러가지 사건이 있습니다. 다음 목록에서는 컴퓨터와 정보 보안의 발전에 큰 영향을 끼친 중요한 사건들과 오늘날 그 중요성에 대하여 다루고 있습니다.

1.1.2.1. 1960년대

  • 매사추세츠 공과 대학 (MIT)의 학생들은 MTRC (Tech Model Railroad Club)라는 모임을 조성하여 학교의 PDP-1 메인프레임 컴퓨터 시스템을 탐구하고 프로그래밍하기 시작했습니다. 그 그룹은 이후 오늘날 잘 알려진 의미의 "해커 (hacker)"라는 이름을 사용하였습니다.

  • 미국 국방부 (DoD)에서 연구 기관과 국방 관련 사업체 등 관련 기관 간의 정보 공유를 지원하기 위해 추진한 ARPA(The Advanced Research Project Agency) 프로젝트를 통해 컴퓨터망의 연동망을 개발하였습니다. 이 개발은 인터넷의 근간망을 이루며 오늘날 인터넷의 중요한 부분으로 남아 있습니다.

  • Ken Thompson은 UNIX 운영 체제를 개발하였습니다. UNIX는 개발자 도구와 컴파일러에 액세스하기 쉬운 특성으로 인해 가장 "해커 친화적인 (hacker-friendly)" 운영 체제로 널리 알려져 있습니다. UNIX 운영 체제가 개발된 시기에 Dennis Ritchie는 컴퓨터 역사상 가장 인기있는 해킹 언어인 C 프로그래밍 언어를 개발합니다.

1.1.2.2. 1970년대

  • 미국 국방부 산하 컴퓨터 연구와 개발 기업인 Bolt, Beranet, and Newman 사에서 ARPANet의 상용 버전인 Telnet 프로토콜을 개발하였습니다. 따라서 한때 정부 연구 기관과 국방 관련 사업체에서만 사용 가능했던 데이터 네트워크를 일반인이 사용할 수 있게 되었습니다. 그러나 일부 보안 연구원들에 따르면 Telnet은 공개 네트워크에서 가장 보안이 약한 프로토콜로 알려져 있습니다.

  • Steve Jobs와 Steve Wozniak이 Apple Computer 회사를 창립하고 개인용 컴퓨터 (PC) 판매를 시작했습니다. 그러나 PC는 일부 악의를 가진 사용자들이 아날로그 모뎀과 워 다이얼러 (war dialer)와 같은 일반 PC 통신 하드웨어를 사용하여 원격 시스템에 해킹하는 발판이 되었습니다.

  • Jim Ellis와 Tom Truscott은 여러 사용자 간에 전자 통신을 주고 받을 수 있는 게시판 스타일의 시스템인 유즈넷 (USENET)을 개발하였습니다. USENET은 곧 인터넷 상에서 컴퓨터, 네트워킹과 물론 해킹에 대한 정보를 주고받는데 가장 인기있는 토론장이 되었습니다.

1.1.2.3. 1980년대

  • IBM에서 비교적 가격이 저렴한 구조인 Intel 8086 마이크로프로세서에 기초한 PC를 개발하여 판매하기 시작하여 사무실에서만 아니라 가정에서도 PC의 사용이 보편화되었습니다. PC는 이전보다 강력하고 사용이 쉬워지면서 보다 일반적이고 편리해졌으며 따라서 가정에서나 회사에서 악의를 가진 사용자들이 보다 쉽게 이러한 하드웨어를 사용할 수 있게 되었습니다.

  • Vint Cerf에 의해 개발된 TCP (전송 제어 프로토콜)은 두 가지 부분으로 나뉘어 집니다. 인터넷 프로토콜이 한 부분이며, 복합된 TCP/IP 프로토콜은 오늘날 모든 인터넷 통신에 표준으로 사용됩니다.

  • 전화 시스템 해킹 (phreaking) 분야의 발전에 기반하여 컴퓨터와 컴퓨터 네트워크 해킹과 같은 주제에 대하여 논의하는 2600: The Hacker Quarterly이라는 잡지가 창간되었습니다.

  • 414 갱 (해커들이 살던 지역 번호에서 이름을 가져옴)들은 Los Alamos 국립 연구소 및 핵무기 연구소와 같은 일급 비밀 시스템을 9일 동안 해킹한 죄로 정부 기관에 의해 일제 검거당했습니다.

  • Legion of Doom과 Chaos Computer Club은 컴퓨터와 전자 데이터 네트워크의 약점을 이용한 선도적인 두 해킹 그룹입니다.

  • Captain Zap이라고 알려진 Ian Murphy는 군사 컴퓨터에 침입하여 회사 거래 주문 데이터베이스에서 정보를 빼내고 정부 전용 전화 교환대를 사용하여 전화를 건 혐의로 체포되었습니다. 이 사건을 기반으로 컴퓨터 사기 및 남용 법안(Computer Fraud and Abuse Act of 1986)이 의회에서 통과되었습니다.

  • 컴퓨터 사기 및 남용 법안에 기초하여 법원에서는 Robert Morris를 유죄 선고할 수 있었습니다. 이 졸업생은 인터넷에 연결된 공격하기 쉬운 6000 개의 컴퓨터에 Morris Worm이라는 바이러스를 유포시킨 장본인 입니다. AT&T와 미국 국방성 시스템을 해킹하여 시스템을 오용한 고등학교 중퇴생 Herbert Zinn 건은 이 법안에 기초하여 판결한 사건 중 가장 유명한 사건이라 할 수 있습니다.

  • Morris Worm과 같은 사건이 다시 발생하지 않도록, 컴퓨터 사용자에게 네트워크 보안 문제를 알려줄 CERT (컴퓨터 비상 대응팀)을 생성하였습니다.

  • 미국의 인터넷 전문가인 Clifford Stoll은 자신의 시스템에 침입한 서독의 해커들을 추적하여 검거한 사건을 The Cuckoo's Egg라는 책으로 써서 발표하였습니다.

1.1.2.4. 1990년대

  • APRANet은 사용이 중지되고 이 네트워크로부터 오는 트래픽은 모두 인터넷으로 전송되었습니다.

  • Linus Torvalds가 GNU 운영 체제에 사용될 Linux 커널을 개발합니다; 인터넷을 통하여 사용자와 개발자가 통신을 주고 받으면서 리눅스가 보다 확산되고 발전하게 되었습니다. Linux는 UNIX에 기반하고 있기 때문에 해커들 사이에서 가장 인기있는 운영 체제이며 이로 인해 시스템 관리자들이 독점적 (폐쇠된 소스) 운영 체제를 운영하는 레가시 서버에 대한 보안 대체를 구축하는데 Linux가 매우 유용합니다.

  • 그래픽 웹 브라우저의 등장으로 인해 공개 인터넷 수요가 기하급수적으로 증가하게 되었습니다.

  • Vladimir Levin과 공범자들은 CitiBank 중앙 데이터베이스에 침입하여 미화 10만달라에 이르는 자금을 불법적으로 다른 여러 개의 구좌로 전송하였습니다. 그 후 인터폴에 의해 Levin은 체포되었고 거의 대부분의 돈도 찾을 수 있었습니다.

  • 해커 중 가장 많이 알려진 사람은 아마도 Kevin Mitnick이라 할 수 있습니다. Kevin Mitnick은 여러 회사 시스템에 침입하여 유명 인사의 신상 정보에서부터 20,000개에 이르는 신용 카드 번호와 독점 소프트웨어의 소스 코드에 이르기까지 모든 것을 훔쳐낸 장본인 입니다. 그는 온라인 사기 혐의로 체포되어 유죄를 선고받은 후 5년형을 받고 감옥에 수감 중입니다.

  • Kevin Poulsen과 알려지지 않은 공범자는 자동차와 현금 상품을 타기 위해 라디오 방송국 전화 시스템을 조작하였습니다. 그는 컴퓨터와 온라인 조작 혐의로 5년형 선고를 받고 감옥에서 수감중입니다.

  • 유명한 해커의 스토리는 전설처럼 취급되며 여러 장래 해커 지망생들은 한 해마다 DefCon 총회를 개최하여 해킹의 역사를 축하하고 비슷한 해커들 사이에서 아이디어를 주고 받습니다.

  • 19살 이스라엘 학생은 페르시아 걸프 전쟁시 여러 차례에 걸쳐 US 정부 시스템에 침입 시도한 죄로 체포되어 유죄를 선고받았습니다. 군 관계자는 이 사건을 미국 역사상 "가장 조직적이고 계획적인 해킹 범죄"였다고 말합니다.

  • 미 범무 장관 Janet Reno는 정부 시스템을 상대로한 보안 위협이 증가하자 미 국립 기반시설 보호센터 (National Infrastructure Protection Center)를 설립하였습니다.

  • 알려지지 않은 인물이 영국 통신 위성을 제어한 후 막대한 돈을 요구한 사건이 있었습니다. 결국 영국 정부는 위성 통제권을 다시 뺏아올 수 있었습니다.

1.1.3. 현대 보안사

2000년 2월에 인터넷 상 가장 소통량이 많은 몇 개의 사이트에 분산 서비스 거부 공격 (Distributed Denial of Service - DDoS)이 가해졌습니다. yahoo.com, cnn.com, amazon.com, fbi.gov 및 여러 다른 사이트는 하나의 사이트로 많은 ICMP 요청 패킷을 보내어 시스템 자원을 모두 사용하게 하는 ping flood 공격을 받아 몇 시간 동안 일반 사용자들이 접속할 수 없었습니다. 알 수 없는 인물들이 광범위하게 사용되는 프로그램을 특별히 고안하여 취약한 네트워크 서버를 스캔한 후 서버 상에 trojans이라는 클라이언트 프로그램을 설치하여 정해진 시간에 이러한 서버가 목표 사이트에 수많은 패킷을 전송하여 사이트가 다운되도록 공격하였습니다. 많은 사람들은 라우터와 프로토콜이 들어오는 패킷이 어디에서 어떤 목적으로 들어오는지 판단하지 않고 모든 데이터를 받아들이도록 설계된 허점 때문에 이러한 공격이 가능하다고 비난합니다.

이제 약 4억명의 인구가 전세계적으로 인터넷을 사용하고 있는 새 밀레니엄이 왔습니다. 동시에:

  • 매일 약 225 건에 이르는 보안 침해 사건이 Carnegie Mellon 대학의 CERT Coordination Center로 보고되고 있습니다. [참조: http://www.cert.org]

  • 2002년 CERT에 보고된 사건의 숫자가 2001년의 52,658 건에서 82,094으로 상승되었습니다. 현재 이 책이 쓰여진 시점에서 2003년 첫 1분기에 보고딘 사건의 숫자만 해도 42,586에 이르고 있습니다. [참조: http://www.cert.org]

  • 지난 2년간 3개의 가장 위험한 인터넷 바이러스로 인한 경제적 손실이 미화 13.2천만 달라에 이르는 것으로 보고되었습니다. [참조: http://www.newsfactor.com/perl/story/16407.html]

컴퓨터 보안은 모든 IT 예산의 중요한 부분을 차지하고 있습니다. 데이터 무결성과 고가용성을 필요로하는 기업에서는 시스템 관리자와 개발자 및 엔지니어의 도움을 받아 항상 (24x7) 신뢰할 수 있는 시스템, 서비스와 정보를 제공하는데 주력하고 있습니다. 악의를 가진 해커나 프로세스 및 계획된 공격의 목표가 되는 것은 기업 성공에 직접적인 위협으로 간주됩니다.

기업에서 정보를 취급, 사용, 수정하며 전송하는 방법에 대한 복잡한 정보를 잘 숙지하고 있어야 하므로 시스템 보안과 네트워크 보안을 지키는 것은 절대 쉬운 작업이 아닙니다. 기업 (그리고 기업을 구성하는 구성원들)이 사업을 운영하는 방법을 잘 이해하고 있어야 적절한 보안 계획을 실현 가능합니다.

1.1.4. 보안 표준

모든 산업에서 기업들은 AMA (미국 의학 협회)나 IEEE (미국 전기 전자 학회)와 같은 기관에서 만든 법규와 규정에 따릅니다. 정보 보안에 있어서도 마찬가지입니다. 다수의 보안 컨설턴트와 판매업자들은 기밀성 (Confidentiality), 무결성 (Integrity), 가용성 (Availability), 즉 CIA로 알려진 표준 보안 모델에 동의합니다. 이러한 3계층 모델은 일반적으로 기밀 정보의 보안 위험성을 측정하고 적절한 보안 정책을 수립하는데 사용됩니다. 다음 부분에서는 CIA 모델에 대하여 보다 자세하게 설명하고 있습니다:

  • 기밀성 — 기밀 정보는 이미 정해진 구성원만 볼 수 있어야 합니다. 허가 없이 정보를 전송하거나 사용하는 것은 금지해야 합니다. 예를 들어, 기밀 정보를 보호함으로서 고객의 개인 신상 정보나 재정 정보가 도둑이나 신용 카드 사기를 목적으로한 사기꾼의 손으로 들어가는 것을 방지할 수 있습니다.

  • 무결성 — 정보를 불완전하게 수정하거나 잘못된 정보를 입력하는 것을 방지합니다. 정보 수정 권한이 없는 사용자가 기밀 정보를 수정하거나 삭제하는 것을 금지해야 합니다.

  • 가용성 — 정보를 볼 허가가 있는 사용자가 필요할 때마다 언지든지 정보를 사용할 수 있어야 합니다. 가용성이란 정해진 주기와 시간에 정보를 볼 수 있다는 것을 보증합니다. 가용성은 종종 퍼센트 단위로 측정되며 네트워크 서비스 제공자와 엔터프라이즈 클라이언트 간에 사용되는 서비스 수준 약정 (SLA)에서 정의됩니다.