IT 그리고 정보보안/Knowledge base

방화벽(Firewall) 이란 무엇인가

plummmm 2021. 4. 19. 07:23
반응형

1. 방화벽의 개념

1-1. 방화벽 이란?

현실 세계에서 방화벽이란 말그대로 '불을 막는 벽', '화재가 났을때 다른 곳으로 불이 번지지 않게 하는

벽' 이란 뜻이다. 하지만 IT에서 말하는 방화벽은 다른 뜻이다. (컴퓨터에 불이 붙는 일이 거의 없으니..)

컴퓨터에서의 방화벽이란, 

서로 다른 네트워크를 지나는 데이터를 허용 or 거부, 검열, 수정하는 하드웨어 혹은 소프트웨어 이다.

 

 

정의만 보면 데이터를 건드려서 무언갈 한다고 하는데.. 무슨 일을 하는 녀석인지 감이 오지 않는다.

하여, 방화벽의 역할에 대하여 알아볼 필요가 있는 것 같다. 

    

1-2. 방화벽의 역할

방화벽은 기본적으로 불순한, 신뢰성이 낮은 데이터들의 유입을 막는 역할을 한다. 

하지만 이런 단순한 기능부터, 해킹 공격 방법과 패턴의 수준이 높아지는 만큼 방화벽 또한  

복잡한 조건을 두어 데이터를 막거나 접근을 제한 시키는 고급 기능까지 구현이 가능하다.

              

대부분의 방화벽은 정책 기반의 방화벽이다. 정책이란 방화벽의 기능을 정의해 놓은 

일종의 법, 규칙같은 것이다. 단순히 트래픽을 차단시키는 일반 수준의 정책부터 

'가짜 정보를 담은 500byte 이상의 트래픽을 허용시키되 로그를 남긴다.' 

같은 고급 수준의 정책까지, 다양하게 구현하여 사용이 가능하다.

 

다만, 방화벽은 그에 맞게 많은 관리가 필요하며, 1차적으로 막아줄뿐 그 이상도, 그 이하도 아니다

그 만큼 우리들은 IDS/IPS, 백신 등으로 2차적으로 필터링을 해줘야 하는 필요성이 있다.

 

 

2. 방화벽의 발전 과정

     

2-1. 방화벽의 역사

방화벽도 뭐.. 처음부터 대단한 고급 기능들이 가능한 것은 아니었다..

IT발전에 따라 방화벽도 같이 진화를 하였는데,

 

가장 처음 1세대는 패킷 필터 방화벽이다. 미리 세워둔 정책에 따라 패킷을 필터링하는 방화벽으로, 

방화벽 내부 세션은 관리하지 않는 방화벽이다. 전송 계층, 네트워크 계층에 해당하는 방화벽 

 

 

기본적으로 패킷필터링 방화벽은 아래와 같은 기능을 갖는다.

1. Foward : 패킷을 의도한 목적지로 포워딩 시키는 기능

2. Reject : 패킷을 걸러내고 권고해주는 기능

3. Drop : 그냥 가따버리는 기능

4. Log : 받아들이거나 거절되는 패킷의 정보를 기록

5. NAT : NAT기능

              

그리고 이 방화벽은 모든 패킷이 정책을 기반으로 다루어지기 때문에 정책이 많으면 과부하가 걸리고

우회하여 오는 패킷은 걸러내질 못하여 보안에 취약할 뿐더러, 

세션 생성하는 프로토콜을 이용하여 공격하면 막을 도리가 없다.

 

그 외에도 패킷 필터링 방화벽에는 문제점이 많다.

1. 패킷 필터링 설정이 일반 사용자가 하기에 너무 어렵다.

2. 때때로 필터링 테스트를 하기 힘들 상황이 생긴다.

3. 라우터의 성능을 저하시킨다.

4. 허용된 포트로 공격자가 터널링하여 접근할 가능성이 있다.

 

 

그래서 나온 2세대 방화벽이 스테이트풀 인스펙션 이다. 

이 방화벽은 패킷 단위로 검사하는 방화벽이 아닌, 세션 단위로 검사하는 방화벽이라 패킷 필터보다 훨씬

보안에 강하며, FTP 같은 복잡한 파생 세션도 별도의 정책 추가없이 처리할 수 있는 확장 기능까지 갖추고 있어

1세대 보다 강력한 기능을 가진 방화벽이라 말할 수 있다.

 

 

그리고 공격 기법이 세분화, 다양화, 고도화 되면서 패킷 필터 기반의 방화벽 만으로는 방어가 힘들었다..

그래서 나온 것이 3세대 어플리케이션 방화벽 이다.

IPS, WAF, UTM 등 네트워크 보안 솔루션들이 어플리케이션 방화벽에 속한다고 볼 수 있다.

 

 

어플리케이션 계층에서 동작하는 방화벽이다.

통상 프록시 서버가 서버와 클라이언트 사이에 존재하여 방화벽 역할을 했다.

내가 공부하는 책에는 프록시 서버의 단점을 어플리케이션 방화벽의 단점으로 적어놔서 무시하겠다.

 

(프록시 서버의 단점: 프록시를 지원안하는 프로토콜도 있다, 클라이언트에 수정사항을 요청해야 한다 등)

 

 

3. 방화벽의 기능

3-1. 패킷 필터 (Packet Filter)

패킷 필터란, 네트워크 계층에서 동작하는 방화벽으로, 수립되어 있는 정책에 위반될 시에 패킷을 

통과시키지 않는 방화벽이다. 흔히 커널 레벨에서 수행되고 제한된 검사를 수행하여 처리가능한 

트래픽양이 많다는 장점이 있다.

    

패킷 필터는 패킷 자체만을 검사하는 무상태(stateless) 방화벽과 패킷이 속하는 세션을 관리하여 이 세션에

속하는 패킷들은 모두 똑같은 처리를 하게끔 하는 상태(statefull) 방화벽이 있다.

          

iptables같은 방화벽이 패킷 필터 기능이 수행 가능하다.

 

3-2. 프록시 (Proxy) 

세션에 포함된 유해성을 검사하기 위해 기존 세션을 종료시키고 새로운 세션을 형성하는 기능으로,

출발지-목적지 세션을 종료시키고 출발지-방화벽, 방화벽-목적지, 두가지 세션을 형성하여 한 세션에서

다른 세션으로 정보를 넘겨줄 때 검사를 하는 형식이다. 

검사를 많이 해서 부하는 걸리지만 좀더 안전하고 프로토콜 변경 등 추가적인 기능도 수행할 수 있다.

 

3-3. NAT (Network Address Translation)

내부 네트워크에서 사용하는 IP주소와 외부에 드러나는 주소를 다르게 유지하게끔 하는 기능으로, 노출되는

주소와 실제 사용하는 주소가 다르기 때문에 어느 정도의 보안 기능을 한다.

NAT를 사용하면 외부에선 내부 네트워크에 접근할 때 세션 충돌이 일어날 가능성이 있는데, 그래서 포트를

변경하여 충돌을 피하는 방식인 PAT도 있다.

 

 

3. 방화벽의 형태

1. Screening router (스크린 라우터)를 이용한 구조

 

첫번째는 패킷 필터 기능이 있는 스크린 라우터 (Screening router)를 이용하여 기본적인 

방화벽 환경을 구성한 것이다. 가장 심플한 구조이다.

 

 

2. Dual-homed host (듀얼 홈 호스트) 구조

 

듀얼 홈 호스트 구조는 호스트가 두개의 네트워크 인터페이스 (NIC)를 사용하는 구조이다.

하나는 외부 네트워크에, 또 다른 하나는 내부 네트워크에 연결하여 구성한다.

 

 

3. Screened Host (스크린 호스트) 구조

 

스크린 호스트 방식은 내부망에 Bastion Host(베스천 호스트)를 두고 스크린 라우터가

외부/내부 하나씩 연결되어 있는 방식.

모든 통신은  Bastion Host(베스천 호스트)를 통해서만 가능하다. 직접 엑세스가 불가능하다.

[외부 -> 내부] 든지 [내부 -> 외부] 든지 모두.

Bastion Host(베스천 호스트)가 망가지면 큰일나는 구조이다.

 

 

4. Screened Subnet (스크린 서브넷) 구조

 

스크린 서브넷 구조는 외부 네트워크와 내부 네트워크 사이에 하나 이상의 경계 네트워크를

두는 구조를 말한다. 그림에서 보면 DMZ 네트워크를 두는 것으로 되어 있다.

 

두개의 스크린 라우터를 사용하는데, 하나는 외부와 DMZ, 하나는 DMZ와 내부를 연결한다.

Bastion Host(베스천 호스트)를 DMZ(경계 네트워크) 상에 두는데,

이렇게 하면  Bastion Host(베스천 호스트)는 내부 네트워크에서 분리되니까

공격자는 외부 라우터 -  Bastion Host - 내부 라우터를 뚫고 들어와야 하므로 상대적으로 보안에 강함

 

반응형