본문 바로가기
IT_정보보안/인프라 & 보안기초

7. Firewall, IDS, IPS, DDOS

by jys275 2023. 12. 4.

이번에는 Firwall, IDS, IPS 세 가지 보안 도구들과

DDOS라고 불리는 사이버 공격을 알아보았다.

 

 


 

 

Firewall(방화벽)이란 도구를 통해서 어느 수준에서의 보안을 구축할 수 있는지,

그리고 그 외적으로 취약한 부분에 대해서는 추가적으로 보안을 어떻게 구성할지 고민할 수 있다.

 

 

Firewall(방화벽)

 

 

기원 및 개념

Firewall은 불을 막아 확산을 막는 실제 방화벽에서 파생되었고, 컴퓨터 네트워크에 적용한 것이다.

 

신뢰할 수 있는 네트워크(ex 내부 네트워크, 회사 네트워크)와 
신뢰할 수 없는 네트워크 (ex 외부 네트워크, 인터넷) 사이에 존재하여,
합법적인 트래픽은 통과시키나, 의심되는 트래픽은 네트워크로 들어오고 나가는 것을 모두 차단할 수 있는 장치 또는 소프트웨어이다.

 

여러 가지 보안 도구들이 존재하지만 그중에서도 가장 많이 언급되는 것은 방화벽이다.

이 방화벽은 어떻게 사용하는지에 따라 여러 가지 형태의 방화벽들이 존재하는 것이다.

 

방화벽의 디폴트는 IP 주소와 포트번호를 기반으로 허용할지 차단할지를 결정하는 도구이다.

위와 같은 특징에서 사실 매우 간단하다고 이야기 할 수 있다.

 

IP 주소와 포트번호만을 가지고 차단 여부를 결정하기 때문에,

그 외적인 수단을 통해서 침입을 시도하는 것들에 대해서는 방화벽이 지원하지는 못한다는 것이다.

 

데이터에서 IP 주소와 포트번호는 실제로 허용되어지는 부분이더라도,

그 외에 무관한 부분에서 악성으로 의심되는 것들이 있어도 방화벽 입장에서는 확인이 되었으니 내부로 받아들이는 것이다.

 

그렇기 때문에 위와 같은 방화벽의 한계점을 보완하기 위해 IDS IPS 등의 다른 보안 도구들을 활용하는 것이다.

 

 

역할

방화벽은 감사, 로깅 등 정말 많은 역할을 하는데,

그 중에서 가장 대표적이면서 전체적인 역할은 '접근통제'이다.

 

IP 주소와 포트번호를 기반으로 트래픽을 필터링하는 것이다.

이를 통해 내부 네트워크의 보안을 강화하고, 비인가 접근을 방지할 수 있다.

 

즉, 악성 트래픽이 네트워크에 도달하기 전 차단할 뿐만 아니라

중요한 정보가 네트워크를 벗어나지 못하도록 방지할 수 있는 것이다.

 

 

기능

방화벽은 4계층(전송 계층)과 3계층(네트워크 계층)에서 주로 작동하며, 7계층(응용 계층)에서도 작동한다.

여러 계층에서 작동하면서, 다층적으로 네트워크를 보호하는 것이다.

 

간단하게 정리해서 알아보자.

 

기능(1) - 패킷 필터링

패킷의 출발지, 목적지 IP 주소와, 서비스의 포트 번호 등을 기반으로 트래픽을 허용 및 차단한다.

 

기능(2) - 상태 추적(Stateful Inspection)

단순히 패킷의 헤더 정보를 기반으로 패킷을 필터링하는 것이 아닌, 패킷의 상태를 기억하고 추적 및 모니터링한다.

예를 들어, TCP handshake로 연결이 성공되었으면, 방화벽은 해당 연결을 열린 상태로 추적하여 

그 후에 전송되는 패킷들이 해당 연결에 속하는지 확인하고, 허용되는 상태인지 등의 요소를 고려한다.

 

만약 연결이 종료되면, 방화벽은 해당 상태를 닫힌 상태로 변경한다.

이러한 방식은 정교한 트래픽 관리와 패킷 필터링보다 더 높은 수준의 보안을 제공한다.

 

기능(3) - 프록시 서버(Proxy Server)
응용 계층에서 작동하며, 애플리케이션 수준에서의 보안 검사 및 제어를 수행할 수 있다.

클라이언트와 서버 간의 통신을 중계하여 양쪽의 직접적인 연결을 차단하고, 외부로부터 내부 시스템을 숨긴다.
즉, 중간에 프록시 서버는 ‘대리’ 역할을 하여, 양쪽의 직접적인 통신을 차단하고, 트래픽을 필터링 및 검사할 수 있는 것이다.

클라이언트는 프록시 서버에 요청을 보내고, 프록시 서버가 대신 서버에 연결하여 응답을 받아 클라이언트에게 전달한다.

 

 

유형(1) - 소프트웨어 방화벽

간단하게 윈도우에 설치되어 있는 방화벽과 같다고 보면 된다.


운영 체제(OS) 수준에서 동작하는 소프트웨어로, 
일반적으로 서버 또는 개별 컴퓨터에 소프트웨어 프로그램으로 설치되어 사용된다.

장점 : 소프트웨어로 제공되므로 비교적 쉬운 구현과 업데이트 가능 및 낮은 비용.
단점 : 시스템 자원을 사용하므로 다른 응용프로그램에 영향을 줄 수 있다.

유형(2) - 하드웨어 방화벽

가장 일반적인 유형의 방화벽이다.

실제로 네트워크를 구성할 때 하드웨어 방화벽으로 구성하는 것이다.


물리적인 장치이며, 전용 하드웨어로 제작된다. 네트워크에 도달하기 전에 패킷을 검사하여,
일반적으로 데이터 센터나 기업 네트워크의 주요 진입 지점에 배치된다.


장점 : 전용 하드웨어를 사용하기에 고성능 및 입구에 설치되어 전체 네트워크 통제가 가능하다.
단점 : 높은 비용 및 유연성 부족(변경이 필요한 경우 하드웨어 업그레이드 수요 발생)

유형(3) - 클라우드 방화벽

클라우드 서비스를 제공하는 업체가 제공하는 방화벽 서비스로, 클라우드 환경에서 보안을 제공한다.

장점 : 클라우드 서비스로 제공되기에 필요에 따라 확장 가능하다. 이에 따라 트래픽이 증가하면,

리소스를 동적으로 할당하는 등 유연한 트래픽 관리가 가능하다.
단점 : 인터넷 연결에 의존하기에 연결이 끊기면 서비스에 제한 발생.

 

 

 

요즘은 온프레미스 환경뿐만 아니라 클라우드에서도 방화벽을 구성할 수 있고,

클라우드 방화벽은 물리적 형태는 아니지만 하드웨어 방화벽과 동일한 기능을 수행하는데,

 

하드웨어 방화벽과 클라우드 방화벽의 차이점을 간단하게 구분해 보자.

 

하드웨어 방화벽은 방화벽만 가져다 놓는다고 작동되는 게 아니다.

이 방화벽과 연결되어 있는 여러 가지 장비들이 충돌 없이 잘 동작하는지, 장애 상황은 없는지 등을 체크해야 하고,

서로 다른 운영체제의 경우 운영체제 호환성은 잘 맞는지 등을 확인하면서 사전에 테스트도 해야 한다.

 

일단 방화벽을 구성해 놓는 목적은 들어오는 패킷을 필터링하는 목적으로 사용한다.

 

그 과정에서 생각보다 많은 패킷들이 들어오면 방화벽은 자기가 받아들일 수 있는 양은 한정적인데,

너무 많은 양이 들어오다 보니 아예 역할을 수행하지 못하는 문제도 발생할 수 있다.

 

그래서 하드웨어 방화벽을 구성한다고 하면 사전에 위와 같은 요소들을 파악하고 분석하는 과정이 필요하다.

예를 들어, CPU의 코어, 램, 저장 공간 등이 사전에 파악이 되어야 구성할 수 있는 반면,

 

클라우드 방화벽은 일단 설치를 하고 나서 용량이 좀 더 필요하면 가상으로 용량을 늘리고,

불편할 것 같으면 용량을 줄이는 등의 유연하게 조절이 가능한 것이다.

 

 


 

 

IDS(Intrusion Detection System, 침입 탐지 시스템)

 

 

개념

네트워크 또는 시스템에서 발생하는 이상한 행위를 다양한 탐지 방법을 사용하여 보안 위협을 식별하는 도구.
이때, 비정상적인 활동, 공격 패턴, 침입을 탐지하면 경고 또는 기록을 생성하여 관리자(보안 담당자)에게 알려준다.

 

IDS는 감시 자체를 하는 시스템으로 위협을 탐지할 뿐, 무력화하거나 차단하기 위한 시스템은 아니다. 
대신 보안 관리자에게 알림을 통해 정보를 제공하고, 보안 전문가의 판단과 조치가 이루어진다.

IDS는 어느 위치에 구성하고 이용하느냐에 따라, 두 가지로 구분된다.

 

작동 방식 - NIDS(네트워크 침입 탐지 시스템)

하나의 장치에 집중하지 않고, 잠재적 위협이 존재하는 
네트워크 트래픽을 모니터링하여 이상 행위를 탐지하는 데 중점을 둔 시스템이다.

즉, 네트워크의 중앙에 배치되어 네트워크 상의 모든 트래픽을 모니터링하므로,

더 넓은 범위의 탐지와 다양한 유형의 침입을 탐지할 수 있다.

작동 방식 - HIDS(호스트 침입 탐지 시스템)
NIDS와 달리 컴퓨터나 서버와 같은 단일 ‘호스트’에만 중점을 두는 시스템이다.

각 호스트에 설치되어, 호스트별로 상세한 로그와 이벤트를 감시할 수 있어, 
특정 시스템에서의 칩임을 탐지하는데 효과적이다.

이러한 두 시스템은 서로 보완적으로 사용되어 모든 수준에서 보안 수준을 향상할 수 있도록 한다.
NIDS는 네트워크 전체의 이상 징후를 탐지하고, HIDS는 각 호스트 시스템에서의 침입을 감지하는 것이다.

 

예를 들어서 두 시스템을 간단히 비교해 보자.

A, B, C가 한 공간에서 각각 PC를 사용하고 있을 때,

NIDS는 세 명의 사용자가 연결되어 있는 네트워크에 하나만 위치해도 해결되지만,

HIDS는 A, B, C 각각의 PC에 백신과 유사하게 호스트를 기반으로 위치해야 하는 것이다. 

 

그래서 HIDS는 비용적인 부분이 많이 들어간다.

또한, 성능이 좋고 빠른 PC에서는 퍼포먼스가 잘 나와 빠르게 돌아갈 것이고, 느린 PC에서는 제대로 동작이 안될 수 있다.

그래서 호스트의 성능에 매우 의존적이다. 즉, 우리 PC에 설치되어 있는 백신과 유사한 역할을 한다.

 

HIDS는 네트워크 트래픽이 아닌 PC에서 악성코드에 감염되었다 해도 좀 더 효과적으로 탐지를 할 수 있다고 보면 된다.

 

탐지 방법

IDS는 주로 두 가지 주요한 탐지 방법이 존재한다.


탐지 방법(1) - 이상 탐지 기반 시스템 (Anomaly-based systems)
시스템 또는 네트워크의 정상적인 동작을 학습하고, 정상 범위에서 벗어난 동작을 감지하는 데 중점이다.
즉, 정상 상태에서의 시스템 동작을 프로파일링하고 학습하여 이를 기준으로 삼으며,

학습된 프로파일과 비교하여 비정상적인 활동을 탐지하는 것이다.

 

"1초에 5번 이상 들어오는 패킷을 보니 공격인 거 같은데?" 

위와 같이 경험과 학습을 통해서 임계값을 임의로 지정하여 탐지하거나 차단하는 방식이다.

 

하지만 위와 같은 경우가 정상인 패킷일 수도 있기에, 오탐 문제가 발생할 확률이 높다는 특징이 있다.

 

또한 초기에는 정상 범위를 학습해야 하므로 초기 설정 및 튜닝이 필요하다.


장점 : 새로운 공격 또는 이전에 알려지지 않은 형태의 공격을 감지하는 데 도움이 된다. 즉, 학습으로 인한 유연성이 강하다.
단점 : '정상’에 대한 이해에 벗어나면 모든 것에 경보를 울리기 때문에, 악의적이지 않은 행동 또한 위협으로 착각이 가능하다.

하지만, 어차피 IDS는 트래픽을 차단하지 않고 사람에게 알릴 뿐이므로 큰 문제가 되지는 않는다.


탐지 방법(2) - 시그니처 기반 시스템 (Signature-based systems)
알려진 공격에 대한 패턴 또는 시그니처를 사용하여 탐지하는 방법이다.


즉, 이미 알려진 공격의 특징을 시그니처로 정의하고, 보안 장비에 넣어,

네트워크 트래픽이나 시스템 로그에서 이와 일치하는 패턴을 찾아내어 탐지한다.

장점 : 아무래도 직접 탐지 패턴을 정의하다 보니, 좀 더 높은 정확도를 제공하고, 오탐 문제가 줄어들 수 있다. 
특징 : 모든 위협은 유한하며, 공격패턴이 새로워지기에 유연성이 부족하다. 즉, 새로운 공격에 대한 감지가 어렵다.

 


 

 

IPS(Intruction Prevention System, 침입 방지 시스템)

 

 

IDS와 동일한 탐지 메커니즘을 기반으로 구축되지만, 
보다 사전 예방적인 방식을 취한다.

 

바로 침입을 탐지할 뿐만 아니라,

발견된 침입에 대해 자동화된 조치를 통해 대응하여 사전에 차단하는 시스템이다.

 

네트워크 전체와 각 호스트로 나뉘는 작동 방식, 이상 감지 기반 및 시그니처 기반 탐지 방법은 모두 동일하다.

 

하지만 위협을 탐지한 후에 두 시스템 간의 차이점이 명확해진다.
IPS는 관리자(보안 담당자)에게 추가적인 확인이나 승인 없이 자동으로 예방 프로세스를 작동하여,

의심스러운 트래픽을 차단하거나 공격을 무력화한다.

특징
극단적으로 연결을 완전히 차단하여 위협으로 간주되는 사용자가 웹 사이트나 애플리케이션에 액세스 하지 못할 수 있다.

 

또한, 오탐(false positive) 문제가 발생할 수도 있기에,

실제 자동으로 공격을 차단하는 IPS가 정상 트래픽을 차단하는 경우를 방지하기 위해 예외 규칙 설정,

시그니처 업데이트(최신 정보 반영) 등 정교한 설정이 필요하다.

 

IDS 및 방화벽과 비교
IDS 같은 경우는 탐지만 하는 장비,

IPS는 실시간으로 탐지와 동시에 차단까지 하는 장비라는 점에서 차이점이 존재한다.

 

IDS 같은 경우 탐지만 하다 보니, 들어오는 트래픽들을 모두 모아서 사후 분석하는 기능에 특화되어 있는 장비라 볼 수 있고,

IPS는 실시간으로 탐지해서 허용할 건 허용하고 차단할 건 차단하는 것이다.

 

방화벽과 유사한 역할이지만, IP 주소와 포트번호뿐만 아니라

그 외의 데이터에 대한 안전 여부까지 분석해서 허용, 차단에 대한 역할을 한다.

 

결과적으로 네트워크를 구성할 때,

IPS는 거의 필수적으로 구성을 하지만 경우에 따라서 IDS는 잘 구성하지 않는다.

 

IDS는 아무튼 차단을 수행하는 시스템이 아니다 보니, 회사 내부에선 비용적인 부분 등을 고려해 봤을 때,

IDS는 사용하지 않는 경우도 종종 존재한다. 하지만 IPS는 필수로 사용한다고 보면 된다.

 

 


 

 

DDOS(Distributed Denial of Service, 분산 서비스 거부)

 

 

DOS는 "서비스를 거부한다"라고 표현한다.

위와 같은 표현은 사실 공격의 형태는 아니다.

 

서비스를 거부시킬 수 있는 상황들은 정말 많다.

 

예를 들어, 대학교에서 수강 신청을 할 때, 갑자기 사람들이 많이 몰리면 수강 신청 페이지가 다운되는 상황이나,

유명 연예인의 티켓팅 페이지가 다운되는 상황들을 보고 모두 "서비스 거부"라고 한다.

 

서비스 거부는 말 그대로 서버는 받아들일 수 있는 양은 한정적인데,

보다 많은 양이 들어오다 보니 서버가 버티지 못하고 다운되는 현상이다.

 

그래서 공격자들은 위와 같은 상황을 악용해서,

특정 대상한테 서비스 거부를 한 번에 퍼붓는 걸 보고 DDOS 공격이라고 말한다.

사실상 공격이 아닌 형태를 공격으로 만들어서 특정 대상을 공격하는 것이다.

 

이 DDOS 공격은 공격자 혼자서 공격을 수행할 수 없는데, 정리해서 알아보자.

 

 

개념 및 원리

분산된 방식으로 서비스를 거부하는 공격.

즉, 여러 대의 컴퓨터 또는 네트워크 디바이스를 통해 
대상 시스템 또는 네트워크에 대량의 트래픽을 생성하고, 
이로 인해 서비스를 마비시키거나 중단시키는 것을 목표로 한다.

봇넷(botnet)이라고 불리는 감염된 컴퓨터들의 집합체를 사용하여 이루어짐.
즉, 여러 대의 감염된 PC를 가지고 네트워크를 구성한 것이다.

 

공격자는 이렇게 구성된 봇넷을 한 번의 동작으로 전부 동작되게끔 원격으로 제어 및 명령을 내릴 수 있으며,  
이들을 통해 대상 시스템에 대량의 데이터를 보내어 서비스의 정상적인 작동을 방해한다.

입구가 해커가 보낸 좀비들로 꽉 차 있어, 다른 길로 들어오려는 사람들이 더 이상 진입할 수 없는 것이다.

 

 

특징(1) - 공격의 추적 및 식별의 어려움

공격자 본인이 직접 공격하는 게 아니라, 원격으로 감염시킨 합법적인 장치를 통해 공격하여

트래픽을 발생시키기에, 실제 트래픽과 악성 트래픽을 구별하기 어렵다.

 

DDOS는 상황에 따라 자신의 실제 IP 주소는 가리고,

가짜 IP 주소를 사용하는 IP Spoofing을 통해 트래픽을 생성하는 경우도 존재한다.

 

즉, 봇넷의 IP 주소는 추적이 가능하지만 봇넷을 조작하는 공격자는 신원이 감추어지는 것이다.


또한 여러 기기 또는 지역에서 동시에 트래픽을 생성하기에, 특정한 공격자를 식별하기 어렵다.

특징(2) - 징후를 알아차리기 어려움
네트워크 대역폭의 증가로 네트워크 성능 감소 및 마비, 네트워크 지연, 서버 부하 등이

대부분 유일한 징후이므로, 공격을 알아차리기 어렵다.

 

수강신청, 티켓팅 등에서 사람들이 몰리는 것도, 서비스 거부가 일어나는 것이기 때문에 단정 지을 수 없는 것이다.

갑자기 사용자가 몰려가지고 증가하는 건지, 공격으로 인해 서비스 거부가 일어난 것인지 판단하기 어렵기 때문이다.

 

특징(3) - 다양한 공격 유형이 존재하며, 네트워크 계층(3계층), 전송 계층(4계층), 응용 계층(7계층)에서 발생
3계층 : ICMP Flood, Smurf Attack 등
4계층 : SYN/ACK Flood, UDP Flood, TCP Reflection 등
7계층 : HTTP Flood 등


Flood(홍수)라는 단어가 많이 보이는데, 홍수처럼 마구 쏟아지는 것이다.

ICMP Flood는 ICMP패킷을 대상 서버한테 마구 보내어, 계속 반응하라고 압박을 주는 것이다.

 

서버한테 요청을 하면 서버는 대답을 해야 하는데,

서버 입장에서 대답을 하는 것도 자기가 동작할 수 있는 범위 내에서만 동작을 해야 한다.

 

하지만 Flood처럼 마구 쏟아지면, 동작을 다 하지 못하기 때문에, 공격자의 의도대로 마비가 생길 수 있는 것이다.

 

 

공격 유형 - 네트워크 계층(3계층)

< ICMP Flood >

대량의 ICMP(Ping) 요청을 대상 시스템에 보내어 공격한다.

< Smurf Attack >

스머프가 모여 힘을 합쳐 무언가를 이루는 모습을 연상시켜 지어진 이름이다.

대량의 ICMP(Ping) 요청을 브로드캐스트 주소로 전송하여 네트워크의 모든 호스트를 응답하게 하는 공격이다.

 


공격 유형 - 전송 계층(4계층)
< SYN/ACK Flood >

TCP handshake 과정 중 공격자는 SYN패킷을 대량으로 보내어 연결 설정을 유도한다.

하지만 공격자는 handshake를 완료하기 위한 ACK를 반환하지 않아,

대량의 미완성된 연결 설정 시도로 인해 피해자의 시스템 리소스가 소모되는 공격이다.

< UDP Flood >

대량의 UDP 패킷을 대상 시스템에 보내어 공격한다.

UDP는 TCP와 달리 연결 설정 과정이 없기에, 간단하게 대량의 UDP 패킷을 대상에게 보낼 수 있다.

 

 

공격 유형 - 응용 계층(7계층)
< HTTP Flood >

전체 네트워크가 아닌 특정 웹 애플리케이션을 마비시키는 공격으로,

대량의 HTTP 요청을 생성하여 웹 서버의 리소스를 고갈시키는 공격이다.


< DNS Amplification Attack(DNS 증폭 공격) >

공격자가 송신자의 IP 주소를 속여, DNS 서버에 대량의 작은 쿼리를 보내고,

이 쿼리들로 DNS 서버에서 큰 응답을 생성하게 유도하는 공격이다.

 

이러한 큰 응답은 피해자에게 전송되어 대규모의 트래픽을 생성한다.

 

 

대응 방안

DDOS의 대응방안은 방화벽, IDS, IPS가 방안이 될 수 있지만

이 보안 도구들은 본인이 받아들일 수 있는 트래픽이 한정적이기에,

대량의 무언가가 들어오면 제대로 된 역할을 수행할 수 없다.

 

그래서 네트워크를 구성할 때, 'DDOS 방어 장비'를 구성한다.

일단 한 번에 많이 들어오는 트래픽을 본인 선에서 막아 차단해 주는 것이다.

 

예를 들어서 1초에 100개 들어오는 패킷까지만 허용할 건데,

그 이상으로 들어오는 것들이 감지되었다면, DDOS 방어 장비는 필터링을 수행하는 것이다.

 

방화벽, IDS, IPS는 내부로 들어왔을 때,

본인이 받아들일 수 있는 수준이면 동작을 하는 것이라고 보면 된다.

 

결국 네트워크를 구성할 때, DDOS 방어 장비는 네트워크 최상단에 위치가 된다.

 

 


 

 

다음 글에서는 Malware(멀웨어)라고도 불리는 악성코드에 대해서 알아보겠다.

추가로 위에서 잠깐 알아보았던 Botnet(봇넷)이 악성코드의 여러 유형 중 하나이다.

'IT_정보보안 > 인프라 & 보안기초' 카테고리의 다른 글

9. 보안관제  (1) 2023.12.20
8. 악성코드  (2) 2023.12.12
6. 계층 별 프로토콜(2)  (0) 2023.11.28
5. 계층 별 프로토콜 (1)  (1) 2023.11.28
4. 계층 별 장비  (2) 2023.11.13