방화벽
1. 방화벽이란?
1) 방화벽의 개념 및 목적
외부 인터넷에서 내부 네트워크로의 접근 통제하는 기능을 수행
=> 두개의 네트워크 사이에서 접근통제 정책을 구현케 하는 시스템 또는 시스템 그룹
궁극적으로 신뢰할 수 없는 네트워크로부터 신뢰할 수 있는 네트워크를 보호하는 것이 목표이다.
방화벽 시스템을 디자인하고 설계할 때 보안정책을 따른다. 이때 보완정책은 아래의 point을 고려하여 디자인해야한다.
보안정책 point
1> top down 이다
2> white list/ black list를 기준으로 한다
3> 환경에 맞춰 적절한 방법으로 정책을 수립해야한다
* White list : 안전하다고 증명된 것만을 정책적으로 허용하고 나머지는 차단함으로써 내부 네트워크를 안전하게 유지시키는 방식
* Black list : 위협으로 인증된 것만을 관리자가 지정 및 차단하여 내부 네트워크를 안전하게 유지시키는 보안 방식
또한 방화벽 정책에는 모든 것을 허용하고 불순한 것만 막고자 하는 ALLOW 정책과 모든 것을 모두 막고 신뢰된 것만 허용하는 DENY정책으로 나뉜다. 또한 DENY 정책에는 클라이언트의 요청 패킷을 차단하는 DROP과 클라이언트의 요청 패킷 차단과 함께 거부 패킷을 보내어 reset할 수 있도록 하는 Reject로 다시 구분된다. 즉 요청에 대한 거부나 불가 메시지를 전송해주느냐 전송하지 않느냐의 차이로 이해하면 된다.
2) 방화벽 구성방안
방화벽은 크게 두 가지의 모드가 지원된다. TP(Transparent)모드와 Routed모드이다.
TP (Transparent모드) |
OSI Layer 2장비처럼 목적지 MAC을 가지고 Ehternet Frame을 보내준다 즉, 네트워크 구성을 변경하지 않고 방화벽만 추가한다. 그래서 방화벽이 투명하다고 하여 TP라고 명명한 것이다 장점) 네트워크 구조를 변경하지 않아 문제 발생시 방화벽만 제거하면 해결된다 단점) 침입자들도 방화벽의 설치 유무와 위치를 쉽게 알아낼 수 있다 |
Routed | OSI Layer 3장비처럼 목적지 IP를 가지고 패킷을 보내준다. 각각의 인터페이스가 별개의 네트워크로 분리되어 구성하며, 별개의 네트워크에 대한 라우팅 처리를 기본으로 한다. 또한 NAT로 방화벽을 구성할 수 있으며, 그밖의 보안 기능을 powerful하게 사용할 수 있다. 장점) 별개의 네트워크를 이용해 보안기능을 효과적으로 사용할 수 있다. |
2. WAF
1) WAF(웹 방화벽)의 개념과 구성
WEB+FIREWALL = WAF
즉 웹 방화벽을 말한다. 일반적인 네트워크 방화벽과 달리 웹 애플리케이션 보안에 특화되어 개발된 솔류션이다.
기본 역할은 HTTP/HTTPS 프로토콜 등의 트래픽 검사를 통해 웹 공격을 탐지하고 차단하는 것이다. 이러한 업무의 동작방식은 블랙리스트와 화이트 리스트로 RULE SET을 잡는 과정, 즉 '학습'을 한 다음 탐지 및 차단을 적용하는 것이다.
이러한 동작방식을 최적화 과정이라고 한다.
앞서 일반 방화벽이 ip와 port 등 네트워크와 관련된 제어를 했는데, 이는 IDP라는 L7의 PAYLOAD 영역을 검사하는 것을 주 목적으로 삼는다. 그러나 일반적인 방화벽은 깊게 검사할 수 없기 때문에 이러한 디테일한 부분을 WAF 또는 DDoS 장치가 하게 되는 것이다. 즉 HTTP Request Packet을 검사하여 Web Application에게 의도하지 않은 내용들은 전송되지 못하도록 하는 역할을 하며, HTTP Reply Packet 내용을 감시하여 특정 정보의 유출을 막는 역할을 하게된다.
이러한 HTTP Transfer은 통신구조 TCP3 Way Handshake을 이용한다. TCP3 Way Handshake란 네트워크 과정에서 배웠던 SYN - SYN ACK - ACK 의 과정이다. 이러한 절차를 통해 통신하고자 하는 양쪽 모두 데이터를 전송할 준비가 되었다는 것을 보장하고, 양쪽 모두 상대편에 대한 초기 순차일련번호를 얻을 수 있도록 한다.
* SYN : synchronize sequence numbers의 약자 * ACK : acknowledgment의 약자
(약간 이해 안되는뎅,,,, 페캠 강의에서 강사님이 통신구조를 tcp3way handshake with http라고 띡 설명하고 가버려서 다른 정보들 보충해서 찾기가 너무 힘들다,,,, ㅠㅠㅠ네트워크 어려워!)
2) 구성
웹 방화벽은 Proxy 측 프락치라고 하는데 이때 Proxy 서버는 Client와 Server 간의 통신을 중계하고 Relay 하는 즉 대행 업무와 같은역할을 수행한다.
이러한 Proxy 모드는 Inline(안랩의 전문가 컬럼에서는 이를 Bridge-Proxy방식이라고 한다. 강의에서는 이를 Inline이라고 하였으나 안랩에서는 Inline과 Bridge를 구분하여 기술하고 있다.)과 One-armed 두가지로 구분되는데 아래와 같이 정리할 수 있다. 또한 추가적으로 Bridge-Proxy 방식으로 웹애플리케이션을 보호하기도 한다
One-armed |
웹애플리케이션을 보호하기 위해 가장 좋은 구성 방식이며 단지 HTTP와 HTTPS 트래픽만을 웹방화벽으로 전달시켜 주기만 하면 된다 |
Inline(Bridge-Proxy) |
네트워크 사이에 삽입시키는 방식으로 HTTP와 HTTPS 와 같은 웹 애플리케이션 트래픽만을 검사하고 다른 나머지 트래픽은 통과시킨다. Bridge-Proxy 모드는 투명하며(Transparent), 기존의 네트워크 구성을 바꾸지는 않지만 로드 밸런싱, 컨텐츠 스위칭, 네트워크 방화벽과 같은 웹방화벽의 특정 기능을 사용하지 못한다. |
*** 위 내용은 강의에 뭔가 문제가 있는 듯 하여 안랩의 내용을 주로 참고하여 정리했다. 안랩 전문가 칼럼을 보다 참고하길 바란다 ***
3) OWASP TOP 10과 국정원의 8대 홈페이지 취약점
OWASP TOP 10은 오픈소스 웹 애플리케이션 보안 프로젝트이다. 4년에 한번씩 발표되며 웹에 관한 보안 취약점 TOP10을 발표한다. 아래 링크를 통해 확인할 수 있다.
또한 국가사이버안전센터(NCSC)에서는 국내 각 기관에서 홈페이지 해킹에 많이 악용되었던 취약점 8종을 선정하여 발표하는데 이는 아래 링크의 게시글을 통해 확인할 수 있다.
https://realforce111.tistory.com/54
보안 취약점 TOP 10 중 Injection과 Cross site script에 대해 보다 자세하게 배운 내용은 아래와 같다
Injection | 신뢰할 수 없는 데이터가 명령어 or 질의어 일부분으로써 인터프리터에 보내질 때 발생 |
Cross site Script | 적절한 확인이나 제한 없이 어플리케이션이 신뢰할 수 없는 데이터를 웹 브라우저에 보낼 때 발생 |
OWASP TOP 10에 대해서는 아래 영상을 통해 보다 자세한 내용을 확인할 수 있다.
참고
https://jwprogramming.tistory.com/274
https://www.facebook.com/jeonjuhyun/posts/218717908157144/
http://egloos.zum.com/sword33/v/5973004
http://egloos.zum.com/sword33/v/5973004
https://github.com/chanbin/chanbin.github.io/blob/master/_posts/2019-11-04-routing.md
https://realforce111.tistory.com/62
https://cloud.kt.com/portal/user-guide/security-wapples-intro
https://realforce111.tistory.com/61
https://www.ahnlab.com/kr/site/securityinfo/secunews/secuNewsView.do?curPage=43&seq=8488
'개발 > 보안' 카테고리의 다른 글
[개인정보보호] 개인정보 개념 및 중요성 (0) | 2021.01.12 |
---|---|
OWASP TOP10 - 2017 (0) | 2021.01.10 |
네트워크 보안 개념 (0) | 2021.01.07 |
[FastCampus] 네트워크 개론_데이터 링크 계층과 스위치 (0) | 2021.01.04 |
[FastCampus] 네트워크 개론_물리계층 (0) | 2020.12.31 |