정보보안 - 방화벽의 개념, 원리

Posted by 미니송
2017.07.26 09:40 IT/정보보안



이번 포스팅은 방화벽에 대해 하겠습니다. 네트워크에 대한 공부를 하다 보면 나올 수 밖에 없는 개념이며, 라우터나 스위치보다 먼저 포스팅하게 되었습니다. 네트워크에 대한 정보도 차차 포스팅 하도록 하겠습니다. 네트워크 보안에서 가장 기본적인 방화벽에 대해 설명하겠습니다.



방화벽

방화벽이란 기업이나 조직의 모든 정보가 컴퓨터에 저장되면서, 컴퓨터의 정보 보안을 위해 외부에서 내부, 내부에서 외부의 정보통신망에 불법으로 접근하는 것을 차단하는 시스템입니다.


방화벽의 원래 의미는 건물에서 발생한 화재가 더 이상 번지는 것을 막기 위한 벽이라는 것입니다. 이러한 의미를 인터넷에서는 네트워크의 보안 사고나 문제가 더 이상 확대되는 것을 막고 격리하려는 것으로 이해할 수 있습니다.

 

특히 어떤 기관 내부의 네트워크를 보호하기 위해 외부에서의 불법적인 트래픽 유입을 막고, 허가되고 인증된 트래픽만을 허용하려는 적극적인 방어 대책으로 사용합니다. 즉 인터넷 상의 하나의 컴퓨터 시스템과 전체 인터넷을 구분시켜 주는 프로그램으로 시스템 사용자의 외부 접속을 제한하거나 보안 상의 문제로 인하여 외부인의 사용을 제한하는 데 사용됩니다.


방화벽 시스템의 기본 목표는 네트워크 사용자에게 투명성을 보장하지 않아 약간의 제약을 주더라도 위험 지대를 줄이려는 적극적인 보안 대책을 제공하려는 것이다. 일반적인 인터넷과의 접속을 하고 있는 네트워크는 외부와의 투명성으로 내부망 전체가 위험 지대입니다. 하지만 방화벽을 사용한다면 외부와 내부 네트워크 사이의 경로에 방화벽 시스템을 둠으로써 방화벽 시스템이 보안 서비스를 제공해 불법적인 트래픽을 거부하거나 막을 수 있습니다.


전용통신망에 불법 사용자들이 접근하여 컴퓨터 자원을 사용 또는 교란하거나 중요한 정보들을 불법으로 외부에 유출하는 행위를 방지하는 것이 목적입니다. 모든 정보가 컴퓨터에 저장되고 컴퓨팅 환경 또한 다양하고 복잡해지면서 정보를 보호하는 일이 급선무로 떠오르자 이에 대한 대책으로 개발하였습니다. 처음 인터넷이 나오고 이러한 시스템은 필요가 없었습니다. 해커에 대한 개념도 없었고 정보를 유출시키려고 하는 일 조차 없었기 때문입니다. 하지만 점차 시간이 가면서 악용하려고 하는 사람들이 많아졌고 그 때부터 보안에 대한 인식이 생겨나기 시작했습니다.

 


원리

원리는 허가된 사용자 외에는 접근 자체를 차단하는 것으로, 현재까지 정보통신망의 불법 접근을 차단할 수 있는 가장 효과적인 대책입니다. 그것은 다양한 컴퓨터 시스템들이 각기 다른 운영체제에서 움직이며, 각 시스템이 안고 있는 보안의 문제점도 서로 다르기 때문에 호스트 컴퓨터마다 일정한 수준의 보안 능력을 부여하기는 어렵기 때문입니다.


좀 더 자세히 들어가면 접근 제어 목록의 보안 규칙을 통해 유입 차단 및 허용합니다. 인터넷(외부 네트워크)으로부터 방화벽으로 들어오는 모든 접근 시도는 방화벽 내부에 사전 설정된 보안 규칙인 접근 제어 목록에 따라 내부 통과 여부가 결정됩니다.


기본적으로 방화벽은 모든 접근을 거부 (deny) 한 후 허용할 접근만 단계적으로 허용(allow /permit)하는 방식입니다. 네트워크를 통해 데이터가 이동하는 통로를포트(port)’라 하는데, 방화벽은 기본적으로 약 65,000여 개의 통신 포트 모두를 차단한 후 접근을 허용하는 특정 포트만을 열어 두게 됩니다. 홈페이지 운영을 위한 웹 서비스(http)를 제공한다면 80 포트를, FTP 서비스(ftp)를 제공한다면 20/21 포트 등을 접근 허용해야 합니다. 통신 포트뿐 아니라 외부로부터 접근하는 IP 주소나 특정 프로그램에 따라 접근/거부 여부를 결정할 수 있습니다. 이러한 보안 규칙 설정이 모두 접근 제어 목록에 포함되어 일괄 적용됩니다.


방화벽의 접근 제어 목록은 대개 관리자가 구성, 설정하기 편하도록 직관적인 형태로 출력되며, 보안 규칙 적용 즉시 결과를 확인할 수 있도록 제공된다. 다만 접근 제어 목록 및 방화벽 설정에는 보안과 관련된 상당한 지식과 경험이 필요하므로 보안 전문가를 통해 정확하고 체계적으로 이루어져야 한다.

이러한 방화벽의 개념에 따른 종류로는 패킷 필터링 방화벽(packet filtering firewall), 상태 기반 방화벽(Stateful Inspection firewall), 네트워크 주소변환(NAT)을 이용한 방화벽 등이 있습니다.

 

 




[ 방화벽 구성 ]


 



패킷 필터링 방화벽(packet filtering firewall)

방화벽은 크게 네트워크 계층과 전송 계층에서 수행되는 패킷 필터링 시스템과 응용 계층에서 수행되는 응용 게이트웨이 방식의 침입차단 시스템으로 구분됩니다. 패킷 필터링 시스템은 수신된 패킷의 TCP/IP 헤더 부분만을 이용하여 침입 차단 기능을 수행하는 수동적인 방화벽이라 할 수 있습니다. 응용 게이트웨이 방식의 방화벽은 수신된 패킷을 응용 계층의 서비스 단위로 프록시 기능을 이용하여 침입 차단 기능을 수행하는 능동적인 방화벽이라고 할 수 있습니다.


패킷 필터링 방법은 패킷의 IP주소와 서비스 종류에 대한 정보를 이용하여 설정된 보안 규칙에 의해 내부 네트워크를 보호하는 방법입니다. 소스 IP주소, 목적지 IP주소, 소스 포트 번호, 목적지 포트 번호, 트래픽의 방향, 프로토콜의 형태와 같은 정보 이용합니다. 패킷 필터링 방법을 일반적으로 분류하면 IP주소에 의해 접속을 통제하는 IP주소를 이용한 패킷 필터링 방법과 서비스(포트)를 이용하여 접속을 통제하는 서비스를 이용한 패킷 필터링 방법으로 구분할 수 있습니다.


IP주소를 이용한 패킷 필터링을 가장 기본적이고 단순한 방법으로 IP주소만 보고 패킷의 흐름을 제한하는 방식입니다. 이를 통해 위조된 발신지 주소를 가진 패킷을 차단할 수 있으며, 외부의 호스트가 내부의 호스트와 통신하는 것을 허용할 수 있습니다.


서비스를 이용한 패킷 필터링 방법은 패킷 내의 서비스 포트번호를 이용하여 필터링을 시행하는 방법으로 IP주소를 이용한 패킷 필터링보다 더 복잡하며 미세한 보안 정책을 수행할 수 있게 해줍니다. 그러나 몇몇 라우터는 단지 목적지 포트만 필터링 할 수 있습니다. 대부분의 스크린 라우터는 목적지 포트만 필터링 할 수 있습니다.

 

 

네트워크 주소 변환(NAT)을 이용한 방화벽

NAT(Network Address Translation, 네트워크 주소 변환) 방화벽은 흔히 사용하는 인터넷 유무선 공유기에 내장된 보안 기능입니다. NAT는 사설 주소와 공인 주소의 매핑을 제공하고 동시에 가상 사설 네트워크를 지원하는 기술입니다. 네트워크를 내부(가상)와 외부(공개)로 나눔으로써 외부로부터의 접근을 원천적으로 차단하는 방식입니다. 최근에는 공인 IP 주소(IPv4 주소 체계)의 고갈에 대한 방편으로 하나의 공인 IP 주소를 여러 대의 PC가 공유하는 데 적극 활용되고 있습니다.

 


상태 기반 방화벽 ( Stateful Inspection firewall)

상태기반 방화벽은 패킷 필터링 방화벽과 마찬가지로 동일한 패킷 정보를 검토하지만 TCP 연결에 관한 정보를 기록합니다. 또한 TCP 번호를 추적해서 세션 하이재킹과 같은 공격을 막고 상태정보 테이블을 유지하도록 합니다. 장비에 따라 다르지만 패킷의 모든 계층을 조사하게 되고 모든 통신채널을 추적하는 상태 테이블을 관리합니다.


작동 원리는 데이터 링크 계층에서 SYN 패킷을 전송받으면 접근제어 정책에 의해 상태 테이블에 남겨 접근 허용여부를 결정합니다. 만약 접근이 금지된 패킷일 경우 로그를 저장하고 전송을 하지 않고, 접근이 허용된 패킷은 네트워크 계층으로 전송시킵니다. SYN 패킷이 아닌 경우는 상태테이블의 패킷 정보 여부를 검사하고 존재한다면 네트워크 계층으로 전송, 아니라면 접근제어 정책에 따라 처리합니다.

 


마무리

네트워크 방화벽은 보안 정책을 제공하는 소프트웨어 혹은 하드웨어를 말합니다. 소프트웨어라면 PC나 서버 등에 설치되는 (마이크로소프트 윈도우, 리눅스/유닉스용) 프로그램의 일종으로 취급되며, 하드웨어의 경우 일반적인 PC CPU나 네트워크 처리 전용 NPU(Network Processing Unit)가 장착된 네트워크 장비의 형태로 공급됩니다. NPU는 일반 CPU보다 방화벽 관련 처리 속도가 빠르며, 보안 설정에 있어 유연한 기능을 제공합니다.


방화벽은 용도 및 기능에 따라서 몇 가지로 구분됩니다. 여기에 적지 않은 프락시(proxy) 방화벽은 방화벽에 연결된 상태를 기준으로 자세하게 분석할 수 있어 패킷 분석형 방화벽에 보다 안전한 관리가 가능합니다. (물론 처리 속도는 그에 비해 느립니다.)

하지만 기본적으로는 방화벽의 기능이라는 것을 우선적으로 알아두시면 될 것 같습니다. 방화벽이 어떤 기능을 어떻게 수행하는지가 가장 중요한 것 같습니다.

 




§ 글에 틀린점이 있다면 충분히 수정의 의지가 있으니 고운말로 지적 부탁드립니다. 

§ 공감을 눌러주시면 글을 작성하는데 큰 힘이 됩니다. 

이 댓글을 비밀 댓글로