정책 리스크를 파악하십시오. 정책에 대한 질문을 일상 언어로 하십시오. 데모 신청하기 →
Published:
방화벽 정책 기본 – 스텔스 규칙 검증 방법
by FireMon
업데이트 – 2017년 1월
방화벽 스텔스 규칙은 장비 관리에 필요한 범위를 넘어서는 방화벽 접근을 차단하기 위해 정책 상단 부근에 배치하는 명시적 규칙입니다. 다음과 같이 정의해야 합니다.
Source = ANY
Destination = [self]
Service / Application = ANY
Action = DROP
Logging = Enabled
방화벽 정책이 아닌 인터페이스 수준 설정으로 관리자 접근을 정의하는 Juniper Netscreen과 같은 일부 방화벽에는 그대로 적용되지 않습니다. 다만 이러한 경우에도 감사인은 관행상 스텔스 규칙을 요구할 수 있습니다.
스텔스 규칙을 정의하는 이유
스텔스 규칙은 정책의 뒷부분에 정의된 규칙이 방화벽에 대한 접근을 의도치 않게 허용하지 않도록 보장합니다. 예를 들어 방화벽에 Web-DMZ 존의 인터페이스가 있다고 가정해 보겠습니다. 웹 개발팀이 Web-DMZ 내 모든 시스템에 대한 SSH 접근을 요청할 수 있습니다. 깊이 생각하지 않으면, 해당 팀이 Web-DMZ에 정의된 시스템의 유일한 소유자인 경우 모든 서버에 SSH 접근이 필요하다는 요청이 타당해 보일 수 있습니다. 그러나 스텔스 규칙이 제대로 정의되어 있지 않으면 SSH 접근이 Web-DMZ의 서버뿐 아니라 방화벽 자체에도 허용됩니다. 이는 분명 적절하지 않지만, 방화벽 관리자가 수년간 발견하지 못할 수도 있습니다.
이처럼 단순하지만 중대한 실수를 방지하려면 방화벽 정책에 스텔스 규칙을 정의해야 합니다.
스텔스 규칙의 존재를 확인하는 방법
이 절차는 매우 간단합니다. 모든 정책을 검토하여, 필요한 관리용 규칙 다음의 정책 상단 부근에 방화벽으로 향하는 모든 트래픽을 차단하는 규칙(Any, Self, Any, Drop, Log)이 있는지 확인하십시오.
FireMon은 어떻게 도움이 되는가
FireMon은 각 정책에 스텔스 규칙이 존재하는지 확인할 수 있는 사전 정의된 컨트롤을 제공합니다. 이 컨트롤은 사전 정의된 평가에 포함되어 있으며, 사용자가 정의한 평가에도 추가할 수 있습니다.
또 다른 강력한 방법은 SiCL을 사용해 직접 규칙을 검색하는 것입니다. 이 경우 검색은 매우 간단합니다. 정책 상단 부근에 방화벽으로 향하는 모든 트래픽을 차단하는 명시적 규칙이 존재하는지 확인하면 됩니다. 사전 정의된 변수 self를 사용하면 모든 장비에 적용 가능한 SiCL 쿼리를 작성할 수 있습니다. 이 검색에 사용하는 SiCL 구문은 다음과 같습니다.
rule{ POSITION < 5 and source.any=true and destination is superset of self and SERVICE.any=true and action=’DROP’}
위 예시에서는 해당 규칙이 정책의 첫 4개 규칙 중 하나여야 하며, 목적지가 방화벽 주소 공간을 완전히 포함해야 한다고(destination is superset of self) 지정했습니다. Superset은 동일한 경우와 더 큰 경우를 포함합니다. Self는 방화벽 객체 자체를 의미합니다.