본문 바로가기
AhnLab 보안in

방화벽으로 내 컴퓨터의 외부 침입자를 막자

by 보안세상 2020. 4. 3.

2007.10.18

 

원리를 이해하면 나도 직접 방화벽을 내 뜻대로 설정하고 컴퓨터를 안전하게 보호할 수 있다! 앞으로 2회 연재를 통해 사용자들이 개인 방화벽을 이용해서 개인의 PC를 네트워크 상에서 보호하는 방법에 대해서 알아보려 한다. 이번 호에서는 방화벽에 대해 간단히 이해하고 윈도우에 포함된 방화벽의 사용법을 알아보고, 다음 호에서는 V3 Internet Security 2007 Platinum과 빛자루 데스크톱을 이용하여 보다 다양한 방화벽의 활용법을 알아보도록 하겠다.

방화벽이란?

컴퓨터 보안사고란 더 이상 대용량 서버나 특정 기관의 네트워크에 침투하기 위해서만 발생하는 것이 아니다. 개인 사용자의 PC에 접근해서 악성 프로그램을 심어 놓고 금융 거래 시 필요한 주요 정보를 가져갈 수도 있고 온라인 게임 로그인시 사용되는 계정 정보를 가져갈 수도 있다. 보안 위협은 취약한 지점을 찾아서 해당 목표에 따라 다양한 방법으로 공격이 이뤄지는데 어느 지점을 막을 것인가에 따라 그 방어 방법도 달라지게 된다. 인터넷의 보편화로 요즘에는 홀로 사용되는 컴퓨터는 거의 없고 인터넷이나 인트라넷 네트워크 망에 연결된 상태에서 다른 컴퓨터와 서로 요청을 주고 받으면서 사용한다. 이러한 네트워크 환경에서 외부의 악의적인 침투와 우리가 모르는 사이에 주요 정보가 외부로 유출되는 것을 막기 위해 사용되는 것이 바로 방화벽(firewall)이다.

방화벽(firewall)이란 원래 화재 발생시에 불이 번지는 것을 막기 위해서 설치하는 벽을 의미하는데 요즘에는 컴퓨터 네트워킹 용어로 더욱 친숙하게 사용되고 있다. 방화벽은 회사 네트워크와 같은 다수의 컴퓨터가 존재하는 환경에서 회사 외부로부터 들어오는 네트워크 패킷과 외부로 나가는 패킷을 IP나 Port 번호에 따라 이를 허용 또는 거부하는 하드웨어 장비나 소프트웨어를 의미한다. 최근에는 소프트웨어 방식의 방화벽 프로그램의 발달로 개인용 컴퓨터에도 설치하여 외부 침입으로부터 보호할 수 있도록 제공되는데 이를 개인 방화벽(personal firewall)이라고 한다.

방화벽 쉽게 이해하기

컴퓨터 용어도 일반 사용자에겐 쉽지 않은데 보안 관련 용어는 더욱더 어렵고 생소한 것이 많다. 일상 생활의 경우를 예를 들어서 방화벽을 쉽게 이해해보도록 하자.

우리가 살고 있는 대한민국을 떠나서 다른 국가로 여행 또는 출장을 가는 경우 일반적으로 국제 공항에 가서 비행기를 이용하게 된다. 외국으로 나가는 경우 반드시 출국심사대를 거쳐야 하는 데 여권을 통해 출국하는 사람의 신분을 확인하고 승인 도장을 찍어 준다. 그런데 범죄자와 같은 사유로 해외로 나가서는 안되는 사람들의 명부를 관리하고 있는데 여기에 해당하는 사람은 통과시키지 않는다. 반대로 공항에는 비행기를 타고 외국에서 우리나라로 들어오려는 사람이 있는데 이때는 입국심사대를 거쳐야 한다. 여권과 비자를 확인하고 입국 목적이나 체류기간, 체류지 등에 대한 정보를 확인하고 입국 여부를 승인 받게 된다. 여기서도 국가의 안전을 위해 범죄나 테러, 검역 등 기타 이유로 입국금지명단에 포함되어 있는 사람은 통과할 수 없다.

[그림 1] 입국심사에서 거부되면 입국할 수 없다


이와 같이 방화벽은 출국해서는 안되는 사람이 나가는 것을 막고, 입국해서는 안되는 사람이 들어오는 것을 막는 입출국심사대 역할을 수행한다. 네트워크에 연결된 상태에서 다른 컴퓨터로 보내려는 정보(outbound traffic)와 다른 컴퓨터에서 들어오는 정보(inbound traffic)를 확인해서 이를 허락 또는 거부할 것인지 결정하는 역할을 담당하는 것이다. 이러한 판단을 위한 기준이 되는 정보를 정리한 목록을 ACL(Access Control Lists)라고 한다.

[그림 2] 방화벽은 신뢰할 수 없는 접근을 차단한다


결국 방화벽을 이용해서 개인 컴퓨터를 보호한다는 것은 이러한 판단 기준인 ACL을 어떻게 설정하는 것에 따라 결정되므로 허용과 거부의 대상을 잘 설정하는 것이 매우 중요하다. 기준을 설정하는 방법에는 모두 허용하되 금지대상에 대한 목록을 정리할 수도 있고, 반대로 모두 거부하되 허용대상에 대한 목록을 정리할 수도 있다.

방화벽이 제공하는 기능들

윈도우 운영체제에서 기본으로 포함된 개인 방화벽 프로그램도 있고 보안솔루션 업체에서 개발한 수많은 방화벽 프로그램이 제공되고 있다. 이들 프로그램마다 크고 작은 기능의 차이는 있지만 일반적으로 방화벽 프로그램이 제공하는 기능은 다음과 같이 정리할 수 있다.

사용자에게 특정 응용 프로그램이 외부에 접속하려는 것에 대한 알림

사용자가 응용 프로그램이 로컬 네트워크나 외부 네트워크에 접속하려는 것을 허용/거부할 것인지 제어할 수 있는 기능

포트 스캔에 응답하지 않게 하여 네트워크 상에서 해당 기능을 숨김

외부 네트워크의 접속을 대기하고 있는 응용 프로그램들을 감시

외부 네트워크로 연결하려는 응용 프로그램들을 감시

내부에 설치된 응용 프로그램으로부터 원하지 않는 네트워크 연결되는 것을 방지


Windows 보안 센터

Windows XP와 올해 출시된 Windows Vista를 보면 마이크로소프트가 운영체제 자체의 보안을 강화하기 위해서 많은 노력을 하고 있음을 알 수 있다. [시작] – [제어판] – [보안센터]을 선택하면 다음과 같이 Windows 보안 센터를 통해서 방화벽, 자동 업데이트, 백신 프로그램이 사용 중인지 한 눈에 확인할 수 있도록 해준다.

[그림 3] Windows 보안 센터에서 보안 상태를 한 눈에 파악할 수 있다


방화벽과 백신 프로그램에 대해서는 현재 어떠한 프로그램이 사용 중인지에 대한 정보도 보여준다. 위 그림에서는 방화벽 프로그램으로 안철수연구소의 빛자루가 사용되고 있음을 확인할 수 있다. 보안센터를 실행해서 방화벽, 자동 업데이트, 바이러스 백신 프로그램 항목이 모두 사용 중으로 설정되어 있는지 확인해보도록 하자.

Windows 방화벽 활용하기

이제 운영체제에 포함되어 제공되는 Windows 방화벽의 사용법을 알아보도록 하자. Windows 방화벽은 일반적인 방화벽의 기능은 제공하지만 이미 감염된 악성코드를 찾아서 이를 치료 또는 비활성화 시킨다든지 전자메일을 통해 배포되는 악성코드를 감지한다든지 하는 등의 기능은 제공되지 않는다. 이러한 다양한 보안 기능을 사용하려면 보안업체에서 제공하는 백신 프로그램이나 방화벽 프로그램을 설치해야 한다.

Windows 방화벽을 설정하려면 [시작] – [제어판] – [네트워크 및 인터넷 연결] 또는 [시작] – [제어판] – [보안 센터]에서 방화벽 항목을 선택한다. 다음과 같이 [일반], [예외], [고급] 탭으로 구성된 비교적 간단한 화면을 볼 수 있다.

[그림 4] Windows 방화벽 [일반] 설정



첫 화면에 볼 수 있는 [일반] 설정에서는 Windows 방화벽의 사용 여부를 결정할 수 있다. 사용 안 함을 선택하면 앞서 예를 들었던 출입국심사대가 없이 모든 사람이 자유롭게 드나들 수 있다는 것을 의미한다. 기본값으로 사용하도록 설정되어 있으며 특별한 이유가 없다면 항상 방화벽을 사용해서 컴퓨터를 보호하도록 하자.

방화벽을 사용하더라도 정상적인 프로그램이 네트워크를 사용하는 것은 막지 말아야 한다. 이러한 설정을 [예외] 탭에서 구성할 수 있는데, 만약 현재 사용되는 컴퓨터가 불특정 다수가 사용하는 공공장소에 있다면 ‘예외 허용 안 함’을 설정함으로써 매우 제한적인 사용만 할 수 있도록 할 수 있다.

[그림 5] Windows 방화벽 [예외] 설정


예외 설정 항목에서 방화벽에 의해 제약을 받도록 등록된 프로그램의 목록을 확인할 수 있고 새로 추가하거나 기존 항목의 삭제, 각 프로그램에 대한 세부 설정도 가능하다. 여기에 등록된 프로그램 외에는 외부에서 내 컴퓨터로 들어오는 네트워크 트래픽을 모두 차단하므로 만약 웜이나 기타 네트워크를 통한 공격으로부터 보호할 수 있게 되는 것이다.

만약 외부로부터 들어오는 접속을 허가해야 할 프로그램이 있다면 ‘프로그램 추가’를 통해서 등록하면 된다. 이때 세부 설정으로 허용할 범위를 설정할 수 있는데 다음과 같이 모든 접속을 모두 허용하거나 같은 서브넷에 포함된 컴퓨터로부터의 접속만 허용하거나 특정 IP 대역을 지정해서 범위를 지정할 수도 있다.

[그림 6] 예외 범위 설정


그리고 특정 프로그램에 대한 접속을 허용하는 것이 아니라 특정 포트에 대한 접속을 ‘포트 추가기능을 이용해서 허용하도록 설정할 수 있다. 포트는 네트워크 상에서 데이터를 주고 받는 통로인데 이 기능은 특별한 경우가 아니면 사용하지 않는 것이 좋다. 불가피하게 사용하게 되더라도 사용 후 반드시 해당 포트를 다시 닫아야 한다.

[그림 7] 예외 포트 추가하기


Windows 방화벽 [고급] 탭에서 설정할 수 있는 항목은 다음과 같다.

[그림 8] Window 방화벽 [고급] 설정


만약 여러 가지 방법으로 네트워크 연결이 가능하다면 ‘네트워크 연결 설정’에서 방화벽을 사용할 항목을 선택할 수 있다. 가급적 모든 연결에 대해서 적용하도록 하자. ‘보안 로깅’에서는 로그 파일에 기록할 항목과 로그파일의 위치와 크기를 지정할 수 있다. 그리고 네트워크 환경에서 특정 대상이 온라인인지 확인하기 위해서 PING 명령을 보내서 응답 여부에 따라 판단하는 경우가 많은데 이때 사용되는 것이 ICMP이다. 이러한 요청에 대해 응답할 것인가에 대한 세부 설정을 ‘ICMP’ 설정에서 할 수 있다. ‘기본 설정’을 선택하면 Windows 방화벽의 모든 설정을 기본값으로 복원한다.

다음 호에서는 보다 다양하고 편리한 기능을 제공하는 개인방화벽 프로그램으로 V3 Internet Security 2007 Platinum과 빛자루 데스크톱을 이용하여 PC를 보호하는 방법을 알아보도록 하겠다.<다음회에 계속>

출처 : 안철수연구소 홈페이지