-
[네트워크] 방화벽(Firewall) - 개념, 기능, 종류 살펴보기IT/네트워크 2024. 8. 28. 14:31
📝 방화벽이란?
방화벽은 미리 정의된 보안 규칙에 기반한, 들어오고 나가는 네트워크 트래픽을 모니터링하고 제어하는 네트워크 보안 시스템이다. 일반적으로 신뢰할 수 있는 내부 네트워크와 신뢰할 수 없는 외부 네트워크 간의 장벽을 구성하여, 서로 다른 네트워크를 지나는 데이터를 허용 및 거부, 검열, 수정하는 등의 기능을 갖춘 소프트웨어 또는 그러한 소프트웨어를 구동시키는 하드웨어 장치를 말한다.
예를들어 사무실 네트워크는 방화벽을 사용하여 온라인 위협으로부터 네트워크를 보호하는 경우가 많다.
방화벽에서는 수신 및 발신 트래픽의 통과 허용 여부를 경정한다. 방화벽은 하드웨어나 소프트웨어로 구축하거나 이 두가지를 결합하여 구축할 수 있다.
방화벽의 주요 사례는 보안이다. 방화벽은 들어오는 악의적 트래픽이 네트워크에 도달하기 전에 차단할 수 있을 뿐만 아니라 중요한 네트워크를 벗어나지 못하도록 방지할 수 있다. 방화벽은 콘텐츠 필터링에도 사용할 수 있다. 예를 들어, 학교에서는 방화벽을 구성하여 네트워크 사용자가 특정 자료에 액세스하지 못하도록 할 수 있다. 마찬가지로 일부 국가에서는 정부가 방화벽을 운영하여 해당 국가 내부의 사람들이 인터넷의 특정 부분에 액세스하지 못하도록 차단할 수 있다.
📝 방화벽 기능
🔖 1. 접근통제 ( Access Control)
: 침입차단시스템은 허용된 서비스나 전자 우편 서버나 공개 정보 서버와 같은 특정한 호스트를 제외하고는 외부에서 내부 네트워크에 접속하는 것을 패킷 필터링 등을 이용하여 통제하는 기능을 가지고 있다. 패킷 필터링은 내부 네트워크로 들어오는 패킷의 IP 주소 혹은 서비스 포트 번호 등을 분석한 후, 외부 또는 내부 네트워크에 대한 접근을 통제하는 기능을 제공한다.
🔖2. 사용자 인증 (Authentication)
: 침입차단시스템은 내/외부 내트워크 사이의 접속점이기 때문에 침입차단시스템을 지나가는 트래픽에 대한 사용자들의 신분을 증명하는 기능이 필요하다. 이는 ID/PWD나 공개키 인증서를 이용한 사용자에 대한 식별기능과 이를 검증하는 인증 과정으로 이루어진다.
- 메시지 인증 : VPN과 같은 신뢰할 수 있는 통신선을 통해 전송되는 메시지 신뢰성 보장
- 사용자 인증 : 방화벽을 지나가는 트래픽에 대한 사용자가 누군지에 대해 증명하는 기능(OTP, 토큰기반 인증, 패스워드 인증 등)
- 클라이언트 인증 : 모바일 사용자처럼 특수한 경우에 접속을 요구하는 호스트에 대해 인가된 호스트인지 확인
VPN이란?
가상 사설망(VPN)은 사용자가 사설망에 연결된 것처럼 인터넷에 액세스할 수 있도록 하는 인터넷 보안 서비스이다. 따라서 인터넷 통신을 암호화할 뿐만 아니라 강력한 익명성을 제공한다. VPN을 이용하는 가장 일반적인 이유 중 일부는 공용 WiFi 에서 스누핑을 방지하거나, 인터넷 검열을 우회하거나, 원격 작업을 위해 기업 내부 네트워크에 연결하는 것이다.🔖 3. 감사 및 로그 기능(Auditing/Logging)
: 침입차단시스템은 모든 트래픽에 대한 접속 정보 및 네트워크 사용에 따른 유용한 통계 정보를 기록하는 감사 및 로그 기능이 있어야한다. 침입차단시스템의 관리자는 사용자의 활동이나 인가되지 않은 외부로부터의 접근이나 침입 사건 등에 대한 로그파일을 바탕으로 보안 기능과 보안 관련 데이터에 대한 안전한 보안 관리 기능을 제공해야 한다.
🔖 4. 프라이버시 보호(Privacy Protection)
: 이중 DNS(Dual Domain Name System), 프록시(Proxy) 기능, NAT 기능 등을 제공함으로써 내부 네트워크와 외부 네트워크 간의 중개자 역할을 함으로써 내부 네트워크의 정보 유출을 방지한다.
프록시(Proxy)란?
"대리"의 의미로 내부 네트워크에서 인터넷 접속을 할 때, 빠른 액세스나 안전한 통신을 확보하기 위한 중계서버를 "프록시 서버"라고 일컫는다. 즉) 클라이언트와 Web서버 중간에 위차하고 있어, 대신 통신을 받아 주는 것이 프록시 서버이다.🔖 5. 서비스 통제(Service Control)
: 안전하지 못하거나 위험성이 존재하는 서비스를 필터링함으로써 내부 네트워크의 호스트가 가지고 있는 취약점을 감소시킨다.
🔖 6. 데이터 암호화(Data Encryption)
: 방화벽에서 다른 방화벽까지 전송되는 데이터를 암호화하여 보내는 것으로, 보통 VPN의 기능을 이용한다.
📝 방화벽의 한계점
🔖1. 악성 소프트웨어 침투 방어에 대한 한계
: 일반적으로 방화벽은 패킷의 IP 주소와 포트 번호로 접근 제어를 하므로 바이러스, 웜(Warm), XSS 코드와 같이 문서 또는 프로그램 내부에 포함된 악성 소프트웨어를 탐지하여 방어하는 데에는 한계점을 지닌다. 이는 두 네트워크 사이에 존재함으로써 높은 트래픽을 처리해야 하므로, 큰 옵헤드를 감수하면서까지 데이터의 내용까지 검사한다면 네트워크 대역폭의 큰 손실을 가져올 수 있기 때문이다.
🔖 2. 악의적인 내부 사용자의 공격에 대한 한계
: 내부 사용자가 방화벽을 통과하는 통신 선로가 아닌 셀룰러 망이나 사선 통신 선로를 이요하여 통신을 한다면 공격자는 방화벽을 우회하여 내부 네트워크로 접속할 수 있는 경우가 있는데, 내부자가 이를 악용하면 막을 수 없다.
🔖 3. 전혀 새로운 형태의 공격에 대한 한계
: 방화벽은 예측된 접속에 대한 규칙을 세우고 이에 대해서만 방어하므로 새로운 형태의 공격에는 능동적으로 적용하기 어렵다.
📝 방화벽 종류
🔖 패킷 필터링 방화벽(Packet Filtering Firewall)
: 패킷 필터링 방법은 패킷의 IP 주소와 포트번호, 프로토콜 등에 대한 정보를 이용하여 설정된 보안 규칙에 의해 내부 네트워크를 보호하는 방법이다. 데이터 링크 계층(OSI Layer2)에서 네트워크 계층으로 전달되는 패킷을 가로채서 해당 패킷 안의 주소(IP)와 서비스 포트를 검색하여 정의된 보안 규칙에 따라 서비스의 접근 허용 여부를 결정한다. 설정이 간단하고 네트워크 성능에 미지는 영향이 적지만 패킷의 내용을 검사하지 않아 고급 공격을 탐지하지 못한다.
▶️ 1세대 방화벽
▶️ OSI Layer3, Layer4 : 네트워크계층, 전송계층에서 동작
▶️ 내부망/외부망 사이에 존재하여 특정 트래픽을 허용, 차단하는 단순한 형태의 방화벽
▶️ 패킷 헤더정보 조사 : 발신지 주소와 포트를 검사하여 수신측 주소와 포트에 대한 접속 여부 결정
▶️ 낮은 레이어에서 동작하기 때문에 비교적 속도가 빠르고, 기존 애플리케이션과 연동이 용이
▶️ 하드웨어에 의존적이지 않으나 강력한 로깅, 사용자 인증을 기대하기 어려움
▶️ 연결 상태 추적을 하지 않음
▶️ 패킷 필터링을 사용하는 라우터 : 스크리닝 라우터/패킷 필터링 라우터
패킷 필터링을 위해 사용되는 정보는 다음과 같다.
발신지 IP 주소와 목적지 IP주소
발신지 포트 번호와 목적지 포트 번호
트래픽의 방향(인바운드 혹은 아웃바운드)
프로토콜의 형태(IP, TCP, UDP, IPX 등)
패킷을 상태(SYN 혹은 ACK)패킷 필터링 방법을 일반적으로 분류하면 IP 주소에 의해 접속을 통제하는 IP 주소를 이용한 패킷 필터링 방법과 서비스(포트)를 이용하여 접속을 통제하는 서비스를 이용한 패킷 필터링 방법으로 구분할 수 있다.
🔖 프록시 기반 방화벽(Proxy Firewall)
: 클라이언트가 방화벽에 연결하면 방화벽이 발신 패킷을 검사하고, 그 후 의도된 수신자(웹 서버)에 대한 연결을 생성한다. 마찬가지로 웹 서버에서 클라이언트에게 응답을 보내려고 하면 방화벽은 해당 요청을 가로채 패킷을 검사한 다음 방화벽과 클라이언트 간의 별도 연결을 통해 해당 응답을 전달한다. 프록시 기반 방화벽은 클라이언트와 서버 간의 직접 연결을 효과적으로 방지한다. 트래픽 내용을 심층적으로 검사하여 보안을 강화할 수 있지만 성능이 느려질 수 있으며, 설정과 유지관리가 복잡할 수 있다.
▶️ 2세대 방화벽
▶️ OSI Layer7, 애플리케이션계층에서 동작
▶️ 클라이언트와 외부 네트워크와의 중개인 역할, 이상이 없는 패킷을 목적지로 전달
▶️ 패킷 필터링보다 더 높은 수준의 보호 능력 제공
▶️ 패킷 정보를 Application 계층까지 조
🔖 응용 게이트웨이 방식, 애플리케이션 방식(Application Gateway)
▶️ 3세대 방화벽으로 OSI Layer7까지 동작하여 통과하는 패킷의 헤더 안의 Data 영역까지 체크하여 통제할 수 있음.
▶️ 해당 서비스별로 프록시(Proxy)가 구동되어 각 서비스 요청에 대하여 방화벽의 접근 규칙을 적용시키고 연결을 대신하 는 역할을 수행.
▶️ 패킷 필터링 방식보다 높은 보안 설정 가능하며, 일회용 패스워드를 이용한 강력한 사용자 인증 제공.
▶️ Session에 대한 정보를 추적할 수 있으며, Content Security가 가능.
▶️ 네트워크에 많은 부하를 주며, 하드웨어에 의존적
▶️ 미리 정의된 어플리케이션만 수용 가능하므로, 다양하고 빠르게 발전하는 인터넷 어플리케이션 세대에 대응하지 못함
🔖 서킷 게이트웨이 방식 (Circuit Gateway)
▶️ OSI Layer5(세션 계층)과 OSI Layer 7 (어플리케이션 계층) 사이에서 접근 제어를 실시하는 방화벽
▶️ 사용자측 PC에는 방화벽의 대표 프록시와 통신하기 위한 수정된 클라이언트 프로그램이 필요함
▶️ 각 서비스별로 프록시가 존재하는 것이 아닌, 대표 프록시를 이용하므로, 어느 서비스 프로토콜도 방화벽을 적용시킬 수 있음
▶️ 수정된 클라이언트 프로그램이 설치된 사용자에 대해서는 별도의 인증절차 없이 투명한 서비스 제공
▶️ 단 사용자들에게 수정된 클라이언트 프로그램을 배포하거나 사용중인 어플리케이션을 수정해야하는 번거로움이 있음
🔖 상태 기반 조사 방식(Stateful Inspection)
패킷의 상태 정보를 유지하며, 세션의 시작부터 종료까지 트래픽을 추적한다. 즉) 단순히 패킷을 개별적으로 검사하는 것이 아니라, 전체 연결 상태를 기준으로 트래픽을 허용하거나 차단한다. 트래픽 흐름을 더 잘 이해하고, 비정상적인 세션을 감지할 수 있다. 그러나 더 복잡하고 리소스를 많이 소모하여, 성능에 영향을 줄 수 있다.
▶️ 패킷 필터링 + Application Gateway
▶️ 패킷으로부터 받은 전송상태, 연결상태 다른 application 들과의 관계 검사
▶️ 네트워크 계층에서 패킷을 처리하면서 프로토콜의 상태정보 테이블을 유지하여, 프로토콜의 특성에 따른 변화를 동적으로 대응한다. (예를들어, 내부 사용자가 인터넷으로 ping request를 하면 이에 들어오는 ping reply는 허용하지만 인터넷으로부터 내부자의 request가 존재하지 않은 상태에서 불법적인 ping reply는 허용하지 않음)
▶️ 연결의 시작부터 끝까지 모든 활동을 모니터링 하여 관리자가 정한 규칙을 기반으로 필터링함
▶️ 모든 통신 레이어에서 부석하므로 모든 채널에 대해서 추적 가능
▶️ UDP, RPC 패킷도 추적 가능
▶️ 상태 목록(State Table)에 Dos나 DDoS 공격으로 인한 거짓 정보가 가득 차게 되면, 장비가 일시적으로 다운될 수 있음
▶️ 방화벽을 재구동시, 현재 연결에 대한 모든 정보를 잃어버려 정당한 패킷에 대한 엑세스 거부가 발생할 수 있음
🔖웹 애플리케이션 방화벽(WAF)
기존 방화벽이 악의적 웹 애플리케이션으로부터 사설 네트워크를 보호하는 데 도움이 되는 반면 WAF는 악의적 사용자로부터 웹 애플리케이션을 보호하는 데 도움이 된다. WAF는 웹 애플리케이션과 인터넷 간의 HTTP 트래픽을 필터링하고 모니터링하여 웹 애플리케이션을 보호한다. WAF는 일반적으로 교차 사이트 위조, 교차 사이트 스크립팅(XSS), 파일 포함, SQL 삽입 등의 공격으로부터 웹 애플리케이션을 보호한다.
WAF를 웹 애플리케이션 앞에 배치하면, 웹 애플리케이션과 인터넷 사이에 보호 장치가 배치된다. 프록시 기반 방화벽은 중개 장치를 사용하여 클라이언트 컴퓨터의 신원을 보호하지만, WAF는 클라이언트가 서버에 도달하기 전에 WAF를 통과하게 만들어, 노출로부터 서버를 보호하는 역방향 프록시의 한 유형이다.
[참고]
https://www.cloudflare.com/ko-kr/learning/security/what-is-a-firewall/
반응형'IT > 네트워크' 카테고리의 다른 글
[네트워크] 허브, 스위치, 라우터 개념 정리 및 차이 (1) 2024.08.29 [네트워크] 네트워크 방화벽, 웹 방화벽, 웹 필터 정의 및 장단점 (1) 2024.08.28 [네트워크] 1. 네트워크와 케이블 (LAN, 이더넷, MAC, 캐스트, OSI 7 Layer) - 후니의 쉽게쓴 시스코 네트워킹 (0) 2024.08.22 [네트워크] 쿠키, 세션, 캐시 정의와 차이점 알아보기 (0) 2022.10.09 [네트워크] HTTP 상태코드 정리 (0) 2022.10.07