Unisquads
로그인
홈
이용약관·개인정보처리방침·콘텐츠정책·© 2026 Unisquads
이용약관·개인정보처리방침·콘텐츠정책
© 2026 Unisquads. All rights reserved.

CBAC (r1)

이 문서의 과거 버전 (r1)을 보고 있습니다. 수정일: 2026.02.14 23:11

CBAC

이름

CBAC

전체 명칭

Context-Based Access Control

분류

네트워크 보안 기술, 방화벽 정책 기법

주요 목적

동적 접근 제어

핵심 개념

연결 상태(State) 및 애플리케이션 컨텍스트 기반 필터링

기술 상세 정보

작동 방식

패킷 헤더 정보 외에 연결 상태, 사용자 ID, 시간, 애플리케이션 프로토콜 동작 등을 종합적으로 분석하여 접근 허용/차단 결정

주요 특징

정적 ACL(Access Control List)의 한계 보완, 애플리케이션 계층(OSI 7계층) 보안 강화

주요 적용 분야

차세대 방화벽(NGFW), 통합 위협 관리(UTM), 웹 애플리케이션 방화벽(WAF)

장점

더 정교하고 유연한 보안 정책 수립 가능, 새로운 위협과 복잡한 프로토콜에 대한 대응력 향상

관련 표준/기술

대표적 구현 예시

시스코 ASA(Adaptive Security Appliance)의 모듈, 다양한 NGFW 제품의 핵심 엔진

1. 개요

CBAC(Context-Based Access Control)는 시스코 시스템즈가 개발한 네트워크 보안 기술이다. 이 기술은 전통적인 패킷 필터링 방화벽의 한계를 극복하기 위해 설계되었다. CBAC는 네트워크 트래픽을 단순히 IP 주소와 포트 번호만으로 판단하지 않고, 연결의 상태와 애플리케이션 계층의 정보를 종합적으로 분석하여 접근을 제어한다.

이 기술의 핵심은 '상태 기반 검사'에 있다. CBAC는 TCP 또는 UDP 세션의 상태를 추적하고, 이를 바탕으로 동적으로 방화벽 규칙을 생성 또는 제거한다. 예를 들어, 내부 네트워크에서 시작된 외부로의 연결을 허용하면, CBAC는 해당 응답 트래픽이 돌아오는 것을 자동으로 허용하는 임시 규칙을 만든다. 이는 보다 정교한 보안 정책을 구현할 수 있게 해준다.

CBAC는 애플리케이션 계층의 프로토콜 정보까지 검사할 수 있다. FTP나 H.323과 같은 복잡한 프로토콜의 동적 포트 협상을 이해하고, 필요한 포트를 자동으로 열어준다. 또한, 일부 애플리케이션 공격을 탐지하고 방어하는 기능도 포함하고 있다. 이 기술은 주로 시스코 IOS 소프트웨어를 실행하는 라우터에 구현되어, 네트워크의 경계에서 방화벽 역할을 수행한다.

2. CBAC의 기본 원리

CBAC의 핵심 작동 원리는 상태 기반 검사를 통해 네트워크 세션의 상태를 지속적으로 모니터링하고 평가하는 데 있다. 기존의 정적 패킷 필터링이 개별 패킷의 헤더 정보(예: 출발지/목적지 IP 주소, 포트 번호)만을 기준으로 허용/차단을 결정하는 반면, CBAC는 패킷이 속한 연결의 맥락과 상태를 고려한다. 이를 위해 CBAC는 방화벽을 통과하는 연결의 시작, 진행, 종료 단계를 추적하는 세션 추적 테이블을 유지 관리한다. 이 테이블은 각 세션의 프로토콜, 포트, 시퀀스 번호 등의 정보를 기록하여, 응답 패킷이 정당한 요청에 대한 것인지 판단하는 근거로 활용된다.

이 원리의 구체적 적용은 동적 방화벽 규칙의 생성과 삭제를 통해 이루어진다. 예를 들어, 내부 네트워크의 사용자가 외부 웹 서버에 접속 요청(TCP SYN 패킷)을 보내면, CBAC는 이 요청을 검사한 후 허용한다. 동시에, 해당 세션에 대한 상태 정보를 세션 테이블에 저장하고, 외부 서버로부터의 응답(SYN-ACK 패킷)을 임시로 허용하기 위한 규칙을 방화벽에 동적으로 추가한다. 이 규칙은 세션이 정상적으로 종료되거나 미리 정의된 타임아웃 시간이 경과하면 자동으로 삭제된다. 이 방식은 "기본적으로 모든 트래픽을 차단"한 상태에서, 오직 합법적인 대화 흐름에 관련된 트래픽만 임시 문을 열어주는 정책을 구현한다.

상태 추적은 다양한 프로토콜에 적용된다. FTP와 같은 복잡한 프로토콜에서는 데이터 채널(예: 포트 20)이 제어 채널(예: 포트 21) 협상을 통해 동적으로 결정된다. CBAC는 제어 채널의 대화를 검사(애플리케이션 계층 검사)하여 예상되는 데이터 채널 연결을 미리 인지하고, 이를 위한 동적 규칙을 생성하여 세션을 원활하게 지원한다. 아래 표는 CBAC가 세션 상태에 따라 동적 규칙을 처리하는 일반적인 흐름을 보여준다.

단계

내부->외부 트래픽

CBAC 동작

외부->내부 트래픽 규칙 상태

연결 시작

클라이언트 SYN 패킷 전송

패킷 검사, 세션 테이블 항목 생성

동적 허용 규칙 생성 (임시)

세션 진행

정상적인 데이터 패킷 교환

세션 테이블 상태 업데이트, 패킷 검사

동적 규칙을 통해 응답 패킷 허용

연결 종료

FIN 패킷 교환 또는 타임아웃

세션 테이블 항목 삭제

동적 허용 규칙 자동 삭제

이러한 원리로 인해 CBAC는 애플리케이션 인식 방화벽의 초기 형태로 간주된다. 이는 단순한 포트 번호 이상의 정보를 이용하여, 프로토콜의 정상적인 동작을 이해하고 이를 위반하거나 악용하려는 시도를 차단하는 기반을 제공한다[1].

2.1. 상태 기반 검사

상태 기반 검사는 CBAC의 핵심 원리로, 단순히 개별 패킷의 헤더 정보만을 확인하는 패킷 필터링과 달리, 네트워크 연결의 상태와 맥락을 지속적으로 추적하여 보안 결정을 내리는 방식을 말한다. 이 방식은 TCP나 UDP 세션과 같은 논리적 연결의 시작, 유지, 종료라는 전체 수명 주기를 모니터링한다. 방화벽은 내부 네트워크에서 외부로 시작된 연결 요청을 검사한 후, 해당 세션의 상태 정보를 상태 테이블에 저장한다. 이 테이블은 출발지 및 목적지 IP 주소, 포트 번호, 시퀀스 번호와 같은 세션 세부 정보를 포함한다.

이 상태 정보를 바탕으로 CBAC는 반환 트래픽을 지능적으로 허용한다. 예를 들어, 내부 호스트가 외부 웹 서버에 HTTP 요청을 보내면, CBAC는 이 요청을 검사하고 상태 테이블에 해당 세션 항목을 생성한다. 이후 동일한 세션에서 발생하는 외부 서버의 응답 패킷이 방화벽에 도착하면, CBAC는 패킷 정보를 상태 테이블의 기존 항목과 비교한다. 정보가 일치하고 패킷이 정상적인 세션 흐름의 일부로 판단될 경우, 방화벽은 사전 정의된 정적 규칙에 명시적으로 허용되지 않았더라도 해당 응답 패킷을 내부 네트워크로 전달하도록 동적으로 임시 규칙을 생성한다. 이 과정은 세션이 종료되거나 타임아웃이 발생할 때까지 유지된다.

특성

설명

연결 추적

TCP 3방향 핸드셰이크 및 세션 상태(ESTABLISHED, FIN-WAIT 등)를 모니터링한다.

상태 테이블

활성 세션의 세부 정보를 유지하는 동적 데이터베이스 역할을 한다.

동적 규칙 생성

내부에서 시작된 연결에 대한 응답 트래픽을 허용하기 위해 임시 방화벽 규칙을 자동으로 추가한다.

세션 종료 처리

연결 정상 종료 또는 타임아웃 시 상태 테이블 항목과 동적 규칙을 제거한다.

이러한 상태 기반 접근 방식의 주요 이점은 보안성을 강화하면서도 사용 편의성을 높인다는 점이다. 방화벽은 모든 반환 트래픽에 대해 넓은 범위의 포트를 항상 열어둘 필요 없이, 오직 현재 활성화된 합법적인 세션에 대해서만 문을 열어준다. 이는 무차별 포트 스캔과 같은 공격 표면을 크게 줄인다. 또한, 애플리케이션 계층의 일부 프로토콜 동작(예: FTP의 수동 모드에서 동적으로 협상되는 데이터 채널 포트)을 이해하고 이에 맞게 상태 테이블과 규칙을 업데이트할 수 있는 기반을 제공한다.

2.2. 세션 추적

세션 추적은 CBAC가 내부 네트워크에서 시작된 TCP 또는 UDP 세션의 상태 정보를 지속적으로 모니터링하고 기록하는 과정이다. 이 과정은 방화벽이 단순히 개별 패킷을 검사하는 것을 넘어, 연결의 전체적인 맥락을 이해하는 데 필수적이다. CBAC는 세션이 설정(예: TCP 3-way 핸드셰이크), 데이터 전송, 종료되는 전 주기를 추적한다. 이를 통해 방화벽은 현재 네트워크를 통과하는 활성 세션들의 상태 테이블을 유지 관리한다.

상태 테이블에는 각 세션의 핵심 정보가 저장된다. 일반적으로 출발지 및 목적지 IP 주소, 포트 번호, 시퀀스 번호, 세션 상태(예: ESTABLISHED, CLOSING) 등이 포함된다[2]. 이 테이블은 들어오는 패킷이 기존에 허용된 세션의 일부인지, 아니면 새로운 불법적인 연결 시도인지를 판단하는 기준이 된다. 예를 들어, 내부 호스트가 외부 웹 서버에 연결을 시작하면, CBAC는 이 세션을 상태 테이블에 등록하고, 해당 세션에 대한 응답 트래픽만을 내부로 다시 허용하는 임시 규칙을 생성한다.

세션 추적의 효과는 다양한 프로토콜에 적용된다. TCP 세션의 경우 연결 설정 및 종료 절차를 정밀하게 검증하여 스푸핑 공격이나 비정상적인 연결 재설정을 탐지할 수 있다. UDP와 같은 상태가 없는(stateless) 프로토콜의 경우, CBAC는 패킷의 흐름을 가상의 "세션"으로 간주하여 추적한다. 이를 통해 특정 ICMP 메시지 타입과 같은 관련 트래픽도 정확하게 허용하거나 차단할 수 있다.

추적 정보

설명

활용 예시

세션 5튜플

출발지/목적지 IP, 출발지/목적지 포트, 프로토콜

특정 연결을 고유하게 식별

세션 상태

TCP 상태(예: SYN_SENT, ESTABLISHED)

정상적인 연결 절차 이탈 탐지

타임아웃 값

유휴(inactive) 세션 자동 정리

리소스 관리 및 보안 강화

애플리케이션 데이터

특정 프로토콜(예: FTP, SIP)의 제어 채널 정보

동적 데이터 채널 포트를 자동으로 개방

이러한 세션 추적 메커니즘은 CBAC가 정적 방화벽 규칙만으로는 불가능한, 맥락 기반의 지능적인 필터링을 수행할 수 있게 하는 기반이 된다. 결과적으로 네트워크 보안은 단순한 패킷 차단 수준을 넘어, 실제 트래픽 흐름과 애플리케이션 동작을 이해하고 제어하는 수준으로 발전한다.

2.3. 동적 방화벽 규칙

CBAC의 핵심 메커니즘 중 하나는 상태 기반 검사를 통해 동적 방화벽 규칙을 생성하고 관리하는 것이다. 기존의 정적 패킷 필터링이 미리 정의된 규칙에만 의존하는 반면, CBAC는 내부 네트워크에서 시작된 합법적인 세션의 상태를 실시간으로 모니터링한다. 이를 바탕으로 방화벽은 외부에서 들어오는 응답 트래픽을 허용하기 위한 임시 규칙을 자동으로 생성한다. 이 규칙은 세션이 활성 상태인 동안만 존재하며, 세션이 종료되거나 미리 정의된 타임아웃 시간이 지나면 자동으로 삭제된다.

동적 규칙 생성 과정은 다음과 같다. 내부 호스트가 외부 서버로 TCP 연결을 시작하면, CBAC는 이 SYN 패킷을 검사하고 세션 정보를 상태 테이블에 기록한다. 그 후, 방화벽은 외부 서버로부터 돌아오는 응답(SYN-ACK 패킷)을 허용할 수 있도록 임시 액세스 규칙을 생성한다. 이 규칙은 정책에 따라 특정 ACL(Access Control List)에 추가된다. 이로 인해 내부에서 시작된 연결에 대한 응답만 정확히 허용되고, 다른 불필요한 외부 연결 시도는 차단된다.

이 방식은 특히 클라이언트-서버 모델에서 유용하다. 예를 들어, 내부 사용자가 웹 서핑을 할 때, 방화벽은 사용자의 HTTP 요청에 대해 수십 개의 임시 포트를 사용하는 외부 웹 서버의 응답을 일일이 정적으로 허용할 필요가 없다. CBAC가 세션을 추적하고 필요한 포트에 대해 동적으로 문을 열어주기 때문이다. 세션이 끝나면 이 문은 자동으로 닫히므로, 공격자가 응답 포트를 이용해 침투할 수 있는 기회의 창(attack window)이 최소화된다.

규칙 유형

생성 방식

관리 방식

주요 특징

정적 규칙

관리자 수동 설정

변경 전까지 고정

간단하지만 유연성 부족

동적 규칙

CBAC 엔진 자동 생성

세션 수명 주기에 따라 자동 생성/삭제

보안성과 편의성 향상

따라서 동적 방화벽 규칙은 네트워크 보안 정책을 더욱 정교하고 안전하게 구현할 수 있게 해준다. 관리자는 내부에서 외부로 나가는 트래픽에 대한 광범위한 정책만 정의하면 되며, 반대 방향의 세세한 응답 트래픽 규칙은 CBAC가 자동으로 처리한다. 이는 구성 오류를 줄이고, 동시에 세션 하이재킹이나 스푸핑 공격과 같은 위협으로부터 네트워크를 보호하는 데 효과적이다.

3. CBAC의 주요 기능

CBAC는 애플리케이션 계층까지의 정보를 검사하여 단순한 패킷 필터링을 넘어서는 기능을 제공한다. 주요 기능은 애플리케이션 계층 검사, 공격 탐지 및 방어, 그리고 멀티미디어 프로토콜 지원으로 구분된다.

첫째, 애플리케이션 계층 검사 기능은 TCP/UDP 포트 번호뿐만 아니라 FTP, HTTP, SMTP 등 특정 응용 프로토콜의 명령과 데이터 흐름을 이해하고 검증한다. 예를 들어, FTP 세션에서의 PORT 또는 PASV 명령을 모니터링하여 동적으로 필요한 데이터 채널을 열어주는 방식으로 작동한다. 이는 패킷의 페이로드까지 분석하여 프로토콜 준수 여부와 잠재적 위협을 판단하는 기반이 된다.

둘째, 공격 탐지 및 방어 기능을 통해 일반적인 네트워크 기반 공격을 차단한다. 주요 방어 대상은 다음과 같다.

공격 유형

CBAC의 대응 방식

서비스 거부 공격(DoS)

연결 수와 요청 빈도에 대한 임계값을 설정하여 초과 시 세션 차단

포트 스캔

짧은 시간 내 다수의 포트에 대한 연결 시도를 탐지하여 차단

세션 하이재킹

시퀀스 번호 비정상 추이 등을 모니터링하여 의심 세션 종료

마지막으로, H.323, SIP, RTSP 같은 멀티미디어 및 신호 프로토콜을 지원한다. 이러한 프로토콜은 동적 포트를 사용하여 미디어 스트림을 설정하는 경우가 많다. CBAC는 제어 채널의 신호 메시지를 검사하여, 협상된 미디어 채널(오디오/비디오 RTP 스트림)에 대한 임시 방화벽 구멍을 자동으로 생성하고 세션이 종료되면 닫는다. 이는 멀티미디어 통화나 화상 회의가 방화벽을 통과할 수 있도록 보장하면서도 보안 정책을 유지하게 해준다.

3.1. 애플리케이션 계층 검사

CBAC의 애플리케이션 계층 검사 기능은 전통적인 패킷 필터링 방화벽이 주로 네트워크 계층(3계층)과 전송 계층(4계층)의 정보만을 검사하는 것과 차별화된다. 이 기능은 OSI 모델의 7계층 중 애플리케이션 계층(7계층)까지 트래픽을 분석하여, 패킷의 페이로드(실제 데이터 내용)에 숨겨진 위협을 식별한다.

예를 들어, HTTP, FTP, SMTP 같은 특정 애플리케이션 프로토콜의 명령어와 데이터 흐름을 이해하고 검증한다. 표준 포트를 우회하여 다른 포트를 통해 유입되는 애플리케이션 트래픽을 감지하거나, 합법적인 프로토콜을 이용해 전달되는 악성 코드나 명령어를 탐지하는 데 활용된다. 이는 단순히 포트 번호와 IP 주소만을 확인하는 방식으로는 차단할 수 없는 공격을 방어할 수 있게 해준다.

주요 검사 내용은 다음과 같다.

검사 대상

설명

프로토콜 명령어 순서

예: FTP의 PORT, PASV 명령어 순서와 매개변수 검증

프로토콜 준수 여부

표준 프로토콜 규격에서 벗어나는 비정상적인 패킷 탐지

애플리케이션 상태 추적

예: SMTP 세션에서 MAIL FROM 뒤에 RCPT TO 명령이 오는지 확인

데이터 내 위협 패턴

패킷 데이터 페이로드 내 알려진 공격 시그니처 탐지

이러한 심층 검사를 통해, CBAC는 애플리케이션 레벨 게이트웨이의 일부 기능을 통합하여 더 포괄적인 보안 정책을 적용할 수 있다. 결과적으로 네트워크의 취약점을 악용하는 고급 공격으로부터 내부 자원을 보호하는 데 기여한다.

3.2. 공격 탐지 및 방어

CBAC는 네트워크를 통과하는 트래픽을 실시간으로 분석하여 다양한 공격 패턴을 탐지하고 차단하는 기능을 제공한다. 이는 단순한 포트 및 주소 필터링을 넘어서 애플리케이션 계층의 프로토콜 동작과 상태 정보를 기반으로 한다. 주요 방어 대상에는 서비스 거부 공격, 포트 스캔, 그리고 애플리케이션 프로토콜을 악용한 공격 등이 포함된다.

CBAC는 세션 추적을 통해 비정상적인 연결 시도를 식별한다. 예를 들어, 짧은 시간 내에 동일한 목적지 포트로 다수의 SYN 패킷이 발생하면 SYN 플러딩 공격으로 판단하고 관련 세션을 차단할 수 있다. 또한, FTP나 HTTP 같은 특정 프로토콜의 명령어 시퀀스를 검사하여 프로토콜 위반이나 악의적인 명령 삽입을 탐지한다.

공격 유형

CBAC의 탐지/방어 메커니즘

서비스 거부 공격 (DoS)

연결 수 임계값 초과 시 새 세션 차단[3]

포트 스캔

비정상적인 포트 접근 패턴 및 실패한 연결 시도 모니터링

애플리케이션 계층 공격

프로토콜 명령어 검사 및 비정상적인 데이터 패턴 식별

IP 스푸핑

상태 기반 검사를 통한 비대칭 경로 트래픽 차단

이러한 방어 메커니즘은 사전에 정의된 검사 규칙과 타임아웃 및 임계값 설정에 의해 구동된다. 공격이 탐지되면 CBAC는 동적으로 방화벽 규칙을 생성하여 추가 유입 트래픽을 차단하고, 시스템 관리자에게 Syslog 또는 SNMP 트랩을 통해 알림을 전송할 수 있다. 이를 통해 네트워크 보안 정책을 능동적으로 시행하고 내부 자원을 보호한다.

3.3. 멀티미디어 프로토콜 지원

CBAC는 H.323, SIP, RTSP와 같은 멀티미디어 및 신호 프로토콜에 대한 상태 추적을 지원합니다. 이러한 프로토콜은 제어 채널을 통해 협상된 후 별도의 데이터 채널(예: RTP 스트림)을 통해 실제 음성 또는 비디오 데이터를 전송하는 복잡한 세션 설정 과정을 사용합니다. CBAC는 제어 채널의 메시지를 검사하여 협상된 포트 번호와 IP 주소를 학습하고, 해당 데이터 채널의 연결을 허용하기 위해 방화벽 규칙을 동적으로 생성합니다.

이 지원은 멀티미디어 응용 프로그램이 방화벽이나 NAT 장비를 통과할 수 있도록 합니다. 예를 들어, VoIP 통화를 설정하는 SIP 메시지를 검사하면, CBAC는 이후의 RTP/RTCP 스트림에 사용될 포트를 예측하여 임시로 열어줍니다. 이 과정은 프로토콜 표준을 준수하는 방식으로 이루어지며, 세션 종료 시점이나 타임아웃 이후에는 관련 동적 규칙을 자동으로 제거합니다.

지원되는 주요 프로토콜과 그 역할은 다음과 같습니다.

프로토콜

주요 용도

CBAC의 처리 내용

H.323

화상 회의

H.225, H.245 제어 채널 검사를 통한 데이터 채널 동적 개방

SIP

VoIP, 인스턴트 메시징

INVITE 등의 메시지 분석을 통한 RTP/RTCP 세션 허용

RTSP

스트리밍 미디어 재생 제어

SETUP, PLAY 메시지 분석을 통한 데이터 전송 채널(예: RTP) 허용

이러한 지원 덕분에 네트워크 보안 정책을 유지하면서도 실시간 통신 서비스의 원활한 운영이 가능해집니다. CBAC는 프로토콜의 상태 머신을 이해하여, 정당한 세션 설정 과정에서 파생된 트래픽만을 허용함으로써 보안성을 확보합니다.

4. CBAC 구성 요소

CBAC 구성은 검사 규칙, 타임아웃 및 임계값, 알림 및 로깅이라는 세 가지 핵심 요소를 통해 이루어진다. 각 요소는 상태 기반 검사 엔진의 동작을 정의하고 제어하는 역할을 한다.

검사 규칙은 CBAC의 핵심 정책을 정의한다. 관리자는 특정 프로토콜(예: TCP, UDP, FTP, HTTP)에 대한 트래픽 검사를 활성화하는 규칙을 생성한다. 이 규칙은 검사할 트래픽의 방향(인바운드 또는 아웃바운드), 적용될 인터페이스, 그리고 해당 트래픽의 출발지 및 목적지 IP 주소나 서브넷을 지정한다. 규칙이 적용되면, CBAC는 규칙에 정의된 프로토콜을 사용하는 연결을 모니터링하고 그 상태 정보를 상태 테이블에 기록한다.

타임아웃 및 임계값은 세션 관리와 자원 보호를 담당한다. CBAC는 비활성 세션을 정리하기 위해 다양한 타임아웃 값을 사용한다. 예를 들어, TCP 세션이 정상적으로 종료된 후 상태 테이블 항목을 유지하는 시간이나, UDP와 같은 비연결형 프로토콜의 세션 유효 시간을 설정한다. 또한, 절반 열린 연결(half-open connection)의 수를 모니터링하기 위한 임계값을 설정하여 서비스 거부 공격 시도를 탐지하고 방어할 수 있다.

구성 요소

주요 설정 예시

역할

검사 규칙

프로토콜(TCP, HTTP 등), 방향, 인터페이스, IP 주소

검사 대상 트래픽을 정의하고 상태 테이블을 생성

타임아웃

TCP 유휴 타임아웃, UDP 세션 타임아웃, DNS 조회 타임아웃

비활성 세션 정리 및 상태 테이블 자원 관리

임계값

절반 열린 TCP 연결 수 임계값

DoS 공격 탐지 및 방어를 위한 트리거 설정

알림 및 로깅은 가시성과 감사를 제공한다. CBAC는 구성된 임계값을 초과하거나 의심스러운 활동(예: 많은 수의 절반 열린 연결 발생)을 감지했을 때 시스로그(syslog) 메시지를 생성하여 관리자에게 알릴 수 있다. 또한, 모든 허용되거나 거부된 세션에 대한 상세한 로그를 생성하여 네트워크 활동을 추적하고 보안 사고 발생 시 조사에 활용할 수 있다.

4.1. 검사 규칙

검사 규칙은 CBAC가 네트워크 트래픽을 허용할지 차단할지 결정하는 정책의 핵심 요소이다. 이 규칙은 관리자가 정의하며, 특정 프로토콜, 출발지/목적지 IP 주소, 포트 번호와 같은 기준에 따라 트래픽을 검사 대상으로 지정한다. 규칙은 일반적으로 내부 네트워크에서 외부 네트워크로 향하는 특정 트래픽 유형에 대한 검사를 활성화하는 방향으로 구성된다. 예를 들어, 내부 사용자의 HTTP 웹 트래픽만 검사하도록 규칙을 설정할 수 있다.

규칙은 세션 상태를 기반으로 동작한다. 초기화 패킷이 규칙과 일치하면, CBAC는 해당 세션의 상태 정보를 상태 테이블에 기록한다. 이때, 반환 트래픽(외부에서 내부로 들어오는 응답 패킷)을 허용하기 위한 임시 방화벽 구멍이 동적으로 생성된다. 이 구멍은 세션의 수명 동안만 존재하며, 세션이 정상적으로 종료되거나 타임아웃에 도달하면 자동으로 폐쇄된다. 따라서 규칙은 단순한 통과/차단이 아니라, 상태를 유지하고 관리하는 지능적인 정책으로 작동한다.

검사 규칙의 구성은 세분화된 제어를 가능하게 한다. 다음은 일반적인 규칙 구성 요소를 보여주는 표이다.

구성 요소

설명

예시

프로토콜

검사할 애플리케이션 계층 프로토콜을 지정한다.

tcp, udp, 특정 프로토콜(예: http, ftp)

출발지 주소/포트

검사할 트래픽의 내부 출발지를 정의한다.

특정 IP 주소 범위(192.168.1.0 0.0.0.255) 또는 any

목적지 주소/포트

검사할 트래픽의 외부 목적지를 정의한다.

특정 호스트 IP 또는 any

방향

검사가 적용되는 트래픽 방향을 설정한다.

일반적으로 내부(inside)에서 외부(outside)로의 트래픽

규칙은 네트워크의 보안 요구사항과 허용해야 하는 애플리케이션에 맞게 조정되어야 한다. 과도하게 제한적인 규칙은 합법적인 트래픽을 차단할 수 있으며, 너무 관대한 규칙은 보안 위험을 초래할 수 있다. 효과적인 CBAC 운영을 위해서는 검사 규칙, 타임아웃 및 임계값, 알림 및 로깅 설정이 조화를 이루어야 한다.

4.2. 타임아웃 및 임계값

CBAC는 세션 상태를 추적하며, 각 세션에 대해 정의된 타임아웃 값과 임계값을 통해 리소스를 효율적으로 관리하고 비정상적인 활동을 감지한다. 이러한 값들은 네트워크 정책의 일부로 구성되며, 특정 프로토콜과 애플리케이션의 동작 특성에 맞게 조정될 수 있다.

타임아웃 설정은 비활성 세션을 정리하는 데 핵심적이다. 예를 들어, TCP 세션의 경우, 연결이 정상적으로 종료된 후에도 일정 시간 동안 상태 정보를 유지하는 FIN-WAIT 타임아웃이 존재한다. 반면, UDP와 같은 비연결형 프로토콜은 세션의 시작과 끝이 명확하지 않으므로, 패킷 교환이 중단된 후 특정 시간이 지나면 세션 슬롯을 자동으로 해제하는 절대적 타임아웃이 적용된다. 이는 방화벽의 상태 테이블이 불필요한 항목으로 가득 차는 것을 방지한다.

임계값은 주로 서비스 거부 공격과 같은 비정상적인 트래픽 폭주를 탐지하는 데 사용된다. CBAC는 반초당 시도되는 세션 수나 불완전한 TCP 핸드셰이크 시도 횟수와 같은 지표를 모니터링한다. 사전에 정의된 임계값을 초과하면, CBAC는 공격으로 간주하고 해당 소스에 대한 새로운 연결을 일시적으로 차단하거나 관리자에게 알림을 생성할 수 있다.

설정 카테고리

예시

목적

세션 타임아웃

TCP 유휴 타임아웃: 3600초

장시간 비활성 상태인 세션을 정리하여 리소스 확보

프로토콜별 타임아웃

DNS 조회 응답 대기 타임아웃: 30초

특정 애플리케이션 프로토콜의 응답 지연에 대응

공격 방지 임계값

불완전 세션 임계값: 500개/초

SYN 플러딩 공격과 같은 비정상적 트래픽 패턴 감지

이러한 값들은 네트워크 환경과 보안 요구사항에 따라 세밀하게 조정되어야 한다. 너무 짧은 타임아웃은 정상적인 응용 프로그램의 동작을 방해할 수 있으며, 너무 높은 임계값은 실제 공격을 탐지하지 못하게 할 수 있다.

4.3. 알림 및 로깅

CBAC는 네트워크 활동을 모니터링하고 보안 관련 이벤트를 기록하기 위해 포괄적인 알림 및 로깅 메커니즘을 제공합니다. 이 기능은 침입 탐지, 사고 대응, 정책 위반 조사 및 네트워크 동작 감사에 필수적입니다. 시스템은 사전 정의된 임계값을 초과하거나 의심스러운 패턴이 감지되면 실시간으로 관리자에게 SYSLOG 메시지나 SNMP 트랩을 통해 알림을 생성합니다. 예를 들어, 세션 수가 비정상적으로 급증하거나 특정 유형의 공격 시도가 탐지되면 즉시 경고가 발송됩니다.

로깅은 주로 SYSLOG 서버로 전송되는 메시지를 통해 이루어지며, 다음을 포함한 다양한 이벤트를 상세히 기록합니다.

이벤트 유형

기록 내용 예시

세션 시작/종료

내부 호스트와 목적지 간의 연결 생성 및 해제 시간, 사용 포트

접근 제어 결정

허용 또는 거부된 트래픽의 세부 정보(소스/목적지 IP, 프로토콜)

공격 시도 탐지

DoS 공격, 포트 스캔 등 이상 패턴에 대한 정보

정책 위반

구성된 검사 규칙을 위반하는 트래픽 로그

이러한 로그는 중앙 집중식 SYSLOG 서버에 저장되어 장기적인 추적과 분석이 가능합니다. 로그 메시지의 심각도 수준(debug, informational, warning, error 등)을 조정하여 기록할 정보의 양을 제어할 수 있습니다. 이를 통해 중요한 보안 사건은 강조하고, 일반적인 운영 로그는 필터링하는 세밀한 로그 관리 정책을 수립할 수 있습니다.

효과적인 로그 분석은 네트워크 보안 태세를 평가하고, 새로운 위협을 식별하며, 보안 정책의 효과성을 검증하는 데 핵심적인 자료가 됩니다. 따라서 CBAC의 알림 및 로깅 구성은 단순한 기록을 넘어, 지능형이고 사전 예방적인 보안 운영의 기반을 형성합니다.

5. CBAC의 장점

CBAC는 패킷 필터링과 같은 전통적인 방화벽 기술에 비해 몇 가지 뚜렷한 장점을 제공한다. 가장 큰 장점은 상태 기반 검사를 통해 네트워크 세션의 상태를 추적한다는 점이다. 이를 통해 내부 네트워크에서 시작된 정상적인 응답 트래픽을 자동으로 허용할 수 있어, 보안 정책을 더욱 세밀하게 적용하면서도 사용자 편의성을 해치지 않는다. 이 방식은 단순히 IP 주소와 포트 번호만을 확인하는 정적 필터링보다 훨씬 향상된 보안성을 제공한다.

두 번째 장점은 유연한 정책 관리이다. CBAC는 애플리케이션 계층까지 검사할 수 있어, 특정 프로토콜의 명령어나 동작을 기반으로 트래픽을 허용하거나 차단하는 세부 정책을 수립할 수 있다. 예를 들어, FTP 세션에서 PUT 명령은 차단하지만 GET 명령은 허용하는 식의 정책이 가능하다. 이는 네트워크 관리자에게 애플리케이션 수준의 통제권을 부여하여, 보다 정교하고 상황에 맞는 보안 전략을 구현할 수 있게 한다.

마지막으로, CBAC는 애플리케이션 인식 기능을 갖춘다. 이는 HTTP, FTP, SMTP 같은 특정 애플리케이션 프로토콜의 동작 방식을 이해하고, 그에 맞게 동적으로 방화벽 규칙을 생성 또는 조정한다는 의미이다. 특히 동적 포트를 사용하는 미디어 스트리밍 프로토콜이나 H.323 같은 멀티미디어 프로토콜을 지원할 때 이점이 두드러진다. 이러한 인텔리전트한 처리 방식은 복잡한 현대 애플리케이션 환경에서도 효과적인 보호를 가능하게 한다.

5.1. 향상된 보안성

CBAC는 기존 정적 패킷 필터링이 가진 취약점을 보완하여 네트워크 보안을 크게 향상시킨다. 가장 큰 장점은 내부 네트워크에서 시작된 연결의 상태를 추적하고, 그에 맞춰 외부로부터 들어오는 응답 트래픽에 대해 동적으로 방화벽 규칙을 생성한다는 점이다. 이는 단순히 포트 번호와 IP 주소만을 검사하는 방식보다 훨씬 정교한 접근 제어를 가능하게 한다.

예를 들어, 내부 사용자가 외부 웹 서버에 접속하면 CBAC는 해당 TCP 세션을 모니터링한다. 외부 서버로부터 돌아오는 응답 패킷은 사전 정의된 정적 규칙이 없어도, CBAC가 관리하는 상태 테이블 정보를 바탕으로 허용된다. 반면, 내부에서 시작되지 않은 불법적인 외부 연결 시도는 상태 테이블에 해당 세션 정보가 없기 때문에 기본적으로 차단된다. 이는 스푸핑 공격이나 특정 포트를 이용한 무단 스캔을 효과적으로 방어하는 기반이 된다.

또한, CBAC는 애플리케이션 계층까지 검사를 확장하여 보안성을 한층 강화한다. 일부 애플리케이션 프로토콜(예: FTP, SIP)은 데이터 채널을 위해 동적으로 포트를 협상하는데, CBAC는 이러한 제어 채널의 대화를 검사하여 필요한 데이터 포트를 임시로 열어준다. 이는 보안 정책을 위반하지 않으면서 애플리케이션의 정상 작동을 보장하는 "정책 준수적 유연성"을 제공한다.

마지막으로, CBAC는 DoS 공격 탐지와 같은 추가적인 보안 기능을 통합한다. 설정된 임계값을 초과하는 반복적인 연결 시도나 비정상적인 패킷 흐름을 감지하고, 해당 트래픽을 차단하거나 관리자에게 알림을 생성할 수 있다. 이는 네트워크를 단순한 접근 제어 장치를 넘어, 능동적인 위협 감시 및 대응 플랫폼으로 격상시킨다.

5.2. 유연한 정책 관리

CBAC는 네트워크 관리자가 애플리케이션, 프로토콜, 서비스, 출발지 및 목적지 주소, 포트 번호 등 다양한 기준을 조합하여 세밀한 검사 정책을 정의할 수 있게 합니다. 이는 단순한 허용/차단을 넘어, 특정 조건에서만 세션을 허용하거나 특정 트래픽 유형에 대해 심층 검사를 적용하는 등의 복잡한 보안 요구사항을 충족시킵니다. 정책은 특정 인터페이스 방향(인바운드 또는 아웃바운드)에 적용되어 네트워크 세그먼트별로 차별화된 보안 수준을 제공합니다.

정책 관리는 시간 기반 또는 이벤트 기반으로 동적으로 조정될 수 있습니다. 관리자는 특정 시간대에만 정책을 활성화하거나, 네트워크 공격이 감지되었을 때 임시로 더 엄격한 검사 규칙을 적용하는 등의 유연한 대응이 가능합니다. 또한, CBAC는 TCP/UDP 세션의 상태를 추적하므로, 내부 네트워크에서 시작된 연결에 대한 응답 트래픽을 자동으로 허용하는 반면, 외부에서 시작된 비정상적인 연결 시도는 차단할 수 있습니다. 이는 정적 방화벽 규칙을 수동으로 많이 구성해야 하는 번거로움을 크게 줄입니다.

정책 관리 요소

설명 및 유연성 예시

검사 대상

FTP, HTTP, SMTP 등 특정 애플리케이션 프로토콜만을 대상으로 검사를 적용할 수 있습니다.

트래픽 방향

내부에서 외부로 나가는 트래픽에 대해서만 검사를 활성화하거나, 그 반대로 설정할 수 있습니다.

시간 제약

업무 시간에만 특정 서비스(예: 미디어 스트리밍)에 대한 접근을 허용하는 정책을 설정할 수 있습니다.

동적 규칙 생성

내부 호스트의 아웃바운드 연결을 감지해, 해당 세션에 대한 인바운드 응답 트래픽을 위한 임시 규칙을 자동 생성합니다.

이러한 유연성은 네트워크 보안 정책을 보다 현실적이고 효율적으로 구현하는 데 기여합니다. 관리자는 포트 번호만으로 트래픽을 제어하는 전통적인 방식의 한계를 극복하고, 애플리케이션 계층의 동작과 컨텍스트를 고려한 정책을 수립할 수 있습니다. 결과적으로, 불필요한 트래픽 차단으로 인한 업무 차단을 최소화하면서도 보안 위협에 대한 대응력을 강화할 수 있습니다.

5.3. 애플리케이션 인식

CBAC의 애플리케이션 인식 기능은 전통적인 패킷 필터링이 제공하지 못하는 핵심적인 차별점이다. 이 기능은 단순히 IP 주소와 포트 번호만을 확인하는 것을 넘어, 네트워크를 통해 흐르는 트래픽이 속한 특정 애플리케이션 프로토콜을 식별하고 이해한다. 예를 들어, 모든 80번 포트 트래픽을 단순히 '웹 트래픽'으로 허용하는 대신, CBAC는 해당 트래픽이 HTTP, FTP, 또는 다른 프로토콜인지를 구분하고, 각 프로토콜의 정상적인 명령 시퀀스와 데이터 흐름을 검사할 수 있다.

이러한 인식은 애플리케이션 계층(OSI 7계층의 7계층)에서의 정교한 검사를 가능하게 한다. CBAC는 FTP 세션에서의 PORT 또는 PASV 명령을 해석하여 동적으로 필요한 데이터 채널을 열어주거나, SQL 주입 공격과 같은 애플리케이션 수준의 악성 패턴을 탐지할 수 있다. 또한, H.323, SIP 같은 복잡한 멀티미디어 프로토콜을 지원하기 위해 여러 개의 동적 연결을 관리하고, 프로토콜의 신호 채널을 분석하여 미디어 채널(오디오/비디오 RTP 스트림)에 대한 임시 방화벽 구멍을 정확하게 생성한다.

애플리케이션 인식의 이점은 보안 정책의 정밀성과 효율성에 직접적으로 반영된다. 관리자는 "웹 서버 접근 허용"과 같은 모호한 규칙 대신, "내부 사용자의 외부 웹 서버에 대한 HTTP GET 요청은 허용하지만, 악성 코드 패턴이 포함된 응답은 차단한다"와 같은 세부적이고 문맥 기반의 정책을 수립할 수 있다. 이는 알려지지 않은 포트를 사용하거나 표준 포트를 남용하는 애플리케이션을 통제하는 데에도 유용하다.

지원 프로토콜 예시

검사 및 관리 내용

HTTP/HTTPS

GET/POST 요청 분석, 악성 URL 또는 콘텐츠 필터링[4]

FTP

PORT/PASV 명령 해석, 데이터 채널 동적 관리

SMTP/POP3

메일 명령어 검사, 스팸 또는 첨부 파일 필터링

H.323/SIP

신호 채널(Q.931, SIP INVITE) 분석, RTP/RTCP 미디어 채널 동적 개방

DNS

DNS 쿼리 및 응답 트래픽 모니터링

6. CBAC의 한계

CBAC는 상태 기반 검사를 통해 향상된 보안을 제공하지만, 몇 가지 고유한 한계점을 지닌다. 가장 두드러진 문제는 성능 오버헤드이다. 모든 연결 상태를 추적하고 애플리케이션 계층까지 검사하는 과정은 상당한 CPU와 메모리 자원을 소모한다. 특히 높은 트래픽 부하 환경에서는 네트워크 지연을 증가시키거나 처리량을 저하시킬 수 있다. 이는 주로 저사양의 라우터나 방화벽 장비에서 더욱 두드러지게 나타난다.

구성의 복잡성 또한 중요한 한계로 꼽힌다. 효과적인 보안 정책을 수립하려면 관리자가 검사할 프로토콜, 허용할 애플리케이션, 다양한 타임아웃 및 임계값을 세심하게 정의해야 한다. 잘못된 구성은 보안 허점을 만들거나 정상적인 트래픽을 차단하는 결과를 초래할 수 있다. 특히 FTP나 SQL*Net과 같이 동적 포트를 사용하는 복잡한 프로토콜을 지원하려면 추가적인 구성 노력이 필요하다.

한계점

주요 내용

영향

성능 오버헤드

상태 테이블 유지 및 심층 패킷 검사로 인한 자원 소모

처리량 감소, 네트워크 지연 증가

구성 복잡성

프로토콜별 정책, 타임아웃, 임계값의 세부 설정 필요

관리 부담 증가, 오류 가능성 상승

암호화 트래픽 검사 제한

SSL/TLS 등으로 암호화된 패킷 내용 검사 불가

보안 모니터링의 사각지대 발생

마지막으로, 암호화된 트래픽에 대한 검사 제한이 큰 도전 과제이다. CBAC는 패킷의 페이로드(내용)를 검사하여 공격을 탐지하는데, SSL이나 TLS와 같은 강력한 암호화가 적용된 트래픽(예: HTTPS)의 경우 그 내용을 확인할 수 없다. 이는 암호화 채널을 통해 전달되는 악성 코드나 명령을 효과적으로 차단하지 못할 수 있음을 의미한다. 이러한 한계를 보완하기 위해서는 별도의 SSL 인스펙션 장비나 기술이 필요해진다.

6.1. 성능 오버헤드

CBAC는 애플리케이션 계층까지 트래픽을 검사하고 세션 상태를 추적하기 때문에, 단순한 패킷 필터링 방화벽에 비해 상당한 성능 오버헤드를 유발합니다. 모든 패킷의 헤더와 페이로드를 분석하고, 연결 상태 테이블을 지속적으로 업데이트하는 작업은 CPU와 메모리 자원을 추가로 소모합니다. 특히 동시 세션 수가 많거나 트래픽 양이 폭발적으로 증가하는 환경에서는 이러한 오버헤드가 더 두드러집니다.

주요 오버헤드 요인은 다음과 같습니다.

오버헤드 원인

설명

상태 테이블 관리

활성화된 모든 TCP/UDP 세션의 상태 정보를 메모리에 유지하고 검색해야 함

애플리케이션 계층 분석

패킷의 페이로드를 깊이 있게 검사(DPI)하여 프로토콜 이상을 탐지하는 과정

동적 규칙 생성/삭제

내부에서 시작된 세션에 대해 임시 방화벽 규칙을 생성하고, 세션 종료 시 삭제하는 작업

이러한 오버헤드는 네트워크 지연(레이턴시) 증가나 처리량(스루풋) 감소로 이어질 수 있습니다. 따라서 CBAC를 배포할 때는 방화벽 장비의 성능 사양을 신중히 평가하고, 검사 정책을 최적화하여 불필요한 검사를 줄이는 것이 중요합니다. 예를 들어, 대역폭이 크고 지연에 민감한 VoIP 트래픽에 대해서는 검사를 완화하거나 제외하는 정책을 고려할 수 있습니다.

6.2. 구성 복잡성

CBAC의 구성은 패킷 필터링이나 상태 기반 검사만을 수행하는 기본 방화벽에 비해 상대적으로 복잡한 편이다. 이는 애플리케이션 계층까지 검사하고, 다양한 프로토콜에 대한 동적 방화벽 규칙을 생성 및 관리해야 하기 때문이다. 관리자는 트래픽의 출발지와 목적지, 사용 프로토콜, 특정 애플리케이션의 동작 방식까지 고려한 세밀한 검사 규칙을 정의해야 한다.

구성 복잡성은 주로 다음과 같은 요소에서 기인한다.

복잡성 요소

설명

애플리케이션별 정책

FTP, HTTP, SIP 등 각 프로토콜의 고유한 동작(예: FTP의 수동/능동 모드, SIP의 미디어 포트 협상)을 이해하고 이에 맞는 검사 규칙을 설정해야 함

타임아웃 및 임계값 설정

세션 유휴 시간, TCP/UDP 세션 타임아웃, 공격 탐지 임계값 등을 네트워크 환경과 보안 요구사항에 맞게 조정해야 함

방화벽 규칙 순서

검사 규칙이 적용되는 순서가 결과에 큰 영향을 미치므로, 규칙 간의 우선순위와 상호작용을 신중하게 설계해야 함

잘못된 구성은 의도하지 않은 네트워크 접근을 허용하거나, 정상적인 트래픽을 차단하는 결과를 초래할 수 있다. 또한, CBAC는 네트워크 토폴로지 변경이나 새로운 애플리케이션 도입 시 관련 정책을 재검토하고 수정해야 하는 유지 관리 부담을 동반한다. 따라서 효과적인 운영을 위해서는 네트워크 프로토콜과 CBAC 동작 원리에 대한 깊은 이해가 필수적이다.

6.3. 암호화 트래픽 검사 제한

CBAC는 애플리케이션 계층의 상태 정보를 추적하여 동적으로 방화벽 규칙을 생성하지만, 암호화된 트래픽을 검사하는 데는 근본적인 제약이 존재합니다. CBAC의 작동 원리는 TCP 또는 UDP 세션의 패킷 내부를 검사하여 애플리케이션 프로토콜 명령을 이해하고, 이를 바탕으로 세션 상태를 관리하는 데 있습니다. 따라서 SSL/TLS 또는 IPsec과 같은 강력한 종단 간 암호화가 적용된 트래픽의 경우, 패킷의 페이로드(실제 데이터)가 암호화되어 CBAC 엔진이 내용을 검사할 수 없게 됩니다. 이는 CBAC의 핵심 기능인 애플리케이션 계층 검사와 공격 탐지를 무력화시키는 주요 요인입니다.

이러한 제한으로 인해 CBAC는 암호화된 트래픽에 대해 기본적인 트랜스포트 계층 정보(예: IP 주소, 포트 번호)만을 기반으로 한 제한된 정책 적용만 가능합니다. 예를 들어, 암호화된 HTTPS 트래픽이 표준 443번 포트를 통해 통과하는 것은 허용할 수 있지만, 해당 터널 내에서 전송되는 실제 데이터나 악의적인 명령이 포함되어 있는지는 확인할 수 없습니다. 결과적으로, 암호화 채널을 이용한 애플리케이션 계층 공격이나 데이터 유출을 효과적으로 탐지 및 차단하는 데 어려움을 겪습니다.

이 문제를 부분적으로 해결하기 위한 방법으로는 프록시 서버를 통한 암호화 트래픽 종료 방식이 있습니다. 이 방법에서는 방화벽이 중간자 역할을 하여 암호화 세션을 종료하고, 복호화된 평문 트래픽을 CBAC가 검사한 후 다시 암호화하여 목적지로 전달합니다. 그러나 이 방식은 추가적인 처리 부하를 발생시키며, 종단 간 암호화의 보안 취지와 충돌할 수 있는 프라이버시 문제를 야기할 수 있습니다[5]. 따라서 네트워크 보안 설계 시 CBAC의 이러한 한계를 인지하고, 암호화 트래픽에 대한 별도의 보안 전략(예: 차세대 방화벽(NGFW)의 심층 패킷 검사(DPI) 기능 활용 등)을 수립해야 합니다.

7. CBAC 구현 예시

CBAC 구현은 주로 Cisco IOS를 실행하는 라우터나 방화벽 장비에서 이루어진다. 구성은 전역 설정 모드와 인터페이스 설정 모드를 통해 적용되며, 내부 네트워크에서 외부 네트워크로 향하는 트래픽을 검사하는 것이 일반적이다. 핵심 구성 요소는 검사할 프로토콜과 트래픽 방향을 정의하는 검사 규칙과, 세션 상태를 유지하는 시간을 제어하는 타임아웃 및 임계값 설정이다.

일반적인 구성 절차는 다음과 같다. 먼저, 검사 정책을 정의하기 위해 ip inspect name 명령어를 사용한다. 예를 들어, 내부 네트워크에서 외부로 나가는 HTTP와 FTP 트래픽을 검사하려면 ip inspect name MYCBAC http와 ip inspect name MYCBAC ftp 명령을 입력한다. 그런 다음, 이 검사 정책을 내부 인터페이스(예: FastEthernet0/0)에 인바운드 방향으로 적용한다. 이는 interface FastEthernet0/0 명령으로 인터페이스 설정 모드에 들어간 후, ip inspect MYCBAC in 명령으로 완료된다.

구성 단계

예시 명령어

설명

검사 규칙 정의

ip inspect name MYCBAC http

ip inspect name MYCBAC ftp

"MYCBAC"이라는 이름의 검사 리스트에 HTTP와 FTP 프로토콜 검사를 추가한다.

인터페이스 적용

interface FastEthernet0/0

ip inspect MYCBAC in

내부 인터페이스에 인바운드 방향으로 검사 정책을 적용한다.

타임아웃 설정

ip inspect tcp idle-timeout 3600

TCP 세션의 유휴 타임아웃을 3600초(1시간)로 설정한다.

이러한 구성이 적용된 네트워크 토폴로지에서, 내부 호스트가 외부 웹 서버로 HTTP 요청을 시작하면 CBAC가 동작한다. 라우터는 내부 인터페이스에서 이 요청 패킷을 검사하고, 해당 TCP 세션의 상태 정보를 세션 테이블에 기록한다. 그 후, 응답 트래픽이 외부 인터페이스로 들어올 때, 라우터는 세션 테이블을 확인하여 이 트래픽이 이미 허용된 세션의 일부임을 인식하고 내부 네트워크로 전달한다. 반면, 외부에서 시작된 새로운 연결 시도는 세션 테이블에 항목이 없으므로 기본적으로 차단된다.

7.1. Cisco IOS 구성

CBAC는 Cisco IOS 소프트웨어에 통합된 기능으로, 주로 Cisco 라우터에서 구성된다. 구성은 전역 구성 모드와 인터페이스 구성 모드를 통해 이루어지며, 검사할 프로토콜과 적용 방향을 정의하는 것이 핵심이다.

기본적인 구성 절차는 다음과 같다. 먼저, 검사 정책을 정의하기 위해 ip inspect name 명령어를 사용한다. 예를 들어, 내부 네트워크에서 외부로 나가는 HTTP와 FTP 트래픽을 검사하려면 ip inspect name MYFW http와 ip inspect name MYFW ftp 명령을 입력한다. 그런 다음, 이 검사 정책을 적절한 인터페이스에 적용해야 한다. 일반적으로 내부 네트워크와 연결된 인터페이스(예: FastEthernet0/1)에서 ip inspect MYFW in 명령을 사용하여 인바운드 방향으로 검사를 활성화한다.

구성 단계

예시 명령어

설명

검사 정책 정의

ip inspect name MYFW http

ip inspect name MYFW ftp

"MYFW"라는 이름의 검사 리스트에 HTTP와 FTP 프로토콜을 추가한다.

인터페이스 적용

interface FastEthernet0/1

ip inspect MYFW in

내부 인터페이스에 접근하여, 해당 인터페이스로 들어오는(in) 트래픽에 대해 정의된 정책(MYFW)을 적용한다.

타임아웃 설정

ip inspect tcp idle-time 3600

TCP 세션의 유휴 타임아웃을 기본값(3600초)으로 설정한다.

로깅 활성화

ip inspect audit-trail

CBAC 세션 생성 및 종료에 대한 감사 로그를 활성화한다.

고급 구성에서는 특정 ACL과 결합하여 더 세밀한 제어를 구현할 수 있다. 예를 들어, 사전에 정의된 표준 또는 확장 ACL을 참조하여 특정 출발지 IP 주소 대역의 트래픽만 검사하도록 제한할 수 있다. 또한 ip inspect one-minute high 및 ip inspect max-incomplete 같은 명령을 사용하여 DoS 공격 탐지 임계값을 조정할 수 있다. 모든 구성 후에는 show ip inspect 명령어 시리즈를 사용하여 세션 상태, 구성 내용, 통계 정보를 확인하고 검증해야 한다.

7.2. 네트워크 토폴로지 적용

CBAC는 다양한 네트워크 토폴로지에 적용되어 내부 네트워크를 보호하는 데 사용된다. 가장 일반적인 구성은 단일 방화벽이 내부 네트워크와 외부 네트워크(예: 인터넷) 사이에 배치되는 경계 토폴로지이다. 이 경우 CBAC는 주로 내부에서 외부로 시작된 연결에 대한 응답 트래픽을 허용하는 동적 규칙을 생성하여 상태 기반 검사를 수행한다. 또한 DMZ(비무장지대)가 있는 토폴로지에서는 DMZ에 위치한 공개 서버(예: 웹 서버, 메일 서버)로 향하는 특정 트래픽에 대한 검사 규칙을 별도로 구성할 수 있다.

보다 복잡한 네트워크 환경에서는 여러 개의 인터페이스를 가진 방화벽에 CBAC를 적용할 수 있다. 예를 들어, 사무실 네트워크, 연구개발 네트워크, 서버 네트워크를 각각 다른 인터페이스로 구분하고, 각 구간 간의 트래픽 흐름에 대해 세부적인 검사 정책을 정의한다. 이는 내부 네트워크 세그먼트 간의 불필요한 트래픽을 차단하고, 세그먼트별로 다른 보안 요구사항을 적용하는 데 유용하다.

토폴로지 유형

CBAC 적용 포인트

주요 보호 대상

구성 특징

단일 경계

내부/외부 네트워크 경계

내부 네트워크 호스트

외부에서 시작된 새로운 세션을 기본 차단, 내부 시작 세션에 대한 응답만 동적 허용

DMZ 포함

내부/DMZ/외부 네트워크 각 경계

내부 네트워크 및 DMZ 서버

DMZ 서버로의 인바운드 트래픽에 대해 제한된 애플리케이션 검사 규칙 적용

다중 세그먼트

내부 네트워크 세그먼트 간 경계

각 세그먼트의 중요 자원

세그먼트 간 트래픽에 대해 세부적인 애플리케이션 계층 검사 정책 정의

VPN(가상 사설망) 터널이 종료되는 지점에 CBAC를 배치하는 구성도 가능하다. 이 경우, 암호화가 해제된 트래픽에 대해 상태 기반 검사를 수행하여 인트라넷 내부로 유입되는 트래픽을 추가로 필터링할 수 있다. 그러나 이 구성은 주로 암호화되지 않은 트래픽에 효과적이며, IPsec이나 SSL 터널 내의 트래픽은 터널 종료 후에야 검사가 가능하다는 점에 유의해야 한다.

8. CBAC와 다른 기술 비교

CBAC는 전통적인 패킷 필터링이나 애플리케이션 프록시와는 구별되는 접근 방식을 채택한 상태 기반 방화벽 기술이다. 각 기술 간의 핵심 차이는 네트워크 트래픽을 검사하고 제어하는 수준과 방식에 있다.

비교 요소

CBAC (Context-Based Access Control)

패킷 필터링 방화벽

애플리케이션 프록시 방화벽

작동 계층

주로 전송 계층(4계층) 및 애플리케이션 계층(7계층) 정보 활용

네트워크 계층(3계층) 및 전송 계층(4계층)

애플리케이션 계층(7계층)

검사 방식

상태 기반 검사(Stateful Inspection). 연결 상태를 추적하고 세션 컨텍스트를 분석한다.

상태 비저장(Stateless) 검사. 개별 패킷의 헤더 정보(IP 주소, 포트)만을 기준으로 한다.

완전한 애플리케이션 계층 중개. 클라이언트와 서버 간의 모든 트래픽을 중단하고 재구성한다.

보안 수준

애플리케이션 인식 기능을 통해 기본적인 애플리케이션 공격을 탐지할 수 있다.

네트워크 주소와 포트 기반의 기본적인 접근 제어에 효과적이다.

가장 높은 보안 수준을 제공하며, 애플리케이션 프로토콜에 대한 심층 검사가 가능하다.

성능 영향

상태 테이블 유지로 인한 중간 수준의 오버헤드가 발생한다.

가장 낮은 처리 오버헤드를 가진다.

모든 트래픽을 중개하고 검사하므로 상대적으로 높은 성능 오버헤드가 발생한다.

구성 및 투명성

사용자에게 투명하게 동작하며, 클라이언트 측 특별 구성이 필요 없다.

사용자에게 투명하다.

사용자는 프록시를 인식해야 하며, 클라이언트 애플리케이션의 설정 변경이 필요할 수 있다.

주요 강점

동적 포트를 사용하는 FTP나 H.323 같은 프로토콜을 지원하며, 세션 기반의 동적 접근 제어가 가능하다.

단순하고 빠르며, 라우터 등 네트워크 장비에 쉽게 구현할 수 있다.

애플리케이션 프로토콜의 오용을 완벽하게 차단하고, 강력한 콘텐츠 필터링이 가능하다.

패킷 필터링은 개별 패킷을 독립적으로 평가하기 때문에, 정책에 허용된 포트로 시작된 연결의 응답 트래픽을 구별하지 못하는 한계가 있다. 이에 비해 CBAC는 연결의 상태와 맥락을 기억하여, 내부 네트워크에서 시작된 합법적인 세션에 대한 응답 패킷만을 동적으로 허용하는 지능적인 결정을 내릴 수 있다. 한편, 애플리케이션 프록시는 각 연결을 완전히 종료하고 애플리케이션 데이터를 검증하기 때문에 가장 강력한 보안을 제공하지만, 성능 저하와 확장성의 제약이 따른다. CBAC는 이러한 두 극단 사이에서, 상대적으로 높은 보안성과 적절한 성능, 그리고 사용자 투명성을 유지하는 균형 잡힌 솔루션으로 평가된다.

8.1. CBAC vs. 패킷 필터링

CBAC와 패킷 필터링은 모두 네트워크 트래픽을 제어하는 방화벽 기술이지만, 작동하는 OSI 모델의 계층과 세션 관리 능력에서 근본적인 차이를 보인다.

패킷 필터링은 주로 네트워크 계층과 전송 계층에서 동작하며, 패킷의 헤더 정보(예: 출발지/목적지 IP 주소, 포트 번호, 프로토콜 유형)를 정적으로 정의된 규칙 집합과 비교하여 허용 또는 차단을 결정한다. 이 방식은 단순하고 빠르지만, 패킷이 속한 연결의 상태나 컨텍스트를 고려하지 않는다. 예를 들어, 내부 네트워크에서 시작된 TCP 연결의 응답 패킷을 허용하려면, 관련 포트를 항상 열어둔 상태 정책이 필요하다. 이는 보안에 취약점을 만들 수 있다.

반면, CBAC는 전송 계층 이상, 특히 애플리케이션 계층까지 검사를 확장하는 상태 기반(stateful) 검사 기술이다. CBAC는 통과하는 패킷을 모니터링하여 연결(세션)의 상태를 추적하고, 그 상태 정보를 기반으로 동적으로 방화벽 규칙을 생성 또는 제거한다. 내부 호스트가 외부로 연결을 시작하면, CBAC는 해당 세션을 상태 테이블에 기록하고, 응답 트래픽이 돌아올 때만 임시로 방화벽을 열어준다. 이는 외부에서 시작된 불법적인 연결 시도를 기본적으로 차단하는 더 안전한 모델을 제공한다. 다음 표는 두 기술의 주요 차이점을 요약한다.

비교 항목

패킷 필터링

CBAC (Context-Based Access Control)

작동 계층

주로 네트워크 계층(L3), 전송 계층(L4)

전송 계층(L4) 이상, 애플리케이션 계층(L7) 검사 가능

연결 상태 인식

상태 비저장(Stateless)

상태 저장(Stateful)

규칙 관리

정적(Static) 규칙

동적(Dynamic) 규칙 생성/삭제

보안 수준

상대적으로 낮음. 응답 트래픽 허용을 위해 포트를 넓게 열어야 할 수 있음

상대적으로 높음. 상태를 기반으로 한 임시 개방으로 공격 표면 감소

애플리케이션 인식

제한적

일부 애플리케이션 프로토콜(FTP, SIP 등)의 동적 포트 협상을 이해 가능

성능 오버헤드

낮음

상태 추적으로 인한 중간 정도의 오버헤드 발생

결론적으로, 패킷 필터링은 단순한 접근 제어와 고속 필터링에 적합한 반면, CBAC는 연결의 상태와 애플리케이션 프로토콜의 맥락을 이해하여 더 정교하고 안전한 트래픽 제어를 가능하게 한다. 현대의 복잡한 네트워크 환경에서는 CBAC와 같은 상태 기반 검사가 보안의 기본 요구사항이 되었다.

8.2. CBAC vs. 애플리케이션 프록시

CBAC와 애플리케이션 프록시는 모두 방화벽 기술의 발전된 형태이나, 작동 방식과 구현 수준에서 근본적인 차이를 보인다. CBAC는 주로 전송 계층과 애플리케이션 계층의 상태 정보를 추적하여 동적으로 세션을 허용하는 상태 기반 검사 방식이다. 반면, 애플리케이션 프록시는 클라이언트와 서버 사이에서 완전한 중개자 역할을 수행하며, 각 애플리케이션 프로토콜(예: HTTP, FTP, SMTP)에 특화된 프록시 서비스가 연결을 종단하고 검사한다.

두 기술의 핵심 차이는 네트워크 스택에서의 동작 계층과 투명성에 있다. 다음 표는 주요 특성을 비교한다.

특성

CBAC (Context-Based Access Control)

애플리케이션 프록시 (Application Proxy)

동작 계층

주로 전송 계층(TCP/UDP), 일부 애플리케이션 계층 정보 활용

애플리케이션 계층 (Layer 7)

연결 방식

상태를 추적한 동적 패킷 필터링. 최종 단말 간 직접 통신을 허용한다.

완전한 중개(Proxy). 클라이언트는 프록시와, 프록시는 서버와 각각 별도 연결을 맺는다.

투명성

대체로 투명하다. 클라이언트 측 특별 구성이 필요하지 않을 수 있다.

비투명하다. 클라이언트는 프록시 서버를 명시적으로 지정해야 한다.

보안 수준

세션 상태 검사와 애플리케이션 명령 검사를 제공한다.

가장 높은 수준. 애플리케이션 프로토콜 데이터를 완전히 해석하고 재구성할 수 있다.

성능 영향

비교적 낮은 오버헤드.

높은 오버헤드. 모든 데이터의 재처리와 재전송이 필요하다.

구성 및 유지

중앙 집중식 규칙 관리가 상대적으로 간단하다.

지원하는 각 애플리케이션 프로토콜마다 별도의 프록시 서비스를 구성하고 유지해야 한다.

암호화 트래픽

SSL/TLS 등 종단 간 암호화된 트래픽의 내용 검사가 어렵다.

프록시가 인증서를 사용해 중간자 역할을 하면 암호화된 내용도 검사 가능하다[6].

애플리케이션 프록시는 프로토콜 자체를 완벽히 이해하고 검증하기 때문에, 프로토콜 위반이나 악의적인 명령 삽입과 같은 정교한 공격을 차단하는 데 매우 효과적이다. 그러나 이러한 심층 검사는 높은 처리 부하를 초래하고, 새로운 애플리케이션 프로토콜을 지원하려면 해당 프록시 서비스를 새로 개발해야 하는 경우가 많다. CBAC는 성능과 유연성에 더 중점을 두어, 네트워크 흐름의 상태를 인지하는 기본적인 애플리케이션 검사 기능을 제공하면서도 패킷 전달 효율을 유지하려는 접근법이다. 따라서 현대의 복합적인 네트워크 환경에서는 두 기술의 장점을 결합한 차세대 방화벽 솔루션이 등장하게 되었다.

9. 관련 문서

  • Wikipedia - Context-based access control

  • NIST - Guide to Attribute Based Access Control (ABAC) Definition and Considerations

  • TechTarget - What is context-based access control (CBAC)?

  • Cisco - Context-Based Access Control

  • ScienceDirect - A context-based access control model for pervasive computing environments

  • ResearchGate - Context-Based Access Control Systems: A Survey

리비전 정보

버전r1
수정일2026.02.14 23:11
편집자unisquads
편집 요약AI 자동 생성