방화벽 보안정책은 어떤 일을 하나요?
방화벽은 사전에 설정한 규칙에 따라 서버와 단말(PC, 스마트폰) 간 연결을 시키거나, 혹은 연결을 차단하는 역할이 주요 기능입니다. 이런 규칙을 보통 보안정책(Security Policy)이라 하며, 이 정책은 방화벽 관리자가 사전에 설정하여 모든 전산 자원에 대한 통신을 제어할 수 있습니다.
모든 전산 장비가 마찬가지 겠지만, 방화벽의 경우에도 보안정책을 어떻게 설정하느냐에 따라 조직의 보안 수준을 굉장히 높일 수도 있고, 반대로 방화벽이 없는 것이나 마찬가지인 결과를 낼 수도 있습니다.
우선 보안 정책은 어떤 내용으로 구성되어 있는지 알아봅시다. 보안정책을 설정할 때 일반적으로 필요한 요소는 아래 5가지입니다.
위의 표에 있는 예제를 풀어서 설명해 보면 다음과 같습니다. 인터넷에서 DMZ 구역으로 가려는 트래픽입니다. 그럼 출발지는 안 볼게요. 당신의 IP주소가 무엇이든지 상관하지 않겠습니다. 목적지 IP 주소가 10.10.10.10이고 접속하려는 서비스 포트가 TCP 80을 사용하는 웹서비스이면 접속 요청을 허가하여 트래픽을 서버로 전달해 드릴게요.
이런 보안정책은 홈페이지 서버 혹은 웹 기반의 서비스를 하기 위해 필요한 전형적인 보안정책입니다. 이러한 보안정책을 방화벽의 성능에 따라 수백 개에서 수만 개까지 만들 수 있으나, 보통 조직의 규모에 따라 수십 개에서 2~300개 정도를 사용하고 있습니다.
웹 서비스 이외에 DNS(UDP 53), Mail(TCP 25,110), HTTPS(TCP 443) 등 다양한 포트를 조합해서 다양한 보안정책 설정이 가능합니다. 그럼 가장 전형적인 방화벽의 구성 예를 들어보도록 하겠습니다. 아래 <그림 1>은 아래 조건에 맞추어서 설계된 구성도입니다.
1. 회사를 들어오는 인터넷 회선을 방화벽을 통해 제어가 가능해야 한다.
2. 인터넷을 통한 서비스를 위해 DMZ와 Upload구역을 만들어 공개되는 서버를 위치시켜야 한다.
3. 방화벽 내부는 스위칭 허브를 통해 사내 서버 및 사무실 단말을 연결시켜야 한다.
4. 지역 방송국, 외부 스튜디오, 재택 근무자, 현장 취재기자들은 인터넷을 통해 공개된 서버 혹은 사내 서버에 접근이 가능해야 한다.
위의 방화벽 구성도를 참고하여 아래와 같은 고객의 요구사항이 있다고 할 때 방화벽에서 어떻게 서비스가 가능하게 보안정책을 반영하는지 알아보도록 하겠습니다. 보안정책 표시는 (출발지 IP, 목적지 IP, 서비스 포트, 액션)으로 하였습니다.
1번 요구사항은 인터넷을 통해 시청자가 VOD 서버에 접근이 가능하게 하는 것입니다. 방화벽 입장에서는 시청자는 Untrust구역에서 들어오는 출발지 IP주소를 지정할 수 없는 사용자이기 때문에 ANY 즉 모든 IP가 접근이 가능하게 설정한 것입니다. 목적지는 DMZ 구역에 있는 VOD 서버이며 서비스 포트도 어떤 포트를 요청하더라도 접속을 시도하면 허용하여 접속 요청을 VOD 서버로 전달하게 됩니다.
2번 요구사항은 외부에 공개된 서버의 도메인 주소로 접근을 시도하면 도메인 주소의 IP주소를 알려 주는 DNS 서버가 외부 DNS 서버의 질의 요청에 응답을 주어야 합니다. 이때 외부 DNS 서버는 불 특정 다수 서버이기 때문에 출발지 IP주소는 ANY로 설정하였습니다.
사내 임직원이 인터넷을 사용할 경우에도 사내 DNS를 이용할 경우 Trust 구역에서 DMZ 구역 방향으로 임직원 IP 주소 대역인 40.0.0.0/24에서 DNS 서버 IP 대역의 DNS 서비스 포트인 UDP53 포트를 오픈해야 정상적인 DNS질의를 통해 웹브라우저에서 인터넷 접속이 가능합니다.
3번 요구사항은 외부 및 내부에서 DMZ 구간에 있는 메일 서버에 접근이 가능해야 하기 때문에 Untrust 구간에서 접근할 때는 출발지 IP를 지정할 수 없어 ANY로 지정하였으며, Trust구간인 사내에서 접근할 때는 사무실 IP 대역을 출발지 IP로 지정하였습니다.
4번 요구사항은 그룹웨어와 같은 서비스는 임직원들만 접근이 가능해야 하며, 인터넷을 통한 불특정 다수의 접속은 차단되어야 합니다. 그러나 본사에 근무하지 않는 지역 방송국 임직원의 경우도 접근이 가능해야 하기 때문에 지역 방송국의 IP대역을 출발지 IP로 지정하여 접근이 가능하게 보안정책을 설정하여야 합니다.
5번 요구사항은 외부에서 인터넷을 통해 취재한 사진과 기사를 송고하여야 하기 때문에 해당 기자의 스마트폰 등을 통해 인터넷 접속을 해야 합니다. 이때 할당받는 공인 IP 주소는 무작위로 할당되기 때문에 사전에 출발지 IP를 지정할 수 없으므로 ANY로 사용하여야 합니다. 이렇게 업로드된 자료는 사내의 편집 서버에서 자료를 받아 가기 위해 FTP 서비스를 통해 접근이 가능하게 설정이 필요합니다.
6번 요구사항은 사내 임직원들의 인터넷 접속을 위해서 Trust구역에서 Untrust 구역으로 접근하는 것으로 출발지는 사무실 대역을 지정할 수 있지만 목적지는 임직원이 어떤 인터넷 서비스에 접속할지 알 수 없기 때문에 임의로 지정할 수가 없어 ANY를 설정하여야 합니다. 서비스 포트는 웹 접속을 위해 TCP 80을 오픈하여야 합니다.
7번 요구사항은 출장 중이거나, 코로나 사태 등으로 재택근무를 시행할 경우 외부에서 인터넷을 통해 그룹웨어와 같은 사내 서버에 접근이 필요할 경우가 있습니다. 스마트폰을 이용하거나 집에서 인터넷을 사용할 경우에는 공인 IP가 임의로 할당되기 때문에 출발지 IP는 ANY를 지정할 수밖에 없습니다.
1번 요구사항과 같이 인터넷을 통해 접근할 때 출발지 IP가 ANY 이면서 서비스 포트를 ANY로 지정할 경우, 해커가 해당 서버의 모든 포트에 접근 가능해 지기 때문에 사용 중인 서비스 포트 이외에 불필요하게 열려 있는 서비스 포트를 통해 침투당할 위험이 존재하게 됩니다.
방화벽을 운영하면서 가장 큰 문제점이 바로 출발지 혹은 목적지, 서비스 포트를 ANY로 사용하는 것입니다. ANY를 사용하는 가장 큰 이유는 방화벽 관리자가 바쁘기 때문입니다. 서비스가 추가 혹은 변경될 때마다 보안정책을 일일이 손봐야 하는데 담당자가 방화벽 이외에도 해야 할 업무가 많을 경우에는, ANY로 설정하게 되면 업무가 줄어들기 때문입니다.
처음부터 외부에 공개할 서버는 해킹당 할 위험이 항상 존재하기 때문에 사내 네트워크와 완전히 분리하여 별도의 격리된 공간인 DMZ 혹은 Upload구역으로 구분하여 설치해야 한다고 앞에서 설명해 드렸습니다. 문제는 여러 가지 이유 때문에 인터넷을 통해 사내 서버에 디렉트로 접속해야 하는 경우에 해킹당 할 위험성이 높아지는 것입니다.
위의 요구사항 중 4번, 7번과 같이 Untrust구역에서 Trust구역으로 접근하는 보안 정책이 바로 이에 해당합니다. 이런 정책은 비유를 하자면 집안 가장 안전한 장소에 있어야 할 금고가 집 앞 길거리에 놓여 있는 것이나 마찬가지인 것처럼 위험한 보안정책이라고 할 수 있습니다.
4번 요구사항에 맞추어서 출발지를 부산, 대전 방송국 IP주소로 지정한 경우는 그나마 출발지 IP가 제한되어 있기 때문에 안전한 편이나 7번 요구 사항과 같이 출장 중이나 재택근무자를 위해 출발지를 ANY로 설정할 수밖에 없는 정책의 경우 인터넷을 통해 아무나 해당 서버로 접근이 가능하기 때문에 문제가 있는 정책이라고 할 수 있습니다.
만에 하나 해커가 해당 서버에 관리자 권한으로 접근 가능한 권한을 획득하게 되면 어떤 일이 일어날까요? 해킹당한 서버와 사내에 있는 모든 서버, PC, 노트북 사이에는 방화벽이 없기 때문에 다른 사내 서버나 단말들이 해킹당할 위험이 매우 높아지게 됩니다.
다음 주제로 설명 드릴 VPN(Virtual Private Network: 가상 사설망)이란 기술을 이용하면 4번, 7번 요구사항에 대해 안전하게 서비스가 가능하게 구성할 수 있습니다. 간단히 설명드리면, 외부에서 사내의 중요 서버에 접근이 필요한 지역 방송국에는 VPN 장비를 설치하거나, 개인 단말의 경우 VPN 프로그램을 설치하여, VPN 장비를 통해서만 접속이 가능하게 하는 것입니다.
그리고, 단말에서 VPN 프로그램을 실행해서 인증(아이디/패스워드)을 통해서만 접속이 가능하게 접근 절차를 추가하면, 인터넷을 통해 데이터가 전송될 경우 데이터를 암호화해서 전송하기 때문에 혹시 데이터가 탈취되더라도 내용을 확인할 수 없게 만드는 기술을 사용하여 이런 문제를 해결할 수 있습니다.
보안 정책에 있는 서비스 포트의 경우 일반적으로는 표준으로 정의된 번호를 사용하게 됩니다. 이런 포트를 'well known port'라고 부르는데, 인터넷 초기인 1980~2000년 중반까지는 대부분 표준을 준수하여 사용하였으나, 시간이 흐르면서 여러 가지 이유로 표준을 준수하지 않고 임의로 포트를 지정하여 사용하는 경우가 증가하게 되었습니다.
예를 들면 웹을 사용하기 위한 HTTP 프로토콜의 표준 포트가 TCP 80번인데 8080, 8090번 등을 이용하거나, 메신저, P2P 등의 파일공유 서비스 등도 TCP 80 포트를 이용하게 되면서, 포트 넘버로 서비스를 구분할 수 없게 되어, 기존 방화벽을 통해서는 정확한 트래픽 제어가 불가능하게 되었습니다. 새로운 방화벽이 필요한 시점이 된 것이지요.
또한 방화벽의 보급이 많이 되어서 거의 대부분의 조직이 보안정책을 통해 실제로 사용하는 포트만 오픈하여 서비스를 하기 때문에 외부에서 공격을 시도하는 해커 입장에서 침투할 수 있는 통로가 많이 줄어드는 상황이 되었습니다. 많은 서비스들이 웹을 기반으로 통합되어 광범위하게 사용되게 되면서 대부분의 조직은 인터넷을 통해 불특정 다수가 접근 가능한 웹 서비스를 위하여 방화벽 보안정책을 통해서 TCP 80 포트만 오픈하게 되었습니다.
다음 시간에는 이러한 전통적인 방화벽의 한계를 극복하기 위해 등장한 차세대 방화벽과 웹 방화벽에 대해 알아보도록 하겠습니다.