본문 바로가기

카테고리 없음

Network Security: 네트워크에서 발생할 수 있는 보안문제와 대응책은?

Intrusion Detection Systems(침입 탐지 시스템)

∵⃝ Intrustion: 침입, 즉, 타겟(희생자)의 보안성을 악화시키는 행위들을 말한다.(= compromising the security of the target)

∵⃝ Intrusion detection: intrusion signature와 intrusion 행위에 대한 report를 통해 침입 행위를 탐지하는 것이다.

∵⃝ Intrusion prevention: intrusion activity를 감지하거나, 보안 공격에 대한 예방을 위해 관리하는 것을 말한다.

 

IDS Components

IDS manager란, IDS 센서로부터 데이터를 수집해 침입 발생 여부를 판단한다.

판단은 site policies에 근거한다. site policies는 침입을 정의하는 규칙과 조건들로 구성되어있다.

IDS Sensor는 네트워크에 존재하면서 데이터를 모니터링하고, 이상징후가 발견되면 IDS 매니저에게 정보를 전달한다.

IDS manager는 침입을 감지하면 경보를 울린다.

 

IDS Data

IDS에는 여러 정보가 담겨있다.

Subject(누가 이벤트를 발생시켰는지), Object(액션의 target이 누구인지), Action(어떤 액션을 수행하는지), Exception-condition(어떤 error나 exception이 액션에 의해 일어났는지), Resources-usage(얼마만큼의 리소스가 소모됐는지), Time-stamp(액션이 시작된 시간이 언제인지)를 담고있다.

 

IDS sensor로부터 전달받은 위 정보들을 종합적으로 고려하여 IDS manager는 해당 접근은 침입이 맞는지 아닌지를 판단하여 침입이 발생했다고 판단한 경우 IDS Alarm을 울린다.

 

 

Intrusions

∵⃝ masquerader: 적법한 사용자인 척 하는 공격자이다.

∵⃝ misfeasor: 적법한 사용자는 맞지만, 집단의 특정한 system을 건드려 자신이 접근하면 안되는 권한에 대해 작업을 수행하는 공격자를 말한다.

∵⃝ clandestine user: 나쁜짓(보안에 해가되는 행위)을 하고, 그 기록들인 audit files와 system logs를 지우는 일이다.

 

Intrusion 종류

∵⃝ port scans: 특정 포트들에 대해 어떤 상태인지 파악하는 행위로, 예를 들면 상태를 확인하고자 하는 포트에 SYN packet을 보내 돌아오는 응답(ex) SYN/ACK, RST, No Response)을 보고 이 포트가 정상적으로 열려있는지, rejection을 돌려주는 상태인지, 응답하지 않는 상태인지 등을 파악할 수 있음.

 

∵⃝ Dos(Denial-of-services attacks): 타겟 host에 너무 많은 요청이나 트래픽을 보내 서버에 과부하가 걸리도록 하여 정상적인 서비스를 수행하지 못하도록 만드는 상태를 말한다.

 

∵⃝ Malware attacks: Trojan horses, computer worms, viruses 등의 악성 소프트웨어에 의해 가해지는 보안 공격

 

∵⃝ ARP Spoofing: 공격자가 네트워크에서 트래픽을 자신에게로 유도하기 위해 ARP cache를 조작하는 공격이다.

ARP 테이블에서 특정 PI 주소가 실제 목적지가 아닌 자신의 MAC 주소와 연결되도록 속여 트래픽을 자신의 시스템으로 유도하고 패킷을 탈취한다.

 

∵⃝ DNS cache poisoning: host의 DNS cache에 잘못된 정보를 삽입해 사용자를 가짜 웹사이트로 유도하는 보안 공격이다.

DNS서버(조회된 도메인 이름의 IP 주소를 캐시해 저장해놓아 반복되는 조회 요청에 빠르게 응답할 수 있음.)에 가짜 DNS 응답을 보내 특정 도메인의 IP 주소를 공격자가 제어하는 서버의 IP 주소로 대체하여 공격자가 만들어놓은 가짜 웹사이트로 리디렉션되게끔 하는 공격이다.

 

 

Possible Alarm Outcomes

  Intrusion Attack
(실제 공격 일어난 경우)
No Intrusion Attack
(실제 공격 아닌 경우)
Alarm Sounded
(공격이라고 판단)
TP(True Positive) FP(False Positive)
No Alarm Sounded
(공격 아니라고 판단)
FN(False Negative) TN(True Negative)

True Positive는 높고, False Negative는 낮게끔 보안 시스템을 구축하는것은 어려운 일이다.

 

 

The Base-Rate Fallacy

기본율 오류란, 특정 조건부 사건의 확률을 평가할 때, 그 사건의 기본 발생률을 고려하지 않을 때 발생한다.

IDS에서 이 Base-Rate Fallacy가 적용될 수 있다.

IDS가 99%의 정확도를 가지고 있다고 한다면, 오류율은 1%일 것이다.

 

총 생성하는 고르 항목이 1,000,100개라고 할 때, 이 중 100개만이 실제 악의적인 이벤트라고 해보자.

IDS의 정확도는 99%이므로 100개중 99개의 악의적 이벤트를 감지해내고, 감지하지 못하는(FN) 이벤트는 1개 뿐이다.

이렇게만 보면 꽤 성능이 좋아보인다. 

 

하지만 1,000,000개의 정상적인 이벤트에 대해 1%에 해당하는 10,000를 잘못 감지해 악의적인 이벤트로 분류한다.(FP)

 

IDS가 알람을 울린 총 10,000개의 이벤트 중 실제 악의적인 이벤트는 고작 99개 뿐이므로 사실상 실제 유효한 경보는 99개인 셈이다. 사람들은 10,000번의 알람이 울릴 때 대부분이 허위경보 알람이었으므로, 실제 악의적 이벤트가 맞는 경보 알람에 대해서도 그냥 넘어가버릴 수도 있다.

 

IDS의 정확도가 높더라도 실제 악의적 이벤트의 기본 발생률이 매우 낮으면 위와 같이 많은 수의 잘못된 경보가 발생하게 되므로 성능이 좋다는 판단은 통계적 오류에 의해 잘못된 판단이라고 말할 수 있다.

 

 

Types of Intrusion Detection Systems

1) Rule-Based Intrusion Detection

blacklist 기반 침입 탐지 시스템이다.

signatue와 매칭되는 이벤트들에 대해 침입이라고 판단하여 조치를 취하는 방식이다.

signature란, virus signature같이 특정 공격에 해당하는 특징을 정의해놓은 것으로 signature에 부합하는 트래픽을 발견하면 침입이라고 감지한다.

 

2) Statistical Intrusion Detection

whitelist 기반 침입 탐지 시스템이다.

적법한 트래픽에 대한 허용 범위를 profile에 정의해놓고, 설정해놓은 정상범위에서 너무 많이 벗어나면 허용해주지 않는 방식이다. Rule-Based Intrusion Detection 방식보다 더 엄격한 기준을 가지고 통과시켜준다고 볼 수 있다.

 

 

Honeypots

꿀딴지라는 뜻 그대로, 보안공격을 시도하는 해커들을 유인하는 방법이다.

Real services와 별개로 Honeypot에 해당하는 낚시용 네트워크를 하나 더 구축해

해커들이 잘못된 경로로 빠지도록 유도한다.

마치 중요한 정보를 담고있는 네트워크지만 보안은 허술한 듯이 함정을 파놓아 해커들이 그쪽 네트워크에 대한 보안공격을 시도하게끔 유인하는 것이다.

 

 

Wireless Networks

무선 네트워크는 Radio waves를 사용해 데이터를 전송한다. 

사용자가 네트워크에 물리적으로 연결되지 않고도 접근할 수 있기때문에 위치에 구애받지 않고 네트워크 리소스를 사용할 수 있다.

 

무선 네트워크는 영역의 범위에 따라

PAN(Personal Area Network) < LAN(Local Area Network) < MAN(Matropolitan Area Network)로 나뉜다.

 

무선 네트워크의 보안적인 우려사항에 대해 생각해보자.

무선 신호는 건물 밖으로 쉽게 누출될 수 있어 무단 접근의 위험을 증가시킨다.

따라서 네트워크에 접근하려는 무단 장치를 탐지하고 관리하는 것이 중요하다.

무선 신호는 권한이 없는 디바이스에서도 감청하기가 쉽기때문에 암호화같은 보안 조치가 필요하다.

무선 네트워크는 Intercepting 공격에 특히 취약할 수 있으며,

네트워크에 접근하는 사용자의 신원을 확인하고 검증하는 절차를 갖추는 것이 중요하다.

 

 

Types of Wireless Networks

무선통신 네트워크의 종류는 크게 두가지가 있다.

- Infrastructure

client machine이 access point라고 불리우는 특별한 네트워크 디바이스까지 무선통신으로

연결되어있고, access point는 wired network와 연결되어있어, 인터넷 gateway를 제공한다. 가장 흔한 무선통신 네트워크 타입이다.

 

-Peer-to-Peer

여러 peer machine이 서로 연결되어있는 네트워크이다. 중앙서버에 의존하지 않는 분산형 접근으로 주로 파일 공유를 하거나(ex) 토렌트 시스템) 블록체인과 암호화폐같은 거래시스템도 P2P 네트워크를 기반으로 동작한다.

 

 

 

 

SSID(Service Set Identifier)

무선 네트워크를 구분하기 위한 32자의 이름이다.

공공장소에서 네트워크 검색을 가능하게 하는, 흔히 제조사 이름으로 기본 설정되어있는 wifi 이름이라고 생각하면 된다.

다수의 무선 네트워크가 동시 공존할 때 고유한 SSID로 식별이 된다.

 

SSID는 서명되지 않기때문에, 공격자가 가짜 접속점을 설치하고 진짜 ISP인것처럼 SSID를 가장해서 사용자가 이를 실제 네트워크로 오인하게 할 수 있다.

예를 들면, 공항같은 곳에서 특정 통신사 wifi인것처럼 SSID 이름을 설정해놓고, 사람이 wifi에 연결하려고 하면

아이디와 비밀번호를 입력하라고 한다던가, 유료 wifi라면서 카드 번호 입력을 유도한다던가 하는 낚시 공격이 존재한다.

혹은 사용자가 이 access point에 연결하면 공격자가 사용자의 데이터를 도청하거나 도용할 수 있다.

 

 

Eavesdropping and Spoofing

모든 wireless network traffic은 도청될 수 있고, 그렇기에 더욱 암호화같은 보안 조치가 필요하다.

많은 기업 네트워크에서는 MAC주소를 사용해 승인된 기기만 네트워크에 접근할 수 있도록 하는데,

MAC spoofing 공격에 취약하기 때문에 이 또한 보안에 안전하지는 않다.

 

 

Captive Portal

Captive Portal은 공공장소에서 제공되는 무선 인터넷 접속시, 접속 사용자가 인터넷에 접속하기 전

인증을 요구하는 웹페이지 혹은 인터페이스이다. 

예를들어, 스타벅스에 갔을 때 kt wifi 접속 시, 아래 사진과 같은 화면을 본 적이 있을것이다.

인터넷을 사용하기 전 해당 화면을 통해 사용자 인증을 거쳐야만 wifi를 이용할 수 있게하는 이런 경우가 바로

Captive Portal이다.

사용자가 wifi에 연결되면 모든 트래픽이 DHCP를 통해 IP주소를 받고, DNS 요청은 인증 서버로 매핑된다.

이 때, 사용자는 자동으로 인증페이지로 redirect되며, 인증 후에 정상적인 네트워크 서비스가 재개된다.

 

여기서 발생할 수 있는 보안 문제는, MAC address spoofing과 세션 탈취 공격이 가능하고,

DNS 트래픽을 터널링해서 Captive Portal을 우회할 수 있다는 점이다.

 

 

Wardriving and Warchalking

∵⃝ Wardrivng: 사람이 차를 타고 돌아다니면서 wifi network를 조사하는 행위를 말한다. 어떤 wifi가 허술하고, 어떤 wifi가 중요한지 등등을 기록한다. 단, 정보를 전송하거나 네트워크 서비스를 이용하지 않는 한, 법적으로 문제삼을수는 없다.

∵⃝ Warchalking: Wardriving에서 발견된 무선 네트워크 정보를 바닥이나 벽에 분필로 표시하는 행위이다.

password가 뭐고, bandwidth가 얼마고.. 등등의 정보들을 적어놓는 것이다. wifi 접근성과 보안 상태를 탐색하고, 네트워크 취약점을 발견하거나 정보를 공유하는 데 등에 사용한다.

 

어떠한 보안 공격을 취하지 않는 한, 사실상 위 두 행위에 대해 법적으로 문제삼거나 제재할 수는 없다.

 

  

 

WEP(Wired Equivalent Privacy)

현재 WEP는 안전하지 않기 때문에 거의 쓰이지 않지만, 가끔 오래된 기기에 연결할 때 종종 쓰이긴 한다.

 

WEP protocol이 보안적인 측면에서 달성하려는 목표는 아래와 같았다.

Confidentiality(도청을 방지해 데이터 비밀을 유지), Integrity(데이터 패킷이 변경되지 않다는 것을 보장), Access Control(암호화돈 패킷만 라우팅을 통해 전송되도록) 이 3가지 조건을 만족시키는 것을 목표로 한다.

 

-Setup

90년대 기술을 기반으로 해 저렴한 하드웨어 구현이 가능하다.

Access point와 client가 공유하는 key의 길이는 40bit이고, 세션중에는 한번 생성된 키가 변경되지 않는다.

IV(Initial Vector)는 24bit이다.  초기 미국 수출 통제 규정을 준수하도록 설계되었기 때문에, key의 길이가 짧아서 보안에 취약하다.

 

-Encryption 방식

메시지의 CRC-32 checksum을 계산해 Integrity를 확보하고,

24bit의 IV(초기화벡터)를 사용해 RC4 stream cipher를 통해 key stream S(K, V)를 생성한다.

key stream과, (Message내용+CRC(M))을 xor연산하여 메시지를 암호화한다.

C = (M || crc(M)) ⊕ S(K,V)

 

해당 네트워크 보안에 대해 일어날 수 있는 두가지 공격 유형에 대해 아래에서 차례대로 알아보자.

 

 

Authentication Spoofing

이 공격의 목적은, 공격자가 합법적인 client로 가장해 시스템에 접근하는 것이다.

공격자는 합법적인 client의 인증 도중 전송된 암호화된 challenge 메시지를 도청한다.

메시지는 위에서 봤던 RC4 스트림 암호를 사용해 생성된 key stream으로 xor 처리되어 암호화된다.

 

공격자는 도청한 암호화된 challenge message와 원래 challenge message를 xor 연산해서 사용된 key stream을 추출한다.

xor 연산의 경우, 같은 문자열에 대해 xor을 두번 수행하면 해당 문자열은 상쇄되어 없어지는 성질을 이용한 것이다.

C = (R || crc(R)) ⊕ S(K,V)
S(K,V) = (R || crc(R)) ⊕ C

 

 

 

WEP에서는 세션에서 key가 한번 생성되면 계속 사용한다고 했기 때문에, 추출된 key streamㅇ르 사용해 새로운 인증 요청에서 이 키스트림을 재사용함으로써 시스템에 접근을 시도한다.

 

이런 침입 방식을 방어하려면, IV(초기화 벡터)를 무작위로 선택해 key stream이 재사용되는 것을 막아야 한다.

 

 

 

Message Modification Attack

이 공격의 목적은, 중간자가 네트워크 통신 중 메시지 내용을 수정해 정보를 조작하려는 것이다.

 

공격자는 원본 메시지 M을 수정해 새로운 메시지 M'을 생성하려고 하는데, 이를 위해서 임의의 문자열 

Δ를 선택한다. M’ = M ⊕ Δ

CRC checksum은 xor 연산에 대해 분배법칙이 적용되므로 crc(M ⊕ Δ) = crc(M) ⊕ crc(Δ)이 된다.이런 연산 속성을 이용해 수정된 메시지의 CRC checksum을 공격자가 조작할 수 있게 된다.

공격자는 암호문 C를 C’ = C ⊕(Δ || crc(Δ)) = C ⊕ Δ ⊕ crc(Δ)  으로 대체함으로써 수신자가 수정된 메시지 M'을

받게 한다.

 

XOR 연산의 특성을 이용해 CRC checksum이 쉽게 조작될 수 있기 때문에 보안상 취약하다.

이같은 공격들을 방어하기 위해 강력한 암호화 인증이나 메커니즘을 통해 이를 방어할 필요가 있다.

 

따라서 WEP을 보완하여 나온 무선 네트워크 프로토콜로 WPA2, WPA3같은 보안 프로토콜이 등장하여 현재 사용되고 있다.

 

 

IP Redirection Attack

패킷의 무결성을 침해하는 공격으로, 공격자가 무선네트워크 내에서 데이터 패킷의 목적지 IP 주소를 변경해

자신의 서버로 유도하는 방식이다.

 

공격 작동 원리는 아래와 같다.

공격자는 네트워크에서 전송되는 패킷의 전체 프레임을 도청한다.

공격자는 도청한 암호화된 패킷 내에서 목적지 IP 주소를 자신이 통제하는 서버의 IP 주소로 변경한다.

수정된 패킷은 access point에 도착하면 복호화되고, 변경된 목적지 주소로 인해 공격자의 서버로 전송됨으로써

복호화된 패킷의 내용을 공격자가 획득할 수 있다.

 

IP 주소를 변경하면 데이터 무결성을 검증하는 checksum도 수정해야 하는데, 공격자는 원래 checksum과 새 checksum간의 차이를 계산해 적절히 조정한다.

checksum 변경을 계산하기 위해, 공격자는 변경 전후의 IP 주소에 대한 checksum 차이를 계산한다.

여기서 은 원래 IP 주소의 상위 및 하위 바이트를,

은 변경된 IP 주소의 상위 및 하위 바이트를 나타낸다.

xx=(DH+DL)(DH+DL)

 

공격자는 변경된 checksum과 원래 checksum의 차이를 이용해 새 checksum을 추측한다. (xx)

체크섬에 대한 추측을 여러번 시도한 후, 추측에 성공하면 access point가 패킷을 올바르게 처리하도록 만든다.

 

 

Reused Initialization Vectors

반복하여 사용되는 IV(초기화 벡터)는, key stream S(K, V)의 재사용을 가능하게 한다.

keystream이 반복 사용되면, 같은 문자열에 대해 2번 xor 연산을 수행하면 상쇄되어 없어지는 특징을 사용해

두 평문의 xor 결과값을 얻어낼 수 있는 문제가 있다.

 

IV를 랜덤값으로 생성하더라도, WEP에서 사용되는 IV의 길이가 24bit로 짧은 길이를 갖기때문에 어느정도의 반복적인 시도로 keystream을 탈취할 수 있다.

충돌 확률(collision probability) 개념에 따르면, 같은 초기화 벡터(IV)가 재사용되는 "collision" 계산 시 2의 12승 즉, 4000번의 반복정도면 keystream의 충돌값이 발생할 수 있다.

24비트 길이의 IV 공간은 224 (약 16.8백만) 개의 가능한 IV 값을 가지는데,  충돌 확률이 상당히 높아지기 시작하는 포인트는 가능한 값의 범위의 제곱근에 해당하여 2의 24승의 제곱근만큼의 계산이 수행되면 collision을 발견할 수 있다고 이야기한다.

 

Initialization Vector(IV) in WEP

초기화벡터(IV)값을 계속 바꾼다고 하더라도, S(K, V), S(K, V+1), S(K, V+2)...같이 예측하기 쉬운 규칙으로

벡터값이 변화하게 되는 경우 keystream값을 찾아내기는 어렵지 않기 때문에 이 또한 보안에 취약하다.

 

 

Slow Attack: WEP Sniffing

WEP Sniffing은 네트워크 트래픽을 감시해 충분한 수의 IV(초기화벡터)를 수집함으로써 WEP 키를 도출하려는 공격이다.

이 공격은 WEP의 약점을 이용해 충분한 데이터가 수집되면 키를 복구할 수 있다.

WEP에서는 24bits IV를 사용하기 때문에 패킷수가 증가함에 따라 IV 재사용 확률이 높아지면 보안 취약점을 야기한다.

 

실제로 WEP protocol은 보안에 취약하다는 점을 인식하여 요즘에는 거의 사용하지 않고, WPA나 WPA2같은 프로토콜로 전환되었다.

 

 

 

Fast Attack: Packet Injection

WEP 프로토콜을 사용하는 무선 네트워크에서 발생할 수 있는 Packet Injection이란,

공격자가 네트워크에 악의적인 데이터 패킷을 주입해 네트워크 보안을 위반하는 방식이다.

 

이 공격의 목적은 네트워크 보안을 침해해 무단으로 데이터를 전송 및 수정함으로써 정상 기능을 방해하는 데 있다.

 

Injection 방식은 아래와 같다.

우선 공격자가 먼저 네트워크 트래픽을 도청해 유용한 데이터패킷을 캡처해 플레인텍스트와 그에 해당하는 암호문을 획득한다.

공격자가 플레인텍스트 X와 암호문 Y를 알고있다면,

를 통해 암호화에 사용된 키 스트림 계산할 수 있다.

획득한 플레인텍스트와 keystream값을 가지고 해당 메시지에 맞는 CRC32 checksum을 계산할 수 있게 되고

이를 암호화해 암호문을 생성할 수 있다.

 

조작된 암호문을 네트워크에 주입해 네트워크가 이를 정상적인 트래픽으로 인식하도록 하고,

특히 ARP 패킷을 재전송함으로써 네트워크 장비가 ARP를 rebroadcast하도록 하고 이 과정에서 새로운 초기화벡터(IV)를 만들어낼 수 있다.

 

 

 

 

WPA(Wi-Fi Protected Access)