사설 네트워크를 외부로부터 보호하기 위해 공중 네트워크와 사설 네트워크 사이에 설치된 일종의 벽

  • 보안정책에 따라 인가된 N/W 서비스에 대한 접근 허용, 인가되지 않은 트래픽 차단
    • Deny All: 모든 트래픽을 차단하고 허용해야 할 트래픽만 선별적 허용(가용성<보안성)
    • Permit All: 모든 트래픽을 허용하고 차단해야 할 트래픽만 선별적 차단(가용성>보안성)
  • 접근통제목록(ACL, Access Control List)에 따라 보안정책 설정
  • 서비스 제어, 방향 제어, 사용자 제어, 행위 제어 수행
장점 단점
  • 취약한 서비스 보호
  • 호스트 시스템 접근제어 기능
  • 로그와 통계자료 유지
  • 내부 네트워크에 대한 일괄적인 보안 정책 적용 가능
  • 제한된 서비스
  • 우회 트래픽 제어 불가
  • 내부 사용자의 공격 방어 어려움
  • 제로데이 공격에 취약
  • 유형

    패킷 필터링

    수신된 패킷의 TCP/IP 헤더 부분만을 이용해서 침입 차단 기능을 수행하는 수동적인 침입차단 프로그램

    일반적인 라우터에 패킷 필터링 기능을 구현한 것을 스크리닝 라우터(또는 패킷 필터링 라우터)라고 부른다.

    장점 단점
  • 확장 가능
  • 높은 효율성
  • 응용 프로그램에 독립적
  • 패킷에서 헤더정보 외에는 조사 X
  • 상대적으로 낮은 보안
  • 연결 상태 추적 X
  • NAT(Network Address Translation)

    사설 주소와 범용주소의 매핑 제공하며 동시에 가상 사설 네트워크를 지원하는 기술

    • 적은 수의 공인 IP주소로 많은 시스템이 인터넷에 접속 가능하게 함
    • 외부 네트워크에서 내부 네트워크 IP주소를 알 수 없으므로 보안성 효과
    • 구분
      • Static NAT
        • 내부 IP 주소와 외부 IP 주소의 1:1 매핑
      • Dynamic NAT
        • 여러 개의 내부 IP 주소와 여러 개의 외부 IP 주소의 동적 매핑
      • PAT(Port Address Translation)
        • 변환 테이블에 송/수신 포트번호와 프로토콜을 포함

    스테이트풀 패킷 검사

    패킷 필터링과 동일한 패킷 정보를 조사하지만 TCP 연결에 관한 정보를 기록

    • TCP 시퀀스넘버를 추적해서 시퀀스넘버를 이용한 세션하이재킹 같은 공격을 방어
    • 통신 채널을 추적하는 상태 테이블을 관리
    장점 단점
  • 패킷 상태에 대한 보안성 높임
  • 전체 계층에 대해 상태 조사, 사용자 설정없이 투명성 제공
  • 연결요청의 첫 헤더 공격에 잘못된 상태테이블 구성 가능
  • 작동 원리

    • 데이터 링크 계층에서 SYN 패킷을 전송받으면 접근제어 정책에 의해 상태 테이블에 남겨 접근 허용여부를 결정
    • 접근이 금지된 패킷일 경우 로그를 저장하고 전송을 수행하지 않고, 접근이 허용된 패킷은 네트워크 계층으로 전송
    • SYN 패킷이 아닐 경우 상태 테이블의 패킷 정보 여부를 검사하고 존재하면 전송, 존재하지 않으면 접근제어 정책에 따라 전송여부를 결정

    프록시

    침입차단 시스템 호스트에서 실행되는 전문화된 애플리케이션이나 서버 프로그램으로서 배스천 호스트에 설치되어 운영

    배스천 호스트(Bastion Host)란?

    침입차단 S/W가 설치되어 내ㆍ외부 네트워크 사이에서 게이트웨이 역할을 수행하며 철저한 보안 방어 기능이 구축되어 있는 시스템

    • 설계 및 구축
      • 가능한 한 단순하게 구성하여 호스트 보안 정책을 쉽게 구성
      • 배스천 호스트의 손상에 대비한 대비책을 강구
      • 시스템 로그에 대한 백업 방법을 강구
    • 장점
      • 스크리닝 라우터 방식보다 안전
      • 각종 기록 정보 생성 및 관리가 쉬움
    • 단점
      • 배스천 호스트가 손상되면 내부 네트워크를 보호할 수 없음
      • 로그인 정보가 유출되면 내부 네트워크를 보호할 수 없음

    응용 계층 게이트웨이(Application-Level Proxy)

    응용 서비스마다 각기 다른 응용 게이트웨이를 구현하여 패킷을 응용프로그램 계층까지 검사

    장점 단점
  • 응용 서비스 사용에 따른 기록 및 감사 추적이 가능하고 강력한 인증 서비스 제공
  • 높은 대역폭 혹은 실시간 응용프로그램에 일반적으로 적합하지 않음
  • 새로운 네트워크 응용 프로그램과 프로토콜 지원에 제한적
  • 응용서비스별 별도의 프락시 서버가 필요
  • 회선 레벨 게이트웨이(Circuit-Level gateway)

    외부와 내부 네트워크 사이에 안전한 프록시 데이터 채널을 설정하기 위해서 매커니즘을 구축

    • SOCKS 프로토콜을 사용
      • SOCKS: 클라이언트-서버 환경에서 이용되는 프락시 접속 프로토콜
    • 내부 네트워크의 호스트 보호를 목적
    • 응용 트래픽 조사 X
      • 응용 게이트웨이 방화벽보다 처리속도 빠름
      • 응용 서비스를 사용하는 공격에 취약

    종류

    스크리닝 라우터 구조

    라우터를 이용해 인터페이스에 들어오고 나가는 패킷 필터링

    장점 단점
  • 구조간단, 장비 추가비용 없음
  • 네트워크 계층에서 동작, 클라이언트-서버 변화 없음
  • 보호하고자 하는 전체 N/W에 동일한 보호가 가능
  • 세부적인 규칙 적용이 어려움
  • 인증기능 수행 불가. 내부구조를 숨기기 어려움
  • 실패한 접속에 대한 로깅지원 X, 패킷필터링 규칙검증 어려움
  • 이중 네트워크 호스트 구조

    • 2개의 인터페이스를 가지는 장비로 하나는 외부 N/W, 하나는 내부 N/W와 연결
    • N/W의 모든 패킷을 검사하기 때문에 상당히 높은 성능의 시스템이 요구되며 소규모 N/W에 적합
    장점 단점
  • 스크리닝 라우터보다 안전
  • 관리, 설치, 유지보수 용이
  • 내부 네트워크를 숨길 수 있음
  • 서비스 증가 시 프록시 S/W 가격 상승
  • 사용자 정보 입력 필요
  • 배스천호스트 손상, 로그인 정보 유출 시 네트워크 보호 불가
  • 스크린드 호스트 게이트웨이 구조

    • 이중 네트워크 호스트 + 스크리닝 라우터
    • 내부 네트워크에 놓여 있는 배스천호스트와 외부 네트워크 사이에 스크리닝 라우터로 구성
    장점 단점
  • 다른 방화벽에 있는 모든 장점 + 융통성
  • 네트워크 계층과 응용 계층에서 방어(2단계 방어)
  • 느린 서버 속도
  • 배스천호스트 침해 시 내부 네트워크를 보호할 수 없음
  • 스크리닝 라우터의 라우팅 테이블 변경 시 내부 네트워크 방어 불가
  • 스크리닝 라우터의 라우팅 테이블이 변경되면 외부 트래픽이 배스천호스트로 입력되지 않고 곧바로 내부 네트워크로 진입되므로 내부자 공격에 취약하다.

    스크린드 서브넷 구조

    • 스크리닝 라우터 + 이중 네트워크 호스트 + 스크리닝 라우터
    • 인터넷과 내부 네트워크 사이에 DMZ(Demilitarized Zone)라는 서브넷을 운영
    • 외부에서 접속할 수 있어야 하며 보호되어야 할 시스템은 주로 DMZ 네트워크에 배치
    장점 단점
  • DMZ와 같은 보안층을 가지고 있어 매우 안전
  • 다른 방화벽에 있는 모든 장점을 포함, 융통성 또한 뛰어남
  • 낮은 서비스 속도
  • 다른 방화벽에 있는 모든 장점을 포함, 융통성 또한 뛰어남
  • iptables

    리눅스 커널에 내장된 rule 기반의 패킷 필터링 기능

    • 상태 추적
    • NAT 기능
    • 패킷 레벨에서의 로깅 기능
    • 확장 모듈을 통한 다양한 기능
    $ iptables [table] [chain] [rule] [target]

    테이블 지정

    옵션 설명
    -t filter(default값), nat

    룰을 설정할 체인 지정

    옵션 설명
    -A append 모드. 해당 체인의 제일 마지막에 룰을 추가
    -I insert 모드. 해당 체인의 첫 행에 룰을 추가.
    행 번호 지정 시 특정 행에 룰을 추가
    -D delete 모드. 행 번호를 지정하여 특정 위치의 룰을 삭제
    -F flush 모드. 해당 체인의 모든 룰을 삭제
    -P 해당 체인의 default 정책 설정

    filter 테이블의 체인에는 INPUT, OUTPUT, FORWARD 체인이 있다.

    룰 설정
    | 옵션 | 설명 |
    |:---:|:---:|
    | -p | 프로토콜 지정 |
    | -s | 출발지 IP 지정 |
    | -d | 목적지 IP 지정 |
    | --sport | 출발지 Port 지정 |
    | --dport | 목적지 Port 지정 |
    | -i | 패킷이 들어오는 인터페이스 지정 |
    | -o | 패킷이 나가는 인터페이스 지정 |

    타겟 지정

    옵션 설명
    -j 룰에 매칭될 때 적용할 정책 또는 타겟 체인을 지정

    정책에는 ACCEPT(허용), DROP(차단, 응답 없음), REJECT(차단, 응답), LOG(로깅)이 있다.