김부키
@kimbookie.bsky.social
96 followers
100 following
1.7K posts
🎮 #부키게임 📚 #부키독서 📸 #부키사진 🍚 #부키밥 📺 #부키봣슈 #부키봤슈 ✏ #부키다꾸
😎 그러나 무한리필 일상 얘기만 하는 사람
📸 사진계 : 인서타 @de.odiding
🍀2찍, 혐오자, 그 외 문제가 될 사항들 등 지뢰는 알아서 피함
Posts
Media
Videos
Starter Packs
Pinned
Reposted by 김부키
Reposted by 김부키
Reposted by 김부키
Reposted by 김부키
Reposted by 김부키
Reposted by 김부키
:prideflag_demigirl::texmoji_ko_nonbinoko:서버메이드 깐프
@perillamint.social.silicon.moe.ap.brid.gy
· 1d
# 들어가며
최근에 KT 펨토셀을 이용한 가짜 기지국 사태가 있었습니다. 이 사건에 대해 **메이저 언론 채널 (네, 지상파 채널 또한 예외는 아닙니다)** 을 포함해 많은 채널로 잘못된 정보가 퍼지고 있기에 이를 바로잡는 데 눈꼽만큼이라도 도움이 되고자 관련 기술적 내용을 이번 사건과 연결하여 글을 쓰고자 합니다.
# 이동통신 보안
우선, 가짜 기지국에 대해 이야기하기 전에 필요한 사전 지식인 이동통신 보안에 대해 알아봅시다.
참고: 이 문단의 일러스트레이션은 arXiv:2107.07416 에서 발췌하였습니다.
참고: TMSI 와 같은 인증 과정의 디테일은 여기서는 설명을 생략하도록 하겠습니다. 더불어, 현대 인증 시스템과 크게 연이 없는 CDMA 관련 내용 또한 다루지 않습니다.
### GSM
GSM 의 경우, 인증은 다음과 같은 절차를 통해 이루어집니다:
1. AuC 에서 RAND 값을 내려줍니다
2. SIM 카드는 RAND 값을 K 값과 계산하여 CK 와 RES 값을 계산합니다
3. MSC 는 해당 값을 AuC 에서 계산한 XRES 값과 비교해서 인증 통과 여부를 판단합니다.
이 인증 프로세스는 다음과 같은 문제를 가집니다.
* SIM 카드는 AuC 의 진위를 검증하지 않습니다.
더불어, 번외로, GSM 은 유도한 CK 를 사용해서 터널을 암호화하지만, 기지국의 선택에 따라, 터널 암호화를 생략할 수 있습니다. 이는 위의 문제와 결합되어 다음과 같은 문제로 이어집니다.
* Rogue BTS 에 임의의 UE 를 인증이 통과한 것으로 속여, attach 후 통신 조작을 할 수 있습니다.
### UMTS
이러한 문제를 막기 위해 UMTS 에서는 인증 과정이 다음과 같이 바뀌었습니다
UMTS 는 다음 과정을 통해 인증을 진행합니다
1. AuC 에서 RAND 와 (RAND와 K, SQN을 섞어) AUTN 을 생성합니다
2. SIM 은 AuC 의 진위 여부를 AUTN 의 MAC 부분을 비교하고, 인증 카운터 (SEQ) 가 올바른 범위인지를 통해 확인합니다. (SEQ 가 틀린 경우라면, Synch failure 오류를 통해 AuC 와 SIM 의 SEQ 를 동기화하는 과정을 거치게 됩니다)
3. AuC 가 진짜라면, RES 를 계산해 올려보냅니다. MSC는 이 RES 를 비교해 인증 통과 여부를 판단합니다.
더불어, GSM 에서는 빠져 있었던 다음 인증 외 부분이 추가되었습니다.
* 평문 전송 모드인 UEA0 은 남아있지만, (긴급 통화와 나사빠진 모뎀 펌웨어 시나리오를 제외하면) 무결성 검증 옵션 비활성화 옵션이 제거되었습니다.
* 주파수와 PCI를 통한 명시적인 다운그레이드 루트가 막혔습니다. 이는 공격자의 다운그레이드 공격 난이도를 증가시킵니다
이는, Rogue BTS 가 (다운그레이드 공격 없이) 할 수 있는 공격의 범위를 축소시킵니다.
### LTE
LTE 의 인증 과정은 UMTS 에 비해 크게 달라지지 않았지만, 다음과 같은 변경점이 있습니다
1. IK와 CK 를 통신 키로 바로 사용하는 대신, SQN^AK 값과 CK, IK, SNID 값을 섞어 KASME 키를 유도합니다.
이 변화점은 CK와 IK를 바로 사용하지 않고, KASME 로부터 KNAS 와 KeNB 를 유도하여 NAS와 RRC 키를 다르게 가져가고자 만들어졌습니다.
### NR
NR이 표준화되기 전, 세상에는 큰 변화가 있었습니다. 광대역 소프트웨어 라디오헤드들이 저렴한 가격에 풀림으로서, 소프트웨어 라디오의 민주화가 일어났습니다.
이는 Rogue cell station 의 위협을 크게 증가시켰고, 이에 따른 프라이버시 강화를 위한 SUPI 도입과 같은 여러 추가 하드닝이 적용되었습니다.
# 가짜 기지국 들여다보기
## 가짜 기지국 공격 시나리오
위에서도 잠깐 돌아보았지만, 가짜 기지국들은 각각 통신망 세대에서 다음과 같은 공격을 수행할 수 있습니다.
참고: 이 문단은 가짜 기지국이 modem firmware 와 같은 부분에 대해서 특징적인 공격을 수행하지 않는다는 전제 하에 작성되었습니다. 실제 상황에서는 modem firmware 의 취약점과 같은 부분을 이용하여 프로토콜 자체 공격 벡터 이외의 공격을 수행할 수 있는 점을 엄두에 두십시오.
참고: 이 문서는 프로토콜에 존재하는 모든 깊고 어두운 면을 짚는 문서가 아닙니다. 이 문서에서 기술하는 것 이외의 공격 벡터 또한 존재함을 엄두에 두십시오.
### GSM
가짜 기지국이 가장 많은 공격을 진행할 수 있는 프로토콜입니다. 해당 프로토콜에서는 상호 인증이 결여되어 있고, A5/0 “사이퍼” 슈트를 사용할 경우, 평문으로 통신을 진행할 수 있습니다.
이는, SIM 과 AuC 의 shared secret 인 K값을 알 수 없어, CK 를 유도할 수 없는 시나리오에도, 정상적인 기지국을 흉내내어 통신을 할 수 있음을 의미하고, 이는 GSM frame 을 자유롭게 위조 및 주입할 수 있음을 의미합니다.
이를 통해, 공격자는 단순히 identity 수집 뿐만 아니라, SMS 인젝션 혹은 통화 스푸핑 등, 많은 광범위 공격을 수행할 수 있습니다.
### UMTS/LTE
GSM 시절의 문제를 덮기 위해, 상호 인증이 도입되었습니다. 이 시점부터, (AuC 에 접근이 불가능한) 일반적인 가짜 기지국을 통해서는 공격적 접근이 불가능해집니다.
이 시점부터 가짜 기지국은 크게 두 가지로 나뉩니다: 첫째는 다운그레이드 공격을 진행하여, 취약한 GSM 을 통해 더 넓은 공격 표면을 획득하는 부류와, 둘째는, IMSI 수집(IMSI-catcher)을 통한 프라이버시 침해(IMSI 가 가짜 기지국들 사이에서 어떻게 움직이는지)와 네트워크의 가용성을 공격하는 형식의 가짜 기지국이죠.
### NR
NR 부터는 가짜 기지국이 할 수 있는 일이 크게 줄어듭니다. 더 이상 identity 정보는 평문으로 전송되지 않고, 단순 passive eavesdropping 만으로는 IMSI(정확히는, SUPI) 의 수집이 불가능해졌습니다. 이는 가짜 기지국이 프라이버시 이슈를 일으키는 데 큰 제약이 생깁니다.
# 펨토셀
다음 문단에서 다룰 KT 가짜 기지국 공격 사건을 다루기 전에, 펨토셀의 특수성에 대해 먼저 다루고 넘어갈 필요가 있습니다.
## 펨토셀의 특수성
흔히 펨토셀이라 불리는 HeNB (Home eNodeB) 의 경우, 일반적인 eNodeB 와 다르게 다음 특수성을 가집니다.
* 고객의 집이라는 제일 신뢰할 수 없는 공간에 설치됩니다.
* CPRI 를 통해 I/Q 스트림을 전송하는 RRU 와 다르게, 코어망에 직접 연결됩니다.
이는, 해당 장비는 EPC(Evolved Packet Core) 로 직행하는 S1-U 링크에 접근할 수 있음을 의미하며(대체로 IPSec 으로 보호되지만, 해당 터널은 펨토셀 내부에서 종결됩니다), S1-U 에는 UE(여러분의 휴대폰) 와 MME(대충 기지국이라고 생각하시면 됩니다) 와의 공유된 비밀키로 암호화되어 통신되는 전파단과는 다르게, 평문 형태의 데이터가 흐르고 있습니다.
이는, 해당 장비에 대해 공격을 성공할 경우 (그리고 공격자는 일반적인 eNodeB 세트가 위치한 데이터센터 서버랙에 접근할 필요 없이 집에서 공격을 수행할 수 있습니다), 공격자가 S1-U 링크를 보호하는 IPSec 터널 내부에 접근할 수 있음을 의미합니다. 이는 이제 아래에서 설명할 KT 가짜 기지국 공격 사건에서 큰 역활을 하게 됩니다.
# KT 가짜 기지국 공격 사건
최근, KT 사건의 경우에는, 일반적인 가짜 기지국이 아닌, 특수한 형태의 가짜 기지국이 사용되었습니다. 일반적인 가짜 기지국의 경우, 코어망에 접근을 할 수 없기에, 공격 벡터가 제약적이지만, 위에서 설명한, 펨토셀의 IPSec 크레덴셜을 이용해 코어망에 접근할 수 있는 경우, 공격 시나리오가 달라지게 됩니다. 공격자는 S1-U 링크에 직접적으로 액세스하여 AuC 와 통신해 에어링크를 암호화하는 키를 획득할 수 있고, 이는, 공격자의 셀에 접속한 모든 UE 들의 통신을 들여다볼 수 있게 됨을 의미합니다. (S1-MME 인터페이스의 경우, KNAS 로 암호화되어 있어, MME 까지 이어지지만, 많은 경우에서 SMS over SGs 를 사용하고 있지 않기에, 안타깝게도, 뒤의 VoLTE 이슈로 이어지게 됩니다)
이는, 데이터 통신 상으로는, 암호 없는, 혹은 신뢰할 수 없는 퍼블릭 와이파이 액세스포인트에 접속하는 것보다 약간 더 나쁜 시나리오인데, 와이파이 액세스포인트와는 다르게, 사용자의 직접적 상호작용 없이 Rogue cell 으로의 접속이 이루어지게 되기 때문입니다.
다행히도, 우리는 암호화 통신이 일상화된 세상에서 살고 있기 때문에, 이것 자체로는 큰 영향을 끼치기 힘듭니다.
하지만…
## VoLTE
한국은 CDMA2000 독박을 써 버려, 가능한 한 빠르게 CDMA 통신을 죽여버리고 싶었던 한 통신사와 아무튼 “세계 최초” 타이틀 뺏기기 싫었던 나머지 두 통신사 때문에, VoLTE 상용화에 있어 지나치게 서둘렀습니다.
이 과정에서 당연히 보안성에 대한 고려는 뒷전이 되었고, 이는 한국 TTA-VoLTE 프로파일이 타 국가의 통신사(주의: 저 또한 모든 통신사의 VoLTE 프로파일에 대해 조사를 진행하지 못했음을 미리 알려드립니다) 와 비교하였을 때, 한 가지 크리티컬한 부분을 빠뜨리는 결과를 낳았습니다.
이 차이에 대해, Qualcomm modem 에서 추출된 VoLTE 프로파일을 비교해 보며 살펴봅시다. (흔히 외산 폰에 TTA-VoLTE 지원을 추가할 때 “MBN 패치” 라고 부르는 것이 바로 이 VoLTE 프로파일을 프로그램하는 절차입니다)
제한 사항: 한국 VoLTE 프로파일 구현은 매우 다양한 방법으로 비틀려 있습니다. 비록 Qualcomm 모뎀 내장 프로필이 이렇게 되어 있더라도, 유저랜드에서 VoLTE 를 구현한 갤럭시와 같은 경우, 설정이 이와 같지 않을 수 있습니다!
RedmiS2 에서 추출된 태국 DTAC 의 VoLTE 프로파일. ImsWithIpSec 플래그를 확인할 수 있다 Mi5 에서 추출된 한국 KT 의 VoLTE 프로파일. ImsWithoutIpSec 플래그를 확인할 수 있다
다음과 같이, KT 의 VoLTE 프로파일에는 VoLTE 연결을 IPSec 터널으로 감싸지 않도록 설정되어 있는 것을 확인할 수 있습니다. 이는 위의 노출된 S1-U 링크 이슈와 맞물려 다음 문제를 일으킵니다
## SIP Hijacking
주의: 이 문단은, 공격 방식에 대한 추측입니다. KT 공격에 대한 가설이지, 반드시 이 공격 방법이 사용되었다는 의미는 아닙니다!
VoLTE 는 기본적으로 SIM 안의 크레덴셜을 통해 인증된 SIP 를 통해 통신하는 인터넷 전화입니다. (SIP over TLS와 함께하는 SRTP 같은 별도의 암호화를 진행하지 않았다면) UDP 를 통해 흘러가는 SIP 세션 연결을 엿보거나, 하이잭 가능하다는 것은 매우 잘 알려진 사실이며, 이는 공격자에게 다음과 같은 공격이 가능하게 합니다.
* SIP 메시지 스니핑을 통해, SMS 내용을 엿보거나, RTP 세션 스니핑을 통해 통화를 엿들을 수 있습니다.
* SIP 세션 하이재킹을 통해, SIP 를 통해 전달되는 SMS 를 먹어버리거나, 전화를 대신 받거나, 가짜 전화를 걸거나, 가짜 SMS 를 주입하는 등의 공격이 가능합니다.
현재로는, 이 방식으로 공격자들이 KT 사용자들을 공격하여 소액결제 사기를 수행한 것으로 **추측** 되는 상황입니다.
이러한 공격을 막기 위해서는, 다른 통신사들과 같이 SIP 세션을 IPSec 에 터널링하는 (물론, 터널링하는 코스트로 인해 인프라 지출이 증가하겠지만) 것이 필요합니다.
## 언론에 소개된 가짜 기지국 이슈 돌아보기
한국 언론은 이 사건에 대해 보도할 때, 충분히 검증된 정보를 전달하는 데 실패하였습니다. 위에서 돌아봤듯이, 일반적인 가짜 기지국 솔루션들은 코어망에 접근하는 대신, 수동적인 아이덴티티 수집 및 액티브한 공격을 위해 다운그레이드 공격을 이용합니다. 해당 공격 방법들은 오래된 방법으로
하지만, 한국 언론에서는, 온라인을 통해 구매할 수 있는 IMSI-catcher/GSM 다운그레이드를 통한 SMS 블라스터 솔루션을 이용해 이번 KT 소액결제 사기 사건과 같은 공격을 할 수 있는 것처럼 부풀리거나 (힌트: SMS 블라스터는 SMS 를 주입하는 것만 가능하고 SMS 를 가로챌 수는 없는 장치입니다. 더불어, 2G 다운그레이드를 통해야 하므로 매우 어그로를 끄는 방법이기도 하고요), (추후 포스트에서 다룰 예정인) IMSI/IMEI 만으로 “휴대폰 복제”가 가능하다는 등, 대중에게 잘못된 정보를 전달하였습니다. 이는 언론사가 사실을 전달하는 대신, FUD(Fear, Uncertainty and Doubt) 를 퍼뜨린, 안 좋은 사례입니다.
# 보너스: VoWiFi?
재미있게도, VoWiFi 의 경우, IPSec 터널을 통해 SIP 연결을 보호하는 것이 de-facto default 입니다 (주의: 한국의 VoWiFi 솔루션 – 홈파이콜 – 과 같은 별도 앱을 사용해 연결하는 솔루션에 대해서는 검증되지 않았습니다.) 이는, 많은 대중들의 믿음과는 다르게, 올바르게 설정된 VoWiFi 를 통해서는(IPSec NULL cipher 를 허용한다거나 하는 미친 짓을 안 한다는 전제 하에) SMS 하이재킹과 같은 이슈가 일어나기 매우 어렵다는 것을 의미합니다.
# 마치며
이동통신 프로토콜은 https://etsi.org 라는 곳에 방문하시면 (3GPP 의 [편집됨] 같은 문서와는 다른) 사람이 읽을 수 있는 형태의 문서를 무료로 읽어보실 수 있습니다. 여러분도 이 글을 있는 그대로 받아들이기보다는, ETSI 문서와 함께 보며 즐겨주시길 부탁드립니다.
blog.quendi.moe
Reposted by 김부키
Reposted by 김부키