IPS(IDS), Firewall(WAF) 차이점

HYEONG HWAN, MUN/ 8월 8, 2022/ 미분류/ 2 comments

https://blog.lael.be/post/11379

오늘도 ISO 27001 교육을 받았다.

하나씩 듣다보면 너무나 당연한 것들을 말하곤 한다.
ISMS 및 ISMS-P 관련 교육이다.
정보는 중요하고, 개인정보는 더 중요하다. Human error를 줄이게하고, Script kiddy 로 부터 시스템을 보호하는게 나의 주요 업무.

아래의 보안 용어를 혼용해서 쓰기도 한다. IPS라는 단어에 모든걸 포함하고 사용하는 경우도 있더라.

 

네트워크 보안

1. WAF (Web Application Firewall)

OWASP TOP 10

  • A01:2021-Broken Access Control
  • A02:2021-Cryptographic Failures
  • A03:2021-Injection
  • A04:2021-Insecure Design
  • A05:2021-Security Misconfiguration
  • A06:2021-Vulnerable and Outdated Components
  • A07:2021-Identification and Authentication Failures
  • A08:2021-Software and Data Integrity Failures
  • A09:2021-Security Logging and Monitoring Failures
  • A10:2021-Server-Side Request Forgery

OWASP TOP 10 을 막는 소프트웨어.
트래픽을 해석해야 하기 때문에 Application Layer(Layer 7) 에서 동작한다.

내 편견일 수도 있는데, 비 전공자는 이것에 대하여 설명해주어도 이해를 못하더라. (왜 잘못된 요청까지 처리해야하느냐? 그 사람의 잘못 아니냐?)
이것을 처리할 수 있는지 없는지에 따라서 실력이 한번 나뉜다.
Frontend 에서 UI상으로 입력 못하는 값이라고 해서, 정말 입력 못하는것은 아니다.

 

공식사이트는 여기 : https://owasp.org/www-project-top-ten/

HTTP 의 WEB 에 특화된 방화벽이다. 알려진 취약점 요청을 막는다. 실제 back-end 의 구현과 상관없이 앞부분에서 패턴을 파악하여, 악성요청을 차단함.

Inbound 에 대해서 동작한다. (ALLOW, COUNT, DENY) (=bypass/monitoring/block)

실제로는 위와 같이 동작한다. 보안회사의 소프트웨어를 사용하거나, 보안회사의 패턴 업데이트만 구독해서 사용하면 된다. 약간의 false-positive 가 있지만 전체적으로 안전하게 동작한다.

backend(software)에서도 안전한 코딩(secure coding)을 해야 할 것이다. 아무튼 infrastructure 단에서는 이렇게 처리한다.

 

2. Firewall

내부 기기의 DNS 요청등을 모니터링하고 외부와의 통신을 제어한다. OutBound 에서 동작한다.

Security Group 은 Transport Layer(Layer 4)에서 동작하기 때문에, application 단의 작업을 할 수가 없다.

내부의 192.168.17.192/28 대역에서만 github.com 과 통신할 수 있다.

 

3. Endpoint Security (SIEM)

이건 서버 자체의 이벤트를 모니터링 합니다.
파일의 생성과 삭제, 프로세스의 시작 끝 동작, 네트워크 통신 등을 기록한다.
정밀하게 분석이 가능하지만, 로그가 많이 쌓여서 살펴보기가 피곤하다는 문제점이 잇다.

 

4. IPS(IDS)

침입(Intrusion)을 탐지하면 IDS, Action을 취하면 IPS 라고 부른다.
웹 어플리케이션에 국한되어 동작하는게 아니다. backend 의 Application이 어떤것인지는 Operator가 선택해야 한다.
그 Application 의 알려진 취약점에 대해서, 패턴에 대해 차단을 한다.

이렇게 software 를 패치하지 않고도, 패치되는것처럼 동작하는 것을 virtual patching 이라고 부른다.

예를들어 갑자기 발견된 log4j 취약점( CVE-2021-44228 ) 에 대해서, 실제 서버의 소프트웨어 대처를 바로 할 수 없는 경우에, IPS가 막아주어야 한다.

https://www.lunasec.io/docs/blog/log4j-zero-day/

Host-based-IPS 와 Network-based-IPS가 있는데 둘다 장단점이 있다.

Network-based-IPS 는 host에 따로 손을 대지 않고 동작한다. 하지만 주로 고가이고, 이 장비가 fail 되면 네트워크가 불능이된다. (gateway 이니까)
주로 회사에서 사용한다. 회사 인터넷은 잠깐 불능상태가 되어도 별 피해가 없고, 트래픽이 예측가능(고정적)하고, 트래픽량이 많지 않다. 트래픽을 살펴보고 동작하기 때문에, 트래픽양이 많아질수록 하드웨어가 고사양이어야 한다.

Host-based-IPS 는 host에 agent형식으로 설치해서 동작한다. local proxy 형태로 동작한다.
내 경험상 클라우드에서는 Host-based-IPS를 쓰는게 좋을듯하다. 저렴하고, 충분히 목표성능만큼 동작함.
단점으로는 Networkd-based-IPS가 해야하는 일을 host machine 자체에서 수행하므로 CPU사용량이 조금 늘어난다. (나는 CPU 조건으로 autoscaling을 설정해두었는데, IPS설치후에 자꾸 과부하로 판단을 해서 - 서버가 계속 늘어나는 - 오작동을 해버리더라.)

< Network based IPS >

 

< Host based IPS >

 

* IPS : 알려진 취약점을 이용한 침입 방지
* 백신 : 서버내에서 활동하는 바이러스 방지

2 Comments

  1. 양질의 게시글 감사합니다. 많은 도움이 됩니다

HYEONG HWAN, MUN에 답글 남기기 응답 취소

작성하신 댓글은 관리자의 수동 승인 후 게시됩니다.

You may use these HTML tags and attributes: <a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <s> <strike> <strong>
*
*