Firewall (방화벽)

ohyujeong·2023년 12월 21일
0

network

목록 보기
1/8

Firewall(방화벽)이란?


Firewall은 사용자가 정의한 보안 규칙을 기반으로 네트워크 트래픽을 모니터링하고, 그에 따라 트래픽을 허용할지 차단할지 결정하는 네트워크 보안 장치이다. 대부분의 운영체제에는 firewall이 내장되어 있고, 상황에 따라 소프트웨어와 하드웨어, 또는 이 둘의 조합으로 구성하여 사용할 수 있다.

역할

  • 네트워크 장벽 구축
    Firewall은 조직의 내부 네트워크(컴퓨터, 모바일 기기, 프린터 등)와 외부 네트워크(인터넷 및 기타 시스템) 사이에 장벽을 형성하고, 그 사이에서 외부 네트워크와의 직접적 연결을 막는 중간자 역할을 한다.

  • 데이터 모니터링 및 필터링
    모든 내부 네트워크에서 외부 네트워크로 가는 outbound, 외부 네트워크에서 내부 네트워크로 들어오는 inbound 트래픽을 모니터링하고 보안 규칙에 따라 필터링하여 내부 네트워크를 방어한다.

  • 보안 기능
    Firewall은 허가되지 않은 악성 코드, 해킹 시도, 바이러스, 웜, 스파이웨어 등의 악성 트래픽을 식별하고 차단한다.

  • 라우팅
    일부 방화벽은 데이터 패킷 검사하는 것에 더해 해당 패킷을 네트워크의 어느 부분으로 전달하는 라우팅 기능을 수행한다. IP 주소를 기반으로 패킷을 적절한 목적지로 전달하는 동시에 보안규칙에 따라 트래픽을 필터링하고 관리한다.

유형

Packet Filtering Firewall

  • 초기 방화벽 기술
  • 네트워크/전송 계층(layer 3,4)에서 작동한다.
  • 각각의 데이터 패킷을 독립적으로 검사하고, 전후 트래픽과의 연관성을 고려하지 않는 stateless 방식으로 동작한다.
    -> 패킷 그 자체로만 평가한다.
  • 네트워크/전송 계층 헤더를 검사해 source/destination의 IP 주소와 포트를 확인하고,
    ACL(Access Control List)를 기반으로 패킷을 허용하거나 차단할 것을 결정한다.
  • 애플리케이션 프로토콜(예: HTTPS)을 읽을 수 없어 패킷 내 전달된 메세지 내용을 읽을 수 없고, 이에 따라 정교한 보안 정책을 세울 수는 없다.

ACL의 구조


출처: https://www.freecodecamp.org/news/a-deep-dive-into-access-control-lists/

Stateful Inspection Firewall

  • 네트워크/전송 계층(layer 3,4)에서 작동한다.
  • Packet Filtering Firewall과 같이 네트워크 계층 정보를 사용하여 트래픽을 검사하고,
    이에 더해 상태 테이블을 사용하여 네트워크 연결 상태를 기반으로 트래픽을 동적으로 필터링한다.
  • 패킷의 헤더 정보뿐만 아니라 패킷의 데이터(페이로드)도 포함하여 검사한다.
  • 예를 들어 과거에 중단을 일으킨 트래픽 유형은 상태 테이블에 기록되어 향후 필터링된다.
  • Stateful Inspection Firewall은 네트워크 연결(세션)의 시작과 종료를 모니터링하여 유효한 세션의 패킷만 통과시키는 방식으로 작동한다. 이 과정은 TCP 3-way handshake라는 아래와 같은 과정을 거친다.
    - 1. SYN : 클라이언트가 서버에 연결을 시작하기 위해 SYN(Synchronize) 패킷을 보낸다.
    - 2. SYN-ACK : 서버는 클라이언트에게 SYN-ACK(Synchronize-Acknowledgment) 패킷을 보내 연결 요청을 확인한다.
    - 3. ACK : 클라이언트는 ACK(Acknowledgment) 패킷을 서버에 보내 연결을 확립한다.
    이 과정을 거친 유효한 연결(올바른 3-way handshake를 통해 설정된 연결)의 패킷만 통과시키고, 유효하지 않은 연결(불완전한 3-way handshake)의 패킷은 차단한다.

NAT(Network Address Translator) Firewall

  • 네트워크/전송 계층(layer 3,4)에서 작동한다.
  • 인터넷의 급속한 성장과 함께 IP 주소의 부족 문제를 해결하기 위해 등장했다.
  • 내부 네트워크의 개별 장치들이 단일 공용 IP 주소를 사용할 수 있게 IP 주소를 변환해준다.
  • 외부 네트워크(인터넷)에서 들어오는 트래픽의 destination IP 주소는 NAT Firewall이 변환해준 공용 IP 주소이다.
    NAT Firewall은 이 destination IP 주소를 해당 트래픽이 최종적으로 도달해야 할 내부 네트워크의 사설 IP 주소로 변환한다.
    이 때 PAT(Port Address Translation)가 사용된다. 포트 번호를 사용하여 각각의 연결을 구별하고, 트래픽을 어떤 사설 IP 주소로 보내야할지 결정한다.
  • NAT Firewall을 통해 내부 네트워크의 보안을 강화하고, IP 주소를 효율적으로 사용할 수 있다.

Proxy Firewall (Application firewall)

  • 애플리케이션 계층(layer 7)에서 작동한다.
  • 상태 저장기능에 더해 패킷의 헤더 뿐만 아니라 페이로드까지 검사하는 DPI(Deep Packet Inspection)기능을 제공하여 세밀한 트래픽 관리를 할 수 있다.
  • 클라이언트와 서버 간의 중계자 역할을 한다. 클라이언트 요청은 먼저 Proxy 서버를 거치고, Proxy 서버가 이 요청을 검토 한 후 서버로 전달한다.
  • 실제 사용자의 IP주소를 숨기는 대신 Proxy 서버의 IP주소를 사용하여 인터넷 요청을 보낸다.
  • 통과하는 트래픽의 내용을 검사한다. 애플리케이션 계층의 데이터를 분석하여 특정 웹 콘텐츠의 접근을 제한하거나 특정 유형의 트래픽을 차단할 수 있다.
  • NAT Firewall의 주요 목적이 IP 주소의 변환이라면, Proxy firewall의 주요 목적은 트래픽을 상세하게 검사하는 것이다.

Proxy(Forward proxy) 와 Reverse proxy

  • Proxy클라이언트 측에 위치한다. 클라이언트 요청을 서버로 전달하고, 서버로부터의 응답을 클라이언트에게 다시 전송한다. 클라이언트의 신원을 숨기는 것에 목적이 있다.
  • Reverse proxy서버측에 위치한다. 클라이언트로부터 요청을 받아 내부 서버로 전달하고, 그 내부 서버의 응답을 클라이언트에게 다시 전송한다. 이는 역방향으로 Forward proxy가 하는 일을 하는 것이라 Reverse라고 이름붙여졌다. 로드 밸런싱, SSL 암호화 처리 등의 목적을 가진다.

Proxy 와 VPN

  • Proxy특정 요청을 중재하고 필터링하고, VPN은 사용자의 전체 인터넷 연결을 암호화한다. 이렇듯 적용범위와 보안 수준에서 차이가 있다.
  • VPN은 인터넷을 통해 가상의 사설 네트워크를 생성한다. 사용자의 인터넷 트래픽은 VPN 서버를 통해 암호화 되어 전송된다.(연결 시 어떤 터널이 생긴다고 생각하면 된다) 사용자의 인터넷 활동을 보호하고, 지리적 위치 제한을 우회하는 기능을 제공한다.

WAF(Web Application Firewall)

  • 웹 애플리케이션의 보안 위협 증대에 따라 개발되었다.
  • 웹 애플리케이션과 인터넷 간의 HTTP 트래픽을 필터링하고 모니터링하여 웹 애플리케이션을 DDos, XSS(크로스 사이트 스크립팅), SQL인젝션 등의 공격으로부터 보호한다.
  • 클라이언트가 서버에 도달하기 전에 WAF를 통과하게 만들어 노출로부터 서버를 보호하는 Reverse proxy의 한 유형이다.
  • WAF는 policy(정책)이라고 하는 일련의 규칙을 통해 작동한다. 정책 수정이 쉽고 빠르게 구현되어 신속한 공격 대응을 할 수 있다.

NGFW(Next Generation Firewall)

  • 복잡해진 사이버 위협에 대응하기 위해 등장했다.
  • 기존 방화벽 기능에 더해 다양한 고급 기능이 통합되었다.
  • DPI(Deep Packet Inspection) 기능이 있어 패킷의 페이로드와 패킷이 접근하는 애플리케이션을 살펴볼 수 있다.
  • IPS(Intrusion Prevention System) 침입 방지 시스템을 지원한다.
  • 애플리케이션 인식 : 어떤 애플리케이션이 실행 중인지, 애플리케이션이 어떤 포트를 사용 중인지 인식할 수 있다.
  • 사용자 인식 : 사용 중인 컴퓨터, 로그인한 사용자 등 신원을 기반으로 규칙을 적용할 수 있다.
  • 들어오는 패킷과 그와 관련된 코드를 분리하고 샌드박스 환경에서 실행해 악의적인 동작이 없는지 테스트한다. 이 테스트 결과로 패킷을 허용/차단할 수 있다.

참고

https://www.forcepoint.com/cyber-edu/firewall
https://www.simplilearn.com/tutorials/cyber-security-tutorial/what-is-firewall
https://techblog.woowahan.com/2699/
https://www.kaspersky.com/resource-center/definitions/firewall
https://www.electric.ai/blog/what-is-the-purpose-of-a-firewall
https://co-no.tistory.com/26

profile
거친 돌이 다듬어져 조각이 되듯

0개의 댓글