[Network] 방화벽(firewall)

joyful·2021년 12월 22일
0

CS

목록 보기
10/14

1. 정의

  • 수신/발신 네트워크 트래픽을 모니터링하고, 정의된 보안 규칙 집합을 기준으로 하여 특정 트래픽의 허용 또는 차단을 결정하는 네트워크 보안 시스템
  • 신뢰할 수 있는 내부 네트워크, 신뢰할 수 없는 외부 네트워크(예: 인터넷) 간의 장벽 구성
  • 서로 다른 네트워크를 지나는 데이터를 허용·거부·검열·수정하는 하드웨어 또는 소프트웨어 장치


2. 역할

  • 신뢰 수준이 다른 네트워크 구간들 사이에서 신뢰 수준이 낮은 네트워크(인터넷 구간 또는 외부 네트워크 구간)로부터 오는 해로운 트래픽이 신뢰 수준이 높은 네트워크(내부 네트워크 구간)로 오지 못하게 방어
  • DMZ 존재
    • 외부에 서비스를 제공하는 서버들을 위한 구간
    • 인터넷으로부터 내부 네트워크로의 침입 방지
    • 내부 네트워크에서 인터넷과 자유롭게 통신


3. 정책

  • 일반 수준 : 외부에서 내부로 전송되는 모든 트래픽 차단 또는 허용
  • 고급 수준 : 복잡한 정책
    ex) 외부의 경쟁회사.com으로부터 내부 서버 가짜정보.net으로 오는 길이 500바이트 이상의 http 트래픽을 허용하되 로그를 남긴다.


4. 분류

4.1 기능

4.1.1 접근 제어

  • 외부에서 내부 네트워크에 접속하는 패킷 필터링 이용 통제

4.1.2 프록시(Proxy)

세션에 포함되어 있는 정보의 유해성을 검사하기 위해 방화벽에서 세션을 종료하고 새로운 세션을 형성하는 방식의 방화벽

  • 출발지에서 목적지로 가는 세션을 명시적 또는 암시적으로 가로챔
    → 두 세션으로 생성(출발지 → 방화벽, 방화벽 → 목적지)
    → 하나의 세션에서 다른 세션으로 정보를 넘겨주기 전 검사 수행
  • 패킷 필터에 비해 방화벽에 더 많은 부하 가중
    • 속도 느림
    • 더 많은 검사 수행
    • 추가적인 기능 수행 가능 ex) 프로토콜 변경 등

4.1.3 네트워크 주소 변환(NAT, Network Address Translation)

  • 내부 네트워크에 대한 보안 기능
    • 내부 네트워크 사용 IP 주소와 외부 네트워크 IP 주소를 다르게 유지 가능
  • 사용 가능한 IP 주소 수 : 내부 사용 IP > 외부 IP
    • 인터넷 통신을 위해 사용하는 모든 컴퓨터 수 만큼의 IP 주소 구매 필요 x → 경제적
    • 포트 주소 변환(PAT, Port Address Translation)
      • 외부 IP 주소(1) : 내부 IP 주소(N)
        • 세션 충돌 발생 → 출발지 포트를 변경하여 충돌 해결

          💡 세션 충돌

          내부에서는 서로 다른 세션이 외부에서는 하나의 세션으로 인식

  • IPv4 주소의 더 효율적인 이용 → IPv4 주소의 완전 고갈 지연
  • RFC1918에 정해진 내부 네트워크 대역(10.0.0.0, 172.16.0.0, 192.168.0.0)을 내부 네트워크의 주소로 지정
    → 지정한 네트워크 전체가 적은 수의 외부 IP 주소로 변환되도록 정책 수립 필요

4.1.4 사용자 인증

트래픽에 대한 사용자의 신분을 증명하는 기술

4.1.5 감사 및 로그

트래픽에 대한 접속 정보 기록, 네트워크 사용에 대한 통계 제공


4.2 종류

4.2.1 Packet Filtering

패킷을 검사하여 미리 설정된 정책에 맞지 않을 경우 통과시키지 않도록 하는 형태의 방화벽

  • TCP/IP 네트워크 계층에서 동작
  • 네트워크 적용 규칙 또는 정책 미설정 시 기본 정책 적용
  • 더 많은 트래픽 처리 가능
    • 커널 레벨(낮은 Layer)에서 수행
      → 기존 애플리케이션 연동 용이
    • H/W 비의존적
    • 프록시 방식에 비해 제한된 검사만을 수행
    • 강력한 Logging 및 사용자 인증 기능 불가
  • 종류
    • 패킷 자체
      • 내부적인 상태 관리 필요 x
        → 스테이트리스 또는 무상태 방화벽
      • 장점 : 쉽게 구현
      • 단점 : 모든 패킷에 대해 매번 정책 검사 필요 → 정책이 많아질수록 속도 느려짐
    • 패킷이 속하는 세션(TCP 또는 UDP) 관리
      • 세션에 속하는 패킷들에 대해 모두 동일한 처리
        → 스테이트 풀 방화벽
      • 동적 정책을 내부적으로 관리
        • 두 통신 당사자 간에 세션 생성 가능한 패킷 조합 감지
      • 무상태 방화벽에 비해 높은 속도 제공
        • 동적 정책에 의해 패킷들이 먼저 허용 또는 거부됨

4.2.2 Application Gateway

  • Application Layer에서 동작
  • 방화벽의 proxy를 이용하여 연결
  • 높은 보안 정책 실현 및 바이러스 검사 기능
  • 전용 Gateway에 따른 Application 유연성 부족
  • H/W 의존적

4.2.3 Circuit Gateway

  • Session ~ Application Layer에서 동작
  • 일반 Gateway로 모든 서비스 처리
  • 내부 IP 주소 은닉 가능
  • Gateway 사용을 위한 Client 모듈 필요
  • 지원이 불가능한 프로토콜 존재 가능

4.2.4 Hybrid

  • 대부분 상용 방화벽의 채택 방식
  • Packet Filtering + Application Gateway
  • 내부 보안정책, 애플리케이션 등에 맞추어 선택 적용 가능

4.3 구현 방법

4.3.1 소프트웨어 방화벽

CPU를 장착한 네트워크 장비에 순수하게 소프트웨어를 이용하여 방화벽 기능을 구현한 방화벽

4.3.2 하드웨어 방화벽

  • ASIC 등을 이용하여 방화벽의 초당 패킷처리 수를 증가

    💡 ASIC(Application-Specific Integrated Circuit)

    특정 용도용 집적 회로

  • 네트워크 트래픽의 양이 순수 소프트웨어 방식의 방화벽으로 처리 가능한 한계 초과로 인하여 등장

4.3.3 NPU(Numeric Processing Unit) 기반 방화벽

공통으로 사용되는 패킷처리 함수를 하드웨어로 구현 + 프로그래밍

  • 소프트웨어 기반 방화벽과 순수 하드웨어 기반 방화벽의 장점만을 취하는 방법
    • 소프트웨어 기반 방화벽 → 유연성
    • 하드웨어 기반 방화벽 → 빠른 속도

4.3.4 멀티코어 프로세서 기반 방화벽

처리 단위(CPU의 코어)를 장착하여 한 번에 많은 양의 패킷 처리 가능




📖 참고

profile
기쁘게 코딩하고 싶은 백엔드 개발자

0개의 댓글