침입차단시스템 (방화벽) 중부대학교 정보보호학과 이병천 교수
차례 1. 침입차단시스템의 개념 2. 방화벽의 분류 3. 방화벽의 구성방식
1. 침입차단시스템의 개념 방화벽(Firewall)이란? 방화벽의 목적 외부 네트웍과 내부 네트웍사이에 위치하여 불법 사용자로부터 내부 네트워크를 보호하기 위하여 접근을 제어하고 트래픽을 통제하는 시스템 (소프트웨어 또는 하드웨어) 외부네트워크와 사설망의 경계에 패킷 필터링 기능을 수행하는 라우터나 응용 게이트웨이를 두어 모든 정보의 흐름이 이들을 통해서만 이루어 지도록 하는 개념 외부의 불법 사용자의 침입으로부터 내부의 전산 자원을 보호하기 위한 정책 및 이를 지원하는 하드웨어와 소프트웨어를 총칭 방화벽의 목적 외부 네트웍으로부터 내부 네트웍을 보호 보호대상: 데이터, 컴퓨터 그 자체, 개인의 명성
침입차단시스템의 개념 방화벽을 사용하는 이유 방화벽은 외부 네트워크와 내부 네트워크를 격리시킴으로 내부 네트워크의 취약 부분의 노출 위험해소 네트워크들간의 통신에 대한 자세한 통계를 제공할 수 있다 통신에 대한 로깅과 감사 자료를 제공할 수 있어, 로그를 분석하면 공격자를 탐지하고 알람을 울리는 데 사용할 수 있다 방화벽은 기밀정보가 나가는 것과, 공격자가 들어오는 것을 차단하는 데 도움을 준다 사설네트워크에 불법 사용자들이 접근해 컴퓨팅 자원들을 사용하는 것을 방지 자신의 정보들이 불법적으로 외부에 유출되는 것을 방지
침입차단시스템의 필요성 보안 필요성 시급 Firewalls이 없는 경우 각각의 호스트 보안에 절대적으로 의존 인터넷 사용자가 증가함에 따라 불법 사용자들의 시스템 침입 Firewalls이 없는 경우 각각의 호스트 보안에 절대적으로 의존 모든 호스트는 동시에 동일한 수준으로 보안을 유지해야 한다. 이것은 매우 어렵고 인력과 시간이 많이 소모 네트웍에 연결된 시스템의 수가 많아지면서 각각의 시스템에 보안대책을 일관적으로 적용할 필요성이 생김 Firewalls을 사용하는 경우 호스트 전체적인 보안을 동시에 강화 보안 통제가 한 곳에서 가능하므로 보안 정책을 효율적으로 시행
침입차단시스템의 필요성 인터넷 인터넷 Firewalls 관리자 관리자
침입차단시스템의 개념 방화벽 시스템이 방어할 수 있는 것 방화벽 시스템이 방어할 수 없는 것 방화벽 시스템 구축 시 주의사항 인터넷과 같은 외부 네트워크와 내부 네트워크 사이에 위치하며 양방향에 이루어지는 정보 및 자원들에 대한 트래픽을 사전에 방어하는 것이다 방화벽 시스템이 방어할 수 없는 것 내부 사용자로부터의 정보 유출 바이러스에 대해서는 방어하지 못한다 외부 네트워크로부터 내부 네트워크로 비 인증된 다이얼업 모뎀을 통한 접근은 방어하지 못한다 방화벽 시스템 구축 시 주의사항 방화벽 설치 과정 중 내부 네트워크는 방화벽 이외에 다른 경로를 통한 접근은 불가능 하도록 해야 한다.
침입차단시스템의 개념 방화벽의 기능 접근통제 사용자인증 – ID/Password, 공개키인증서 이용 감사 및 로그 기능 프라이버시 보호 – 내부 네트워크의 정보유출 방지, 이중 DNS 기능, 프락시 기능 서비스 통제 – 안전하지 못하거나 위험성이 존재하는 서비스를 필터링 패킷 필터링 (packet filtering): 침입차단시스템을 지나가는 모든 패킷에 대해서 걸러주는 역할 NAT(Network Address Translation): 침입차단시스템을 지나가는 패킷에 대해서 출발지 주소(IP), 목적지 포트 번호를 선택적으로 변경하는 기능
방화벽의 보안정책 최소권한 다중방어 폐색부(Choke point) 보안 취약 부분 점검 단순성 사용자나 관리자 등은 자신에게 주어진 임무를 수행하기 위해 필요한 최소한의 권한만을 가져야 함 다중방어 침입차단시스템이 침해되었을 경우에도 대비가 되어 있어야 함 폐색부(Choke point) 공격자가 좁은 채널을 사용하도록 만들고 그곳을 모니터링 함으로써 통제 가능 보안 취약 부분 점검 전체 시스템에서 가장 약한 부분의 강도가 전체 시스템의 강도가 됨 단순성 보안전략 측면에서 단순하게 구성되어야 한다.
방화벽의 문제점 제한된 서비스 백도어 바이러스 검색 불능 내부 사용자에 의한 보안 침해 기타 문제점 장애 발생, 적절한 보안정책 설계 필요 백도어 침임차단시스템을 통과하지 않는 트래픽에 대해서는 막을 수 없다. SLIP, PPP 등의 접속은 허용하지 말아야 한다. 바이러스 검색 불능 전자우편 시스템을 통해 유입되는 바이러스에 대해 효과적인 대처가 어렵다. 내부 사용자에 의한 보안 침해 침입차단시스템은 외부네트워크에서 들어오는 접근을 통제 내부 사용자가 데이터를 불법 복사하거나 다른 장소로 빼내는 것을 방어하지 못한다. 호스트 보안이나 사용자 교육 등의 내부 보안 수단이 필요하다. 기타 문제점 시스템의 부하 증가, 병목 현상, 속도 저하 보안기능의 집중화로 방화벽이 붕괴될 경우 내부 네트워크에 보안 침해 발생
2. 방화벽의 분류 1. 패킷필터링 시스템 스크리닝 라우터 2. 응용게이트웨이 시스템 배스쳔 호스트 프락시 서버
패킷필터링 방화벽 IP 헤더 출발지 IP주소, 목적지 IP주소, 프로토콜, TCP/UDP의 출발지의 포트, 도착지의 포트를 기준으로 패킷을 거른다. 보안 정책에 따라 ‘어떻게 전달할 것인가’ 뿐만 아니라 ‘전달해야만 하는가’를 결정 적절한 사용자만 서비스를 받을 수 있도록 한다 ( 허용되는 패킷만 전송하거나 허용되지 않는 패킷을 전송하지 않음 ) 장점 단점 실행 속도가 빠르다 UDP같은 Connectionless Protocol 을 지원하지 못한다 사용자의 투명성을 보호한다 사용자 인증기능이 취약하다 유연성이 높다 TCP/IP Kernel이 취약하다 Session의 성립에서 종료 시까지 모든 패킷이 검색된다 Filtering Rules을 정의해야 한다
패킷필터링 방화벽 패킷필터링의 규칙 사례 telnet서비스에서 나가는 것만 허용하고 그외에는 허용하지 않을 때 Internal 액션 Permit Deny 목적지 포트 출발지 포트 Ack >1023 23 any either yes 규칙 A B C 출발지 주소 Internal 목적지 주소 internal Either incoming outgoing 방향 protocol TCP
스크리닝라우터 스크리닝 라우터란 네트워크에서 사용하는 통신 프로토콜의 형태, 근원지 주소와 목적지 주소, 통신 프로토콜의 제어 필드 그리고 통신 시 사용하는 포트 번호를 분석해서 내부 네트워크에서 외부 네트워크로 나가는 패킷 트래픽을 허가 및 거절하거나 혹은 외부 네트워크에서 내부 네트워크로 진입하는 패킷 트래픽의 진입 허가 및 거절을 행하는 라우터를 말한다.
스크리닝라우터 OSI 참조 모델의 계층 3(네트워크계층)과 계층 4 (Transprot 계층)에서 동작 장점 단점 IP(Internet Protocol), TCP(Transmission Control Protocol) 혹은 UDP(User Datagram Protocol)의 헤더에 포함된 내용을 분석해서 동작 장점 필터링 속도가 빠르고, 비용이 적게 든다. 네트워크 계층에서 동작하기 때문에 클라이언트와 서버에 변화가 없어도 된다. 사용자에 대해 투명성을 유지한다. 하나의 스크리닝 라우터로 보호하고자 하는 네트워크 전체를 동일하게 보호할 수 있다. 단점 네트워크 계층과 트랜스포트 계층에 입각한 트래픽만을 방어할 수 있다. 패킷 필터링 규칙을 구성하여 검증하기 어렵다. 패킷내의 데이터에 대한 공격을 차단하지 못한다. 스크리닝 라우터를 통과 혹은 거절당한 패킷에 대한 기록(log)을 관리 하기 힘들다.
응용게이트웨이 방화벽 Application Proxy를 두고 세션 성립 시 해당하는 서비스 별 Application Daemon이 인증작업을 하고 인가된 세션에 한해 서비스를 허용하는 방식이다. 장점 단점 Application level에서 포괄적인 로깅 및 감사 기능이 제공 방화벽 설치시 Client S/W수정 및 투명성이 떨어진다. 외부 접속에 대해서 강력한 인증 기능 요구 Data전송 중 Hacker의 공격 발생 필요할 경우 부가적인 인증시스템을 통합할 수 있다. 수행 속도 지연 해당 Service의 Daemon이 반드시 지원되어야 한다.
배스쳔 호스트 (Bastion Host) 장점 단점 응용 서비스 종류에 보다 종속적이기 때문에 스크리닝 라우터 보다 안전하다. 정보 지향적인 공격을 방어할 수 있다. 로그인 정보가 누출되면 내부 네트워크를 보호할 수 없다. 각종 기록(logging) 정보를 생성 및 관리하기 쉽다.
배스쳔 호스트 (Bastion Host) Bastion Host 내부 네트웍으로 연결되기 위한 입구에 있는 호스트 외부 네트웍에서 내부 네트웍으로의 접근이나 내부 네트웍 내에서의 접근은 Bastion Host를 거쳐야 한다. Bastion Host는 인터넷에 노출되어 있으므로 공격받기 쉽다. Bastion Host를 공격해서 성공하면 내부 네트웍의 접근이 가능하므로 보안을 철저히 해야 한다. 해커 및 불법 침입자가 Bastion 호스트에 있는 중요한 정보를 악용하여 내부 네트워크로 접근하는 것을 방지하기 위해서는 Bastion 호스트 내에 존재하는 모든 사용자 계정을 지워야 하며, 중요하지 않은 파일 이나 명령 및 유틸리티, IP forwarding 파일 그리고 라우팅 정보 등을 삭제하여야 한다. Bastion 호스트로의 입력 시 강력한 인증 기법을 구현하여야 하며, Bastion 호스트는 내부 네트워크로의 접근에 대한 기록(log), 감사 추적을 위한 기록 및 모니터링 기능을 가지고 있어야 한다
Proxy Server 기능: 클라이언트의 서비스 요청을 받아 사이트의 보안정책에 따라서 실제 서버에 그 요청을 전달하고 실제 서버로부터 실행결과를 수신하여 사용자에게 전달 클라이언트와 서버는 Proxy server를 통해 액세스하지만 서로 직접 액세스하는 것처럼 느끼게 한다. Proxy Server 클라이언트 외부 호스트
Proxy Server Proxy System 인터넷 액세스가 가능한 하나 혹은 소수의 호스트를 두고 액세스를 갖지 못한 나머지 컴퓨터들이 원하는 것을 수행해 주도록 한다. Proxy Server는 클라이언트로부터의 요청을 평가하고 통과시킬 것인가 혹은 무시할 것인가를 결정한다. 모든 호스트에게 액세스를 제공하는 것은 너무 위험하다. 그러므로 보안 기능이 되는 특정 호스트를 통해서만 접근하도록 한다. 프락시 서버에서 액세스를 중계함으로써 클라이언트와 서버간의 직접 액세스를 통제한다.
Proxy Server Proxy Server의 필요성 Proxy Server의 단점 투명성 제공 : 사용자는 실제 서버를 직접 다루는 것처럼 느낀다. 안전성 제공 : 사용자가 직접 이중 네트웍 호스트에 로그인하지 않게 함으로써 안전성을 높인다. Proxy Server의 단점 속도가 느리다. 각 서비스마다 서로 다른 Proxy Server가 필요하다. Proxy Server는 IP수준의 트래픽을 제한하는 Screen Router나 라우팅하지 않는 이중 네트웍 호스트와 결합해서 사용해야 효과적이다.
Proxy Server 장점 단점 외부네트워크에 대한 내부네트워크의 완벽한 경계선 방어제공 기존에 사용하고 있는 애플리케이션의 수정 불필요 일회용 패스워드 등의 강력한 인증 기능 포함 각 서비스별로 개별적인 접근 제한을 둘 수 있음 단점 방화벽의 성능이 비교적 떨어짐 사용자에게 투명한 서비스 제공의 어려움 새로운 서비스에 대한 유연성이 떨어짐
Stateful Inspection(상태정밀 검사) 클라이언트/서버 모델을 유지시키며 모든 어플리케이션의 전후 상황에 대한 문맥 데이터를 제공함으로 기존 방화벽의 단점을 보완 이러한 정보는 후속되는 커넥션 시도를 평가하기 위해 동적인 상태정보테이블 안에서 관리 유지된다
3. 방화벽의 구성 방식 1. 듀얼홈드 게이트웨이 2. 스크린 호스트 게이트웨이 3. 스크린 서브넷 게이트웨이
듀얼홈드 게이트웨이 Dual-Homed 게이트웨이는 그림 와 같이 두개의 네트워크 인터페이스 를 가진 Bastion 호스트를 말하며, 하나의 네트워크 인터페이스는 인터넷 등 외부 네트워크에 연결되며, 다른 하나의 네트워크 인터페이스는 보호하고자 하는 내부 네트워크에 연결되며, 양 네트워크간의 라우팅은 존재하지 않는다. 따라서 양 네트워크간의 직접적인 접근은 허용되지 않는다.
듀얼홈드 게이트웨이 장점 단점 응용 서비스 종류에 좀더 종속적이기 때문에 스크리닝 라우터보다 안전 하다. 제공되는 서비스가 증가할수록 proxy 소프트웨어 가격이 상승한다. 정보 지향적인 공격을 방어할 수 있다. 게이트웨이가 손상되면 내부 네트워크를 보호할 수 없다. 각종 기록 정보를 생성 및 관리하기 쉽다. 로그인 정보가 누출되면 내부 네트워크를 보호할 수 없다. 설치 및 유지보수가 쉽다.
스크린 호스트 게이트웨이 스크린된 호스트 게이트웨이는 Dual-Homed 게이트웨이와 스크리닝 라우터를 혼합하여 사용한 방화벽 시스템이다. 방화벽 시스템의 구성 방법은 그림과 같이 인터넷과 Bastion 호스트 사이에 스크리닝 라우터를 접속하고, 스크리닝 라우터와 내부 네트워크 사이에서 내부 네트워크상에 Bastion 호스트를 접속한다.
스크린 호스트 게이트웨이 장점 단점 2 단계로 방어하기 때문에 매우 안전하다. 해커에 의해 스크리닝 라우터의 라우팅 테이블이 변경되면 이들을 방어 할 수 없다. 네트워크 계층과 응용 계층에서 방어하기 때문에 공격이 어렵다. 방화벽 시스템 구축 비용이 많다. 가장 많이 이용되는 방화벽 시스템이며, 융통성이 좋다. Dual-Homed 게이트웨이의 장점을 그대로 가진다.
스크린 서브넷 게이트웨이 스크리닝 라우터는 인터넷과 스크린된 서브네트 그리고 내부 네트워크와 스크린된 서브네트 사이에 각각 놓이며, 입출력되는 패킷 트래픽을 패킷 필터 규칙을 이용하여 필터링하게 된다. 스크린된 서브네트에 설치된 Bastion 호스트는 proxy 서버(응용 게이트웨이)를 이용하여 명확히 진입이 허용되지 않은 모든 트래픽을 거절하는 기능을 수행한다. 스크린된 서브네트에 대한 액세스는 Bastion 호스트를 통해서만 가능하기 때문에 침입자가 스크린된 서브네트를 통과하는 것은 어렵다.
스크린 서브넷 게이트웨이 장점 단점 스크린 된 호스트 게이트웨이 방화벽 시스템의 장점을 그대로 가진다. 다른 방화벽 시스템들 보다 설치하기 어렵고, 관리하기 어렵다 융통성이 뛰어나다 방화벽 시스템 구축 비용이 많다. 해커들이 내부 네트워크를 공격하기 위해서는 방어벽을 통과할 것이 많아 침입이 어렵다. 서비스 속도가 느리다. 매우 안전하다.
방화벽과 웹서버의 위치 웹 서버를 침입차단 시스템의 내부에 두는 경우 웹 서버를 침입차단시스템의 외부에 두는 경우 침입에 대한 위험 요소가 줄어든다. 외부에서 빈번한 접근이 이루어지는 특성상 서비스 제공에 많은 어려움이 따를 수 있다. 또한 CGI 프로그램과 연동하여 동작하는 서비스를 제공할 때 CGI프로그램의 보안 허점에 의해 내부망의 위험을 초래 할 수 있다. 웹 서버를 침입차단시스템의 외부에 두는 경우 시스템 보안과 CGI프로그램 보안 등에 많은 주의를 기울여야 한다. 웹 서버는 침입차단 서비스시스템의 보안 서비스를 이용하지 않기 때문에 서비스 제공에 매우 효과적