Without a Break

Firewall 본문

Network/네트워크보안과프로그래밍

Firewall

와븨 2022. 12. 2. 18:56

Firewall

- 신뢰하지 않는 외부 네트워크 접근/공격으로부터 내부를 보호

- 공격에 대해 각 호스트를 업그레이드/교체하기 보다 방화벽이라는 솔루션을 통해 시스템 전체의 기본적인 방어를 제공

- 로깅을 통한 보안 관리, 추적 등에 용이

 

정의

1. 방화벽이 유일한 통로가 되어야 함

2. 인증된 트래픽만 통과

3. 공격에 대한 방어

 

Capabilites

접근 제어

  • 방화벽의 가장 기본적이고 중요한 기능
  • 통과시킬 접근과 차단할 접근을 관리자가 명시하면 방화벽 실행
  • 구현 방법에 따라 패킷 필터링 방식과 프록시 방식으로 나뉨

로깅과 감사 추적

  • 모니터링을 위한 location 제공
  • 로깅: 방화벽을 통과하는 패킷 및 연결에 대한 정보나 관리자의 설정 변경 정보를 저장
  • 감사 추적: 시스템 내에 저장된 로그를 이용해 허용되지 않은 접속 시도, 연결 등 확인

인증

  • 메세지 인증: 전송되는 메세지에 대한 신뢰성 보장
  • 사용자 인증: 패스워드 같은 단순 인증부터 OTP, 토큰 기반 등의 높은 수준 인증까지 가능
  • 클라이언트 인증: 특수한 접속을 요구하는 호스트 자체가 정당한 접속 호스트인지 확인

데이터 암호화

  • 방화벽에서 다른 방화벽까지 전송되는 데이터를 암호화해서 보냄 (VPN 이용)

 

한계

- 바이러스 차단 불가

  • 방화벽은 패킷의 데이터 내용 자체는 검사하지 않기 때문

- 내부 공격 차단 불가

  • 경계에 대한 보안 정책을 수행할 뿐 내부 공격자에게 보안 정책을 적용할 수 없음
  • 노트북, 포터블 저장기기 등이 외부에서 감염되어 내부에서 사용될 경우

- 자신을 통하지 않은 통신에 대한 제어 불가

- 새로운 형태의 공격 차단 불가

- 방화벽을 우회하는 공격은 방어 불가

 

정책

User control : 액세스를 시도하는 사용자의 역할에 따라 데이터에 대한 액세스를 제어한다.

- 방화벽 경계 내의 사용자에게 적용

 

Service control : 호스트에서 제공하는 서비스 유형별로 액세스를 제어

- 네트워크 주소, 연결 프로토콜 및 포트 번호를 기준으로 적용

 

Direction control : 요청이 시작되고 방화벽을 통과할 수 있는 방향을 결정

- 트래픽이 "inbound"인지 또는 그 반대인 "outbound"인지 여부를 알려줌

 

동작

- Accepted

- Denied

- Rejected: Denied와 비슷하지만, ICMP 패킷을 통해 source 제공

 

  • Ingress filtering: incoming traffic 검사
  • Egressing filtering: outgoing traffic 검사

 

Type

Packet Filter Firewall : 로깅하지 않아서 SYN Flooding 공격 막지 못함

  • 응용 데이터의 payload 안봄
  • forward/discard 패킷 표시
  • 존재하는 stream이나 트래픽의 패킷을 신경쓰지 않음
  • ACL (Access Contorl Lists)
  • 장점: 처리 속도 빠름, 기존 응용에 연동이 쉬움, 비용이 쌈
  • 단점: TCP/IP 구조적 취약점, 데이터 공격 차단 불가능, 헤더 조작 가능

Stateful Firewall : 허용된 IP 주소라도 time out 후(연결이 끝난 후)에 오면 차단

  • 종료될때까지 모든 연결 모니터링으로 추적
  • 연결 상태 테이블 유지
  • stateless/stateful 패킷 필터
  • 장점: 보안 우수, 새 서비스 적용 용이
  • 단점: 구축이 복잡해 저장 공간이 많이 필요, 비용이 많이 듦, 관리가 필요

Application Proxy Firewall : 패킷의 허용/거부 결정을 위해서 헤더뿐만 아니라 응용 계층도 봄

  • 응용 계층까지 보기 때문에, 각 응용에 SW 방화벽이 필요
  • 클라이언트의 연결이 프록시에서 종료되면, 프록시에서 대상 호스트로 별도의 연결이 시작된다.
  • 입출력 제어, 응응/서비스에서 오가는 접근 제어
  • 장점: 데이터 검사 기능이 있어 보안성이 우수, 로깅 및 감사기능 강화, 인증 기능 가능, 부가 기능 구현 용이
  • 단점: 처리 속도 느림, 새 서비스는 새 프록시를 추가해야함 => 유연성 부족

Circuit-level Proxy Firewall : 응용 계층까지 보지 않고 소켓 전송까지만 봄

  • 필터링은 세션 계층이나 그 아래 계층의 기반
  • 프록시는 egress 필터링을 피하는데 사용됨.
  • 소스 IP 주소 숨겨짐 => Anonymizing Proxy
  • 장점: 단순, 서비스의 유연성이 우수, 서비스별로 프록시가 필요하지 않음
  • 단점: 응용 서비스의 접근 통제 로그 기록이 제공되지 않음

 

Locating Firewall

- 보통의 운영체제에서의 독립 기기의 방화벽 기반

- 사전 구성된 보안 어플라이언스로 제공

 

Types of Firewall Basing

① Bastion Host

  • 네트워크의 중요한 강점
  • 여러 application/circuit level 게이트웨이 호스트
  • 각 프록시는 기능, 호스트 액세스를 제한 가능하고 독립적, 비제한적
  • 필수 서비스만 제공하는 안전한 운영체제 실행
  • 프록시나 호스트에 접근하는 사용자는 접근권한이 필요

② Host-based

  • 특정 호스트에 맞춤형 필터 제공
  • 내/외부 공격 막음
  • 조직 방화벽 추가 보호 계층

③ Network Device Firewall 

  • 추가적인 보호 기능 제공
  • 필터링 속도 빠름
  • 라우팅 펌웨어만으로는 접근제어가 어려워 Bastion 호스트와 함께 사용

Virtual Firewall

  • 공통 물리적 하드웨어를 공유하는 가상화된 서버,라우터,스위치 등등

⑤ DMZ Network : 비무장 영역

⑥ Distributed Firewall Configuration : 분산된 방화벽 배열

 

More on Firewall

침입 탐지 시스템 (IDS)

  • deep 패킷 검사
  • 여러 패킷 간 상관 관계 검사
  • 포트 스캐닝, 네트워크 매핑, DoS 공격 등등

 

침입 방지 시스템(IPS)

  • 트래픽 차단할 수 있는 인라인 호스트/네트워크 기반 IDS
  • IDS 기능 방화벽에 추가
  • 방화벽처럼 트래픽 block 가능
  • IDS 알고리즘 사용

 

통합 위험 관리(UTM)

  • 여러 보안 기능이 한 박스에 통합

 

Evading Firewall

SSH Tunneling

터널링 : 데이터 스트림을 인터넷 상에서 가상의 파이프로 전달시키는 기술

  • 패킷 내 터널링 대상을 캡슐화시켜 목적지로 전송
  • 암호화 기법 적용이 일반적
  • 두 노드(또는 네트워크) 간에 가상의 링크를 형성
  • 오버레이 네트워크 구성 가능

방화벽 피하기 => Local port forwarding

  • Host A의 SSH 클라이언트가 사용자 지정 로컬 포트를 검사 → 응용 클라이언트가 이 포트로 접속 시 SSH 클라이언트가 데이터를 Host B의 SSH 서버에 전송 → 다시 SSH 서버가 응용 서버로 전송

 

Dynamic Port Forwarding

  • SSH로 설정한 Dynamic port forwarding은 SOCKS 프록시 설정
  • SSH는 TCP 데이터를 터널로 기계한테 전송

 

Using VPN

  • 네트워크 내부의 컴퓨터와 외부의 컴퓨터 사이에 터널 생성
  • 터널 트래픽은 암호화 => 방화벽은 터널 내부를 보지 못하고 필터링도 불가능
  • 원격의 두 지점을 내부 네트워크처럼 이용 (오버레이 네트워크)