WWC - Network Security
Network Security
우리 회사 시스템의 최대 장점이자 단점
많은 분들이 AWS Cloud를 사용하면 지금 IDC나 Onpremise보다 보안이 훨씬 안전하냐고 자주 묻습니다.
인프라 측면에서 AWS 보안이 IDC에 비해 더욱 정교하고 Network 영역, 데이터 보호 및 암호화, Application 영역까지 보안이 겹겹히 쌓여 IDC보다 월등히 앞선다고 할 수 있지만 어렵게 큰 돈들여 구축한 보안 서비스도 관리자의 관리 능력 부족과 실수로 항시에 해커나 DDoS 공격에 노출될 수 있습니다.
지난번 시간에 말씀드린 데이터 보안은 CSP (Cloud Service Provider)가 아무리 좋은 솔루션을 제공하더라도 사용하는 관리자가 고객 정보를 암호화지 않거나, 암호를 코드안에 hard coding하거나, 시스템 자원의 접근 권한을 기본 default 값이나 everyone으로 설정할 경우 모든 공든 탐이 하루 아침에 무너지는 경우를 볼 수 있습니다.
클라우드 사업자와 고객의 R&R
#CSP (Cloud Service Provider) 클라우드 사업자 통제할 수 있는 부분은 다양한 클라우드 보안서비스를 통해 클라우드 내에 이상 행위가 네트워크상에 발생거나 탐지될때 고객사를 사이버 공격으로 보호할 수 있게 다양한 Security tool과 professional 전문 서비스를 제공합니다. 또한 글로벌 및 각 국가별 특화된 보안 법규나 규제들에 맞게 다양한 인증과 compliance관련된 기능등을 계속 aws에 구현하고 있습니다. (국제인증 ISO와 한국 인증인 ISMS 인증)
요즘 IT관련 인터넷 언론을 보면 CSP는 기본 보안툴만 제공하고 클라우드 보안 구성과 데이터 암호화는 고객사가 직접하고 CSP는 보안의 책임을 지지 않는다라는 비판의 목소리도 있는데요.
이런 기업의 보안에 대한 보조적인 기술지원은 #MSP (Managed Service Provider)에서도 보안 가이드, 컨설팅을 지원하고 있습니다. 예를 들어 24x7 Monitoring, 보안 관제와 Well Architect의 Best Practice를 기반으로 기업에 커스터마이징된 최적의 보안 솔루션을 제안해 드리며, 기업의 보안 진단, 감사, 인증 서비스도 제공하고 있습니다.
정리해 보자면 CSP는 보안의 도구를 MSP는 고객사에 맞는 보안 솔루션과 모니터링을 고객사는 계정 관리, 데이터 암호화, 키관리, 보안에 준수하는 소스코드 관리 등을 철저히 해야 합니다.
클라우드 환경도 IDC나 On-premise와 같이 다양한 네트워크를 통한 공격을 받습니다. 주로 OSI의 layer 3 (Network), layer 4 (Transport)의 공격이 대다수인데, 아래 그림과 같이 두 layer에서 노출된 IP로의 공격이나 UDP 공격을 주로 받습니다.
우리가 잘 아는 대부분의 DDoS 공격도 이 Layer를 통한 flood 공격이라 보시면 됩니다.
AWS Cloud 네트워크 보안의 특징은 유효한 TCP Request만 받게 설계되어 있습니다. 그러기 때문에 UDP Flood등의 공격은 완전히 봉쇄하고 있으며 AWS 전방에 위치한 보안 장비가 아닌 아래 서비스들도 이런 Layer 3, Layer 4의 공격을 효과적으로 대처하고 있습니다.
대부분의 해킹 공격중 80%가 Layer 3, Layer 4에서 일어나지마, Layer 7 (Application)단의 공격을 막기 위해서는 AWS WAF (Web Application Firewall)를 활용해 볼만 합니다.
Database를 다루신 분들은 SQL injection 공격을 아실 겁니다. (쿼리를 무한대로 보내어 Database서버를 다운시킴)
AWS WAF는 IDS/IPS (침입탐지 시스템)과 비슷한 역할을 합니다.
특히 HTTP Layer 기반에서 공격받는 여러가지 DDoS 공격을 IP기준으로 필터링하고 WebACL 규칙을 정의하여 CloudFront에 적용하여 최전방에서도 CDN을 타겟으로 하는 공격을 사전 차단할 수 있습니다.
AWS WAF는 일단 악의적인 공격이나 #404 error가 감지되면 AWS WAF는 해당 IP를 공격이라 판단하고 그 IP 대역을 사전에 블록시킵니다.
또한 매일, 매시간 얼마나 많은 악의적인 공격을 받아 있는지도 아래와 같은 WAF Dash board를 통해 실시간으로 볼 수 있습니다.
또한 이와 같은 DDoS와 다양한 Application layer의 공격은 AWS Market Place에서 3rd party용 IDS, IPS 솔루션을 쉽게 찾으실 수 있습니다.
TrenMicro, McAfee, Fortinet 보안 솔루션 업체들의 솔루션이 AWS 클라우드 상에서 SaaS형태나 EC2 Instance형태로 손쉽게 올릴 수 있습니다. 다만 EC2 Type으로 구매하시면 년간 EC2 Instance별 년간 license fee와 함께 EC2 월별 사용료를 내셔야 합니다. (EC2는 대략 C5.xlarge 정도가 적당하다고 봅니다.)
그럼 네트워크 보호를 위한 3가지 방법을 정리하자면
첫째, AWS 보안솔루션을 전방에 배치한다
대부분의 해킹과 DDoS는 Layer 3 (Transportation), Layer 4 (Network)에서 80%정도 발생한다. 하여 ELB, Route53, CloudFront를 최전방(외부와 연결되는 지점)에 배치하고 기초적인 공격을 막을 수 있습니다.
이를 위해서 EC2에 Enhanced Networking, ELB의 네트워크 분산 기능, AWS CloudFront CDN을 통해 특정 나라별, 지역별 접속 blocking, OAI (Origin Access Identity)를 기능을 통해 특정 Origin으로에서 오는 접근만 허가해 줄 수 있습니다.
또한 Route 53 DNS는 Private DNS나 또는 Alias record Set 같은 기능들을 충분히 활용하실 것을 권장드립니다.
둘째, 3 Tier Architecture를 통해 인터넷과 연결되는 지점을 최소화한다.
외부의 인터넷과 연결될 수 있는 지점을 줄이고 DB나 Application서버는 Private Network로 구성하고, 어쩔 수 없이 외부와 인터페이스를 열어야 하는 Bastion Host, ELB, NAT Host, Web Server 등만 Public Network로 구성합니다. 또한 외부 서비스용과 내부 관리용 트래픽도 명확히 구분해야 합니다.
또한 Inbound 및 Outbound 트래픽에 대해서 Port 제한등의 Rule 걸어서 인증된 사용자와 트래픽만 허용하게해야 합니다. 이는 AWS VPC, Security Group, NACL (Network Access Control List) , Subneting 기능을 통하여 구성할 수 있습니다.
셋째, 해커를 귀찮고 피곤하게 만든다.
해커는 잡을 수 없습니다. 간첩도 잡기힘듭니다. 워낙 잘 수련된지라..
대신 해커를 아래와 같이 피곤하게 해야 합니다.
네트워크 구간 길목에 보안 관련 물리적 차단과 데이터 암호화를 하여 해커가 공격하기 싫게 겹겹히 방어막을 쌓아라
- 보통 한 두번 해킹 침투 하다가 안되면 그냥 집으로 돌아가는 아마추어 해커들도 꽤 많습니다.
전방에서는 네트워크 공격을 막고 방어할 시간을 벌어라
- 마치 실제 전쟁과 비슷합니다. 북한군이 대한민국을 처들어 올때 이를 최전방에서 미리 감지하고 데프콘 경고를 보내고 후방의 주요 군사시설이 이를 방어할 시간을 벌어야 합니다. 물론 여기서 잘 막고 끝날 수도 있지만 혹시 모를 Application단의 공격을 대비하기 위해 내부 시스템의 격리, 중요 데이터의 외부 백업도 확인해야 합니다.
후방에는 모든 자원은 공개하지 말라.
- 후방의 DB나 Application의 IP를 노출하지 말고, 모든 외부와 내부로의 통로는 NAT Gateway를 통해 통제합니다.
결론적으로는 AWS가 아무리 보안이 잘되어 있다고 하더라도 최종 보안은 사람과 관련됩니다.
그리고 해커 역시 사람인지라 아래와 같이 결론을 내고 보안 관련 포스팅을 마무리 하고자 합니다.
마지막으로 해킹관련 인상 깊게 본 영화를 추천해 드립니다.
천재 해커의 해킹 실화를 바탕으로 제작된 영화이지만 해커의 가난했던 시절, 인간적인 면모, 해킹하면서 싹트는 러브 스토리 영화라 지루하지 않을겁니다.