본문 바로가기

네트워크

네트워크 방화벽(Firewall)

반응형

ி 개요


방화벽이란 건물 내에서 화재를 제한하기 위한 벽인데,
IT에서는 불순한 데이터의 유입을 막는 전용 하드웨어나 독립된 시스템을 뜻한다.



ி 역할


대부분의 방화벽이 정책 기반으로 운영된다.
내부 네트워크를 보호하기 위해서
외부 네트워크로부터 들어오는 유해 트래픽을 정책으로 차단한다.

정책의 예시는 다음과 같다.
A에서 B로 통신하는 트래픽을 차단.
C에서 tistory.com 사이트로 통신하는 트래픽을 허용하고 로깅.

위 예시를 방화벽에서 적용하려면 패킷의 흐름을 제어하기 위한
패킷 필터링 기술이 필요하다. 해당 기술은 두 가지 방식으로 나뉜다.
Stateless - 정책을 보고 패킷을 보낸다.
Stateful - 한번 허용된 패킷은 잠깐 세션을 저장하여, 후속 패킷들은 그대로 통과시킨다.

Stateless(정적 패킷 필터링) 패킷 헤더만 검사하는 반면,
Stateful(동적 패킷 필터링) app 계층까지 분석하고, 네트워크 연결 상태를 추적한다.
Stateless보다 더 넓은 트래픽을 볼 수 있어서 다양한 계층 공격에 대응할 수 있지만
속도는 상대적으로 떨어질 수 있다.



ி 발전 과정


IT 발전에 따라서 방화벽도 여러 번의 진화를 거치면서 고급 기능들을 갖추게 되었다.



1세대 - 패킷 필터링


OSI 7계층 중 3계층인 네트워크 계층에서 동작하는 초창기 방화벽이다.
IP 및 Port 번호만 검색하여 패킷을 통제한다.

단점은 보안 수준이 미흡하다는 점이다.
사용자 인증 및 로깅 기능이 저조하다.
패킷 헤더 부분만 검사하기 때문에 처리 속도는 빠르지만
모든 패킷이 모든 정책에 해당하는지 검사하므로 정책이 많을 때 속도가 저하된다.
TCP/IP 프로토콜의 설계 문제로 인하여 패킷 조작이 가능하다.
FTP와 같이 파생 세션을 만드는 일부 프로토콜을 지원하기 위해 모든 Port를 열어야 할 수도
 있다.

➽ 세부 기능
Forward - 패킷을 목적지로 전달한다.
Drop - 패킷을 버린다. (무응답)
Reject - 패킷을 버린다. (버렸다고 응답해준다)
Log - 패킷 송수신 정보를 기록한다.
NAT - 주소변환기술




2세대 - 프록시(Proxy)



응용 수준 방화벽 시스템 ( Application gateway )
내부 시스템과 외부시스템 간에 방화벽의 Proxy만을 통해 연결이 허용된다.
OSI 7계층에서 동작하고 서비스별로 Proxy 데몬이 존재한다.
Proxy는 강력한 로깅 및 감사 기능을 제공하고 패킷 내의 콘텐츠를 제어하여
많은 부하를 받지만, 더 많은 검사를 수행하기 때문에 안전하다.

애플리케이션 방화벽은 패킷 내용 검사 및 애플리케이션 계층까지 분석한다.
SQL Injection, XSS 등과 같은 웹 공격을 탐지하고 차단하거나,
내부 사용자가 특정 사이트에 접속하지 못하도록 차단한 뒤 경고 페이지로 이동시키는 역할은
L7 스위치에서 한다.

웹 보안에 특화되어 개발된 솔루션은 WAF(웹방화벽)가 있고,
UTM(통합위협관리체계) 기본 방화벽 기능 + IPS인데 추가적인 웹 보안 기능을 제공한다.
IDS IPS는 암호화 통신 내용을 복호화할 수 없고, http에 대한 패턴이 미비하다.

물론 IPS WAF는 엄연히 모니터링하는 범위가 다르다.
WAF는 http 포트를 이용하는 공격과 취약점에 대해서만 집중 모니터링한다면
IPS L3~L7까지 모든 취약점을 대비한다.
두 장비 모두 운용하기에는 상당한 비용이 들어가므로, 전방위를 방어하는 IPS가 우선으로 설치돼야 한다.
SQL Injection 같은 공격들은 웹 방화벽으로만 막으려고 하지 말고,
취약한 사이트를 점검하고 조치하면 웹 방화벽 그 이상의 효과를 기대할 수 있다.

회로 수준 방화벽 시스템 ( Circuit gateway )
OSI 5~7계층, Session ~ Application에서 동작한다.
1번 방화벽처럼 각 서비스별로 프록시를 제공하는 것이 아닌
어느 애플리케이션도 이용 가능한 대표 프록시가 존재한다.
서킷 게이트웨이 방화벽에 접속하려면 상대 PC에 수정된 클라이언트 프로그램이 필요하다.
그 후 Circuit 채널을 이용하여 내부시스템과 통신하게 된다.

이 방화벽의 장점은 프로그램을 사용하여 접속하는 사용자에게 투명한 서비스를 제공해주고,
내부 IP 주소를 감출 수 있다.

단점은 프로그램 배포 및 관리가 번거롭다.



3세대 - 상태 정밀 검사 방식(Stateful Inspection)


1세대 + 2세대를 합친 방식이다.
의사가 환자 진료를 보는 것이 패킷 필터링이라면
"Stateful Inspection"는 의료기기를 이용해서 환자의 내부 상태를 보는 방식으로
비유할 수 있다.

Stateful 방화벽은 전 세대보다 패킷을 효율적으로 처리할 수 있다.
이유는 세션 검사 기능을 제공해서, TCP 연결 정보를 기록하기 때문이다.

이를테면 1세대 방화벽에서 크기가 100만 KB가 넘는 패킷을 보냈다면,
100만개가 넘는 패킷을 모두 검사해야 한다.
하지만 이 방식을 사용하면 패킷의 TCP 헤더에서 SYN 값을 상태 테이블에 저장한 후
연관성을 가진 다음 패킷들은 패스하여 훨씬 융통성 있다.

또한 1세대는 내부 접근 규칙을 설정했다면, 응답 규칙도 추가해야 하지만,
Stateful 통신상태를 관리할 수 있기 때문에 접근규칙을 자동생성해준다.



ி 방화벽 구축 환경




스크리닝 라우터(Screening Router)



외부와 내부의 중간에서 패킷 필터링 방화벽 역할을 하는 구조다.
OSI 3~4계층에서 실행되어 IP와 PORT 기반 접근제어를 할 수 있다.
단점은 세부적인 규칙 적용이 어렵고 실패한 접속에 대한 로깅이 안되며,
많은 규칙을 적용하면 부하가 걸린다.


단일 홈 게이트웨이(Single-Homed Gateway)




외부와 내부를 연결해주는 방화벽 시스템 역할을 하며
보호된 네트워크에서 유일하게 외부로 노출된다.
2세대 방화벽 Proxy 배스천호스트(Bastion Host)라고도 부르며
단어 뜻 그대로 적에 침입을 막기 위한 외부의 성벽처럼 견고한 보안성능을 가져야 한다.
인증 기능, 로깅, 감사 및 모니터링이 이루어진다.

로깅 정보를 관리하기가 쉽고 스크리닝 라우터보다 안전하지만
내부 네트워크 전체를 책임지기 때문에 완벽한 운영이 필요하며,
인증 정보가 누출되거나 Bastion Host가 손상되면 내부망이 취약해진다.

➽ 그러면 외부 노출이 왜 필요할까?
회사 PC에서 개발 목적으로 사설 서버에 접속해야 할 때 SSH 등으로 원격 접속이 필요한데,
사설 서버들은 공용 IP가 없어서 외부에서 직접 접근이 불가능하게 된다.
이러한 이유로 외부에 Bastion Host의 보안정책을 거쳐 사설 서버로 접속하게 한다.




이중 홈 게이트웨이(Dual-Homed Gateway)


2개의 NIC를 가진 배스천호스트며, 1개의 NIC는 내부, 다른 NIC는 외부랑 연결한다.
양 네트워크 간의 라우팅이 없어서 내부 네트워크로 직접 접근이 불가능하다.



스크린드 호스트(Screened Host)




Dual-Homed 게이트웨이와 스크리닝 라우터를 같이 사용하는 방화벽 구성으로써 가장 많이 이용된다.
외부 트래픽은 스크리닝 라우터에 의해 1차로 방어한 뒤, Bastionhost에서 2차적으로 점검 후 통과
시킨다.
스크리닝 라우터의 라우팅 테이블 외부 트래픽이 Bastion Host로 설정되어야 하며,
해커에 의한 라우팅 테이블 변경을 막기 위해 정적 라우팅 테이블 사용을 추천한다.



스크린드 서브넷(Screened Subnet)




스크린드 호스트 Dual-Homed 게이트 웨이를 합친 구성 방식이다.
외부와 내부 사이에 경계 네트워크(배스천호스트)가 구성되므로 공격자가 침입하기 까다롭지만,
구축 비용이 많이 들고 서비스 속도가 느리다.


반응형