네트워크 보안
- 네트워크 공격을 알아야함
- 공격 대응 방안도 알아야함.
- 대응 방법을 알기 위해서는 공격을 알아야함
- 공격을 알기 위해서는 트래픽 특성을 알아야함.
보안장비
Hardening(하드닝)
정보를 저장하고 있는 컴퓨터나 네트워크 등과 같은 환경을 굳건하게 한다는 뜻입니다. 외부 시스템으로부터 우리 시스템을 안전하게 보호하는 작업입니다.
- 외부에 공개하는 서비스의 국소화 -> 내가 알지 못하게 열어놓는 포트를 닫아야함
- 작동하는 있는 것의 파악
- 불필요한 프로그램 실행 중지
- 취약성을 수정하는 패치의 신속한 적용
- 보안 소프트웨어나 기기의 도입 -> 보안장비
- OS나 네트워크 기기 등의 다층방어
하드닝하는 방법
방화벽, IDS, IPS
보안망 구성도
위의 사진에는 없지만 라우터와 통신사업자 사이에는 스위치가 있습니다.
우리 서버 - 스위치 - 라우터 - 스위치 - 통신사업자(KT,LG, SKB)
우리 쪽에 가까운 스위치를 LAN Switch, 통신사업자 쪽에 가까운 스위치를 WAN Switch(교환기)라고 합니다.
라우터를 기준으로 왼쪽은 회사망(내부망)이라고 하고, 오른쪽은 외부망이라고 하는데, 내부망 외부망을 나눌 때는 라우터를 기준으로 나눕니다.
방화벽의 위치가 라우터 안쪽에 위치합니다. 방화벽을 기준으로 망을 3개로 나눌 수 있습니다. 라우터와 연결된 방화벽 쪽을 InternetInternet이라고 하고, 방화벽을 기준으로 왼쪽은 직원 pc들이 구성된 곳인데 그곳을 IntranetIntranet이라고 합니다. '외부접속자가 이쪽까지는 올 수 없는 private한 zone입니다.'라는 의미로 Private zone이라고도 합니다. 허가된 자만이 인트라넷 안으로 들어올 수 있습니다. DMZ구간은 Public zone/Service zone이라고도 합니다. 우리 직원들도 들어와서 서비스를 받을 수 있고, 외부인도 서비스를 받을 수 있습니다. 대표적인 공개 서버로 web server, DNS server, Email server 등이 있습니다.
위의 그림과 같이도 망을 구성할 수 있습니다.
DMZ 구간은 여러 개 배치할 수 있는데, 서버들을 분산해서 배치할 수 있습니다. 웹서버도 한 구간에만 배치하면 위험하다고 해서 분산해서 배치합니다. 공격자가 우리 망을 쉽게 파악하지 못하게 하기 위해 분산하는 것입니다.
방화벽(Firewall)
방화벽은 IP주소와 Port번호를 기반으로 방화벽 필터링 정책에 따라 패킷 필터링을 수행하는 보안 장비입니다. 방화벽은 방화벽을 통과하는 모든 트래픽을 접근제어할 수 있습니다. 방화벽에서는 접근제어를 해야 하기 때문에 접근제어 Rule을 만들어야 합니다.
- 접근 제어(Access Control)/ 패킷 필터링
- NAT(Network Address Translation)
- 액세스 기록 기능
- 사용자 인증(Authentication)
- 암호화 + 터널링
접근제어 Rule 간단 예제
방화벽을 셋팅하기 위해서는 각 애플리케이션이 사용하는 Port번호와 서버 IP 주소를 알고 있어야 합니다.
방화벽 한계점
● 내부 네트워크에 존재하는 악의적인 공격을 막을 수 없음
- 회사에서 일하다가 집에서 일해야지 하고 짐을 싸가는데 그중 중요정보가 있을 수 있습니다. 이런 경우는 막을 수 없습니다.
● 방화벽을 경유하지 않는 공격을 막을 수 없음
- 방화벽도 라우팅 정책이 돌아가고 있는데, 라우팅 정책이 잘못되면 간혹 방화벽을 우회해서 들어오는 경우가 있습니다.
● 방화벽에 방어 규칙에 포함되지 않는 공격을 막을 수 없음
- 사람이 접근제어 Rule을 만들다 보면 놓치는 것도 있을 수 있습니다.
● 데이터에 실려 있는 악성코드나 바이러스를 막을 수 없음
- 메일에 첨부된 악성 코드를 막을 수 없습니다.
- 방화벽은 3,4계층 공격을 방어하기 위함이라 악성코드를 막을 수 없습니다. 악성코드는 7계층 공격입니다.
● DoS와 DDoS 공격을 막을 수 없음
- ICMP나 TCP와 같은 열린 포트를 통한 공격을 막을 수 없습니다.
방화벽은 100개중 50개정도(?) 막을 수 있을까 말까 하다고 합니다.. :(
침입 탐지 시스템(IDS)
IDS는 Intrusion Detection System의 약자로 침입 탐지 시스템입니다. 공격을 탐지하고 관리자에게 공격 알림을 통해 공격에 대처할 수 있게 해주는 보안 시스템입니다. 전달하는 패킷의 내용이나 로그를 분석하여 공격 여부를 탐지하는데 악성코드 탐지도 가능합니다. IDS는 HIDS와 NIDS로 분류됩니다.
IDS는 우리 망에 공격자가 들어왔을 때, 공격자를 찾아내는 행동을 합니다. 자기 구역에서 공격자 탐지하는데, 이때 HIDS는 특정서버에 공격자를 찾아내는 시스템입니다. 특정 컴퓨터 안에 공격자가 들어왔는지 확인합니다. NIDS는 컴퓨터들의 오고 가는 트래픽들을 분석하여 우리 망 내에 있는 공격자를 찾아내는 시스템입니다. 즉, 우리가 일반적으로 얘기하는 IDS는 NIDS입니다.
방화벽: 접근제어 rule
NIDS: 탑지 rule
IDS 기능에는 다음과 같은 것이 있는데, 그중 차단기능은 IDS 위치에 따라 사용할 수도 있고 안 할 수도 있습니다. 위의 그림에서 보면 Switch가 NIDS와 서버에 동시에 트래픽을 보내기 때문에 NIDS가 공격자를 찾아도 이미 서버에 들어간 뒤이기 때문에 차단할 수 없습니다. 차단을 위해서는 NIDS가 서버와 같은 라인에 있어야 합니다.
관리자에게 알림
로그로 기록
차단기능 --> IDS 위치에 따라 달라짐.
InLine 모드
장비배치 모드 중 Inline 모드는 케이블이 통과하는 위치에 장비를 배치하는 것입니다. 트래픽이 통과하는 주요 지점에 배치가 됩니다.(같은 선상에 배치) Inline 모드는 패킷 차단 목적의 장비에 적용합니다. (예) Anti-DDoS, Firewall, IPS 등
장점은 실시간 패킷을 탐지하고 차단할 수 있습니다. 단점은 장비에 장애가 발생할 경우 전체 네트워크 장애로 확산될 수 있습니다. Inline 모드는 고가의 장비를 써야 하고, 기능상 문제가 있어도 허브처럼 작동하도록 해야 하며, 장비 안에 탭이 장착되도록 해야 합니다.
Out of Path(Mirror) 모드
장비배치 모드 중 Out of Path 모드는 포트미러링처럼 진행됩니다. 즉, 트래픽을 복사해서 전달합니다. 네트워크 경로를 벗어난 위치에 장비를 배치하는 것입니다. 패킷 차단 기능이 없는 탐지 목적의 장비에 적용합니다. (예) IDS, Anti-APT, Network Forensic 등
장점은 전체 네트워크 가용성에 영향을 주지 않으면서 패킷을 탐지할 수 있습니다. 단점은 복사된 패킷을 탐지하기 때문에 실시간 패킷 차단이 어렵습니다.
HIDS(Host-based IDS)
● 서버에 직접 설치됨에 따라 네트워크 환경과 무관
● 호스트의 자원 사용 실태, 로그 등을 분석하여 침입 여부 탐지
● 무결성 체크 기능이 주기능!!
- 무결성 점검에 의해 침입여부 식별
- 최초 설치 시 초기 데이터베이스에 중요 파일들에 대한 해시값 저장
- 주기적으로 중요 파일의 해시값 변조 유무를 검사/탐지/분석하여 결과 보고
● 오픈 소스 IDS : Tripwire(트립와이어)
NIDS(Network-based IDS)
● 네트워크 상에서 일어나는 침입 시도를 탐지
● 네트워크 세그먼트 당 하나의 장비만 설치하면 되므로 설치 용이
● 패킷 수집을 위해 mirroring 기능 이용
- Mirroring : 패킷을 복사한 다음 복사한 패킷을 NIDS 장비로 전달
- 스위치의 미러링 포트를 이용하거나 TAP 장비를 통해 패킷 복사
● 수집된 패킷은 분석을 위해 필터링과 축약과정(reduction)이 필요
- 필터링은 불요한 정보를 제거하는 과정으로 지정된 수준의 데이터만 수집
- 축약은 통계적/수학적 기법을 적용하여 반복되는 데이터를 줄이는 과정
● 오픈 소스 NIDS : Snort (★중요)
보안관제팀(ids) + 침해대응팀(실시간대응+방화벽)
미탐지와 오탐지
미탐지(False Negative)는 공격을 탐지하지 못하는 경우로, 시그니처 기반의 탐지 시스템의 경우 미탐지가 높습니다.
오탐지(False Positive)는 공격이 아닌 것을 공격으로 탐지하는 경우로, 행동 기반의 탐지 시스템의 경우 오탐지가 높습니다.
IDS 가 공격자를 탐지하는 방법
오용탐지(Misuse Detection)
● 시그니처 기반의 탐지
● 오랫동안 지속 공격들의 패턴을 파악
- 탐지 룰로 생성
- 유입되는 패킷들 중에서 생성된 탐지루로가 일치하는 패킷을 검색
[추가]
시그니처 기반의 탐지는 zero-day attack에 약합니다.
zero-day attack은 취약점이 발견되지 않은, 그래서 패치되지 않은! 시스템을 대상으로 한 공격입니다.
-> 신규공격에 약하다.
-> 미탐율이 높다.
이상탐지(Anomaly Detection)
● 행동 기반의 탐지
● 정량적인 분석, 통계적 분석을 사용
● 형태 관찰, 프로파일 생성, 프로파일 기반으로 이상여부를 확인
● 정상범위를 벗어나는 데이터를 탐지
IDS 한계점
- 오탐지와 미탐지 문제 발생
- 실시간 공격 막을 수 없음
- 단편화, 난독화, 암호와와 같은 기술은 감지하기 어려움
- 방화벽의 장점은 차단, 단점은 악성코드를 막을 수 없음
- IDS의 장점은 악성코드 탐색 가능, 단점은 차단용이 아님
침입 방지 시스템(IPS)
IPS는 Intrusion Prevention System의 약자로 침입 방지 시스템입니다. IDS의 탐지 기능과 방화벽의 차단 기능을 결합한 것으로, 이상행위탐지를 통해 알려지지 않은 공격 패턴에 대응합니다. 공격에 대한 사전 방지를 조치하는 것으로 Inine방식으로 설치 및 운영합니다. 실시간 침입차단, 인터넷 웜,악성코드 및 해킹에 기인한 유해 트래픽 차단합니다.
- IDS : 탐지 후 사후에 조치를 취하는 기술
- IPS : 예방적이고 사전에 조치를 취하는 기술
IPS는 방화벽보다 먼저 앞쪽에 설치하는데, 어떻게 보면 방화벽보다 IPS 성능이 더 좋습니다.
다음은 IPS 필터입니다.
1필터 방화벽 필터(3,4 계층)
7필터 데이터 필터링(7계층)
궁금증? 필터가 많으면 속도가 느리지 않을까...싶습니다. -> 필요한 필터만 열어놓기도 합니다.
실무) 요즘은 방화벽이 너무너무 좋아져서 요즘 방화벽은 IPS급이라고 합니다.
NAT(Network Address Transloation)
SoHo(Small office/home office)에서 NAT
집에 있는 공유기는 3계층 장비라고 볼 수 있습니다. 공유기 기능은 라우터기능, DHCP, NAT 기능이 있습니다.
DHCP Client라는 것은 유동 IP를 사용하는 컴퓨터를 의미합니다. 이 유동 IP를 할당해 주는 서버가 DHCP 서버입니다.
고정 IP는 보통 서버들이 많이 사용하는데, 서버가 맨날 주소가 바뀌면 신뢰성 없습니다. 클라이언트는 유동 IP를 사용합니다.
DHCP Spoofing
위장 DHCP 서버를 만들어 잘못된 통신 주소를 할당해 줄 수 있습니다.
사설/공인 IP Address
사설 IP 주소
- 인터넷과 연동되지 않은 사적인 독립 네트워크(Private IP Network)에서 사용되는 사적인 주소
- 인터넷상에서 사용할 수 없음을 의미
- Class별 사설 IP주소
A Class :10.x.x.x
B Class : 172.16.x.x ~ 172.31.x.x
C Class : 192.168.x.x
공인 IP 주소
- 사설 IP 주소를 제외한 주소
NAT 기능
NAT는 Network Address Translation의 약자로 송신지 또는 수신지 IP address를 다른 주소로 변환하는 것을 의미합니다.
예를 들어, 1.1.1.1 주소를 2.2.2.2로 변환, 3.3.3.3 -> 10.10.10.10, 172.16.1.10 -> 192.168.1.10과 같이 변환하는 것입니다.
NAT는 Source NAT(SNAT)와 Destination NAT(DNAT)로 나뉩니다.
NAT를 사용하면 실제 컴퓨터가 사용하는 대역대가 오픈되지 않기 때문에 좋습니다. 사내망을 공인 IP로 돌리면 비용이 올라갑니다. 그래서 NAT를 안쓸 이유가 없습니다. 이 NAT를 방화벽에 올려놓고 사용합니다.
NAT테이블에서 192.168.1.10 / 192.168.1.20 / 192.168.1.30의 경우는 공유기가 클라이언트에게 할당해 준 사설 IP라고 볼 수 있고, 30.1.120.8은 통신사가 나에게 부여해준 공인 IP라고 볼 수 있습니다. 서버로 데이터를 요청할 때 일단 출발은 송신지 IP를 192.168.1.30 이렇게 출발하는 게 맞습니다. 그리고 공유기를 통과하는 순간 NAT가 진행되어 송신지 IP가 30.1.120.8로 변환됩니다.
궁금증? 우리 회사가 NAT를 쓰면 반대 서버는 NAT를 안쓰나?? -> 쓰겠지ㅎㅎ
내 IP는 192.168.1.10인데 NAT가 진행되면서 11.11.11.11로 보내집니다. 근데 반대쪽에서도 NAT를 쓴다면 수신지 IP에 있는 22.22.22.22가 가짜 IP일 수 있습니다.
그림을 보면 실제 서버 주소는 192.168.2.20인데 거기에도 NAT를 올려놓았습니다. NAT에는 '22.22.22.22로 들어오는 주소는 192.168.2.20로 바꿔라'라고 설정되어 있습니다. 송신자 쪽에서도 출발할 때는 192.168.1.10인데 NAT를 통과하면서 11.11.11.11로 설정되어 나갑니다. SNAT은 송신자 쪽에서 진행되고 DNAT는 수신자 쪽에서 진행됩니다.
기업망에서 NAT
사설에서는 172.16.x.x로 되어 있다가 방화벽을 통과하면서 공인 IP로 변환되어 사용됩니다.
포스팅 이미지는 SK쉴더스 루키즈 16기 시스템/네트워크 보안 과목에서 제공된 자료입니다.