네트워크 보안1 보안이란 무엇인가네트워킹 환경에서의 보안을 간단히 설명하면, 공격 당하기 쉬운 요소를 인지하고 제거하는 능력이다. 보안의 일반적인 정의에는, 컴퓨터 자체와 같은 물리적인 아이템들 뿐 만 아니라, 정보와 같은 조직의 자산을 보호하는 측면도 포함되어야 한다. 보안이라는 의미는 또한 적합함(appropriateness)과 종속(subordination)의 개념을 포함하고 있다. 보안을 담당하는 사람은 특정 아이템이나 상황에 대해 누가 그리고 언제 적합한 행동을 취할 수 있는지를 결정해야 한다. 이것이 회사의 보안이 될 때에는, 어떤 것이 적합한가는 조직에 따라 매우 다르게 나타난다 그러나, 네트워크를 구성한 모든 회사는 적합함과 종속, 그리고 물리적인 보안을 지향하는 보안 정책을 가지고 있어야 한다.이 장에서는 네트워크 보안, 프로토콜 레이어와 보안, 방화벽, 침입탐지 시스템에 대해 알아 볼 것이다.1.1 네트워크 보안네트워크는 전자적인 공격을 당할 위험이 있다. 인터넷 상에서 빈번히 증가하고 있는 공격은 인간에 의한 위협과 자연재해에 의한 위협도 있겠지만 가장 본질적인 문제는 인터넷 자체가 매우 불안정하다는 것이다. 인터넷은 네트워크와 연결되고 인터넷 서비스 제공자(Internet Service Provider: ISP)계정을 가진 사람이면 누구나 이용할 수 있다. 사실, 인터넷은 겙낱戀 네트워크(open network)로 설계되었고, 그래서 정보를 보호하는 데에는 관심을 두지 않았다. 이러한 불안정한 인터넷을 사용하는 사용자들에게 있어서 새로운 도전은, 권한을 가진 사람들은 사용 할 수 있도록 하면서도 중요한 데이터는 보호하는 것이다. 이런 문제점을 해결하기 위해서는 네트워크 보안 요구 사항들이 필요한데 살표보면 기밀성, 무결성, 부인방지, 신분확인 및 인증, 접근 제어, 가용성등이 있겠다.컴퓨터 네트워크 상에서 보안의 필요성을 알기 위해서는 먼저 네트워크상에서 발생되는 보안침입사례를 검토함으로서, 이에 대한 대책을 강구하는 방법이 중요시 되어야 부분의 물리적인 배치를 알고 있어야 한다. 해커가 네트워크에 침입하는 가장 일반적인 방법 중 하나는, 회사 내부 장비에 패킷 스니퍼(packet sniffer)를 설치하는 것이다. 물리적인 레이어가 미디어의 전자 신호를 정의한다는 것을 명심하라. LAN은 기저 대역(baseband) 전송을 이용하여 유선에 물리적으로 연결된 누구든지 유선상에 전송된 데이터를 읽게 한다. 컴퓨터의 네트워크 구조를 이해하는 것은 알려지지 않은 스니퍼의 실행을 막는데 도움이 된다. 가장 일반적인 네트워크 배치 방법(topologies)로는 스타형(star), 버스형(bus), 환형(ring)과 혼합형(hybrid)등이 있다2.4 네트워크 레이어TCP/IP 스택의 다음 레이어는 인터넷 혹은 IP 레이어이다. IP 레이어는 기본적으로 호스트의 주소를 정하거나 라우팅(routing)을 하는데 사용된다. 여기에서는 오류 수정이나 흐름 제어 방법들은 제공하지 않는다. IP 레이어는 데이터그램(datagram)을 전송하기 위해 최선 노력(best-effort)서비스를 사용한다. TCP,UDP,ICMP,IGMP와 같은 상위 레이어의 커뮤니케이션은 IP 데이터그램 안에 캡슐화 된다. TCP와 UDP는 고유한 자신들의 영역에서 논의되지만,ICMP나 IGMP는 오직 인터넷 계층에만 존재하는 것으로 여겨지고 IP 계층 프로토콜과는 별도의 것으로 알려져 있다.네트워크 레이어(layer)에서 사용되는 프로토콜은 호스트간의 커뮤니케이션을 돕는데 사용된다. 대부분의 보안 위협은 TCP/IP 스택의 이 계층에서 기인하지는 않지만, 어떤 프로토콜이 사용되는지는 숙지하고 있어야만 한다.인터넷 프로토콜(IP)IP 주소는 TCP/IP 네트워크에서 호스트를 유일하게 파악하는 32비트의 주소이다. 여러분은 IP주소가 무엇이며, IP 헤더가 무엇을 담고 있는지 알아야 한다. IP 헤더의 전체 크기는 20바이트이다. IP 헤더는 여러 개의 정보 필드와 제어 필드로 이루어져 있으며, 출발지의 32비트 IP 주소와 목적지의 3지의 보안 문제만 고려하면 된다. 호스트는 UDP 메시지를 전송하고 응답을 기대하지 않기 때문에, 이러한 종류의 데이터그램에 악의적인 활동을 펼치는 것은 어렵다.포트TCP와 UDP 모두 포트(port) 개념을 사용한다. TCP/IP를 운영하는 장비는 거의 언제나 여러 다른 어플리케이션을 동시에 운영하고, 모두가 동시에 상호 통신할 수 있어야 한다. 예를 들어, 패킷(packet)을 적당한 프로그램에 전달할 수 있도록 하는 메커니즘이 필요하다. 항구가 여러 부두를 가지고 있어 배가 처리되는 것처럼, 초기의 개발자들은 정보를 이와 비슷한 방법으로 처리하고자 했다.적절한 정보의 관리를 가능하게 하려면, 각각의 프로그램에게 특정 TCP혹은 UDP 포트 번호를 할당해야 한다. 컴퓨터로 들어온 네트워크 패킷(packet)은 포트번호를 가지고 있고, 운영 체제에 의해 적당한 프로그램으로 전달된다. 최근에는 기본 포트 번호가 표준화되어 있다. 예를 들면, 파일 전송 프로토콜(File Transfer Protocol)은 TCP 20과 21을, DNS(Domain Name Server)는 TCP 53과 UDP 53을, 웹 서버는 TCP 80을 사용한다. SNMP는 UDP 포트 161과 162를 쓰는 반면에, 메일 서버는 TCP 포트 25를 사용한다.TCP나 UDP에 사용할 수 있는 포트는 65,536 개가 존재한다. IANA(Internet Assigned Numbers Authority)는 잘 알려진 처음 1023개 포트를 정의하였다. 잘 알려진 포트들은 앞서 언급한 것들과 같은 서버측의 어플리케이션을 위해 예약되었다. 서버 어플리케이션은 1023보다 큰 정의되지 않은 어느 것이나 사용할 수 있으며, IANA를 거치지 않아도 된다.이러한 정보는, 보안이 대부분 네트워크 패킷(packet) 관리 능력에 달렸기 때문에 매우 중요하다. 여러분은 이러한 패킷(packet)이 어느 컴퓨터로 혹은 어느 프로그램으로 갈 것인지를 정확히 판단할 수 있어야 한다.2.6 어플리케이션 레이어마지로 들어올 수 있는 유일한 지점을 의미하므로 초크 포인트(choke point)라 불리기도 한다. 연결 요구를 받으면 방화벽은 그 요구를 확인 한 후에 승인된 호스트로부터의 요구만을 처리하고 아닌 경우에는 무시한다.3.2 방화벽 시스템 설계시 고려사항어떤 자원을 보호할 것인가?-보호하고자 하는 하드웨어, 소프트웨어, 각종 중요한 정보, 시스템 사용자, 시스템관리에 대한 도큐먼트 등을 정의하고, 방화벽 시스템 구축 시 이를 고려하여야 한다.어떤 위협이 존재하는가?-보호하고자 하는 자원 및 정보들에 대한위협이 어떤 것들이 있는가를 분석한다.자원이 얼마나 중요한가?-보호하고자 하는 자원의 중요성이 어느 정도인가를 분석한다.어떤 사용자를 인가할 것인가?-사용자 계정을 가진 사용자만이 네트웍을 사용하도록 할 것인지, 비 인가자라도 제한된 자원을 사용하도록 할 것인지를 결정한다.요구되는 응용 및 서비스는 무엇인가?-보호하고자 하는 네트웍에서 사용 가능한 응용 및 서비스들이 어떤 것들이 존재하는지를 분석한다.비용 대 효과 측면에서 보호하기 위해 실현될 수 있는 기법은 무엇인가?-파일이나 디렉토리 등은 액세스 제어에 의해 보호하고, 네트웍장비 및 호스트의 보호는 방화벽 시스템 사용 등의 보호 기법을 고려한다.해커 등의 불법 침입 감지 시 취해야 할 행동은 무엇인가?-해커 등과 같은 불법침입자가 시스템내부에 침입했을 때 취해야 할 대응책을 마련해야 한다.정기적으로 시스템을 점검한다.-보호하고자 하는 네트웍 및 자원들에 변화가 일어났는지 정기적으로 점검하고 기록한다. 이러한 행위는 시스템관리자 및 네트웍 관리 시스템에 의해 자동적으로 실행한다.일반적으로 방화벽 시스템을 설계할 때 사용하는 패러다임은 다음 두 가지로 구분된다.-내부 네트웍으로의 진입을 명확하게 허용하지 않는 트래픽은 내부 네트웍으로의 진입을 방지한다.-명확하게 내부 네트워크로의 진입이 방지되지 않는 트래픽은 네트웍으로의 진입을 모두 허용한다.3.3 방화벽의 구조방화벽은 외부 네트웍과 내부 사설망의 경계에 패킷필터 있다가, 이 프로파일에서 벗어나는 행위들을 탐지하는 방법- 오용 침입탐지(misuse detection) : 시스템의 알려진 취약점들을 이용하여 공격하는 행위들을 사전에 공격에 대한 특징 정보를 가지고 있다가 탐지하는 방법Host-based IDS vs. Network-based IDS① Host-based IDSH-IDS는 시스템 상의 한 소프트웨어 프로세스로써 존재한다. H-IDS 시스템들은 전형적으로 특정 정보에 대한 로그 엔트리를 검토해왔다. Unix 시스템상에서 일반적으로 검토되는 로그는 Syslog, Messages, Laslog, 그리고 Wtmp를 포함한다. Windows 시스템 상에서는 시스템, 응용, 그리고 보안 이벤트 로그들이 검토된다. H-IDS 프로세스는 주기 적으로 새로운 로그 엔트리를 찾고, 그것들을 미리 구성된 규칙에 매치시킨다. 만약 어떤 로그 엔트리가 한 규칙과 매치된다면, H-IDS는 경보를 울릴 것이다. 만약 H-IDS가 제대로 기능을 한다면, 필요한 정보들은 로그에 나타나야 한다. 따라서, 가장 흥미로운 정보가 응용에 의해 생성된 것이라면, 그 응용이 시스템상의 표준 로그에 그 정보를 갖다 놓거나, H-IDS가 응용 로그를 검사할 수 있어야 한다.H-IDS의 주요 장점.- 공격이 로그 메시지를 만들어 내는 한, H-IDS는 시스템에서 전달되는 공격 트래픽을 놓치지 앟을 것이다.- H-IDS는 로그 메시지나 시스템상의 다른 징후들을 검사함으로써, 공격이 성공적이었는지를 결정할 수 있다.- H-IDS는 합법적인 시스템 사용자에 의하여 행해지는 권한이 없는 접근 시도를 확인하는데 이용될 수 있다.H-IDS의 주요 단점.- H-IDS 프로세스는 공격자에 의해서 확인될 수도 있고, 사용이 불가능하게 될 수도 있다.- H-IDS 시스템은 로그 진입이나, 시스템 호출이 미리 구성된 규칙이나, 서명과 매치될 경우에는 경보만 울릴 것이다.- 어떤 H-IDS 시스템들은 운영체제 소프트웨어에 대한 지원과 유지 합의를 끼워 넣을 것이다. 이것은시스템.