AWS 서비스를 이용하면서 Network Firewall이라는 서비스를 건드리게 되었다. 그러다가 문득 방화벽에 대한 궁금함이 생겨 공부하게 되었다. 간단하게 알아보자. 더 깊은 지식들은 앞으로 공부하면서 또 포스팅 하겠다.
방화벽이란?
현실세계에서 방화벽이란 말그대로 불을 막는 벽이란 뜻이다. 화재가 났을때 다른 곳으로 불이 번지지 않게 하는 벽이다.
IT 용어에서 방화벽이란 어떤 의미일까?
방화벽은 네트워크 보안을 담당하는 중요한 장치로 외부에서 들어오는 트래픽을 검사하고 그 트래픽이 안전한지 아닌지 판단해서 내부 네트워크를 보호하는 역할을 한다. 집에 현관문을 설치해서 문을 통해 들어오는 사람이 누군지 확인하고, 허락된 사람만 들어오게 하며 의심스러운 사람은 막는 역할을 하는 것이다.
방화벽의 역할
기본적인 방화벽의 역할은 불순하거나 신뢰성이 낮은 데이터들의 유입을 막는 것이다.
그러나 요즘의 해커들은 정말 다양한 기술로 침투하기 때문에 단순하게 이런 역할을 넘어서 복잡한 조건을 두어 데이터를 막거나 접근을 제한 시키는 고급 기능까지 구현 가능하다.
방화벽의 주요 역할을 보자.
1. 네트워크 트래픽 필터링
- 네트워크를 오가는 트래픽을 모니터링하고 필터링 함.
- 들어오는 트래픽 중에서 허용된 규칙에 맞는 것만 통과시키고 나머지는 차단한다.
2. 내부 네트워크 보호
- 외부 해커가 네트워크에 침입하거나 악성 프로그램이 내부 네트워크로 퍼지는 것을 방지하기 위해 트래픽을 선별하고 차단한다.
3. 불법 접근 차단
- 특정 IP에서 비정상적인 접근 시도가 있으면 그 트래픽을 자동으로 차단한다.
4. 트래픽 모니터링 및 로그 기록
- 네트워크로 오가는 모든 트래픽을 기록한다.
- 누가 언제 어떤 데이터를 요청했는지 추적할 수 있다.
5. 애플리케이션 보안 강화
- 최근 방화벽은 네트워크 레벨을 넘어 애플리케이션 레벨까지 분석할 수 있는 기능을 갖춘다.
간단하게 설명했는데 방화벽은 처음부터 이런 다양한 기능을 갖고 있진 않았다.
방화벽의 발전 과정을 통해 알아보자.
방화벽의 발전 과정
1980년대 후반에 등장한 1세대의 방화벽 형태는 패킷 필터링 기반이었다.
이 그림을 보자.
80번 포트를 열어두고 있다,
80번 포트에 대한 접근을 허용한 상태이다(80은 http포트임, 웹 서비스)
과연 제대로 작동할까?
제대로 동작하지 않는다!!
패킷 필터링 기반의 방화벽에서는 모든 패킷에 대한 현재 가진 툴을 참고해서 통신을 허가할지 차단할지 결정한다.
- 따라서 해당 커넥션에 대해 되돌아 나가는 통신도 허용해야 한다(TCP HandShake)
돌아오는 패킷도 처리하기 위해서 새로운 룰을 설정한다.
즉 웹서비스를 위해 80번 포트를 방화벽에서 열 때, 되돌아 나가는 포트에 대해 많은 포트들을 열어줘야 했다.
1990년대 중반에 등장한 2세대 방화벽인 스테이트풀 인스펙션 방화벽( Stateful Inspection Firewall )은
1세대의 단점을 보완하기 위해 세션 상태를 추적할 수 있는 기능을 도입했다.
스테이트풀 인스펙션이란 네트워크 세션의 상태를 저장하고 추적하여, 한 번 허용된 세션에 대한 후속 패킷을 분석하는 기술이다. TCP 접속 시, 방화벽에서 패킷의 Payload를 보면서 3way handshake의 state를 추적하여 rule 자동적으로 추가한다(패킷 간의 connection 검증)
즉, 초기 연결이 허용된 이후에도 동일한 연결에서 오는 트래픽을 연속적으로 모니터링하고, 세션이 종료될 때까지 상태를 유지한다.
기존 패킷 필터링 기능에 Session 추적 기능을 추가하여 일련의 네트워크 서비스의 순서를 추적하고 순서에 위배되는 패킷들은 모두 차단한다.
모든 통신 채널에 대해 추적이 가능하다!
- Response 패킷에 대한 룰을 불필요하게 작성할 필요 x
- 보안성이 향상 되는 것 뿐 아니라 툴 관리도 쉬워진다.
- 그러나 state table에 DoS나 DDos 공격으로 인한 거짓 정보가 가득 차게 되면 장비가 일시적으로 다운 될 수 있고 방화벽을 재구동시 현재 연결에 대한 모든 정보를 잃어버릴 수 있다.
2000년대 초반에 등장한 3세대 방화벽은 L7 방화벽 도는 애플리케이션 방화벽이라고 한다.
3세대 방화벽은 애플리케이션 계층에서의 트래픽을 분석할 수 있는 기능이 추가되었다.
애플리케이션 레이어 방화벽은 트래픽 내용을 열어보고 특정 애플리케이션 프로토콜을 분석하여 그 안에 포함된 데이터를 검사한다.
트래픽의 패킷 내용을 이해하고 분석해 특정 애플리케이션의 동작을 기반으로 허용 여부를 결정한다.
패킷 필터링 방식보다 높은 보안 설정이 가능하며 일회용 패스워드를 이용한 강력한 사용자 인증을 제공한다.
애플리케이션 레벨의 공격에 대해서 대응할 수 있다는 것과 트래픽 내용 자체를 분석하기 때문에 정교한 공격, 예를 들어 SQL 인젝션이나 XSS 같은 애플리케이션 공격을 방지할 수 있다는 장점이 있으나
패킷을 열어보고 분석하는 과정이 포함되어 있어 처리 속도가 느려질 수 있고 설정과 관리가 복잡해지며, 트래픽의 양이 많을 수록 성능 저하가 발생할 수 있다는 단점이 있다.
2010년대에 등장한 차세대 방화벽(NGFW)는 방화벽의 기능을 바탕으로 더욱 통합적이고 지능적인 기능을 제공한다.
스테이트풀 인스펙션과 애플리케이션 레이어 분석뿐만 아니라 추가적으로 침입 방지 시스템(IPS), SSL 복호화, 지능형 위협 탐지 및 방어 등 다양한 보안 기능이 포함되어 있다.
이 방화벽은 네트워크 보안을 넘어 사용자와 애플리케이션 인식, 행동 분석 등을 통해 실시간으로 위협을 감지하고 차단한다.
우리가 잘 아는 SSL/TLS 같은 암호화된 트래픽도 분석하고 사용자와 애플리케이션을 인식하여 특정 사용자나 애플리케이션에 대한 세밀한 제어가 가능하다는 장점이 있으나
구성이 어렵고 비용이 비싸며 고성능 하드웨어가 필요하다는 단점이 있다.
그러나 그런 부담이 적은 큰 기업에선 대부분 사용한다. 기업의 기술이 털리는게 더 위험하기 때문이다.
최근에는 AI 기반 방화벽 및 클라우드 방화벽으로 방화벽의 형태가 변하고 있다.
AI의 행동 기반 분석을 통해 네트워크 트래픽에서 비정상적인 패턴을 실시간으로 감지하고, 미리 정의되지 않은 새로운 위협에도 빠르게 대응할 수 있다.
또한 클라우드 네이티브 환경의 확산과 함께 클라우드 기반의 방화벽이 등장했다.
클라우드 방화벽은 기존의 온프레미스 방화벽과 달리 유연하고 확장성이 뛰어나며, 다양한 클라우드 환경에서 보안을 제공할 수 있다.
방화벽 세대별 주요 차이점
1세대 (패킷 필터링) | 패킷 헤더 정보를 기반으로 트래픽 허용 여부 결정 | 간단하고 빠른 처리 속도 | 세션 상태 및 애플리케이션 내용 분석 불가 |
2세대 (스테이트풀) | 세션 상태를 추적하여 연결 지속성을 유지 | 세션 상태 추적 가능, 더 정교한 필터링 가능 | 애플리케이션 레벨 공격에 취약 |
3세대 (애플리케이션) | 애플리케이션 계층의 트래픽을 분석하여 필터링 | 애플리케이션 레벨의 공격 방어 가능 | 처리 속도 저하, 복잡한 구성 필요 |
차세대 (NGFW) | 침입 방지, SSL 복호화, 지능형 위협 탐지 등 통합 기능 제공 | 애플리케이션 및 사용자 인식, 지능형 위협 분석 | 고성능 하드웨어 요구, 구성 및 비용 복잡 |
AI/클라우드 방화벽 | AI를 통한 자동화된 위협 탐지 및 클라우드 네이티브 환경 지원 | 실시간 위협 대응, 클라우드 확장성, 행동 기반 위협 분석 가능 | 초기 도입 비용 높음, 클라우드 환경의 지연 이슈 가능 |
'Network' 카테고리의 다른 글
느려터진 웹, 캐시로 해결하자 (0) | 2025.02.14 |
---|---|
네트워크 관리사 2급 서브넷팅, 라우터 문제 풀어보기 (1) | 2024.11.05 |
패킷의 생성 원리와 캡슐화 (4) | 2024.08.23 |
NAT란 무엇일까? (46) | 2024.08.09 |
프록시의 구조와 작동원리 (37) | 2024.07.28 |