▶ 보안 제품 리뷰/:: Outpost

Outpost Firewall Free 2009 리뷰 (4-2) - Firewall (방화벽) : System-Wide Rules

물여우 2009. 8. 8. 16:12
반응형
이번 포스팅부터 Firewall(방화벽) 기능의 네트워크 연결 규칙을 살펴봅니다. 
첫 번째로 Network Rules의 System-Wide Rules 항목에 대해서 알아보도록 하겠습니다.

저는 보안 전문가가 아니며 해당 프로그램에 대하여 전문적이고 기술적인 지식을 지니고,
이 글을 작성하는 것이 아니므로 이 글에 오류가 있을 수 있음을 밝힙니다.



Outpost Firewall Free 2009 리뷰 모음

-
개요 및 설치 과정 메인 화면 UI
- Host Protection :  기능 설명, 팝업창 및 자기보호
- Firewall : 메인 화면 & 기본 환경 설정 UI 


5-3. Network Rules - 네트워크 연결 규칙 설정


Network Rules 항목은 아웃포스트의 방화벽을 구성하는 항목 중 핵심 항목으로, 네트워크 연결에 대한 방화벽의 일반 규칙을 설정, 관리하는 항목입니다.

Network Rules에서는 아래와 같이 두 개의 항목으로 구성되어 있습니다.
  • System-Wide Rules : 네트워크 연결을 필요로 하는 프로그램과 OS 자체에서 연결되는 모든 인/아웃바운드 네트워크 연결에 대한 규칙 설정 및 관리
  • ICMP Settings : IP 프로토콜의 하나인 ICMP에서 사용하는 메세지 신호에 대한 규칙 설정 및 관리

아웃포스트 고유의 특징을 하나 선택하라고 하면 항목들의 세분화라고 생각합니다. 특히, 방화벽 규칙 설정과 관련된 항목을 설명하게될 앞으로의 리뷰에서 이러한 점이 잘 들어납니다. 각 항목의 설명을 보시면서 다른 방화벽들과 달리 어떤 식으로 세분화가 되어 있는지 살펴보시기 바랍니다.


(1) System-Wide Rules : 방화벽 규칙 설정


System-Wide Rules는 Global rules와 Low-Level rules 두 개의 항목으로 다시 구분됩니다. 기본적으로 Global 규칙이 Low-level 규칙보다 우선 순위가 높지만 반드시 그런 것은 아닙니다. Global 규칙과 Low-leve 규칙 및 아웃포스트의 규칙 형성에 관련된 항목들의 다소 복잡한 관계는 다음 리뷰에서 다루도록 하겠습니다.

참고로 System-Wide Rules에서 설정된 규칙 중 아웃포스트에서 기본적으로 구성되거나 자동적으로 생성한 규칙의 경우 파란색으로, 사용자가 설정한 규칙인 경우 검은색으로 표시됩니다.

① Global rules - UI


Global rules는 기본적으로 프로그램들의 네트워크 연결을 관리합니다. 관리할 수 있는 프로토콜은 TCP, UDP, ICMP 등 3가지로 구성됩니다.

아웃포스트의 Global rules의 편리한 점은 일반 방화벽의 규칙과 일반 프로그램들의 개별 규칙 설정인 Application rules의 우선 순위를 구별해서 설정할 수 있다는 것입니다. 위 그림의 ⓐ, ⓑ를 살펴봅니다.

   ⓐ Applied before application rules : 이곳에 설정된 규칙들은 각 프로그램들의 개별 규칙(Application
       rules)보다 먼저 적용되며, 서로 모순된 규칙이 있을 경우 우선권을 가집니다.

   ⓑ Applied after application rules : 이곳에 설정된 규칙은 각 프로그램들의 개별 규칙(Application
       rules) 이 후에 적용되며, 서로 모순된 규칙이 있을 경우 개별 규칙의 규칙이 우선권을 가집니다.


이전에 리뷰한 에프시큐어나 안티버의 방식은 방화벽 규칙과 개별 규칙이 구별되어 있지만 항상 방화벽의 일반 규칙이 우선 순위를 높게 가지는 구조입니다. 대부분의 방화벽들이 이러한 구조를 갖고 있습니다. 그러나 독특하게도 일반 규칙과 개별 규칙의 구별이 없는 경우도 있습니다. 예를 들어 봅니다.


                           그림이 크기 때문에 클릭 후 확대하여 보시기 바랍니다.

위의 그림은 이전에 리뷰한 비트디펜더의 방화벽 규칙 항목인데 비트디펜더는 방화벽 규칙과 개별 규칙의 구분이 없는 구조를 아주 확실하게 보여줍니다. 위 그림에서 보여주는 것처럼 일반 방화벽 규칙들과 프로그램의 개별 규칙이 혼성되어 있는 것을 볼 수 있습니다. 각 규칙들을 단순히 우선 순위가 높은 규칙이냐 아니냐로 규칙의 적용 권한이 생깁니다.

아웃포스트는 일반적인 방화벽의 구조를 따르되 개별 규칙보다 우선 순위가 낮은 규칙 관리 항목을 하나 더 추가하여, 좀 더 세부적인 설정이 가능하도록 구성되었습니다. 결과적으로는 비트디펜더의 규칙관리 항목과 동일한 역활을 할 수 있지만 좀 더 깔끔하게 규칙을 관리할 수 있다는 장점을 가질 수 있습니다. 특히, 개별 어플리케이션들간의 규칙은 우선 순위 설정이 필요없기 때문에 비트디펜더의 UI보다 훨씬 간편한 UI를 가질 수 있는 것 같습니다. 

물론, 비트디펜더의 규칙 관리 항목이 개별 프로그램 규칙과 일반 규칙의 우선순위를 동시에 조정이 가능하기 때문에 아웃포스트의 그것에 비해 좀 더 세부적인 관리는 할 수는 있습니다만, 적게는 수십, 많게는 수백가지의 규칙을 한 자리에서 살펴보는 것이 쉬운 일은 아닙니다.


   ⓒ 부분의 규칙 복사 기능은 비슷한 규칙을 생성시 일일히 처음부터 규칙을 설정할 필요없이 비슷한
       규칙을 가진 다른 규칙을 동일하게 복사시켜 변화시킬 부분만을 수정할 때 사용하면 편리합니다.

   ⓓ 이 부분을 클릭하면 아웃포스트의 이전 버전부터 현재의 버전까지 주요 방화벽 규칙 설정과 관련
       된 항목의 설명이 포스팅된 아웃포스트 홈페이지로 이동합니다. 

       모든 정보가 나온 것은 아니나 도움말에 없는 세부적인 내용을 볼 수 있으니 참고하시기 바랍니다.


② Global rules - 내부 규칙 설정

Global rules의 'Add' 버튼을 클릭하면 아래와 같이 Global rules의 세부 규칙을 생성할 수 있습니다.
파란색으로 표현되는 부분은 해당 항목을 수정하는 부분입니다.

                                                   TCP/UDP 의 Glbal Rule 설정

                                                       ICMP의 Global Rule 설정 

프로토콜의 특성상 ICMP에 비해 TCP/UDP가 좀 더 세부적인 설정항목을 제공하고 있습니다. 이번 리뷰에서는 TCP/UDP 설정을 다루어보겠습니다.

TCP/UDP 설정 항목의 설정창에서 1번째 구성 항목인 Select the event the rule will handle은 Global rules에서 생성되는 규칙의 내부 규칙 항목이며 2번째 구성 항목인 Specify rule options은 특수 항목에 대한 추가 규칙입니다. 3번째 구성 항목인 Rule transcript(세부 규칙 설정 항목) 1번과 2번 항목에서 활성화시킨 내부 규칙들과 추가 규칙이 형성되며, 관리되는 항목입니다.

                                                Global rules의 규칙 설정 예시


③ Global rules - 내부 규칙 

먼저 살펴볼 부분은 Rule transcript(세부 규칙 설정 항목) 부분의 TCPAllow 입니다. 두 항목은 기본적으로 설정되는 항목으로 아래와 같이 해당 규칙의 가장 기본적인 부분을 다룹니다.  

TCP를 클릭하면 아래와 같이 TCP/UDP/ICMP 등 3개의 프로토콜을 설정하게 됩니다.

Allow를 클릭하면 Allow/Block 으로 변경되는데 이를 통해 해당 규칙에서 설정한 네트워크 연결을 허용/차단할지를 설정합니다.

이제부터는 각 항목별로 살펴보겠습니다.

   ⓐ Where direction is : 해당 규칙의 네트워크 연결 방향을 설정합니다. (인/아웃바운드 설정)

   ⓑ Where remote address is : 연결할 네트워크(원격지)의 주소를 설정합니다. 

        Macros from list는 제 시스템 상에서는 아래와 같이 구성되어 있습니다.

        각 항목의 세부적인 사항은 예시 부분에 있으니 참고 바랍니다.


   ⓒ Where remote port is : 연결할 네트워크(원격지)의 포트를 설정합니다.

        아웃포스트에서는 포트 번호마다 주로 사용하는 프로토콜과 그에 대한 간단한 설명을 제공합니
        다. 또한, 원하는 프로토콜을 더블클릭하면 포트 번호가 자동으로 입력됩니다. 여러 프로토콜을
        동시에 선택할 수도 있습니다.

        사용자가 직접 포트 번호를 기입할 수도 있으며, 이 경우 다중 포트는 쉼표 ',' , 포트 대역을 지정
        할 때에는 붙임표 '-'를 이용하여 설정합니다.

   ⓓ Where local port is : 네트워크 연결시 개방할 사용자 시스템의 포트를 설정합니다.
        이 부분은 ⓒ 부분의 원격지 포트 설정과 설정 방법이 동일합니다.

   ⓔ Where local port is equal to remote port : 원격지(Remote)와 사용자 시스템(Local)의 개방
       포트를 설정시에 겹치는 부분이 있을 경우, 겹치는 포트만을 사용하게 합니다. 이 설정은 원격지와
       사용자 시스템 사이에 개방된 동일한 포트가 없을 경우 적용되지 않습니다.


   ⓕ Report this activity : 해당 규칙에 따라 네트워크 연결이 이루어질 때마다 사용자에게 아래와 같
        은 팝업으로 알려줍니다. 


   ⓖ Activate stateful inspection : 최초 연결시도 후에 해당 연결이 지속적으로 이루어질 때 원격지
       와 사용자 시스템간에 오고가는 패킷을 좀 더 엄격하게 관리하도록 하는 설정입니다. 해당 기능은
       사용자가 지정한 방화벽 규칙이나 어플리케이션 규칙과는 다른 별도의 규칙입니다.

       이 설정은 IP spoofing이나 몇몇 포트 검사 등 일부 공격을 방어할 수 있다고 합니다. 아웃포스트에
       서는 이 기능을 Stateful Packet Inspection(SPI)라 부르고 있으며, TCP/UDP 등의 프로토콜에는 고
       유의 연결 상태를 검사하는 규칙이 있습니다.  

       보안 수준은 올라가지만 기본적으로 비권장되는 설정이라고 Agnitum에서는 밝히고 있습니다. 개인
       적으로 실험한 결과로는 특별한 문제점은 없었습니다.

   ⓗ Do not log this activity : 나중에 리뷰할 로그 기록 설정과 상관없이 해당 규칙에 관한 이벤트를
        기록하지 않습니다.


④ Low-Level Rules - UI 및 내부 규칙 설정
                                                      Low-Level rules 기본 UI

Low-level 규칙 항목은 기본적으로 TCP/UDP 등을 사용하는 프로그램들을 제외한 다른 IP 프로토콜의 네트워크 연결 규칙을 생성, 관리합니다. Global Rule과 비슷한 UI를 갖고 있으며 Application rule에서 다루지 않는 규칙들을 기본적으로 다루기 때문에 프로그램 규칙 적용 전/후에 대한 구분은 없습니다.

그러나 내부 규칙 부분에서 설명하겠습니다만 Low-Level 규칙 항목은 TCP/UDP 등의 프로토콜에 대한 규칙도 생성할 수 있습니다. 그러나 우선순위에서 Global 규칙이나 Application 규칙보다 아래에 있습니다. 사실 이것도 완벽하게 맞는 것은 아닌데 이에 대한 자세한 내용은 다음 리뷰에서 다루어보겠습니다.


'Add' 버튼을 클릭하면 아래와 같이 규칙 생성창이 활성화됩니다.


내부 규칙 생성과 변경은 Global Rules와 동일합니다.

3번째 항목인 규칙 세부 설정 항목의 기본 생성 규칙인 IP를 클릭하면 아래와 같이 프로토콜을 설정할 수 있습니다.

위의 그림에서 알 수 있듯이 앞서 언급한 것처럼 Low-Level 규칙 항목에서도 TCP/UDP에 대한 규칙을 생성할 수 있습니다. 여기서 TCP/UDP를 설정하면 아래와 같이 Global Rules와 비슷한 설정창으로 변경됩니다.

그러나 Low-Level 규칙 항목에서 설정되는 TCP/UDP 규칙은 기본적으로 Global Rules이나 Application Rules보다 우선순위가 밀리며 ICMP 프로토콜이나 Mark rule as High Priority 설정의 활성화 여부에 조금씩 우선순위가 달라집니다. 역시 이 부분은 다음 리뷰에서 다루도록 하겠습니다.


   ⓐ Where IP protocol type is : 프로토콜 종류를 선택하며, IP 종류 대부분을 설정할 수 있습니다.


         다양한 IP를 선택할 수 있는데, 이는 비프로그램(Non-Application) 규칙이기 때문입니다. 또한,
         TCP, UDP 등에 대한 규칙 생성도 가능합니다.

   ⓓ Where Local address is : 사용자 시스템의 주소를 설정합니다. 내부 설정은 원격지 설정과
        동일합니다.

   ⓕ Mark rule as High Priority : 해당 Low-Level 규칙의 우선 순위를 Global rules와 application
        rules보다 높입니다. 그러나 모든 경우에 해당하는 것은 아닙니다. 이는 다음 리뷰에서 다루도록
        하겠습니다. 

언급한 내부 규칙과 추가 규칙 외에는 모두 Global Rules와 동일하며 규칙을 생성 방법도 동일합니다.



이번 리뷰에서는 방화벽 규칙의 핵심 규칙을 다루는 System-Wide Rules를 다루었씁니다. 살펴본 것처럼 아웃포스트는 기본적으로 매우 세세한 규칙 생성이 가능합니다. 세부적인 설정을 제공하면서도 UI 자체는 매우 깔끔하고 직관적입니다. 개인적으로 타 제품에 비해 세련된 UI를 갖고 있다 생각합니다.

그러나 UI가 깔끔하며 직관적이고 사용자 배려 차원에서 배치한 여러 도움 항목이 존재하지만, 역시 방화벽에 대한 기본적인 지식이 없는 사용자에게는 여전히 어렵게 느껴지는 제품이 아닐까 합니다.

또한, 세부적인 설정이 가능하도록 여러 항목을 나누면서 각 항목별로 우선 순위에 대한 복잡함이 생겨난 것도 문제라고 생각됩니다.


- 이상입니다.

반응형