프로그래밍[Univ]/네트워크

[네트워크] 방화벽과 침입방지/탐지 시스템, 망관리

Cloud Travel 2012. 12. 8. 13:22
* Firewalls 

 - 외부망으로부터 들어오는 특정 패킷의 접근을 막으므로서 외부망으로부터 내부망을 보호하는 것

 - 불법적인 동작, 비허가 사용자의 접근, 서비스 거부 공격을 막는다.

 - packet filter, application gateway, privacy firewalls 방법으로 구현된다.

 ⓐ packet filter

  - 내부망은 특정 라우터를 반드시 통과해야 외부망에 접근이 가능하다.

  - 이 라우터는 각 패킷에 통과 여부를 결정하는 packet을 필터링 기능을 수행한다.

  - 패킷 필터 여부는 표로 정의하여 저장한다.(Policy and setting)

  - ACL(Access control lists) : 모든 도착 패킷에 적용되는 규칙들을 정의한 테이블

  - stateless packet filter : 논리적으로 타당하지 않은 패킷도 허용될 수 있다.

  - stateful packet filter : 모든 TCP연결을 추적한다.

  - stateless 일 경우 공격자는 지속적으로 port번호를 변경하면서 ACK을 보낸다. 

   > 방화벽을 통과하는 경우 그 port를 이용하여 내부로 접속이 가능하게 된다.

  - stateful 일 경우 ACL에 연결검사 항목을 추가하여 stateless에서 발생하는 공격을 방어한다.

  - 빠르지만, 바이러스에 취약하며, 현재 연결 상태를 기억하지 못한다.

 ⓑ Application gateways

  - 응용 데이터 필드에서 필터링을 실시한다.

  - 느리지만, 나쁜 데이터를 걸러 낼 수 있다.


* 침입 방지 시스템(Intrusion Prevention Systems)

 - 공격자기 들어오는 것을 방지한다.

 - 일종의 경보시스템으로 인증, 방화벽, 바이러스 방어등 전통적인 컴퓨터 보안의 관심이 사항이다.


* 침입 탐지 시스템(Intrusion Detection Systems)

 - 침입 방어에도 불구하고 공격자가 시스템 내로 들어올 수 있다.

 - Intrusion detection systems(IDS)

  > 비정상적인 행위를 찾는 것으로 침입한 사람이 있는지를 판별한다.

  > 자동 IDS는 로그 파일을 분석하면서 이를 판별한다.

 - IDS는 침입 탐지에만 목적이 있지 해결은 하지 않는다.

 - 공격자는 내부인일 수도 있고 외부인일 수도 있다.

 - 공격 형태가 희귀하고 잘 알려지지 않을 수록 탐지가 점점 힘들어 진다.

 - 방화벽은 수동적으로 설정하는 것에 비해 IDS는 자동적으로 활동을 한다.

 - 침입 탐지 접근 방법

  ⓐ 흔적 기반 IDS

   > 일련의 미리 정의된 공격을 탐지하는 유형

   > 네트워크 트래픽을 탐지

   > 단순하며, 효율적이다. 하지만 이미 알려진 공격에만 반응을 하고, 새로운 공격 방법에 대해서 지속적인 갱신이 필요하다.

   eg) M초 동안 N번 로그인 실패(Trial Error) : 크래킹 시도로 보고, 경고를 한다.

        ( N과 M을 적당하게 하는 것이 힘들며, 공격자는 여러번의 시도로 N과 M을 알아낼 것이다.

          이를 이용하여 지속 공격을 실시할 것이며, 공격을 지연시키지만 막을 수는 없다. > N과 M을 계속 바꿔준다)

  ⓑ 비정상 기반 IDS

   > 비정상적인 행동은 높은 확률로 공격이다.

   > 통계를 기반으로 정상과 비정상적인 행동을 나눈다.

   > 정상적인 행동이라는 것을 하는 동안 이를 데이터화하여 추척하여, 정상행동을 추출해낸다.

   > 이때 분산도 계산해야 Trial 횟수에 대해서 어느정도 여유를 줄 수 있다.

   > 시스템이 변화함에 따라 IDS도 발전해야 한다.(Adaptation 필요)

   > 알려지지 않은 공격을 탐지할 수 있지만, 신뢰성이 불분명하다.

   eg1) Open, Read, close의 명령어에 대해서 올바르지 않은 순서로 발생하면 공격이다.

          (open,read), (read,close), (close, open), (open,open) : 정상

          (read, open), (close, read) : 비정상

   eg2) 정상적인 행동을 했을 때 얻은 통계량과 최근 사용자가 행동한 통계량을 비교한다.

          // h[i] : 정상적인통계량, a[i] : 현재 행동의 통계량

          for ( i = 0 ; i < n ; i++ ) s += (h[i] - a[i])^2;

          여기서 계산된 s값이 0.1보다 작으면 정상. 아니면 비정상 처리

          여기서 정상으로 처리된 경우 이전에 있던 통계량과 합쳐서 계산해야한다.

          이때 새로운 통계량은 h[i] = 0.8*h[i] + 0.2*a[i] 와 같이 일정 비율로 적용시킨다. 

 - 침입 탐지 적용 위치

  ⓐ 호스트 기반 IDS

   > 알려진 공격(흔적 기반), 의심스런 행동(비정상 기반)을 감지한다.

   > 오버플로우, 권한 상승등과 같은 공격을 탐지 하기 위해서 설계

   > 잘 알려진 공격은 백신으로 통해서 호스트에게 배포된다.

  ⓑ 네트워크 기반 IDS

   > 네트워크에서 잘알려진 공격(흔적 기반), 의심스러운 행위(비정상 기반)를 감시

   > 서비스 거부, 네트워크 탐색, 잘못 된 패킷 전송등의 공격을 탐지하게 설계되었으며 방화벽과 겹치는 부분이 많다.


* 망관리 : Network management

 - 인터넷에 접속된 노드에 대한 정버를 파악하여 적절히 대처하는 것

  > 노드의 구성 정보, 트랙핑 량등에 대한 통계 조사를 실시

 - 망관리 요구사항

  > 장애 관리

  > 구성 관리

  > 보안 관리

  > 계정 관리

  > 성능 관리

  > 동작 관리

  > 저장 관리

  >  ...

 - 망관리 구조의 3개의 요소

  ⓐ MIB : 망관리 개체의 집합

  ⓑ SMI : MIB개체를 정의 하는 방법

  ⓒ SNMP : manager와 agent 사이에 관리 정보를 교환하는 방법

  Manager와 Agent는 SNMP를 통해서 통신을 하며, Manager는 client, agent는 server의 역할을 한다.

  Agent는 정의된 SMI에 맞춰서 정보를 수집하다가 Manager의 요청이 있으면, 보유한 SMI 개체를 Manager에게 전송한다.

  Manager는 전송받은 SMI개체를 MIB에 정렬한다.

 - SMI의 정의

  > Object ID : 망에서 유일하게 개체에게 할당되는(정의되야) 하는 값. OSI 표준에 따라서 값을 부여 받는다.

  > NAME : 개체 이름

  > Data type : 개체에서 저장하고 있는 데이터의 유형

  > Comments : 개체에 대한 설명

 - 망관리 프로토콜

  ⓐ CMIP(Common Management Information Protocol) : SNMP보다 먼저 표준화를 시도했지만, 천천히 진행함

  ⓑ SNMP(Simple Network Management Protocol) : CMIP에 비해 단순하며, CMIP보다 빠르게 보급됨.

   > 현재 SNMP V3(V1에서 보안이 추가됨)을 사용하고 있다.

   > SNMP로 통신을 할때 관리자 이외에 다른 사람이 SIM 개체를 request할 수 있다.(관리자 인증 필요)

   > Agent가 Manager에게 전송할 때 누군가가 정보를 수정할 수 있다.(암호화 필요, 메세지 무결성 필요)

   > Agent는 예기치 못한 일이 발생했을 때 Trap msg를 전송하는데,

      Manager는 Trap msg가 자신이 아는 Agent에게 온 것인지 인증할 필요가 있다.

   > 위와 같은 이유로 SNMP는 DES(or AES)로 SNMP메세지를 암호화하여 보낸다.

   > 인증은 HMAC을 통하여 하며, nonce값을 사용하여 재사용 공격을 막는다.(MIC = MAC)

   > SNMP 개체에 대한 사용자 접근 권한 및 다양한 정책을 통해 데이터 베이스를 보호, 유지한다.