네트워크 보안의 기본! 방화벽(Firewall)에 대해서 알아보자

해당 내용은 고재성님의 IT 엔지니어를 위한 네트워크 입문 이라는 책을 읽고 작성한 글입니다.
 

IT 엔지니어를 위한 네트워크 입문 : 네이버 도서

네이버 도서 상세정보를 제공합니다.

search.shopping.naver.com


✏️ 여는글

여러분은 방화벽에 대해서 얼마나 알고 있나요?
저는 그동안 방화벽을 그저 귀찮은 존재로 알고 있었습니다.
(윈도우 방화벽으로 인해 힘들었던 기억들..ㅠㅠ)
하지만 이번의 방화벽에 대해서 공부를 하면서 아주 중요하고도 중요한 녀석이라는 사실을 깨달았죠
그럼 방화벽에 대해서 한번 알아보도록 하겠습니다.


🔥 방화벽(Firewall)이란?

방화벽이란, 네트워크 중간에 위치하여, 트래픽이 통과해야 하는지, 통과하지 말아야 하는지를 정하는 장비입니다.
이 방화벽은 사전에 정책이 설정되어 있어야 하며, 그 정책에 맞춰 트래픽을 관리합니다.


따라서, 트래픽을 관리하며 보안을 담당하는 장비들을 넓은 의미에서 모두 방화벽이라고 볼 수 있지만, 많은 네트워크 보안 장비들은 각각의 그 목적과 동작 방식에 따라 많이 다릅니다.


일반적으로 네트워크 3계층(네트워크 계층), 4계층(전송 계층)에서 동작하며, 패킷의 헤더를 조사하는 상태 기반 패킷 검사(Stateful Packet Inspection, SPI)로 동작하거나, 패킷의 헤더 뿐만 아니라 컨텐츠까지 조사하는 심층 기반 패킷 검사(Deep Packet Inspection, DPI)로 동작하는 장비를 방화벽이라고 칭합니다.


이 SPI와 DPI와 관련된 내용은 아래에서 정리할 테니, 여기선 이런게 있다고만 생각하고 넘어가도록 하겠습니다.


🧱 초기의 방화벽은?

사실 이 SPI나, DPI같은 기술은 비교적 최근에 나온 기술들입니다.
이 SPI나, DPI같은 기술이 나오기 전의 방화벽은 굉장히 단순했습니다.
초기 방화벽의 동작 방식은 패킷이 들어오면 패킷 내 3계층, 4계층 헤더에 존재하는 5개의 주요필드들을 가지고 정보를 분석합니다.
그 5가지 주요필드들은 아래와 같습니다.

  • 출발지 IP(Source IP)
    • 데이터를 전달하는 목적지의 IP
  • 출발지 Port(Source Port)
    • 데이터를 전달하는 목적지의 포트번호
  • 도착지 IP(Destination IP)
    • 데이터를 전달받는 목적지의 IP
  • 도착지 Port(Destination Port)
    • 데이터를 전달받는 목적지의 포트번호
  • 프로토콜 번호(Protocol No)
    • 3계층 프로토콜 지시자로 TCP및 UDP를 지정할 때 사용합니다.
    • TCP는 6, UDO는 17입니다. 

위 5가지의 주요 필드를 일컫는 말로 5-튜플(5-Tuple)이라고 합니다.
이러한 5-튜플을 분석하여, 방화벽에 일치된 정책이 있으면 패킷을 허용하거나 차단합니다.

그저 장비의 등록된 정책만으로 패킷 필터링 기능을 가진 초기의 방화벽을 무상태 기반 패킷 검사(Stateless Packet Inspection) 혹은 무상태 기반 패킷 필터링(Stateless Packet Filtering) 방화벽 이라고 합니다.

 

하지만 무상태 기반 패킷 필터링 방화벽은 패킷의 인과 관계는 전혀 확인하지 못했습니다.
그에따라 3~4계층 변환을 통한 공격등 보안의 취약한 점 및 현대 네트워크의 복잡성으로 인해, 초기의 방화벽의 필터링 방법으로는 보안의 한계가 있었습니다.

 

따라서 현대의 SPI및 DPI 기술이 나오게 된것입니다.

다만, 그렇다고 해서 이러한 무상태 기반 패킷 필터링 방식이 전혀 안쓰이는것은 아닙니다.

이 방법은 현대의 기술보다 부하가 적고 간단히 동작하기에, 현대의 기술과 함께 사용하기도 하고,

특수한 상황에서는 계속 쓰이는 기술 입니다.

그렇기에 현대의 장비에도 이러한 무상태 기반 패킷 필터링(Stateless Packet Filtering) 방화벽 기능이 추가되어 나오는 장비들도 꽤 있습니다.


🔮 현대의 방화벽 기술들 SPI와 DPI

상태 기반 패킷 검사(Stateful Packet Inspection, SPI)

먼저 SPI부터 설명드리도록 하겠습니다. SPI는 Stateful Packet Inspection(상태 기반 패킷 검사)의 준말이며, 패킷의 헤더 정보를 조사하고 3계층에서 4계층까지 분석하여 이 정보가 방화벽 내 정책(혹은 블랙리스트)에 존재 여부를 파악 후 패킷을 통과시킬 지, 아니면 막을 지 판단하는 기술입니다.

 

SPI는 패킷의 헤더 정보만으로 트래픽을 판단하고 패킷의 페이로드까지는 살펴볼 수 없기 때문에, 정교한 분석은 어렵습니다. 하지만, 헤더 정보만 분석하기에 그 만큼 빠른 분석이 가능하며 대용량 트래픽을 쉽게 그리고 빠르게 처리할 수 있는 장점이 있습니다. 따라서 최근 대용량 트래픽 서비스가 많아지고 있기에 아래 설명할 DPI에 비해 상대적으로 많이 사용하는 기술입니다.

심층 기반 패킷 검사(Deep Packet Inspection, DPI)

DPI는 Deep Packet Inspection(심층 기반 패킷 검사)의 준말이며, 패킷의 헤더뿐만 아니라 페이로드까지 정보를 조사하고 3계층에서 7계층까지 분석하여 트래픽 허용여부를 판단하는 기술입니다.

 

DPI는 콘텐츠가 담겨 있는 페이로드까지 조사를 하기에, 데이터 보호 및 프라이버시 이슈를 야기하지만, 보안이 가장 중요한 상황에서는 종종 쓰이는 기술입니다. 다만, 이 기술은 분석성이 높기에 비용이 많이 들어가게되고, SPI에 비해 많이 느리기 때문에, 잘 사용하지 않고 있습니다.

 

정리하자면 아래 테이블과 같습니다.

구분 SPI DPI
분석 계층 3~4계층 3~7계층
처리 속도 빠름 느림
분석성 낮음 높음
비용 낮음 높음

 

또한, 아래 영상을 통해 지금까지 배웠던 내용을 2분만에 되새겨봅시다.


🏗 방화벽 동작 방식

자 이제, 방화벽이 어떻게 동작하는지를 배워보도록 하겠습니다. 방화벽이 패킷을 처리하는 순서는 아래와 같습니다.

  1. 장비에 패킷이 들어오면 우선 세션 테이블을 확인합니다.
    1. 조건에 맞는 세션 정보가 세션 테이블에 있을 때
      1. (2번으로 이동)
    2. 조건에 맞는 세션 정보가 세션 테이블에 없을 때
      1. 방화벽 정책을 확인합니다.
        1. 방화벽 정책을 첫번째 부터 마지막까지 모두 확인 후 허용 정책이 없을 때
          1. 임시적인 거부(Implicit Denial) 규칙을 참고해 차단합니다.
        2. 방화벽 정책을 확인하는 중 허용 정책이 존재할 때
          1. 세션 테이블의 기록
  2. 포워딩 테이블을 확인
    1. 조건에 맞는 정보가 포워딩 테이블에 있을 때
      1. 조건에 맞는 정보가 포워딩 테이블에 없을 떄
    2. 패킷을 폐기합니다.
      1. 적절한 인터페이스로 패킷을 포워딩합니다.

SPI엔진 혹은 DPI엔진을 가진 방화벽은 세션 인지 기능이 있어 5-Tuple과 더불어 3계층 ~ 4계층의 세부적인 필드도 함께 확인합니다.
그에따라 무상태 기반 패킷 필터링에 비해 세션을 추가로 인지하고 세션 테이블에 정보를 저장하므로 세션을 로깅하기가 쉽습니다.

대부분 방화벽은 통신 전체의 세션을 로그로 저장할 수 있어 보안사고 시 이러한 세션 로그를 기반으로 어떤 통신이 문제가 있었는지 판단할 수 있습니다.


😢 방화벽의 한계

초기의 방화벽은 전문적인 지식으로 한정된 네트워크에서 힘들게 유지되던 시기를 지나 현재는 SPI및 DPI 방화벽 엔진들로 인해 많은 공격을 쉽게 방어할 수 있게 되었습니다.
그렇기에 현대에는 많은 서비스에서 방화벽을 사용되자, 해커들의 해킹 방식은 계정 탈취에서 서비스 중단쪽으로 바뀌고, DDOS및 웜 공격등이 해킹에 새로운 트렌드로 바뀌었습니다.
이에 따라 방화벽을 우회하는 다양한 공격이 개발되고 인터넷 서비스가 마비되면서 방화벽의 한계가 명확히 드러났습니다.
현재는 이러한 공격에 방어를 위해 IPS 등과 같은 보안장비가 개발되어 왔지만, 해커의 공격들이 매우 다양해 그에 따른 취약점도 지속적으로 발생하고 있습니다.


참고문서

'네트워크' 카테고리의 다른 글

IP 클래스 방식이란?  (0) 2023.01.28
옥텟(Octet)이란?  (2) 2023.01.28

이 글을 공유하기

댓글