[linux] Firewall의 이해
로빈아빠
본문
Firewall의 이해
1. Firewall 이란?
firewall 은 방화벽 이란 뜻이다.
방화벽이란 '화재를 방지하는 특수한 장치의 벽을 의미하는 것,불을 끄는 특수 기구'라는 뜻으로 설명할 수 있다.
방화벽 시스템은 필수적인 인터네트 서비스의 접근을 허락함과 동시에 기관의 보안레벨을 확실히 증가시킬 수 있는 최선의 해결을 제공하는 방법이다. 다시말해 데이터를 빼가거나 시스템을 망가뜨리는 해커들로부터 해당 네트워크를 보호하는 시스템의 일종이다.
물론 이 방화벽 시스템을 구현하는 것이 충분한 보장을 해준다고 볼 수는 없다. 그러나 가장 효과적이고 비용이 비교적 저렴하게 드는 방법이라고 할 수 있다. 그래서 네트워크를 설치한 각계 각층에서 최근 쉴새없이 방화벽에 대한 세미나와 토론회를 개최하고 있는 것이다.
방화벽이 네트워크로 연결된 호스트를 어떻게 보호하는가와 방화벽의 구성요소를 알아보자.
인터네트에 연결된 컴퓨터 사용자 수는 현재 전세계적으로 4천만명 이상이 된다. 이처럼 많은 사람이 인터네트를 이용하게 되면서 정보 보안은 갈수록 중요해지고 있다.기업,관공서,연구소 등이 내부적으로 근거리통신망(LAN)을 구축하거나 사설망을 운영할 때에는 정보의 보안에 대해 심각하게 고려하지 않았다.
하지만 이제 기업간 또는 조직간정보의 교류가 중요해지면서 외부에 공개할 자료와 보안할 자료를 구분할 필요성이 점점 증대되고 있다.
인터네트는 유닉스 호스트를 기반으로 TCP/IP라는 공개적인 프로토콜을 사용해 컴퓨터간 네트워크로 정보를 교환할 수 있도록 한 것이다.
유닉스와 TCP/IP는 개방화 방향으로 기술이 발전하고 있다. 또 네트워크에 연결된 자원의 활용을 극대화할 수 있도록 많은 유틸리키를 사용하고 있다.
따라서 유닉스와 TCP/IP는 정보의 보안에 관해서 매우 취약하다.
기업이 해외지사 또는 본집점간 정보의 공유를 원활하게 유지하기 위해 전자메일을 도입하고 전체망을 인터네트에 연결했다면 전세계 인터네트 사용자들도 이 전상망에 쉽게 침투, 전자메일 정보는 물론 기업의 중요한 정보도 쉽게빼낼 수 있다. firewall은 내부의 전산망을 인터네트 등 외부망과 연결하거나 기업내 사설망을 구축할 경우 외부 사용자로부터 또는 기업간 사설망의 전자도청으로부터 내부의 중요한 기밀과 정보를 보호하고 외부에 공개할 정보를 취사 선택할 수 있는 네트워크 정책을 수립할 수 있도록 기업내 사설망에 구축하는 전자보안시스템이다.
방화벽의 원래 의미는 건물에서 발생한 화재가 더 이상 번지는 것을 막는것이다. 이러한 의미를 인터네트에서 쓴다면 이는 네트워크의 보안 사고나 문제가 더이상 확대되는 것을 막고 격리하려는 것으로 이해될 수 있다. 특히 어떤 기관 내부의 네트워크를 보호하기 위해 외부에서의 불법적인 트래픽 유입을 막고, 허가되고 인증된 트래픽만을 허용하려는 적극적인 방어대책임을 알 수 있다.
방화벽은 간단히 라우터, 호스트 시스템 또는 네트워크 보안을 제공하는 시스템의 집합에 포함되지 않는다. 방화벽은 보안에의 접근이다. 즉, 허락되는 서비스와 액세스를 정의 하는 것 보다 큰 보안 정책의 수행을 돕는다. 네트워크 구성, 그리고 하나 또는 그 이상의 호스트 시스템과 라우터 그리고 안정된 패스워드에서 진보된 인증같은 다른 보안 수단이다.
방화벽 시스템의 주된 목적은 보호된 네트워크 안밖으로의 접근을 내부에서 자유자재로 조정하는 것이다. 트래픽을 시험하고 평가할 수 있는 방화벽을 지나는 접속을 제어함으로써 네트워크 액세스 정책을 수행한다.
방화벽 시스템은 라우터, 퍼스날 컴퓨터, 호스트 또는 외부 호스트들로부터 악용될 수 있는 프로토콜과 서비스로부터 사이트 또는 서브네트를 보호하기 위해 특별히 셋업된 호스트들의 집합일 수도 있다. 방화벽 시스템은 일반적으로 사이트의 인터네트 접속과 같은 하이레벨 게이트웨이에 위치한다. 하지만, 호스트나 서브네트의 보다 작은 집합을 보호하기 위해 로우레벨 게이트웨이에 위치할 수도있다.
2. 유닉스,TCP/IP 보안 취약성
인터네트에서는 정보보안이 취약하다. 인터네트에서 제공하는 서비스(FTP,Telnet,DNS,SMTP,NFS등)가 근본적으로 갖고 있는 보안에 대한 취약성과 잘못된 호스트구성, 접근통제(Acces Control) 등에 기인한다.
인터네트에서 제공하는 서비스는 약5백개에 달한다. 이들 각각은 외부에서 침투할경우 주요 공략 대상이 된다. 따라서 보안에 대한 시스템 관리자의 역할은 매우 중요하며 정기적인 보안대책 수립 및 실행, 인터네트 서비스들의 로그파일 분석등 보안상황에 대한 수시 점검이 필요하다.
인터네트에서 발생한 보안 관련 사고는 대부분 유닉스 포스트의 사용자 인증처리 절차가 너무 간단하고 미약한데서 비롯된다. 유닉스상에 패스워드는 패스워드 크래커 등 해독프로그램에 의해 쉽게 해독되기 때문에 해커들의 주요 공략 대상이 될 수 있다.
TCP/IP가 제공하는 서비스도 사용자 인증은 매우 취약하다고 할 수 있다.
예를 들어 NFS(Network File System)에서 인증은 사용자 인증이 아닌 IP주소를 갖는 호스트 전체에 대한 인증이어서 특정 사용자 계정에 대한 인증은 불가능하다.
Telnet, FTP, MAIL 등의 서비스 이용시로그인을 하거나 또는 클라이언트와 데이터를 주고 받을 ㎖ 데이터는 암호화되어 있지 않아 스니퍼 프로그램을 이용하거나 또는 인터네트 전용선을 태핑하든 어떤 경우에도 쉽게 데이터를 해독해 호스트에 침입하거나 취득한 정보를 다른 어떤 용 도로 사용할 수가있다.
특히 X윈도슷템은 네트워크의 모니터 및 해킹을 하기에 매우 적합한 도구가 될 수 있다. 해커는X윈도스스템을 이용해 원격지 호스트의 윈도를 열어 패스워드를 비롯 기타 보안유지가 필요한 중요한 정보들의 키보드 입력을 바로 모니터할 수가 있는 것이다.
LAN을 구축하거나 호스트간 네트워크로 연결한 경우에는 네트워크 자원의 효율성을 높이기 위해 네트워크에 연결된 각 호스트Network Information System), 버클리 r-명령어들을 사용하게 된다.
이 경우 네트워크에 연결된 호스트중 한 곳만 해커에 침입을 당해도 그 네트워크에 연결된 전 호스트가 보안에 문제가 발 생할 수 있다.
사실 인터네트에 연결됐다는 것은 내부의 네트워크가 전세계 인터네트 사용자의 공경 대상이 되었다는 것으로 보아도 무방하다.
CERT/CC자료에 따르면 미국에서는 지난 88년이후 인터네트 사용자가 증가하는비율보다도 인터네트 증가에 대해 보안 사고 비율이 급격히 증가하고 있다는것이다.
인터네트 사용자가 많아지고 인터네트에 접속된 호스트가 증가하면 할수록 인터네트 관련 보안사고는 기하급수적으로 증거한다는 것이다.
특히 호스트 시스템이 복잡하게 연결됐고 사이트의 명성이 높을 경우 해커들의 좋은 목표가 될 수 있다는 점에서 보안에 대한 철저한 준비 및 통제, 대처방안 등을 미리 수립하는 것이 매우 중요하다.
파이어월 개념과 필요성 파이어월은 단순히 네트워크의 구성요소인 라우터, 호스트시스템, 또는 네트워크에 안전을 제공하는 시스템의 집합이라기 보다 네트워크 전체를 대상으로 안전에 접근하는 정책(policy)이라고 할 수 있다. 여기서 정책이라 함은 인터네트에 연결할 때 제공하고자 하는 서비스의 종류,네트워크 구성의 정의,네트워크에 접근하는 사용자의 분류, 안전의 측정 방법 등을 총괄적으로 정의할수 있다.
파이어월 시스템은 보안하고자하는 네트워크의 접근을 통제하자는 것이다. 즉 네트워크의 접근통제정책(파이어월)을구현하는 것이다. 파이어월 시스템은 라우터, pc,호스트 및 기타 프로토콜, 서비스를 보호하는데 사용하는 네트워크 장비들이 될 수 있다. 그러나 통상적으로 파이어월은 네트워크 정책 및 파이어월 시스템을 포함한 전체를 뜻한다.
파이어월이 없는 환경에서는 네트워크의 보안은 전적으로 호스트 시스템의 보안에 의존하게 되며, 네트워크에 연결된 모든 호스트가 일정하게 역할을 분담해야 한다. 그러나 네트워크가 커지면 커질 수록 보안의 통제는 매우 어려워지며 잘못된 구성, 부적절한 패스워드 등이 원인이 되어 쉽게 네트워크 보안이 허물어지게 된다. 따라서 파이어월의 접근방법은 네트워크 전체의 보안 수준을 높이며 해커의 침입 "시 적절히 대처할 수 있는 능력을 배양시키는것이다.
3. 방화벽 시스템의 장점
방화벽시스템의 기본 목표는 네트워크 사용자에게 투명성을 보장하지 않아 약간의 제약을 주더라도 위험지대를 줄이려는 적극적인 보안대책을 제공하려는것이다.
외부와의 투명성으로 내부망 전체가 위험지대임을 보여주고 있다.
네트워크 시스템에서 외부와 내부 네트워크사이의 유일한 패스에 방화벽시스템을 둔 것이다. 방화벽시스템이 보안서비스를 제공하여 불법적인 트
래픽을 거부하거나 막을 수 있게 되었다. 물론 투명성을 보장하지는 않지만 내부 네트워크를 안전지대로 만들 수 있다.
방화벽 시스템으로 접근하는 것은 전반적인 호스트 보안을 증진시키는데 도움을 줌으로써 사이트에 많은 이점을 제공한다.
1)취약한 서비스로부터 보호
방화벽은 크게 네트워크 보안을 증가시키고 원천적으로 불안전한 서비스를 필터링함으로써 서브네트 상에 있는 호스트에 위험을 감소시킨다. 선택된 프로토 콜만이 방화벽을 통과 할 수 있기때문에, 서브네트 네트워크 환경은 위험에 덜 노출된다.
2)호스트 시스템으로의 액세스 컨트롤
방화벽은 또한 호스트 시스템으로의 액세스를 컨트롤할 수 있다. 예를 들면, 외부 네트워크에서 한 호스트로 접속할 수 있는데, 원하지 않는 액세스는 효과적으로 차단해 준다. 사이트는 메일 서버나 NIS같은 특별한 경우를 제외한 외부로 부터의 액세스를 차단한다.
3)보안의 집중
방화벽은 대부분의 수정된 소프트웨어와 추가되는 보안 소프트웨어를 많은 호스트에 분산시키지 않고 방화벽에 설치할 수 있다는 점에서 경제적이다. 특별히, one-time 패스워드 시스템과 다른 추가적인 인증 소프트웨를 인터네트로부터 액세스를 필요로하는 각 시스템과는 대조적으로 방화벽에 설치할 수 있다.
4)확장된 프라이버시
일반적으로 해가 없다고 생각되는 것들이 실질적으로 프라이버시 침해에의 결정적인 요인이 될 수 있다. 이들은 유용할 수 있는 실마리를 포함하고 있을 수있기 때문에 어떤 사이트에서는 중요시 된다. 방화벽을 사용한 사이트(호스트외의 연결 시스템)들은 핑거(finger)와 DNS(Domain Named Service)같은 서비스를 막고자 한다. 핑거는 마지막 로그인 시간과 메일 도착 여부, 다른 아이템들을 읽었는지 등 해당 계정의 사용자 정보를 디스플레이해주는 명령어다.
이런 편리한 '핑거' 서비스는 해커(시스템 침입자)들에게도 그 시스템이 얼마나 자주 사용되는지, 시스템에 연결된 사용자가 있는지, 그리고 침해될 수 있는지에 관한 정보를 보여준다. 따라서 방화벽은 가능하면 핑거를 이용하는 것을 막음으로써 침입자들의 접근 요인을 막고자 하는 것이다.
방화벽은 또한 사이트 시스템에 관한 DNS 정보를 막고자 하는데 사용된다. 그래서 사이트의 이름과 IP 어드레스를 인터네트 호스트에서 유출되지 않게한다. 어떤 사이트들은 이러한 정보를 막음으로써 침입자에 유용한 정보를 숨길 수 있다고 생각한다.
5)네트워크 사용과 비사용에서의 로그인과 통계자료 제공
인터네트 안밖으로의 모든 액세스가 방화벽을 통과 한다면, 방화벽은 액세스 정보를 기록할 수 있고 네트워크 사용에 관한 유용한 통계자료를 제공한다. 의심스로운 활동이 있을때 적당한 알람기능을 가진 방화벽은 방화벽과 네트워크가 침입 시도를 받고 있는지 또는 침입 되었는에 대한 세부사항을 제공해 준다.
6)정책 시행
마지막으로 이것이 가장 중요한데, 방화벽은 네트워크 액세스 정책을 실행한다. 사실상, 방화벽은 사용자들과 서비스의 액세스를 컨트롤할 수 있다. 그래서, 네트워크 액세스 정책은 방화벽에 의해서 시행될 수 있게 된다. 그러나 방화벽이 없다면, 그러한 정책들은 전적으로 사용자들의 협조에 의존해야 한다. 사이트는 자신의 사용자들의 협조에 의존하여 보안을 유지할 수 있기 때문이다. 그러나 일반적으로 인터네트 사용자들에게는 적용되지 않는다.
4. 방화벽시스템의 기본 구성 요소
방화벽시스템에 대한 각종 토론이 이루어지는 그룹에서는 방화벽시스템에 대한 일반적인 용어 정의 및 개념을 설명하고 있다. 방화벽시스템이 가지는 여러가지 기능과 보안 대처 수준에 따라 여러가지 종류의 방화벽시스템이 존재할 수 있으나, 여기서는 일반적인 방화벽시스템의 구성요소를 소개한다. 이는 방화벽시스템 개발자, 운영자 및 컨설트업체들이 거의 동의하고 있는 개념이다.
1)네트워크 정책(Network Policy)
방화벽 시스템의 설계, 설치, 사용에 직접적으로 영향을 줄 수 있는 두가지 레벨의 네트워크 정책이 있다. 하이레벨 정책은 명확한 이슈 즉, 제한된 네트워크로부터 서비스를 허락할 것인가 또는 명확히 거부할 것인가를 정의하는 네트워크 액세스 정책이다. 이러한 서비스들을 어떻게 사용할 것인가, 그리고 이러한 정책의 예외 조건등이 하이레벨 정책에 속한다. 로우레벨 정책은 어떻게 방화벽이 실질적으로 액세스를 제한하고 하이레벨 정책에서 정의한 서비스를 필터링 할 것인가에 대한 사항이다.
2)방화벽시스템의 사용자인증 시스템(Advanced Authentication)
방화벽시스템은 한 기관의 네트워크 전체를 보호해야 하므로 일반적으로 유닉스시스템에서 사용되는 단순한 패스워드 기법으로 사용자를 인증하는 방법을 사용하지는 않는다. 우수한 인증수단으로는 스마트 카드, 어탠디케이션 토큰(Authentication tokens), 바이오메트릭스(Biometrics) 그리고 소프트웨어 메카니즘 등을 사용한다. 현재 많이 사용하고 있는 우수한 인증시스템으로는 일회용패스워드(One Time Passwd)시스템이 있다. 매번 사용자가 로그인을 시도할 때 마다 매번 새로운 패스워드를 이용하는 것인데, 이는 침입자들이 최근 이용하고 있는 스니퍼(sniffer)에 의한 패킷가로채기를 통해 시스템의 사용자ID와 패스워드를 알아내서 침입하는 것을 근본적으로 막아주게 된다.
3)패킷 필터링
IP 패킷 필터링(Packet Filtering)은 통상 라우터 인터페이스를 지나는 패킷을 필터링을 하기 위해 설계된 패킷 필터링 라우터(packet filtering router)를 사용하여 행해진다. 패킷 필터링 라우터는 IP 패킷중 다음의 전부 또는 일부를 필터링 할 수 있다.
- source IP address
- destination IP address
- TCP/IP source port
- TCP/IP destination port
모든 패킷 필터링 라우터가 소스 TCP/IP 포트를 필터링하지는 않는다. 그러나 많은 제조회사들이 이러한 능력을 증가시키고 있다. 대부분은 아니지만 유닉스 호스트도 패킷 필터링 기능을 제공한다.
4)응용계층 게이트웨이(Application Level Gateway)
응용계층서비스들은 중간전달(Store-and-Forward)방법을 쓰는 경우가 많은데, 이는 게이트웨이에서 수행할 방법과 그대로 맞아떨어지게 된다. 게이트웨이는 송신자 응용서비스가 보내는 각종 정보를 그대로 전달하면 되는 것이다. 이 게이트웨이에서는 보안을 위한 특별한 서비스가 제공된다. 예를 들어 내부와 외부간의 모든 응용수준의 트래픽에 대해 로그기록이나, 텔네트(Telnet)나 FTP 등에서 사용자 인증을 할 경우 보다 우수한 방법을 사용한 변경된 인증방법을 이용한다든가 하는 것이다. 이 응용계층의 게이트웨이 기능은 가상서버(Proxy Server)라는 인터네트의 클라이언트/서버 개념에서 나온 서버 기능을 제공하게 된다. 예를들어 외부의 전자우편클라이언트가 내부의 어떤 호스트내 전자우편 서버와 접속맺기를 원한다면 중간에 가상서버가 이를 받아 다시 내부의 서버에게 전달하는 방식이 된다.
5)스크린 라우터(Screen Router)
어떤 기관이 인터네트에 접속할 경우 대부분 라우터(Router)를 거친다. 이는 인터네트 패킷을 전달하고 경로배정(Routing)을 담당하는 장비다. 라우터는 단순장비가 아니라면 패킷의 헤더 내용을 보고 필터링(스크린)할 수 있는 능력을 가지고 있다. 네트워크 수준의 IP(Internet Protocol) 데이터그램에서는 출발지 주소및 목적지 주소에 의한 스크린, TCP(Transmission Control Protocol) 수준의 패킷에서는 네트워크응용을 판단케해주는 포트(Port) 번호에 의해 스크린, 프로토콜별 스크린 등의 기능을 제공하게 된다. 이 스크린 라우터만을 가지고도 어느 정도 수준의 보안 접근제어를 통해 방화벽시스템 환경을 구현할 수 있다. 그러나 라우터에서 구현된 펌웨어의 수준으로는 제한점이 많고 복잡한 정책을 구현하기 어려우므로 보통 스크린 라우터와 다음에서 설명하는 베스쳔 호스트를 함께 운영한다.
6)베스쳔 호스트
베스쳔 호스트(Bastion Hosts)는 방화벽시스템이 가지는 기능 중 가장 중요한 기능을 제공하게 된다. 원래 베스쳔(Bastion)은 중세 성곽의 가장 중요한 수비부분을 의미하는데, 방화벽시스템 관리자가 중점 관리하게될 시스템이 된다. 그래서 방화벽시스템의 중요 기능으로 접근 제어 및 응용시스템 게이트웨이로서 가상서버(Proxy Server)의 설치, 인증, 로그 등을 담당하게 된다. 그러므로 호스트는 외부의 침입자가 주로 노리는 시스템이 된다. 따라서 일반 사용자의 게정을 만들지 않고 해킹의 대상이 될 어떠한 조건도 두지 않는 가장 완벽한 시스템으로서 운영되어야 한다. 보통 판매되는 방화벽시스템은 이러한 베스쳔호스트를 제공하는 것이라고 보면 된다.
7)이중 네트워크 호스트(Dual-Homed Hosts)
복수네트워크호스트는 2개 이상의 네트워크에 동시에 접속된 호스트를 말하며 보통 게이트웨이 호스트라고 말하는 시스템이 된다. 2개의 네트워크, 즉 외부 네트워크와 내부 네트워크를 의미하고 외부 네트워크와 내부 네트워크간의 유일한 패스를 제공하도록 조정된다. 즉 동적인 경로 배정과 경로 정보전달을 배제하므로 모든 내.외부 트래픽은 이 호스트를 통과하도록 하여 베스쳔호스트의 기능을 여기에 구현하면 되는 것이다.
8)스크린 호스트 게이트웨이(Screen Host Gateway)
스크린호스트게이트웨이 개념은 이 시스템을 내부 네트워크에 두어 스크린라 우터가 내부로 들어가는 모든 트래픽을 전부 스크린호스트에게만 전달되도록 하겠다는 것이다. 또한 스크린라우터는 내부에서 외부로 가는 모든 트래픽에 대해서도 스크린호스트에서 출발한 트래픽만 허용하고 나머지는 거부하게 된다. 그래서 내부와 내부 네트워크사이의 경로는 '외부네트워크 - 스크린라우터 - 스크린호스트 - 내부네트워크' 이외의 경로는 결코 허용하지 않게된다. 이 스크린호스트도 결국 베스쳔호스트, 이중네 트워크호스트의 개념이 집합된 시스템이다.
9)스크린 서브네트
스크린 서브네트(Screen Subnet)는 일명 DMZ(DeMiliterization Zone)의 역할을 외부 네트워크와 내부 네트워크 사이에 두겠다는 것으로 완충지역 개념의 서브네트를 운영하는 것이다. 여기에 스크린 라우터를 이용하여 이 완충지역을 곧장 통과 못하게 하지만 외부네트워크에서도 내부 네트워크에서도 이 스크린 서브네트에 접근할 수는 있다. 어떤 기관에서 외부로 공개할 정보서버(Information Server), 즉 익명 FTP서버, 고퍼(Gopher) 서버, 월드와이드웹(WWW)서버 등을 여기에 운영하면 된다.
10)암호 장비
암호장비(Encryption Devices)는 어떤 기관의 네트워크가 공공의 인터네트를 통해 여러 지역으로 분산되어 있을 경우 적당하다. 본사 네트워크가 방화벽 시스템을 구축하였을 때 지역적으로 떨어진 지점 네트워크도 본사 네트워크처럼 보호 되어야하는 것이다. 이 경우 본사와 지점 네트워크 간이 인터네트로 연결되었다면 안전을 보장하기 어려우므로 두 지점사이를 암호장비를 이용하여 가상 사설링크(VPL, Virtual Private Link)로 만들어 운영하면 된다. 그러므로서 두개의 네트워크는 하나의 안전한 네트워크로 만드는 것이다. 종단간 암호 방식은 데이터나 패스워드 등이 도청되는 것을 막는 방식을 원하는 사설백본(Private Backbone), 즉 여러 인터네트 접속점을 가진 기관에서 유용할 것이다.
5. 방화벽 시스템 구축하는 법
방화벽 시스템을 구축하려면 개념적으로 네트워크 레벨(Network Level) 방
화벽 시스템과 응용 레벨(Application Level) 방화벽 시스템으로 구분할 수 있다.
이러한 2가지 타입에 대해 어떤 것이 좋고 어떤 것이 나쁘다는 식의 판단을 내리기는 어려운 점이 있지만 기관의 요구사항에 어떤 것이 부합되는지를 잘 판단하는 것이 좋다.
1)네트워크 레벨 방화벽
네트워크 레벨의 시스템은 IP 패킷의 'Source/Destination' 어드레스와 포트에 의해 결정하게 된다. 단순한 라우터는 낡은 방식의 네트워크 레벨 방화벽을 제공하는데, 이것은 어떤 패킷이 동작하는지 어떠한 네트워크에서 왔는지를 판단해야 하는 복잡한 규칙에 대해 판단하기 어렵다. 현재의 네트워크 레벨 방화벽은 매우 복잡해져서 허용된 접속들의 상태와 어떤 종류의 데이터 내용 등을 관리할수 있다.
한가지 중요한 구별점은 네트워크 레벨 방화벽이 라우트를 직접 제어할 수 있으며, 할당된 IP 블럭을 정당하게 사용할 수 있도록 해준다는 점이다. 네트워크레벨 방화벽은 매우 빠르며, 사용자에게 투명한 서비스를 보장한다.
'스크린 호스트 방화벽' 이라고 할 수 있으며, 하나의 호스트에서의 접근제어가 네트워크 레벨에서 동작하는 라우터에서 이루어지며, 이때의 하나의 호스트란 'Bastion Host'이다.
또한, '스크린 서브네트 방화벽'이라는 것으로 구현될 수 있으며 이것은 네트워크 레벨에서 동작하는 라우터가 하나의 전체 네트워크에 대한 접근제어를 할수 있음을 말한다. 스크린호스트의 네트워크란 점만 빼면 스크린 호스트와 유사하다.
2)응용 레벨 방화벽
응용 레벨 방화벽은 2개의 네트워크 간에 항상 직접적인 트래픽을 막고, 트래픽에대해 로그, Audit 기능 등이 지원되는 프록시를 실행하는 기계를 말한다.
프록시 응용은 방화벽의 소프트웨어 부분이므로 많은 로그와 접근 제어 기능을 주는 것이 좋은 것이다. 응용레벨 방화벽은 어드레스 번역기로 사용될 수 있다.
어떤 쪽에서 들어와 다른 쪽으로 나가기 때문에 처음 시도한 접속에 대해 효과적인 마스킹을 할 수 있는 것이다. 이렇게 중도에 응용을 가지는 것은 어떤 경우에는 성능에 문제를 가질 수 있으며, 투명성이 보장되지 않는다. TIS 툴킷 등에 구현된 것과 같은 초기 응용 레벨 방화벽은 일반 사용자에게 투명하지도 않으며, 어떤 연습이 필요하였다. 최근의 응용 레벨 방화벽은 투명성이 보장되며, 보다 상세한 결산 보고와 네트워크 레벨 방화벽보다 보다 온전한 보안 모델을 제공하고 있다.
'이중 네트워크 게이트웨이(Dual-Homed Gateway)'가 있을 수 있다. 이는 프록시를 실행하는 고도의 보안이 제공되는 시스템. 2개의 네트워크 인터페이스를 가지고 하나의 네트워크 인터페이스에 대해서는 모든 트래픽이 그냥 통과되는것을 막는다.
미래의 방화벽시스템은 네트워크 레벨과 응용 레벨 방화벽의 복합형이될 것으로 예상된다. 이것의 의미는 네트워크레벨에서는 보다 상위의 기능을 가지려하고 응용레벨에서는 보다 하위 기능을 가지려 하기 때문이다. 최종 결과는 아마매우 빠른 패킷 스크린 기능과 모든 트래픽에 대한 로그와 심사 등이 예측되며, 특히 네트워크를 통해 전달되는 트래픽의 보호를 위해 암호 기법이 사용되리라고 보여진다.
6. 방화벽 시스템 구축시 고려 사항
우리는 실질적으로 방화벽 시스템에서 요구하는 대부분의 기능을 구현할수 있다. 방화벽 시스템의 가장 중요한 목적인 내부 네트워크의 보호라는 관점에서 다음의 고려 사항을 염두에 두고 방화벽의 설계 및 사양을 작성하거나, 구현 혹은 설치를 어떻게 할지를 판단하여야 한다.
첫째, 가장 중요한 사항은 해당 업체의 조직이 어떻게 시스템을 운영할 것인지에 대한 정책을 반영하는 것이다. 매우 중요한 네트워크에서의 작업을 제외하고는 모든 접속을 거부하는 식의 시스템을 운영할 것인가 아니면 덜 위협적인 방법으로 접속해 오는 모든 트래픽에 대해 조사하고 점검하는 방식으로 시스템을 운영할 것인가를 선택할 수 있다. 이러한 선택은 결정권에 대한 운영자의 태도에 달려있으며, 특히 엔지니어링 측면의 결정 보다 정책적인 결정에 따르게 된다.
둘째, 어느 정도 수준의 모니터링과 백업 및 제어를 원하는가에 대한 문제다. 첫번째 사항으로 기관이 받아들일 수 있는 보안에 대한 위험 수준이 세워졌다면, 이제 어떤 것을 모니터하고, 허용하고, 거부할 것인가라는 체크리스트를 작성해야 한다. 즉, 기관의 전체적인 목적을 결정하고 위험평가에 근거한 필요성 분석을 하며, 구현하고자 계획하여 사양을 마련했던 목록과 구별될 수 있는 문제점들을 가려낸다.
셋째, 경제적인 문제이다. 우리가 여기에서 정확하게 지적하기는 어렵지만 이것을 구매하는데 드는 비용과 구현에 드는 비용을 정확하게 정량적으로 산출하고자 하는 것이 중요하다. 예를 들어 완전한 방화벽제품의 구매에 드는 비용은 무료에서 10만달러에 이를 수 있으며, 무료일 경우에는 시스코(Cisco) 라우터의 비용과 구성 및 스태프의 인건비 등은 포함되지 않은 것이다. 제품 구매에 드는 비용에는 월 3만달러의 인건비 등이 포함된다. 그리고 시스템 관리에 드는 오버헤드 등이 포함된다. 방화벽 시스템의 우선 설치 및 구현에 드는 비용 뿐 아니라 지속적으로 드는 비용과 지원비 등이 계산되어야 한다.
넷째, 기술적인 측면에서 몇가지 결정해야 할 것이 있는데, 기관 내부의 네트워크와 네트워크 서비스 제공자 사이에서의 고정적 트래픽 라우팅 서비스 등에 대해서도 결정해야한다는 것이다. 트래픽 라우팅은 라우터에서의 IP 수준의 스크린 규칙이나 혹은 프록시 게이트웨이나 서비스에서의 응용 수준 등에서 구현되어야 한다.
다섯째, telnet, ftp, news 등의 프록시를 설치한 외부 노출 기계를 외부 네트워크에 둘 것인가 혹은 하나 이상의 내부 기계와 통신을 허용하는 필터링으로서의 스크린 라우터를 만들 것인가를 결정해야 한다. 각각의 접근 방식은 장단점이 있는데, 프록시 기계가 고급 수준의 기록성과 잠재적인 보안 기능을 많이 구현해야 하는 만큼 또한 비용이 많이 요구되기 때문이다. 프록시는 요구되는 서비스마다 따로 설계되어야 하며, 편리성과 보안에 드는 비용은 상대적이다.
현재 어떤 기업체가 인터네트에 연동할 때 가장 효과적인 보안 대책은 방화벽(Firewall)을 설치하는 것이라고 알려져 있다. 하지만 방화벽의 상용제품 하드웨어 플랫폼, 컨설팅, 네트워크 재 설계 등으로 비용이 꽤 들어가는 것이다. 또한 이러한 비용에 비추어서 고객이 바라는 완벽한 솔루션을 제공하는지도 의문이있을 수 있다.
방화벽이 100% 완전한 보안을 제공하는 것은 아니다. 방화벽은 단지 인터네트 등의 전산망에서의 보안 격리만을 제공할 뿐이다. 따라서 방화벽 시스템을 가동하고 있지만 어설픈 운영과 느슨한 정책 채택을 하고 있는 경우라면 더 심각한 문제를 일으키기도 한다.방화벽은 단순히 전산망의 기술적인 보안문제에 관심있을 뿐이며, 그 밖에 호스트에서의 보안 문제, 보안 모니터링, 중앙집중적인 보안관리, 정책, 교육 등이 총 망라되어야 할 것이다. 방화벽을 설치하고 집중적으로 보안을 담당할 인력을 보강하고 구체적인 대책과 관리에 신경을 쓴다면 비용효과적인 대책을 수립할 수 있다.
7. 제기되는 문제들
파이어월의 기능은 갈수록 발전하고 있다. 이들 기능은 Telnet,FTP,MAIL,NFS,X윈도 등이 서비스에 접근할 수 있는 길을 통제할 수 있다. 이러한 통제는사용자에게는 매우 불편함이 있다. 따라서 네트워크 보안 정책이 잘 구성돼야 보안에도 지장이 없고 사용자의 요구사항을 만족시킬 수 있다. 파이어월이 설치된 시스템에 접근하기 위해서는 파이어월을 통과해야만 된다. 불법적인 침입은 통제가 가능하다. 그러나 만일 파이어월 내부로 직접 연결하고자 할 경우 파이어월이 어떻게 통제하느냐 하는 문제가 지금고 큰 이슈다.
예를 들어 파이어월로부터 보호되는 내부의 호스트가 외부로부터 모뎀접속을 지원받고자 할 경우 SLIP(Serial Line IP), PPP(Point to Point Protocol)로 접속을 시도할 것이며 이것은 근복적으로 파이어월 내부의 네트워크가 파이어월이 어떤 형태로 지원해야 하는가가 문제다. 현재 일회용 패스워드 등 진보된 승인기능(Authentication)과 암호화 기법을 이용해 문제를 해결하고 있으며 일부 파이어월이 이러한 방식을 지원하고 있다.
파이어월은 내부의 침입자가 서버의 데이터를 테이프로 백업받아 외부로 유출하는 경우에 대한 보안을 지원할수 없다. 외부 네트워크로부터 보안이 필요한자료의 유출을 막기 위해 설계된 것이기 때문이다.
파이어월은 바이러스에 약하다. 파이어월에서 현재까지 바이러스에 감염된 파일을 다운로드할 경우 또는 전자우편을 통해 감염될 경우 미리 점검할 수 있는 방법이 없는 것이다.
모든 네트워크의 연결은 파이워월을 통과해야 하므로 파이월이 성능상 병목현상을 초래할 수도 있다.
그만큼 큰 네트워에서는 적당하게 그룹핑해 파이월에 접속하는 것이 바람직하다. 이밖에 클라이언트에서 데이터를 처리할 경우 즉데이터패킷에 클라이언트가 실행할 수 있는 명령이 있는 경우 실행 명령중에 보안관련 파일을 변경할수 있는 명령이 있을 수도 있다. 이 경우 현재는 진보된 사용자인증 프록시(Proxy)기능으로 문제를 해결하고 있다.
8. 구축사례
파이어월의 구축 사례는 많다. 개념적 파이어월의 구축 형태는 패킷 필터링파이어월 <>삼중 홈게이트웨이 파이어월 <>차폐된 호스트 파이어월등 3가지로구분 할 수 있다.
패킷 필터링 파이어월은 라우터 단독으로 파이어월 기능을 하며 패킷 필터하는 기능을 라우터에 구축하는 것을 말한다. 삼중 홈 게이트웨이 파이어월은 게이트웨이를 하는 호스트에 2개의 네트워크 인터페이스가 있으며 이들은 서로 분리된 형태로 이션 게이트웨이 기능)하는 여부와 함께 외부에 공개해야 할 서버와 내부에서만 사용하고 공개하지 않은 서버를 구분,서로 분리할수 있는 것이어야 한다. 셋째 규칙을 정의하는 언어가 사용자에게 쉬어야 하며 GUI화면으로 지원된 것이어야 한다. 넷째 파이어월의 일반 규정이 적용하지않은 규칙은 거절해야 한다. 다섯째 파이어월이 네트워크에 있는 트래픽을 로깅해야 한다고 향후 네트워크 보안 정책 수립에 필요한 통계자료를 추출 할 수 있어야 한다. 여섯째 파이어월이 보안된 오퍼레이팅 시스템으로 운영되고 있는가 여부와 TCP/IP상의 서비스들을 어느정도 지원하고 있는가 여부를 따져야 한다. TCP,UDP,RCP를 기반으로 하는 응용시스템까지 지원할 수 있는가를 파악해야 한다. 마지막으로 파이어월이 암호화된 기능을 지원하는가를 파악해야 한다.
1. Firewall 이란?
firewall 은 방화벽 이란 뜻이다.
방화벽이란 '화재를 방지하는 특수한 장치의 벽을 의미하는 것,불을 끄는 특수 기구'라는 뜻으로 설명할 수 있다.
방화벽 시스템은 필수적인 인터네트 서비스의 접근을 허락함과 동시에 기관의 보안레벨을 확실히 증가시킬 수 있는 최선의 해결을 제공하는 방법이다. 다시말해 데이터를 빼가거나 시스템을 망가뜨리는 해커들로부터 해당 네트워크를 보호하는 시스템의 일종이다.
물론 이 방화벽 시스템을 구현하는 것이 충분한 보장을 해준다고 볼 수는 없다. 그러나 가장 효과적이고 비용이 비교적 저렴하게 드는 방법이라고 할 수 있다. 그래서 네트워크를 설치한 각계 각층에서 최근 쉴새없이 방화벽에 대한 세미나와 토론회를 개최하고 있는 것이다.
방화벽이 네트워크로 연결된 호스트를 어떻게 보호하는가와 방화벽의 구성요소를 알아보자.
인터네트에 연결된 컴퓨터 사용자 수는 현재 전세계적으로 4천만명 이상이 된다. 이처럼 많은 사람이 인터네트를 이용하게 되면서 정보 보안은 갈수록 중요해지고 있다.기업,관공서,연구소 등이 내부적으로 근거리통신망(LAN)을 구축하거나 사설망을 운영할 때에는 정보의 보안에 대해 심각하게 고려하지 않았다.
하지만 이제 기업간 또는 조직간정보의 교류가 중요해지면서 외부에 공개할 자료와 보안할 자료를 구분할 필요성이 점점 증대되고 있다.
인터네트는 유닉스 호스트를 기반으로 TCP/IP라는 공개적인 프로토콜을 사용해 컴퓨터간 네트워크로 정보를 교환할 수 있도록 한 것이다.
유닉스와 TCP/IP는 개방화 방향으로 기술이 발전하고 있다. 또 네트워크에 연결된 자원의 활용을 극대화할 수 있도록 많은 유틸리키를 사용하고 있다.
따라서 유닉스와 TCP/IP는 정보의 보안에 관해서 매우 취약하다.
기업이 해외지사 또는 본집점간 정보의 공유를 원활하게 유지하기 위해 전자메일을 도입하고 전체망을 인터네트에 연결했다면 전세계 인터네트 사용자들도 이 전상망에 쉽게 침투, 전자메일 정보는 물론 기업의 중요한 정보도 쉽게빼낼 수 있다. firewall은 내부의 전산망을 인터네트 등 외부망과 연결하거나 기업내 사설망을 구축할 경우 외부 사용자로부터 또는 기업간 사설망의 전자도청으로부터 내부의 중요한 기밀과 정보를 보호하고 외부에 공개할 정보를 취사 선택할 수 있는 네트워크 정책을 수립할 수 있도록 기업내 사설망에 구축하는 전자보안시스템이다.
방화벽의 원래 의미는 건물에서 발생한 화재가 더 이상 번지는 것을 막는것이다. 이러한 의미를 인터네트에서 쓴다면 이는 네트워크의 보안 사고나 문제가 더이상 확대되는 것을 막고 격리하려는 것으로 이해될 수 있다. 특히 어떤 기관 내부의 네트워크를 보호하기 위해 외부에서의 불법적인 트래픽 유입을 막고, 허가되고 인증된 트래픽만을 허용하려는 적극적인 방어대책임을 알 수 있다.
방화벽은 간단히 라우터, 호스트 시스템 또는 네트워크 보안을 제공하는 시스템의 집합에 포함되지 않는다. 방화벽은 보안에의 접근이다. 즉, 허락되는 서비스와 액세스를 정의 하는 것 보다 큰 보안 정책의 수행을 돕는다. 네트워크 구성, 그리고 하나 또는 그 이상의 호스트 시스템과 라우터 그리고 안정된 패스워드에서 진보된 인증같은 다른 보안 수단이다.
방화벽 시스템의 주된 목적은 보호된 네트워크 안밖으로의 접근을 내부에서 자유자재로 조정하는 것이다. 트래픽을 시험하고 평가할 수 있는 방화벽을 지나는 접속을 제어함으로써 네트워크 액세스 정책을 수행한다.
방화벽 시스템은 라우터, 퍼스날 컴퓨터, 호스트 또는 외부 호스트들로부터 악용될 수 있는 프로토콜과 서비스로부터 사이트 또는 서브네트를 보호하기 위해 특별히 셋업된 호스트들의 집합일 수도 있다. 방화벽 시스템은 일반적으로 사이트의 인터네트 접속과 같은 하이레벨 게이트웨이에 위치한다. 하지만, 호스트나 서브네트의 보다 작은 집합을 보호하기 위해 로우레벨 게이트웨이에 위치할 수도있다.
2. 유닉스,TCP/IP 보안 취약성
인터네트에서는 정보보안이 취약하다. 인터네트에서 제공하는 서비스(FTP,Telnet,DNS,SMTP,NFS등)가 근본적으로 갖고 있는 보안에 대한 취약성과 잘못된 호스트구성, 접근통제(Acces Control) 등에 기인한다.
인터네트에서 제공하는 서비스는 약5백개에 달한다. 이들 각각은 외부에서 침투할경우 주요 공략 대상이 된다. 따라서 보안에 대한 시스템 관리자의 역할은 매우 중요하며 정기적인 보안대책 수립 및 실행, 인터네트 서비스들의 로그파일 분석등 보안상황에 대한 수시 점검이 필요하다.
인터네트에서 발생한 보안 관련 사고는 대부분 유닉스 포스트의 사용자 인증처리 절차가 너무 간단하고 미약한데서 비롯된다. 유닉스상에 패스워드는 패스워드 크래커 등 해독프로그램에 의해 쉽게 해독되기 때문에 해커들의 주요 공략 대상이 될 수 있다.
TCP/IP가 제공하는 서비스도 사용자 인증은 매우 취약하다고 할 수 있다.
예를 들어 NFS(Network File System)에서 인증은 사용자 인증이 아닌 IP주소를 갖는 호스트 전체에 대한 인증이어서 특정 사용자 계정에 대한 인증은 불가능하다.
Telnet, FTP, MAIL 등의 서비스 이용시로그인을 하거나 또는 클라이언트와 데이터를 주고 받을 ㎖ 데이터는 암호화되어 있지 않아 스니퍼 프로그램을 이용하거나 또는 인터네트 전용선을 태핑하든 어떤 경우에도 쉽게 데이터를 해독해 호스트에 침입하거나 취득한 정보를 다른 어떤 용 도로 사용할 수가있다.
특히 X윈도슷템은 네트워크의 모니터 및 해킹을 하기에 매우 적합한 도구가 될 수 있다. 해커는X윈도스스템을 이용해 원격지 호스트의 윈도를 열어 패스워드를 비롯 기타 보안유지가 필요한 중요한 정보들의 키보드 입력을 바로 모니터할 수가 있는 것이다.
LAN을 구축하거나 호스트간 네트워크로 연결한 경우에는 네트워크 자원의 효율성을 높이기 위해 네트워크에 연결된 각 호스트Network Information System), 버클리 r-명령어들을 사용하게 된다.
이 경우 네트워크에 연결된 호스트중 한 곳만 해커에 침입을 당해도 그 네트워크에 연결된 전 호스트가 보안에 문제가 발 생할 수 있다.
사실 인터네트에 연결됐다는 것은 내부의 네트워크가 전세계 인터네트 사용자의 공경 대상이 되었다는 것으로 보아도 무방하다.
CERT/CC자료에 따르면 미국에서는 지난 88년이후 인터네트 사용자가 증가하는비율보다도 인터네트 증가에 대해 보안 사고 비율이 급격히 증가하고 있다는것이다.
인터네트 사용자가 많아지고 인터네트에 접속된 호스트가 증가하면 할수록 인터네트 관련 보안사고는 기하급수적으로 증거한다는 것이다.
특히 호스트 시스템이 복잡하게 연결됐고 사이트의 명성이 높을 경우 해커들의 좋은 목표가 될 수 있다는 점에서 보안에 대한 철저한 준비 및 통제, 대처방안 등을 미리 수립하는 것이 매우 중요하다.
파이어월 개념과 필요성 파이어월은 단순히 네트워크의 구성요소인 라우터, 호스트시스템, 또는 네트워크에 안전을 제공하는 시스템의 집합이라기 보다 네트워크 전체를 대상으로 안전에 접근하는 정책(policy)이라고 할 수 있다. 여기서 정책이라 함은 인터네트에 연결할 때 제공하고자 하는 서비스의 종류,네트워크 구성의 정의,네트워크에 접근하는 사용자의 분류, 안전의 측정 방법 등을 총괄적으로 정의할수 있다.
파이어월 시스템은 보안하고자하는 네트워크의 접근을 통제하자는 것이다. 즉 네트워크의 접근통제정책(파이어월)을구현하는 것이다. 파이어월 시스템은 라우터, pc,호스트 및 기타 프로토콜, 서비스를 보호하는데 사용하는 네트워크 장비들이 될 수 있다. 그러나 통상적으로 파이어월은 네트워크 정책 및 파이어월 시스템을 포함한 전체를 뜻한다.
파이어월이 없는 환경에서는 네트워크의 보안은 전적으로 호스트 시스템의 보안에 의존하게 되며, 네트워크에 연결된 모든 호스트가 일정하게 역할을 분담해야 한다. 그러나 네트워크가 커지면 커질 수록 보안의 통제는 매우 어려워지며 잘못된 구성, 부적절한 패스워드 등이 원인이 되어 쉽게 네트워크 보안이 허물어지게 된다. 따라서 파이어월의 접근방법은 네트워크 전체의 보안 수준을 높이며 해커의 침입 "시 적절히 대처할 수 있는 능력을 배양시키는것이다.
3. 방화벽 시스템의 장점
방화벽시스템의 기본 목표는 네트워크 사용자에게 투명성을 보장하지 않아 약간의 제약을 주더라도 위험지대를 줄이려는 적극적인 보안대책을 제공하려는것이다.
외부와의 투명성으로 내부망 전체가 위험지대임을 보여주고 있다.
네트워크 시스템에서 외부와 내부 네트워크사이의 유일한 패스에 방화벽시스템을 둔 것이다. 방화벽시스템이 보안서비스를 제공하여 불법적인 트
래픽을 거부하거나 막을 수 있게 되었다. 물론 투명성을 보장하지는 않지만 내부 네트워크를 안전지대로 만들 수 있다.
방화벽 시스템으로 접근하는 것은 전반적인 호스트 보안을 증진시키는데 도움을 줌으로써 사이트에 많은 이점을 제공한다.
1)취약한 서비스로부터 보호
방화벽은 크게 네트워크 보안을 증가시키고 원천적으로 불안전한 서비스를 필터링함으로써 서브네트 상에 있는 호스트에 위험을 감소시킨다. 선택된 프로토 콜만이 방화벽을 통과 할 수 있기때문에, 서브네트 네트워크 환경은 위험에 덜 노출된다.
2)호스트 시스템으로의 액세스 컨트롤
방화벽은 또한 호스트 시스템으로의 액세스를 컨트롤할 수 있다. 예를 들면, 외부 네트워크에서 한 호스트로 접속할 수 있는데, 원하지 않는 액세스는 효과적으로 차단해 준다. 사이트는 메일 서버나 NIS같은 특별한 경우를 제외한 외부로 부터의 액세스를 차단한다.
3)보안의 집중
방화벽은 대부분의 수정된 소프트웨어와 추가되는 보안 소프트웨어를 많은 호스트에 분산시키지 않고 방화벽에 설치할 수 있다는 점에서 경제적이다. 특별히, one-time 패스워드 시스템과 다른 추가적인 인증 소프트웨를 인터네트로부터 액세스를 필요로하는 각 시스템과는 대조적으로 방화벽에 설치할 수 있다.
4)확장된 프라이버시
일반적으로 해가 없다고 생각되는 것들이 실질적으로 프라이버시 침해에의 결정적인 요인이 될 수 있다. 이들은 유용할 수 있는 실마리를 포함하고 있을 수있기 때문에 어떤 사이트에서는 중요시 된다. 방화벽을 사용한 사이트(호스트외의 연결 시스템)들은 핑거(finger)와 DNS(Domain Named Service)같은 서비스를 막고자 한다. 핑거는 마지막 로그인 시간과 메일 도착 여부, 다른 아이템들을 읽었는지 등 해당 계정의 사용자 정보를 디스플레이해주는 명령어다.
이런 편리한 '핑거' 서비스는 해커(시스템 침입자)들에게도 그 시스템이 얼마나 자주 사용되는지, 시스템에 연결된 사용자가 있는지, 그리고 침해될 수 있는지에 관한 정보를 보여준다. 따라서 방화벽은 가능하면 핑거를 이용하는 것을 막음으로써 침입자들의 접근 요인을 막고자 하는 것이다.
방화벽은 또한 사이트 시스템에 관한 DNS 정보를 막고자 하는데 사용된다. 그래서 사이트의 이름과 IP 어드레스를 인터네트 호스트에서 유출되지 않게한다. 어떤 사이트들은 이러한 정보를 막음으로써 침입자에 유용한 정보를 숨길 수 있다고 생각한다.
5)네트워크 사용과 비사용에서의 로그인과 통계자료 제공
인터네트 안밖으로의 모든 액세스가 방화벽을 통과 한다면, 방화벽은 액세스 정보를 기록할 수 있고 네트워크 사용에 관한 유용한 통계자료를 제공한다. 의심스로운 활동이 있을때 적당한 알람기능을 가진 방화벽은 방화벽과 네트워크가 침입 시도를 받고 있는지 또는 침입 되었는에 대한 세부사항을 제공해 준다.
6)정책 시행
마지막으로 이것이 가장 중요한데, 방화벽은 네트워크 액세스 정책을 실행한다. 사실상, 방화벽은 사용자들과 서비스의 액세스를 컨트롤할 수 있다. 그래서, 네트워크 액세스 정책은 방화벽에 의해서 시행될 수 있게 된다. 그러나 방화벽이 없다면, 그러한 정책들은 전적으로 사용자들의 협조에 의존해야 한다. 사이트는 자신의 사용자들의 협조에 의존하여 보안을 유지할 수 있기 때문이다. 그러나 일반적으로 인터네트 사용자들에게는 적용되지 않는다.
4. 방화벽시스템의 기본 구성 요소
방화벽시스템에 대한 각종 토론이 이루어지는 그룹에서는 방화벽시스템에 대한 일반적인 용어 정의 및 개념을 설명하고 있다. 방화벽시스템이 가지는 여러가지 기능과 보안 대처 수준에 따라 여러가지 종류의 방화벽시스템이 존재할 수 있으나, 여기서는 일반적인 방화벽시스템의 구성요소를 소개한다. 이는 방화벽시스템 개발자, 운영자 및 컨설트업체들이 거의 동의하고 있는 개념이다.
1)네트워크 정책(Network Policy)
방화벽 시스템의 설계, 설치, 사용에 직접적으로 영향을 줄 수 있는 두가지 레벨의 네트워크 정책이 있다. 하이레벨 정책은 명확한 이슈 즉, 제한된 네트워크로부터 서비스를 허락할 것인가 또는 명확히 거부할 것인가를 정의하는 네트워크 액세스 정책이다. 이러한 서비스들을 어떻게 사용할 것인가, 그리고 이러한 정책의 예외 조건등이 하이레벨 정책에 속한다. 로우레벨 정책은 어떻게 방화벽이 실질적으로 액세스를 제한하고 하이레벨 정책에서 정의한 서비스를 필터링 할 것인가에 대한 사항이다.
2)방화벽시스템의 사용자인증 시스템(Advanced Authentication)
방화벽시스템은 한 기관의 네트워크 전체를 보호해야 하므로 일반적으로 유닉스시스템에서 사용되는 단순한 패스워드 기법으로 사용자를 인증하는 방법을 사용하지는 않는다. 우수한 인증수단으로는 스마트 카드, 어탠디케이션 토큰(Authentication tokens), 바이오메트릭스(Biometrics) 그리고 소프트웨어 메카니즘 등을 사용한다. 현재 많이 사용하고 있는 우수한 인증시스템으로는 일회용패스워드(One Time Passwd)시스템이 있다. 매번 사용자가 로그인을 시도할 때 마다 매번 새로운 패스워드를 이용하는 것인데, 이는 침입자들이 최근 이용하고 있는 스니퍼(sniffer)에 의한 패킷가로채기를 통해 시스템의 사용자ID와 패스워드를 알아내서 침입하는 것을 근본적으로 막아주게 된다.
3)패킷 필터링
IP 패킷 필터링(Packet Filtering)은 통상 라우터 인터페이스를 지나는 패킷을 필터링을 하기 위해 설계된 패킷 필터링 라우터(packet filtering router)를 사용하여 행해진다. 패킷 필터링 라우터는 IP 패킷중 다음의 전부 또는 일부를 필터링 할 수 있다.
- source IP address
- destination IP address
- TCP/IP source port
- TCP/IP destination port
모든 패킷 필터링 라우터가 소스 TCP/IP 포트를 필터링하지는 않는다. 그러나 많은 제조회사들이 이러한 능력을 증가시키고 있다. 대부분은 아니지만 유닉스 호스트도 패킷 필터링 기능을 제공한다.
4)응용계층 게이트웨이(Application Level Gateway)
응용계층서비스들은 중간전달(Store-and-Forward)방법을 쓰는 경우가 많은데, 이는 게이트웨이에서 수행할 방법과 그대로 맞아떨어지게 된다. 게이트웨이는 송신자 응용서비스가 보내는 각종 정보를 그대로 전달하면 되는 것이다. 이 게이트웨이에서는 보안을 위한 특별한 서비스가 제공된다. 예를 들어 내부와 외부간의 모든 응용수준의 트래픽에 대해 로그기록이나, 텔네트(Telnet)나 FTP 등에서 사용자 인증을 할 경우 보다 우수한 방법을 사용한 변경된 인증방법을 이용한다든가 하는 것이다. 이 응용계층의 게이트웨이 기능은 가상서버(Proxy Server)라는 인터네트의 클라이언트/서버 개념에서 나온 서버 기능을 제공하게 된다. 예를들어 외부의 전자우편클라이언트가 내부의 어떤 호스트내 전자우편 서버와 접속맺기를 원한다면 중간에 가상서버가 이를 받아 다시 내부의 서버에게 전달하는 방식이 된다.
5)스크린 라우터(Screen Router)
어떤 기관이 인터네트에 접속할 경우 대부분 라우터(Router)를 거친다. 이는 인터네트 패킷을 전달하고 경로배정(Routing)을 담당하는 장비다. 라우터는 단순장비가 아니라면 패킷의 헤더 내용을 보고 필터링(스크린)할 수 있는 능력을 가지고 있다. 네트워크 수준의 IP(Internet Protocol) 데이터그램에서는 출발지 주소및 목적지 주소에 의한 스크린, TCP(Transmission Control Protocol) 수준의 패킷에서는 네트워크응용을 판단케해주는 포트(Port) 번호에 의해 스크린, 프로토콜별 스크린 등의 기능을 제공하게 된다. 이 스크린 라우터만을 가지고도 어느 정도 수준의 보안 접근제어를 통해 방화벽시스템 환경을 구현할 수 있다. 그러나 라우터에서 구현된 펌웨어의 수준으로는 제한점이 많고 복잡한 정책을 구현하기 어려우므로 보통 스크린 라우터와 다음에서 설명하는 베스쳔 호스트를 함께 운영한다.
6)베스쳔 호스트
베스쳔 호스트(Bastion Hosts)는 방화벽시스템이 가지는 기능 중 가장 중요한 기능을 제공하게 된다. 원래 베스쳔(Bastion)은 중세 성곽의 가장 중요한 수비부분을 의미하는데, 방화벽시스템 관리자가 중점 관리하게될 시스템이 된다. 그래서 방화벽시스템의 중요 기능으로 접근 제어 및 응용시스템 게이트웨이로서 가상서버(Proxy Server)의 설치, 인증, 로그 등을 담당하게 된다. 그러므로 호스트는 외부의 침입자가 주로 노리는 시스템이 된다. 따라서 일반 사용자의 게정을 만들지 않고 해킹의 대상이 될 어떠한 조건도 두지 않는 가장 완벽한 시스템으로서 운영되어야 한다. 보통 판매되는 방화벽시스템은 이러한 베스쳔호스트를 제공하는 것이라고 보면 된다.
7)이중 네트워크 호스트(Dual-Homed Hosts)
복수네트워크호스트는 2개 이상의 네트워크에 동시에 접속된 호스트를 말하며 보통 게이트웨이 호스트라고 말하는 시스템이 된다. 2개의 네트워크, 즉 외부 네트워크와 내부 네트워크를 의미하고 외부 네트워크와 내부 네트워크간의 유일한 패스를 제공하도록 조정된다. 즉 동적인 경로 배정과 경로 정보전달을 배제하므로 모든 내.외부 트래픽은 이 호스트를 통과하도록 하여 베스쳔호스트의 기능을 여기에 구현하면 되는 것이다.
8)스크린 호스트 게이트웨이(Screen Host Gateway)
스크린호스트게이트웨이 개념은 이 시스템을 내부 네트워크에 두어 스크린라 우터가 내부로 들어가는 모든 트래픽을 전부 스크린호스트에게만 전달되도록 하겠다는 것이다. 또한 스크린라우터는 내부에서 외부로 가는 모든 트래픽에 대해서도 스크린호스트에서 출발한 트래픽만 허용하고 나머지는 거부하게 된다. 그래서 내부와 내부 네트워크사이의 경로는 '외부네트워크 - 스크린라우터 - 스크린호스트 - 내부네트워크' 이외의 경로는 결코 허용하지 않게된다. 이 스크린호스트도 결국 베스쳔호스트, 이중네 트워크호스트의 개념이 집합된 시스템이다.
9)스크린 서브네트
스크린 서브네트(Screen Subnet)는 일명 DMZ(DeMiliterization Zone)의 역할을 외부 네트워크와 내부 네트워크 사이에 두겠다는 것으로 완충지역 개념의 서브네트를 운영하는 것이다. 여기에 스크린 라우터를 이용하여 이 완충지역을 곧장 통과 못하게 하지만 외부네트워크에서도 내부 네트워크에서도 이 스크린 서브네트에 접근할 수는 있다. 어떤 기관에서 외부로 공개할 정보서버(Information Server), 즉 익명 FTP서버, 고퍼(Gopher) 서버, 월드와이드웹(WWW)서버 등을 여기에 운영하면 된다.
10)암호 장비
암호장비(Encryption Devices)는 어떤 기관의 네트워크가 공공의 인터네트를 통해 여러 지역으로 분산되어 있을 경우 적당하다. 본사 네트워크가 방화벽 시스템을 구축하였을 때 지역적으로 떨어진 지점 네트워크도 본사 네트워크처럼 보호 되어야하는 것이다. 이 경우 본사와 지점 네트워크 간이 인터네트로 연결되었다면 안전을 보장하기 어려우므로 두 지점사이를 암호장비를 이용하여 가상 사설링크(VPL, Virtual Private Link)로 만들어 운영하면 된다. 그러므로서 두개의 네트워크는 하나의 안전한 네트워크로 만드는 것이다. 종단간 암호 방식은 데이터나 패스워드 등이 도청되는 것을 막는 방식을 원하는 사설백본(Private Backbone), 즉 여러 인터네트 접속점을 가진 기관에서 유용할 것이다.
5. 방화벽 시스템 구축하는 법
방화벽 시스템을 구축하려면 개념적으로 네트워크 레벨(Network Level) 방
화벽 시스템과 응용 레벨(Application Level) 방화벽 시스템으로 구분할 수 있다.
이러한 2가지 타입에 대해 어떤 것이 좋고 어떤 것이 나쁘다는 식의 판단을 내리기는 어려운 점이 있지만 기관의 요구사항에 어떤 것이 부합되는지를 잘 판단하는 것이 좋다.
1)네트워크 레벨 방화벽
네트워크 레벨의 시스템은 IP 패킷의 'Source/Destination' 어드레스와 포트에 의해 결정하게 된다. 단순한 라우터는 낡은 방식의 네트워크 레벨 방화벽을 제공하는데, 이것은 어떤 패킷이 동작하는지 어떠한 네트워크에서 왔는지를 판단해야 하는 복잡한 규칙에 대해 판단하기 어렵다. 현재의 네트워크 레벨 방화벽은 매우 복잡해져서 허용된 접속들의 상태와 어떤 종류의 데이터 내용 등을 관리할수 있다.
한가지 중요한 구별점은 네트워크 레벨 방화벽이 라우트를 직접 제어할 수 있으며, 할당된 IP 블럭을 정당하게 사용할 수 있도록 해준다는 점이다. 네트워크레벨 방화벽은 매우 빠르며, 사용자에게 투명한 서비스를 보장한다.
'스크린 호스트 방화벽' 이라고 할 수 있으며, 하나의 호스트에서의 접근제어가 네트워크 레벨에서 동작하는 라우터에서 이루어지며, 이때의 하나의 호스트란 'Bastion Host'이다.
또한, '스크린 서브네트 방화벽'이라는 것으로 구현될 수 있으며 이것은 네트워크 레벨에서 동작하는 라우터가 하나의 전체 네트워크에 대한 접근제어를 할수 있음을 말한다. 스크린호스트의 네트워크란 점만 빼면 스크린 호스트와 유사하다.
2)응용 레벨 방화벽
응용 레벨 방화벽은 2개의 네트워크 간에 항상 직접적인 트래픽을 막고, 트래픽에대해 로그, Audit 기능 등이 지원되는 프록시를 실행하는 기계를 말한다.
프록시 응용은 방화벽의 소프트웨어 부분이므로 많은 로그와 접근 제어 기능을 주는 것이 좋은 것이다. 응용레벨 방화벽은 어드레스 번역기로 사용될 수 있다.
어떤 쪽에서 들어와 다른 쪽으로 나가기 때문에 처음 시도한 접속에 대해 효과적인 마스킹을 할 수 있는 것이다. 이렇게 중도에 응용을 가지는 것은 어떤 경우에는 성능에 문제를 가질 수 있으며, 투명성이 보장되지 않는다. TIS 툴킷 등에 구현된 것과 같은 초기 응용 레벨 방화벽은 일반 사용자에게 투명하지도 않으며, 어떤 연습이 필요하였다. 최근의 응용 레벨 방화벽은 투명성이 보장되며, 보다 상세한 결산 보고와 네트워크 레벨 방화벽보다 보다 온전한 보안 모델을 제공하고 있다.
'이중 네트워크 게이트웨이(Dual-Homed Gateway)'가 있을 수 있다. 이는 프록시를 실행하는 고도의 보안이 제공되는 시스템. 2개의 네트워크 인터페이스를 가지고 하나의 네트워크 인터페이스에 대해서는 모든 트래픽이 그냥 통과되는것을 막는다.
미래의 방화벽시스템은 네트워크 레벨과 응용 레벨 방화벽의 복합형이될 것으로 예상된다. 이것의 의미는 네트워크레벨에서는 보다 상위의 기능을 가지려하고 응용레벨에서는 보다 하위 기능을 가지려 하기 때문이다. 최종 결과는 아마매우 빠른 패킷 스크린 기능과 모든 트래픽에 대한 로그와 심사 등이 예측되며, 특히 네트워크를 통해 전달되는 트래픽의 보호를 위해 암호 기법이 사용되리라고 보여진다.
6. 방화벽 시스템 구축시 고려 사항
우리는 실질적으로 방화벽 시스템에서 요구하는 대부분의 기능을 구현할수 있다. 방화벽 시스템의 가장 중요한 목적인 내부 네트워크의 보호라는 관점에서 다음의 고려 사항을 염두에 두고 방화벽의 설계 및 사양을 작성하거나, 구현 혹은 설치를 어떻게 할지를 판단하여야 한다.
첫째, 가장 중요한 사항은 해당 업체의 조직이 어떻게 시스템을 운영할 것인지에 대한 정책을 반영하는 것이다. 매우 중요한 네트워크에서의 작업을 제외하고는 모든 접속을 거부하는 식의 시스템을 운영할 것인가 아니면 덜 위협적인 방법으로 접속해 오는 모든 트래픽에 대해 조사하고 점검하는 방식으로 시스템을 운영할 것인가를 선택할 수 있다. 이러한 선택은 결정권에 대한 운영자의 태도에 달려있으며, 특히 엔지니어링 측면의 결정 보다 정책적인 결정에 따르게 된다.
둘째, 어느 정도 수준의 모니터링과 백업 및 제어를 원하는가에 대한 문제다. 첫번째 사항으로 기관이 받아들일 수 있는 보안에 대한 위험 수준이 세워졌다면, 이제 어떤 것을 모니터하고, 허용하고, 거부할 것인가라는 체크리스트를 작성해야 한다. 즉, 기관의 전체적인 목적을 결정하고 위험평가에 근거한 필요성 분석을 하며, 구현하고자 계획하여 사양을 마련했던 목록과 구별될 수 있는 문제점들을 가려낸다.
셋째, 경제적인 문제이다. 우리가 여기에서 정확하게 지적하기는 어렵지만 이것을 구매하는데 드는 비용과 구현에 드는 비용을 정확하게 정량적으로 산출하고자 하는 것이 중요하다. 예를 들어 완전한 방화벽제품의 구매에 드는 비용은 무료에서 10만달러에 이를 수 있으며, 무료일 경우에는 시스코(Cisco) 라우터의 비용과 구성 및 스태프의 인건비 등은 포함되지 않은 것이다. 제품 구매에 드는 비용에는 월 3만달러의 인건비 등이 포함된다. 그리고 시스템 관리에 드는 오버헤드 등이 포함된다. 방화벽 시스템의 우선 설치 및 구현에 드는 비용 뿐 아니라 지속적으로 드는 비용과 지원비 등이 계산되어야 한다.
넷째, 기술적인 측면에서 몇가지 결정해야 할 것이 있는데, 기관 내부의 네트워크와 네트워크 서비스 제공자 사이에서의 고정적 트래픽 라우팅 서비스 등에 대해서도 결정해야한다는 것이다. 트래픽 라우팅은 라우터에서의 IP 수준의 스크린 규칙이나 혹은 프록시 게이트웨이나 서비스에서의 응용 수준 등에서 구현되어야 한다.
다섯째, telnet, ftp, news 등의 프록시를 설치한 외부 노출 기계를 외부 네트워크에 둘 것인가 혹은 하나 이상의 내부 기계와 통신을 허용하는 필터링으로서의 스크린 라우터를 만들 것인가를 결정해야 한다. 각각의 접근 방식은 장단점이 있는데, 프록시 기계가 고급 수준의 기록성과 잠재적인 보안 기능을 많이 구현해야 하는 만큼 또한 비용이 많이 요구되기 때문이다. 프록시는 요구되는 서비스마다 따로 설계되어야 하며, 편리성과 보안에 드는 비용은 상대적이다.
현재 어떤 기업체가 인터네트에 연동할 때 가장 효과적인 보안 대책은 방화벽(Firewall)을 설치하는 것이라고 알려져 있다. 하지만 방화벽의 상용제품 하드웨어 플랫폼, 컨설팅, 네트워크 재 설계 등으로 비용이 꽤 들어가는 것이다. 또한 이러한 비용에 비추어서 고객이 바라는 완벽한 솔루션을 제공하는지도 의문이있을 수 있다.
방화벽이 100% 완전한 보안을 제공하는 것은 아니다. 방화벽은 단지 인터네트 등의 전산망에서의 보안 격리만을 제공할 뿐이다. 따라서 방화벽 시스템을 가동하고 있지만 어설픈 운영과 느슨한 정책 채택을 하고 있는 경우라면 더 심각한 문제를 일으키기도 한다.방화벽은 단순히 전산망의 기술적인 보안문제에 관심있을 뿐이며, 그 밖에 호스트에서의 보안 문제, 보안 모니터링, 중앙집중적인 보안관리, 정책, 교육 등이 총 망라되어야 할 것이다. 방화벽을 설치하고 집중적으로 보안을 담당할 인력을 보강하고 구체적인 대책과 관리에 신경을 쓴다면 비용효과적인 대책을 수립할 수 있다.
7. 제기되는 문제들
파이어월의 기능은 갈수록 발전하고 있다. 이들 기능은 Telnet,FTP,MAIL,NFS,X윈도 등이 서비스에 접근할 수 있는 길을 통제할 수 있다. 이러한 통제는사용자에게는 매우 불편함이 있다. 따라서 네트워크 보안 정책이 잘 구성돼야 보안에도 지장이 없고 사용자의 요구사항을 만족시킬 수 있다. 파이어월이 설치된 시스템에 접근하기 위해서는 파이어월을 통과해야만 된다. 불법적인 침입은 통제가 가능하다. 그러나 만일 파이어월 내부로 직접 연결하고자 할 경우 파이어월이 어떻게 통제하느냐 하는 문제가 지금고 큰 이슈다.
예를 들어 파이어월로부터 보호되는 내부의 호스트가 외부로부터 모뎀접속을 지원받고자 할 경우 SLIP(Serial Line IP), PPP(Point to Point Protocol)로 접속을 시도할 것이며 이것은 근복적으로 파이어월 내부의 네트워크가 파이어월이 어떤 형태로 지원해야 하는가가 문제다. 현재 일회용 패스워드 등 진보된 승인기능(Authentication)과 암호화 기법을 이용해 문제를 해결하고 있으며 일부 파이어월이 이러한 방식을 지원하고 있다.
파이어월은 내부의 침입자가 서버의 데이터를 테이프로 백업받아 외부로 유출하는 경우에 대한 보안을 지원할수 없다. 외부 네트워크로부터 보안이 필요한자료의 유출을 막기 위해 설계된 것이기 때문이다.
파이어월은 바이러스에 약하다. 파이어월에서 현재까지 바이러스에 감염된 파일을 다운로드할 경우 또는 전자우편을 통해 감염될 경우 미리 점검할 수 있는 방법이 없는 것이다.
모든 네트워크의 연결은 파이워월을 통과해야 하므로 파이월이 성능상 병목현상을 초래할 수도 있다.
그만큼 큰 네트워에서는 적당하게 그룹핑해 파이월에 접속하는 것이 바람직하다. 이밖에 클라이언트에서 데이터를 처리할 경우 즉데이터패킷에 클라이언트가 실행할 수 있는 명령이 있는 경우 실행 명령중에 보안관련 파일을 변경할수 있는 명령이 있을 수도 있다. 이 경우 현재는 진보된 사용자인증 프록시(Proxy)기능으로 문제를 해결하고 있다.
8. 구축사례
파이어월의 구축 사례는 많다. 개념적 파이어월의 구축 형태는 패킷 필터링파이어월 <>삼중 홈게이트웨이 파이어월 <>차폐된 호스트 파이어월등 3가지로구분 할 수 있다.
패킷 필터링 파이어월은 라우터 단독으로 파이어월 기능을 하며 패킷 필터하는 기능을 라우터에 구축하는 것을 말한다. 삼중 홈 게이트웨이 파이어월은 게이트웨이를 하는 호스트에 2개의 네트워크 인터페이스가 있으며 이들은 서로 분리된 형태로 이션 게이트웨이 기능)하는 여부와 함께 외부에 공개해야 할 서버와 내부에서만 사용하고 공개하지 않은 서버를 구분,서로 분리할수 있는 것이어야 한다. 셋째 규칙을 정의하는 언어가 사용자에게 쉬어야 하며 GUI화면으로 지원된 것이어야 한다. 넷째 파이어월의 일반 규정이 적용하지않은 규칙은 거절해야 한다. 다섯째 파이어월이 네트워크에 있는 트래픽을 로깅해야 한다고 향후 네트워크 보안 정책 수립에 필요한 통계자료를 추출 할 수 있어야 한다. 여섯째 파이어월이 보안된 오퍼레이팅 시스템으로 운영되고 있는가 여부와 TCP/IP상의 서비스들을 어느정도 지원하고 있는가 여부를 따져야 한다. TCP,UDP,RCP를 기반으로 하는 응용시스템까지 지원할 수 있는가를 파악해야 한다. 마지막으로 파이어월이 암호화된 기능을 지원하는가를 파악해야 한다.
관련링크
댓글목록
등록된 댓글이 없습니다.