침입차단시스템

침입차단시스템은 외부 네트워크로부터의 침입에 대해 내부 네트워크를 보호하기 구성 요소 중의 하나를 말한다.

방화벽 개요

방화벽은 외부의 불법 사용자의 침입으로부터 내부의 전산 자원을 보호하기 위한 정책 및 이를 지원하는 하드웨어와 소프트웨어를 총칭하는 보안솔루션을 말한다.

방화벽 주요 특징 및 보안정책 개념

방화벽의 주요 기능 및 보안정책 개념은 다음과 같다.

구분 설명
방화벽 주요 특징 • 네트워크 서비스 별로 해당 서비스를 요구한 호스트의 IP주소와 포트번호, 사용자 인증에 기반을 두고 외부 침입을 차단
• 허용된 네트워크 사용자에게 원하는 서비스를 제공하면서 허용되지 않은 사용자에게는 서비스를 차단하고, 해당 서비스의 허용 또는 실패에 대한 로그를 생성. 방화벽의 종류와 특성에 따라 네트워크 사용자에게 투명성을 보장하지 않을 수도 있음
• 방화벽의 주요 기능 요약
- 외부 네트워크와 연결된 유일한 통로 역할 수행(Gateway)
- 서비스 접속 및 거부, 사용자 인증
- 내/외부 상호 접속된 네트워크에 대한 트래픽 감시, 기록
방화벽 보안정책 개념 • 거의 모든 방화벽은 기본 보안 개념으로 “명백히 허용되지 않은 접근은 금지한다”의 정책을 수립하고 있으며 이는 보안 규칙에 명백히 허용(설정)되지 않은 네트워크와 호스트는 내부 자원에의 접근을 금지
• 내부 자원을 보호하기 위한 방화벽의 보안 정책 요약
- 명백히 금지되지 않은 것은 허용
- 명백히 허용되지 않은 것은 금지

구현방식에 따른 방화벽 종류

방화벽은 구현방식(보안정책을 적용하는 검사엔진에 따라)에 따라 일반적으로 패킷필터링방식, 프락시방식, 서킷 게이트웨이방식, 스테이풀 인스펙션방식으로 구분된다.

구분 설명
패킷필터링방식 • 네트워크 프로토콜 OSI모델의 네트워크층과 전송층에서 패킷을 필터링하는 기능을 수행하며, 패킷필터링 규칙을 사용하여 발신처 주소와 서비스 포트가 목적지 주소와 서비스 포트로의 접근을 기반으로 네트워크 접근 제어 구현
프락시방식 • 네트워크 프로토콜 OSI모델의 응용계층에 구현되며 각 서비스별로 프락시 데몬이 있어 내부망의 시스템에 대한 직접적인 접근을 막으며 서비스별 프락시가 서비스 요구자와 IP주소 및 포트를 기반으로 네트워크 접근 제어 구현
서킷 게이트웨이방식 • 네트워크 프로토콜 OSI모델의 전송 계층과 세션 계층에서 구현되며 TCP프락시와 UDP프락시가 존재하여 내부망과 외부망의 시스템이 직접 연결되는 것을 차단
Stateful Inspection 방식 • 패킷의 해더, 발신지, 목적, 포트번호의 문맥을 이용한 접근통제 방법으로 MAC레이어와 IP 프로토콜 스택 사이에서 동작

패킷필터링방식 (Packet Filtering)

패킷필터링방식은 가장 간단한 형태의 구현 기술로서 IP Header와 Protocol(TCP/UDP/ICMP 등) Header의 정보(통상 Source/Destination IP Address, Port Number)만을 이용해 미리 설정된 보안정책(Security Policy 또는 Access Control Rule)에 따라 해당 패킷을 통과 시킬 것인지 말 것 인지를 결정한다.

현재 출시되고 있는 대부분의 Router에는 기본 기능으로 내장되어 있으며 또한, 대부분의 상용 방화벽솔루션들도 어떤 형태로든 패킷필터링 기능을 기본적으로 제공하고 있다.

패킷필터링방식은 물리적인 구현 형태에 따라 스크리닝라우터로 구성할 수도 있으며, 베스천호스트와 패킷필터링 소프트웨어로도 구현할 수 있다.

패킷 필터링방식(이미지)

구분 설명
구현 방법 • 접근 통제 기능이 OSI 모델에서 제 3, 4계층에서 처리하고 있으며 발신처 주소와 서비스 포트가 목적지 주소와 서비스 포트로 접근하는 것을 허용하거나 금지
주요 기능 • Source / Destination IP Address를 이용한 호스트 별, 네트워크 별 접근제어 구현
• TCP / UDP 포트를 이용한 응용 서비스 별 접근 제어 구현
• TCP / UDP / ICMP 등 프로토콜 별 접근 제어 구현
• TCP Sync 비트를 이용한 최초 접근 제어 구현

프락시방식 (Application-level Proxy)

프락시방식은 특정 애플리케이션 서비스에 대해 내부망과 외부망을 연결시켜 주는 중간 매개자 역할을 하는 것으로, 클라이언트-서버 간의 Direct connection 대신, 클라이언트를 대신해서 서버와의 Connection을 열어 클라이언트-서버 사이의 통신을 중개해 준다.

프락시방식(이미지)

구분 설명
구현 방법 • 클라이언트에게는 애플리케이션 서버로서, 애플리케이션 서버에게는 클라이언트로서 동작하여 통신을 중개
• 각각의 애플리케이션 프로토콜을 애플리케이션 프락시로 실제 구현
주요 기능 • 정교한 접근제어 가능(IP Address, Port Number, 애플리케이션 서비스, 시간/날짜 별로도 접근제어 구현이 가능)
• 상세 로그 기록 가능 (Address, Port number, 실행된 Command, 전송된 File 이름, 바이트 수, 소요시간, 사용자 별 사용빈도 등 구현)
• 비정상적인 Network Activity를 가려내어 대책을 세우는데 필수적이며, 외부에서는 프락시 서버만 인식하므로 내부 망의 시스템 구성(IP Addresses 등)을 외부로부터 완전히 은폐

최근 출시되는 2세대 프락시 방식은 클라이언트 설정이 필요 없는 Transparent 프락싱 기법을 제공하고 있다.

  • 2세대 프락시 방식은 클라이언트가 방화벽을 프락시 서버로 사용하도록 설정하는 대신, 방화벽이 네트워크 트래픽을 모니터링 하여 외부의 애플리케이션서버로 전송되는 패킷을 가로채 클라이언트의 Original Request를 echo하여 그 Request가 방화벽으로부터 전송되는 것처럼 만들어주고, 애플리케이션 서버로부터 수신되는 패킷에 대해서도 마찬가지의 과정을 수행해 줌으로써 클라이언트에게는 Response가 외부로부터 오는 것처럼 동작
  • 이러한, Transparent 프락싱은 클라이언트 설정에 소요되는 시간적/경제적 비용을 최소화할 뿐만 아니라 사용자의 이용 편리성을 높여 줌으로써 사용자가 불편에 의해 방화벽을 우회하는 일이 없도록 해주는 등 방화벽의 기능을 향상시켜 주는 기술

서킷 게이트웨이방식 (Circuit Gateway)

서킷 게이트웨이방식은 애플리케이션 프락시와 유사한 프락시 기능을 제공하지만 애플리케이션 레벨이 아니라 통상 Session Level에서 동작하는 형태이며, Session-by-Session Basis로 클라이언트와 서버사이에 가상의 서킷을 형성하여 데이터를 전달하게 된다.

따라서, 프락시방식과 서킷 게이트웨이방식의 차이/장단점은 단순히 애플리케이션 레이어와 Session 레이어 처리과정의 차이로부터 온다.

즉, 프락시방식은 개별 애플리케이션마다 개발되어야 하는 Dedicated 프락시이지만 서킷 게이트웨이방식은 애플리케이션 서비스와 무관한 Session 레이어에서 동작하므로 대부분의 프로토콜을 자동으로 지원할 수 있다. 반면, 애플리케이션 프로토콜을 해석하지 않으므로 Application-Specific Access Control이나 로그기록/감사 기능을 제공하지는 못한다. 서킷 게이트웨이방식의 대표적인 것으로 인터넷 표준 SOCKS V5를 들 수 있다.

서킷 게이트웨이방식(이미지)

Stateful Inspection 방식

Stateful Inspection 방식은 패킷의 헤더, 발신지, 목적지, 포트번호의 문맥을 이용한 최신의 접근통제방식으로 MAC레이어와 IP프로토콜 스택 사이에서 동작되며 SYN 패킷에 의해 만들어진 세션 테이블을 이용, 후속 패킷들에 대해 규칙테이블 검사없이 고속으로 처리가 가능하며 패킷 절차가 맞지 않은 DOS 공격의 차단이 용이하고 UDP패킷들에 대한 가상 세션을 형성 인바운드/아웃바운드 방향성 통제가 가능한 동적 패킷 필터링 방식이다.

Stateful Inspection 방식 이전에는 정적/동적 필터링방식이 존재하였으며 각 차이점은 다음과 같다.

구분 설명 필터링방식의 예
정적/동적 필터링 방식 간의 차이점 정적 패킷 필터링방식
(Static Packet Filtering)
• 각 패킷을 정해진 접근 정책에 따라 독립적으로 “허용 또는 거부”하는 패킷 필터링방식 • 패킷 필터링방식에서 인터넷으로의 Outbound Traffic은 모두 허용하되, Inbound Traffic은 사용자의 Request에 대한 Reply만을 허용하는 보안정책을 적용시키려 하고자 할 경우, 정적 패킷 필터링방식은 모든 Inbound Traffic을 허용하거나 막거나 할 수 밖에 없겠지만, 동적 패킷 필터링방식의 경우는 모든 Request를 기록하여 이에 대응하는 Reply만 통과시키는 동적 접근정책(Dynamic Access Rule)을 적용시켜 해당 Reply 패킷들이 모두 들어온 후에는 해당 통로를 봉쇄
• 따라서, 동적 패킷 필터링방식은 정적 패킷 필터링방식에 비하여 훨씬 정교한 접근통제 구현이 가능
동적 패킷 필터링방식
(Dynamic Packet Filtering)
• 활성화된 연결상태(Active Connection)에 대한 상태를 관측하여 이를 바탕으로 패킷의 통과 여부를 결정하는 필터링방식

Stateful Inspection 방식은 동적 패킷 필터링방식보다 발전된 형태로 Check Point Software Technology사의 ‘Firewall-I’에서 처음 적용하였으며 현재에는 대다수의 방화벽에서 제공하고 있다.
이러한 Stateful Inspection 방식은 단순히 Header 정보만 가지고 필터링을 하는 대신 패킷 인스펙션은 Header뿐만 아니라 패킷 내용(문맥) 전체를 해석하여 접근정책을 적용하는 방식으로 Network Layer에서 Application Layer까지 모든 프로토콜을 이해하는 Inspection Module에서 모든 Layer로부터 관련 정보를 얻은 후 이를 바탕으로 보안정책을 수행한다.
특히, 과거의 패킷에 대한 정보, 즉 State Information을 지속적으로 유지하여 이를 바탕으로 현재 패킷의 통과 여부를 결정한다. 예를 들어 해당 Connection의 첫 패킷만을 접근정책과 비교하여 통과 여부를 결정하고, 이 정보를 State Information에 추가하여, 그 Connection의 후속되는 패킷들은 이 State Information에 따라 통과시키거나 거절하고, Connection이 끝나면 자동적으로 해당 State Information을 삭제하여 동적 패킷 필터링을 제공할 수 있다.
물론 UDP나 RPC같은 Stateless Protocol에 대해서도 Application Data로부터 유사한 상태정보를 추출할 수 있으며 만일 어떤 서비스가 Application Data에 대한 검사가 필요하다면 각 패킷에 대한 추가적인 Application-Level Processing을 적용시킬 수도 있다.
패킷 인스펙션은 기본적으로 패킷 필터링을 적용하되(프락시 방식 모방) Application Processing보다는 훨씬 적은 부하로 Application Data를 해석하여 필터링 하는 기술로, 프락시 방식보다 훨씬 나은 성능을 가지면서도 이에 버금가는 Protection Capability를 주며, 사용자 및 애플리케이션에 투명성을 제공하는 패킷 필터링의 장점을 지닌다고 할 수 있다.

Stateful Inspection방식(이미지)

방화벽 구현방식별 장단점

방화벽 구현방식(보안정책을 적용하는 검사엔진에 따라)에 따른 장단점은 다음과 같다.

구분 장점 단점
패킷 필터링방식 • 처리속도가 상대적으로 빠름
• 사용자에게 투명성 제공
• 새로운 서비스에 대해 비교적 쉽게 연동 가능
• 다른 방식에 비해 저렴한 구축 비용
• 기존 응용서비스 프로그램에 대한 수정 불필요
• 모든 트래픽이 IP패킷 형태로 되어 내부시스템과 외부시스템이 직접 연결
• 데이터가 IP수준에서 처리되어 데이터 내용에 대한 분석 불가능
• 접근제어를 위한 복잡한 규칙으로 인해 운영상 어려움 발생
• IP패킷 헤더정보(소스, 목적지 주소/포트 등)에 대한 변조 가능성 존재
• 로깅 및 사용자 인증 기능에 대한 한계성 존재
프락시 방식 • 내부 네트워크와 외부 네트워크간에 직접 연결이 허용되지 않기 때문에 외부의 공격으로부터 일차 보호 가능
• 기존에 사용하고 있는 응용서비스 프로그램에 대한 수정 불필요
• 일회용 패스워드 등의 향상된 인증 기법 사용 가능
• 강화된 로깅 및 감사 기능 제공
• 각 서비스별 개별적인 접근제한/이용 시간 등의 부가적인 기능 구현 용이
• 프로토콜 및 데이터 전달 기능을 이용하여 새로운 기능 추가 가능
• 처리속도가 상대적으로 느리며 사용자에게 투명성을 제공하기 힘든 방식
• 새로운 서비스 제공을 위해서는 새로운 프락시가 추가되어야 하기 때문에 새로운 서비스에 대한 유연성 부족
서킷 게이트웨이 방식 • 단순하면서도 서비스의 유연성 높음
• 다른 방식에 비해 좀더 높은 보안성 제공
• 서킷 프로토콜 통신을 위한 사용자측의 프로그램 수정 필요
스테이트풀 인스펙션 방식 • 보안성 우수
• 새로운 서비스 부가 용이
• 보안에 비례한 구축의 복잡성
• 높은 구축 비용 발생
• 관리의 복잡성

설치 위치에 따른 방화벽 구축 형태

방화벽 구축 형태는 방화벽이 네트워크 상의 어디에 위치하느냐에 따라 다양하게 구분될 수 있으며 일반적으로, 내부의 신뢰성 있는 네트워크와 외부의 신뢰성 없는 네트워크 사이에 위치하게 되지만 구축 형태에 따라 약간의 차이가 존재한다.

그러나, 현재에는 듀얼홈드 호스트 구조를 기본으로 하여 네트워크망이 구축되고 있으며 일반적인 구축 형태는 다음과 같다.

  • 듀얼홈드 호스트 게이트웨이는 두 개의 네트워크 인터페이스를 가진 Bastion 호스트를 말하며, 하나의 네트워크 인터페이스는 인터넷 등 외부 네트워크에 연결되며, 다른 하나의 네트워크 인터페이스는 보호하고자 하는 내부 네트워크에 연결되어, 양 네트워크간의 라우팅은 존재하지 않는 형태로 양 네트워크간의 직접적인 접근을 차단
  • 만약 라우팅이 가능하면 외부 네트워크로부터 내부 네트워크로의 액세스가 가능 하기 때문에 라우팅이 없는 Dual-Homed 게이트웨이를 이용하여 인터넷 혹은 내부 네트워크의 정당한 사용자들이 응용 서비스를 제공받는 방법은 두 가지로 구분
    • 듀얼홈드 게이트웨이상에서 실행되며 서비스를 제공하는 proxy 서버를 사용
    • 응용 서비스를 제공해주는 듀얼홈드 게이트웨이에 직접 로그인한 다음 다시 내부 네트워크로 접근하는 것으로 이 경우 강력한 인증 방법이 게이트웨이에 구현
  • 따라서, 해커나 불법 침입자가 악용할 소지가 있는 명령어(suid, sgid 등), 유틸리티 및 불필요한 서비스, 프로그래밍 도구(컴파일러 등)를 이들이 사용할 수 없도록 Dual-Homed 게이트웨이에서 삭제하여야 하며, 라우팅의 비활성화
  • 또한, 로그인에 대한 기록 정보 및 감시 추적에 필요한 기록을 정확히 유지 관리하여야 하며 외부 네트워크로부터 내부 네트워크로 진입하기 위해서는 Dual-Homed 게이트웨이를 통과

방화벽의 주요 기능

방화벽 제품의 주요 기능을 요약하면 다음과 같다.

기능 기능 설명
접근 제어 • 패킷 헤더에 포함되어 있는 IP Address, Port 번호 등을 기초로 패킷 흐름 제어
• 응용프로토콜 마다 제어가 가능
네트워크 주소 변환 • IP주소 보호 및 사설 IP를 위한 주소 변환 기능 제공
모니터링 및 알람 • 접근하는 모든 접속요구를 기록하며 이에 대한 감사 수행
사용자 확인 • 접속요구 시 본인여부를 확인
암호화 • 통신중의 데이터를 암호화하여 데이터의 노출 금지

접근제어

최근 출시되고 있는 방화벽들은 최신의 패킷필터링방식인 Stateful Inspeciton 방식과 프락시 방식이 결합된 * Hybride 형태로 접근제어를 구현하고 있으며 접근제어와 관련된 주요 기능은 다음과 같다.

  • 시간대/사용자/네트워크/서비스별로 차등 보안정책 설정을 통해 강력한 접근통제 정책 구현
  • 침입탐지 모듈을 탑재하여 주요 해킹 공격 탐지 및 차단
    • Source Route, IP Spoof, Land Attack, UDP Echo Loop, Finger Print Scanning, Port Scanning 등
  • 주요 국산 IDS와 연동하여 자동적인 대응 및 차단 정책 구현

접근제어 구현(이미지)

네트워크 주소 변환

네트워크주소 변환(NAT : Network Address Translation)는 외부 네트워크에 알려진 것과 다른 IP 주소를 사용하는 내부 네트워크에서, IP 주소를 변환하는 것이다.
일반적으로, 한 회사는 자신의 내부 네트워크 주소를 하나 또는 그 이상의 공인 IP 주소로 사용하며 그리고 들어오는 패킷들 상의 공인 IP 주소를 다시 사설 IP 주소로 변환한다. 이렇게 함으로써 나가거나 들어오는 각 요구들은 주소 변환과정을 반드시 거쳐야 하기 때문에, 보안문제를 확실하게 하는데 도움이 되며, 또한 요구를 제한하거나 인증하고, 또 이전의 요구와 일치시키는 기회를 제공한다. NAT은 또한 회사에서 필요한 공인 IP 주소의 수를 보존하며, 회사가 외부 네트워크와 통신에서 단 하나의 공인 IP 주소를 사용할 수 있게 한다.

방화벽에서 제공하는 NAT기능은 다음과 같다.

  • 외부의 공인 네트워크 주소를 내부의 사설 네트워크 주소로 변환
    • Normal NAT기능: 1:1, 1:N, M:N, Reverse NAT 매핑기능 지원
  • NAT를 적용하지 않을 별도의 호스트 및 네트워크 지정 가능
  • 특정 시스템으로 지정한 서비스를 Forwarding할 수 있는 Redirect NAT 지원


네트워크 주소 변환(이미지)

모니터링 및 알람

방화벽 SW는 실시간 상태 감시를 위하여 다양한 모니터링방안 및 알람 기능을 제공하고 있다.

  • 방화벽을 통하여 서비스 중인 실시간 세션상태의 모니터링 및 검색 기능 제공
  • 실시간 세션상태 모니터링 중 의심스러운 세션에 대한 차단 기능 제공
  • Telnet, SMTP등의 일부 서비스에 대한 세션캡처를 통한 사후 감사 추적 기능 제공
  • 중요 보안정책 위반 시 E-Mail, 스크립트, SMS, SNMP트랩 등을 이용하여 관리자에게 해당 사실 통보기능 제공
  • 현재 주소 변환 상태를 실시간으로 모니터링 할 수 있는 NAT상태 감시 기능 제공
  • SNMP Trap을 이용하여 특정 이벤트를 NMS(Network Management System)로 전송할 수 있는 기능 제공

사용자 인증

방화벽 SW는 사용자 인증을 위하여 다양한 형태의 인증기법을 제공하고 있다.

  • 사용자 인증방식으로 자체 Password 인증기법 및 일회용패스워드 등을 지원
  • 강력한 사용자 인증방식 지원을 위해 Two-Factor인증 기법 지원
  • 프락시를 이용할 수 없는 환경 및 서비스들을 위해 클라이언트 인증방식 제공(Telnet기반, SSL Web기반)
  • 사용자별 허용된 시간/요일 지정 및 비밀번호 변경주기 설정 등 관리방안 제공

가용성 보장 및 암호화

방화벽 SW는 시스템 장애에 대비하여 가용성을 보장할 수 있는 기능을 구현하고 있으며 추가적으로 네트워크 단의 데이터 암호화를 통한 데이터보호 기능을 구현하고 있다.

  • 방화벽 SW 간의 High Availability 모듈을 내장하여 Primary/Backup구조 구현 가능
  • VPN모듈을 내장하여 외부 네트워크간에 데이터 암호화를 통한 VPN기능 구현 가능

감사기록 및 통계

방화벽 SW는 사후 감사를 위하여 모든 트래픽에 대한 로그 및 다양한 형태의 통계 기능을 제공하고 있다.

  • 방화벽을 통하여 제공되는 모든 네트워크 접근에 대한 상세한 감사기록을 DB형태로 저장
  • 저장된 감사기록에 대해 시간대/사용자/서비스/네트워크주소/키워드/패킷량 등의 다양한 조건을 이용한 통계 기능 제공
  • 네트워크 사용량/출발지/목적지/사용자/서비스별 등의 다양한 통계 그래프 제공
  • 전용 로그 분석기와의 연동 가능 및 커스터마이징된 보고서 생성 가능
  • 외부의 별도 로그서버를 구성할 수 있는 외부 로그 저장 기능 제공

시스템 운영 및 관리

방화벽 SW는 방화벽의 원활한 운영 및 관리를 위하여 다음과 같은 기능을 제공한다.

  • 관리자 및 사용자 신분 확인 관련 데이터, 접근통제규칙, 보안레이블의 위/변조 감지
  • 관리자용 UI(Web 또는 자체 GUI)를 통해 모든 방화벽의 운영 기능 지원
  • 원격지 관리의 편리성과 안정성을 위해 128bit이상의 SSL 지원
  • 시스템 자체의 취약성을 진단하여 관리자에게 일일리포트 등의 문서 제공
  • 보안정책 설정 마법사 등을 통해 손쉬운 관리 기능 제공
  • 관리자가 지정한 시간에 Schedule Backup 기능 제공

시스템 구성요소 및 구성도

웹방화벽을 구축하기 위해서는 일반적으로 아래와 같은 2개의 기본요소들로 구성된다.

구분 설명
서버엔진 • 웹 서버의 네트워크 앞단에서 전송 데이터들을 검사하여 외부로부터의 공격을 탐지 및 차단하고 웹 서버의 안전성을 높여주는 핵심 구성 요소
관리콘솔 • 서버엔진을 운영하기 위한 관리자용 콘솔(UI)

시스템 구성도

방화벽은 일반적으로 다양한 네트워크 장비, 시스템, 네트워크망 구성에 따라 설치 구성도가 변경될 수 있지만 일반적인 형태는 듀얼홈드 게이트웨이를 근간으로 하여 외부 네트워크 / 내부 네트워크 / DMZ망을 구분하는 형태를 기본으로 하여 구성되고 있다.

시스템 구성도(이미지)