방화벽 시스템 (Firewall) 오 세 종
목차 개요 방화벽의 설계 무엇이 방화벽인가 방화벽의 유형 방화벽이 할 수 있는 일/없는 일 방화벽의 구성 사례
개요 컴퓨터 네트워크의 문제 하나의 해결책 : 물리적 고립 이상적인 방안 내부 시스템이 네트워크에 의해 외부로 연결 외부의 침입자에게 공격의 통로를 제공 하나의 해결책 : 물리적 고립 외부의 공격을 완전히 차단할 수 있는 방법 그러나 많은 사용자들은 외부의 네트워크에 연결 되어야 할 필요성이 있음 필요한 사람만 모뎀을 구입해서 외부에 접속하도록 하는 방법 : 보안 관리의 입장에서 보면 더 통제가 안되는 사각지대 이상적인 방안 외부와의 커뮤니케이션을 필터링(filtering)해서 비정상적인 것만 걸러 낼 수 있다면… 방화벽(firewall) 시스템
개요 방화벽의 개념 인터넷 사람들은 방화벽이 시스템 자원을 안전하게 보호해 주는 견고한 담으로 생각 Firewall 실질적으로는 의도적으로 구멍을 뚫어 놓은 담 (그 구멍을 통해서 오가는 내용을 제어할 목적) Firewall 인터넷
방화벽의 설계 방화벽은 참조모니터의 일종 참조 모니터 (Reference monitor) 어떤 대상에 대한 접근을 감시하고 통제할 수 있는 체계, 시스템 참조 모니터의 요구사항 항상 실행중에 있어야 한다 (always invoked) 불법적인 방법으로는 조작할 수 없도록 해야 한다 규모가 작고 단순하면서도 대상을 엄격하게 통제할 수 있어야 한다. 방화벽은 참조 모니터의 요구사항을 준수한다. 내부 시스템과 외부 시스템 사이에서 항상 실행 독립된 컴퓨터에 설치되어 일반 사용자의 조작 불허 방화벽 설계자들은 방화벽이 너무 덩치가 커지지 않도록 노력
무엇이 방화벽인가 방화벽은 내부 시스템과 외부 시스템 사이에서 필터 역할을 하는 프로세스 방화벽은 조직의 보안 정책을 구현할 수 있도록 해준다 보안 정책의 예 외부에서 내부로의 접근은 모두 불허, 내부에서 외부로의 접근만 허용 외부의 특정 사이트로만, 혹은 특정 사이트에서의 접근만 허용 인터넷 서비스를 선별적으로 지원 (e-mail ok, ftp no) 방화벽에 어떤 보안 정책을 인스톨 할 것인가도 중요한 문제 방화벽의 접근 허용에 대한 두가지 원리 명시적으로 금지된 접근이 아니면 모두 허용한다. – 사용자들 선호 명시적으로 허용된 접근이 아니면 모두 차단한다. – 보안 관리자 선호
방화벽의 유형 방화벽의 유형 Screening router Proxy gateways Guards 위의 세가지는 모두 서로 다른 역할을 함 어느 것은 좋고 어느 것은 나쁘다고 말할 수 없음 Screening router 는 다른 두개에 비해 단순한 보안 정책을 지원
방화벽의 유형 Screening Router 라우터 인터넷상의 호스트는 외부 네트워크에 직접 연결되기 보다는 라우터를 거쳐서 연결 라우터는 이름이 의미하는바대로 커뮤니케이션 내용(패킷)을 목적지 호스트로 보내는 역할을 하는 컴퓨터 패킷을 받아서 자신의 라우팅 테이블을 참조하여 패킷을 물리적 포트중의 한 곳으로 보냄 (목적지로 가게하기 위해) Wide Area Network router Wide Area Network
방화벽의 유형 Screening Router B A C 라우터 144.27.5.3 100.24.4.0 router Wide Area Network router A Wide Area Network 192.19.33.0 C 라우터의 안쪽 라우터의 바깥쪽
방화벽의 유형 Screening Router 스크리닝 라우터는 네트워크에서 사용하는 통신 프로토콜의 형태, 송신지 주소와 수신지 주소, 통신 프로토콜의 제어 필드 그리고 통신시 사용하는 포트 번호를 분석해서 내부 네트워크에서 외부 네트워크로 나가는 패킷 트래픽을 허가 및 거절하거나 혹은 외부 네트워크에서 내부 네트워크로 진입하는 패킷 트래픽의 진입 허가 및 거절을 행하는 라우터를 스크리닝 라우터라고 한다 OSI 참조 모델에서 계층3 과 계층 4에서 동작 TCP. IP, UDP 의 헤더 내용을 분석해서 동작
방화벽의 유형 Screening Router 스크리닝 라우터가 할수 있는 일 A,B,C 세개의 LAN 사이의 커뮤니케이션만 허용 ex) 나가는 패킷은 수신지 주소가 B,C의 주소인것만 허용 들어오는 패킷은 송신지 주소가 B,C인 것만 허용 패킷 레벨의 필터링 스크리닝 라우터는 1초에 수천개의 패킷을 검사하고 처리할수 있 는 능력이 있음 패킷 헤더의 내용 : 수신지주소, 송신지주소, 패킷길이, 일련번호, 우선순위 스크리닝 라우터는 패킷 헤더의 정보를 보고 패킷의 통과 여부를 결정할수 있음
방화벽의 유형 Screening Router 스크리닝 라우터가 할수 있는 일 스크리닝 라우터 내부에서 사용되는 주소(address)의 정당성을 보증 LAN 내부의 사용자는 다른 내부 사용자를 신뢰하는 경향 내부 사용자인지를 확인하는 유일한 방법 : 패킷의 발신지주소 그러나 패킷의 발신지 주소는 위조될수 있다. 외부 사용자가 마치 LAN 내부에서 패킷을 보내는 것처럼 패킷 주소를 위조한다면? 스크리닝 라우터는 외부에서 오느 패킷을 검사해서 송신지가 LAN 내부로 되어 있으면 위조 패킷으로 판단, 접근차단
방화벽의 유형 Screening Router 스크리닝 라우터가 할수 있는 일 응용(application) 레벨에서의 필터링 라우터에게 보여지는 패킷의 주소는 실제적으로는 네트워크 주소 + 어플리케이션 포트 번호 TCP/IP 상에서의 어플리케이션(ex. FTP, SMTP, TELNET)들은 연결 포트 번호를 갖는다 (FTP:21, SMTP:25) 실제적인 주소의 예 : 100.50.25.325 스크리닝 라우터는 패킷의 어플리케이션 포트 번호를 보고 금지된 어플리케이션은 통과를 시키지 않을수 있다. (예: SMTP 는 허용, FTP는 금지)
방화벽의 유형 Screening Router 패킷 필터 규칙 스크리닝 라우터가 어떤 패킷을 통과 시키고 어떤 패킷을 차단할 것인가를 결정하는데 근거가 되는 규칙을 말한다. 패킷 필터 규칙의 예 Rule no Source address port Destination Protocol Action 1 140.10.4.5 20 302.12.4.6 25 SMTP PASS 2 140.10.4.9 302.12.4.9 80 TCP REJECT
방화벽의 유형 Screening Router 스크리닝 라우터의 장점 필터링 속도가 빠르고, 비용이 적게 든다. 네트워크 계층에서 동작하기 때문에 클라이언트와 서버의 변경을 필요로 하지 않는다. 사용자에 대해 투명성을 유지한다 (자신의 존재를 드러내지 않음). 하나의 스크리닝 라우터로 보호하고자 하는 네트워크 전체를 동일하게 보호할 수 있다
방화벽의 유형 Screening Router 스크리닝 라우터의 단점 대안중의 하나가 Proxy Gateway 오고가는 패킷의 헤더 정보만 체크. (어플리케이션 단위의 검사). 따라서 port 25 (SMTP) 를 이용하는 패킷이 통과되도록 setting 되었다면 모든 메일이 통과 된다. 그러나 이러한 종류의 어플리케이션은 대단히 복잡하고 때로는 오류를 포함하고 있다. 또한 모든 사용자가 이용하므로 이러한 패킷은 ‘모든 사용자의 권한’을 가지고 움직이는데 , 이를 이용해 외부 공격자가 시스템에 손실을 입힐수 있다. 따라서 패킷의 데이터 내용까지 검사할수 있는 대안 필요 대안중의 하나가 Proxy Gateway
방화벽의 유형 Proxy Gateway 프록시 게이트웨이 개요 Bastian host 라고도 불리움 프록시 게이트웨이 개요 Bastian host 라고도 불리움 송신자와 수신자 어플리케이션 사이에 존재하면서, 송신자에게는 수신자인것 처럼, 수신자에게는 송신자인 것 처럼 행동 Proxy gateway 외부 송신자 내부 수신자 내가 내부 수신자야! 나는 외부 수신자다
방화벽의 유형 Proxy Gateway 프록시 게이트웨이 개요 프록시 게이트웨이는 송신자 어플리케이션과 수신자 어플리케이션 사이에 연결된 프로토콜의 중간에 위치 그렇게 함으로써 어플리케이션의 내용(Data)을 필터링할 기회를 갖는다.
방화벽의 유형 Proxy Gateway 프록시 게이트웨이를 필요로 하는 상황들 어떤 회사가 판매하는 물품의 가격을 온라인로 외부 고객들에게 제공하려함. 그러나 외부에서 가격을 고치거나 내부의 민감한 다른 화일에는 접근하지 못하게 해야함. 학교에서 학생들에게 인터넷을 통해 학교의 자료를 제공. 학교는 웹페이지별 방문자수, 파일별 조회수 등의 정보를 관리. 정부는 예산관련 정보를 한국국적이 있는 시민들에게만 제공하고자함. 이를 위해 정보가 한국 밖에 있는 호스트로는 가지 않도록 차단하고자 함 어떤 회사는 사원들이 집에서 다이얼업 모뎀으로 회사 시스템에 접속을 하용. 그러나 사원이 아닌 사람의 log in 공격 배제 필요
방화벽의 유형 Proxy Gateway 프록시 게이트웨이의 적용 Case 1 : 프록시는 file transfer protocol 의 데이터를 모니터링하여 가격 리스트 파일에 대한 접근만 허용. 또한 가격리스트에 대해 읽기 연산만 허용 Case 2 : 웹서버에 logging procedure 설치 Case 3 : 스크리닝 라우터에 의해서도 해결 가능. 그러나 프록시의 configuration command 가 스크리닝 라우터의 조작에 비해 더 간단함 Case 4 : 프록시를 통해 OS에서는 제공하지 않는 보다 강력한 사용자 인증 제공
방화벽의 유형 Proxy Gateway 기타 프록시 방화벽 시스템은 일반적으로 제한된 기능을 하는 독립된 컴퓨터에 설치 그 컴퓨터에는 사용자 로그인이 허용되지 않음 프록시 시스템이 동작하기 위한 최소한의 환경만 구성함으로써 외부 해커가 침입을 해도 사용할만한 도구가 없도록 만듦 프록시는 특정 요구사항에 맞추어 설치될 수 있다. 프록시는 어플리케이션간에 오가는 프로토콜 스트림을 모니터링함으로써 스크리닝 라우터에 비해 보다 강화된 방어기능을 수행
방화벽의 유형 Guards 개요 가드는 좀더 지능적인 프록시 방화벽 시스템 가드와 프록시 사이에 명확한 구분 선을 긋기는 어렵다. 프록시와 같이 프로토콜 데이터 unit 을 받아서 그것을 분석하고 같은 데이터 unit 의 형태로 통과 시키거나 보안의 목적을 위해 다른 형태의 데이터 unit 으로 변형하여 통과시킴 가드는 자신이 가지고 있는 지식(외부 사용자 인증정보, 이전의 상호작용 내용 등)에 기초해서 사용자 요구의 허용 여부 결정 어느 정도 까지 세밀하게 제어할 수 있는가는 가드가 어떤 사항들을 고려할 수 있는가(배경 정보)에 의해 제한된다.
방화벽의 유형 Guards 가드가 제공하는 세밀한 제어가 필요한 경우들 어떤 학교는 학생들이 학교에서 Web 에 접속하는 것을 허용하지만 네트워크의 속도의 저하를 방지하기 위해 간단한 텍스트 데이터나 그래픽 데이터는 다운로드를 허용하지만 복잡한 그래픽이나 동영상, 음악 파일은 다운로드를 못하게 하고 싶음 도서관에서 사용자가 저작권이 있는 자료에 처음 접근할 때는 무료로 접속을 허용하지만 두번째 부터는 비용을 지불해야 접속할 수 있도록 하기 원함 어떤 회사에서 사원들이 FTP 를 통해 어떤 파일을 외부에서 가져올 때 바이러스 백신 테스트를 통과하게 함으로써 바이러스에 감염된 파일이 사내로 유입되는 것을 막기 원함
방화벽의 유형 방화벽 유형 비교 Screening Router Proxy Gateway Guard 단순 패킷의 address, protocol type 만 봄 Auditing 이 어려움 Connection rule 에 기초한 방어 복잡한 addressing rule은 configuration을 어렵게 만들 수 있다 조금 복잡 커뮤니케이션의 모든 내용 (full text) 검사 Can audit activity 프록시의 행위에 기초한 방어 단순한 프록시가 복잡한 addressing rule을 대체하는데 사용될 수 있다. 매우 복잡 메시지 내용에 대한 해석에 기초한 방어 복잡한 Guard 의 기능성은 확실성을 제한할 수 있다.
방화벽이 할 수 있는 일/없는 일 방화벽이 네트워크 보안에 대한 완벽한 해결책은 아니다. 방화벽이 할 수 있는 일/ 없는 일 방화벽은 자신이 완전히 통제할 수 있는 환경에 대해서만 보호를 할 수 있다. 내부 네트워크와 외부 사이에 방화벽을 통하지 않는 다른 통신 경로가 있으면 방화벽은 내부 네트워크를 보호할 수 없다. (예: 내부 사용자가 모뎀으로 외부 시스템에 접속) 방화벽 바깥에 있는 데이터는 보호 할 수 없다. 방화벽은 외부 침입자의 입장에서 볼 때 내부에 침입하기 위해 통과 해야 할 첫 관문. 따라서 1차 공격 목표가 된다. 하나의 방화벽 시스템으로 안심하기 보다는 여러 단계의 방어 체제를 갖추는 것이 안전하다 방화벽은 올바르게 구성(configuration)되어야 한다. 또한 내부, 외부의 상황 변화에 맞추어 알맞게 변경시켜야 한다.
방화벽이 할 수 있는 일/없는 일 방화벽이 할 수 있는 일/ 없는 일 방화벽이 제공하는 로그 파일을 주기적으로 검토하여 외부의 침입 시도나 침입 성공 사례가 있는지 살펴보아야 한다. 방화벽은 내부 사용자가 정보를 디스켓, CD 등에 담아 외부로 유출하는 것을 막을 수 없다. 방화벽은 기본적으로 바이러스를 방어하지 않는다. 따라서 이를 위해서 별도의 바이러스 스캔을 위한 체계가 추가 되어야 한다.
방화벽의 구성 사례 Screened Host Gateway 프록시 게이트웨이와 스크리닝 라우터를 함께 사용 외부 네트워크로부터 내부 네트워크로 들어오는 패킷 트래픽을 스크리닝 라우터에서 패킷 필터 규칙에 의해 1차로 걸러내고, 스크리닝 라우터를 통과한 트래픽은 모두 proxy 서버로 보내져 2차 검사를 받는다. Wide Area Network Screening Router Proxy Gateway
방화벽의 구성 사례 Screened Host Gateway 가장 많이 이용되는 방화벽 시스템의 형태. 2 단계로 방어하기 때문에 매우 안전하다. 네트워크 계층과 응용 계층에서 함께 방어하기 때문에 외부에서의 공격이 어렵다. 해커에 의해 스크리닝 라우터의 라우팅 테이블이 변경되면 이들을 방어 할 수 없다. 방화벽 시스템 구축시 비용이 많이 든다.
참고문헌 P.Pfleeger, Security in Computing, second edition, Prentice-Hall International Inc.,1997. (chapter 9)