<정의>
1. 신뢰하지 않는 외부 네트워크와 신뢰하는 내부 네트워크 사이에 위치해
외부의 침입으로부터 자사의 네트워크를 보호하기 위하여 게이트웨이에 설치되는 접속 장치나 기능
2. 지나는 패킷을
3. 사전에 정해 놓은 규칙에 따라
4. 차단하거나 허용하는 기능을 하는
5. 하드웨어 및 소프트웨어를 총칭한다.
<기능>
①. 접근통제 : 방화벽의 가장 기본적이고 중요한 기능 중의 하나로 관리자가 사전 정의한 규칙에 의거해 패킷의 통과 여부를 결정한다.
②. 로깅 기록 및 감사 추적 : 방화벽을 통과하거나 거부한 패킷에 대한 기록을 관리한다.
③. 인증 : 방화벽은 메시지 인증, 사용자 인증, 클라이언트 인증 등을 할 수 있다.
④. 트래픽 암호화 : 방화벽에서 다른 방화벽까지 전송되는 데이터를 암호화 하는 기능으로 보통 VPN 기능을 이용한다.
⑤. 네트워크 주소 변환(NAT) : 내부 네트워크 주소를 외부 네트워크 주소로 변환하거나, 외부 네트워크 주소를 내부 네트워크 주소로 변환 하는 NAT 기능을 한다.
<구조에 따른 분류>
①. 베스천 호스트(Bastion Host) : 철저한 방어정책을 가지고 외부 접속에 대한 일차적인 연결을 받아들이는 시스템으로 강력한 로깅 기능 및 모니터링 정책을 구현하고 있어야 한다.
②. 스크리닝 라우터(Screening Router) : 내부 네트워크와 외부 네트워크의 경계선에 위치하며 IP, TCP, UDP 헤더 정보를 참조해 ACL 기반의 필터링을 한다.
장점: 구조가 간단해 구현 용이하다
단점: 복잡한 필터링 규칙 설정 필요하고 인증이 불가능하며 내부 구조를 은닉할 수 없다.
③. 이중 네트워크 호스트(Dual-Homed Host) : 최소 두 개 이상의 네트워크 인터페이스를 가진 베스천 호스트로 하나는 내부와 연결, 다른 하나는 외부와 연결된 방화벽을 말한다. 직접 라우팅을 하지 않으며 프록시로 내부와 외부의 통신 처리한다.
④. 스크린드 호스트(Screened Host) : 스크리닝 라우터와 베스천 호스트의 조합으로 구성된다.
⑤. 스크린드 서브넷(Screened Subnet) : 외부 네트워크와 내부 네트워크 사이에 DMZ를 두는 방식으로 가장 안전한 방화벽 구성이다. 2개의 스크리닝 라우터와 1개의 베스천 호스트로 구성된다.
<방식에 따른 분류>
①. 패킷 필터링(Packet Filtering) 방화벽 : 네트워크 계층에서 동작하며 패킷 헤더의 목적지와 송신지 주소, 포트, 서비스를 확인하는 방식이다. 사전에 정의한 규칙을 통해 네트워크 접근 제어를 담당하며 스크리닝 라우터와 유사한 개념이다. 속도가 빠르나 바이러스, 위조 공격에 취약하다.
②. Application Level Proxy : 응용 계층에서 동작하며 프록시 서버로 구현한다. 패킷의 모든 부분을 검사하며 패킷 내 문맥에 기반한 접근 제어도 가능하다. 사용자 인증 및 접근제어, 바이러스 검색, 프로토콜 별 정책 수립이 가능하다. 내부 주소를 은폐할 수 있고 강력한 감사 기능을 제공한다는 장점이 있으나 성능 및 속도 저하되고 각 서비스 프로토콜에 대한 프록시가 필요하다는 단점이 있다.
③. Circuit Level Proxy : 전송 계층과 세션 계층 사이에서 동작하며 패킷 내부의 헤더만 조사하는 방식으로 패킷 필터링 방식과 유사하다. SOCKS 프로토콜 이용한다. 다양한 정책 설정이 가능하고 세션을 모니터링할 수 있다는 장점이 있으나 클라이언트 수정이 필요하다는 단점이 있다.
④. Stateful Inspection : 데이터링크 계층과 네트워크 계층에서 동작하며 과거의 정보를 바탕으로 한 상태정보 테이블에 기반해 패킷을 제어한다. IP 주소, 포트 번호, 순서 번호 등의 정보 등을 검사한다. 응용 계층 공격과 우회 공격에 취약하다는 단점이 있다.
<한계>
1. 바이러스 및 새로운 형태의 공격
방화벽은 일반적으로 패킷의 페이로드를 검사하지 않기 때문에 바이러스 및 새로운 형태의 공격을 예방할 수 없다.
2. 위조(조작된 패킷) 공격
방화벽은 IP를 조작한 공격에 상대적으로 취약하다.
3. 내부 사용자의 공격이나 우회 공격(모뎀을 통한 접속 등)
방화벽은 방화벽을 통과하지 않는 패킷에 대해서는 보안을 제공할 수 없다.
IP 통신은 기본적으로 양방향을 지원하기 때문에 나갈 수가 있다면 들어오는 것도 허용된다. 이때 네트워크의 연결점에서 트래픽에 대해 선별적 제약을 주거나 제한을 주어 보안을 유지. 인터넷에서 공통적으로 사용하는 시스템으로는 패킷 필터링 라우터(packet filtering router)와 프록시 서버(proxy server)가 있다.
기본적인 방화벽 정책의 표준 양식은 다음과 같다.
모든 방화벽 보안정책은 위에서 아래 순으로(Top Down 방식) 적용된다. 보안 정책은 필요한 정책만 허용하며 나머지는 모두 차단한다. 방화벽의 가장 마지막 순위의 정책은 위의 정책들이 모두 적용되고 나면 Any - Any - Deny 로 설정한다. (허용되는 정책 이외에는 기본적으로 모두 차단한다. 마지막에 Deny 정책을 안주었다고 해도, 최근 대부분의 방화벽은 기본적으로 Any - Any - Deny가 적용되어 있다고 생각하면 된다) 보다 안전하고 확실하게 적용하려면 수동이 좋다. 보안 정책 객체에 속하는 오브젝트를 변경하면 변경한 오브젝트를 사용하는 객체에도 영향이 있다.
방화벽은 기본적으로 내부 사설 IP와 외부의 공인 IP를 연결한다.
방화벽은 신뢰도가 다른 두개의 네트워크 사이에 위치하며, 내부 네트워크를 보호하기 위해 각 서비스(ftp, telnet) 별로 IP주소, Port를 이용하여 외부의 접속을 차단하거나 허용하며 다양한 공격을 차단할 수 있다. 또 상호 접속된 내부, 외부 네트워크 트래픽을 감시하고 기록한다. (방화벽은 네트워크 주소변환, 패킷 필터링, 상태패킷 조사, 어플리케이션 게이트웨이, 서킷 게이트웨이 등을 수행한다)
방화벽 방어 방법에는 크게 두가지 종류가 있다. 하나는 패킷 필터링 그리고 다른 하나는 어플리케이션 게이트웨이 이다.
패킷 필터링은 소스 및 대상 IP주소, Port번호 등 통신 데이터의 통과 여부를 판단하여 무단 엑세스를 방지한다.