그래서 북한 얘기가 나와서 좀 끄적여 봄

북한 소유의 인터넷 자원 분석

이전 메일에 ipinfo.org 얘기가 나와서 좀 끄적여 봄.

호기심에 북한은 ASN 몇개를 운영하는지 봤음. Country: KP로 나오는 ASN? 4개 정도로 검색 되는데, 사실상 “정부기관”(군대에서는 북한정권을 정부라고 부르지 말라고 하는건 아는데, 딱히 대체할 단어가 없다!) 1개밖에 없는 것으로 보임. 나머지 ASN에 인도네시아 IP 주소 블록이 붙어있는 걸로 보면 그저 이동통신사의 블록들로 추정됨. 그렇다고 엄현히 북한에 붙은 ASN이기 때문에 이 블록들도 무시하면 안된다고 봄. 일단 적어도 기관 인터넷은 ASN에 있는 1024개 IPv4 주소 블록들만 다 쑤셔보면 된다는 뜻. 그리 어려운일 아니고, 이러한 까닭에 과거 한국 정부가 북한하고 사이가 별로 안좋았을 시절에 북한 사이트가 자주 털렸던 이유를 짐작할 수 있음.

내 어렸을 적 기억으로는 인터넷 커뮤니티에 북한 사이트 얘기가 나올 때마다, 실제로 링크를 타보면 접속을 못했음. 북한 사이트 쪽에서 남한 주소를 차단했던 것인지, ISP 단에서 due diligence를 이유로 차단을 했던 것인지, 정부 방침 때문에 차단 되었던 것인는 미지수. 지금은 북한 사이트라고 나와있는 .kp로 끝나는 도메인들 A 호스트하고 다 통신이 됨. 내 집 LG U+ 회선, 클라우드 회선, 유럽 회선, 호주 회선 다. 내가 그렇게 잉여인간은 아니여서 직접 다 세세히 들어가서 내용을 확인하지는 않았지만, 궁금해서 몇가지 기술적인 분석만 해봄. 당연한 얘기겠지만 .kp 사이트 모두 선전용 사이트와 껍때기 사이트가 대부분임. 항공사 사이트, 인터넷 쇼핑몰 등등.. 그냥 껍때기들.

일단 대부분의 사이트가 443포트도 서비스하는데, 우리가 쓰는 브라우저로는 https로 접속해 볼 수는 없음. 패킷을 까보니 서버가 브라우저는 지원하지 않는 이상한 cipher만을 쓰기만을 강조해서 브라우저가 협상을 못 함. 북한 정부에서 만든 백도어가 담긴 비대칭 cipher가 아닌가 추정해 봄. 실제로 돌려보고 싶으면 RedStar 3.0이 인터넷에 돌아다니는데, 그 OS에 구현체가 포함되어있 있지 않나 상상해 봄. 대부분 사이트의 http 응답 헤더에 Server: RedStar 4.0을 반환함. 이게 정말 사실이고 믿을만한 것이라면, RedStar 4.0 서버 버전을 어떻게 입수해서 적용할 수 있는 CVE들 다 찾아서 침투해 볼만하다는 뜻. 것보기에는 RedStar OS는 레드헷 리눅스를 긁어다가 포장을 한 OS로만 보이는데, 실제로는 커널 단에서 그것보다 더 많은 일이 일어나고 있다고 함. 인터넷 찾아보면 사람들이 데스크탑 버전을 좀 가지고 노는 자료를 좀 볼 수 있음. 제일 유명한게 누가 OS에 있는 링크 클릭 백도어를 발견한 내용이 있음.

그래서 4.0버전을 어떻게 입수해 볼까? 나는 잘 모르겠지만, 적어도 3.0 버전은 어떤 헤커가 실제로 내부망에 침투해서 얻어냈다는 자료가 있음. 어느정도가 사실인지는 모름. 데스크탑 에디션과 서버 에디션이 동일한 베이스인지 조차 모르는 상황에서 지금 인터넷에 돌아다니는 RedStar 3.0을 들여다 보기에는 시간이 아까운 걸로 느껴짐… 내가 북한 상황이 어떤지는 상상도 못하는 일이지만, 적어도 기간망이 너무 빈약해서 패키지 매니저 사용과 미러 운영은 꿈도 꾸지 못할까 추정됨. 패키지매니저 운영할 수 있는 데이터센터가 있을지 조차 의문. 나무위키에는 그러다보니 자원이 다 중국에 있고, 터널링을 통해서 운영된다고 카더라. 그래서 업데이트는 대부분 물리적인 매체로 하지 않을까 추정만 해봄. 하지만 RedStar 개발자들이 패키지 매니저를 실제로 구현했다면, 미러를 찾아서 소스코드나 바이너리를 뽑아낼 수 있지 않을까. 터널링이 사실이면, 중국과 북한 사이 헤저케이블 지연을 실 서버가 어디에 있는지 짐작할 수 있는 지표로 삼아볼만 함.

// 매일경제 기자분이 입수해서 한번 돌려봤다는 기사는 찾을 수 있음. 그 배포판 역시 리눅스 기준에서 상당히 오래된 것이기도 하고, 실제로 .kp tld 사이트들을 돌리는 서버 에디션은 아닌 것으로 보여서, 내가 입수된 ISO가 있다고 해도 그리 큰 의미는 없는 것으로 보임

이런 타겟들을 찾아내는 방법은 일단 DNS에서부터 시작할 수 있음. .kp 루트서버에 무차별 쿼리를 날려서 어떠한 A 레코드가 존재하는지 부터 시작하는 방법이 있음. FQDN 영역이 그리 방대하지는 않음(26^n, 36^n + 조선어 사전공격). 1024개 주소 PTR 퀴리는 이미 날려 봄. 쓸만한 정보 못찾음.

175.45.176.15: ns1.kptc.kp.
175.45.176.16: ns2.kptc.kp.
175.45.176.20: mail.futurere.com.kp. mail.silibank.net.kp.
175.45.176.21: mail1.silibank.net.kp. mail1.futurere.com.kp.
175.45.176.67: naenara.com.kp.
175.45.177.33: mail.silibank.net.kp.
175.45.178.55: mail.star-co.net.kp. mail.star-di.net.kp. mail.ryongnamsan.edu.kp.
175.45.178.56: smtp.ryongnamsan.edu.kp. smtp.star-di.net.kp. smtp.star-co.net.kp.
175.45.178.57: smtp1.ryongnamsan.edu.kp. smtp1.star-co.net.kp. smtp1.star-di.net.kp.
175.45.179.69: mail.star.edu.kp.
175.45.179.76: ns1.star.edu.kp.

알겠지만 저 레코드들 대부분 MX에 쓰려고 있는 것일거임. 실제 몇개의 머신이 이 모든 MTA를 돌릴지는 모르겠지만. 구현체 취약점 파고드는 접근도 할 수 있을 듯? 과거에 마소 DNS 구현체도 메모리 버그가 좀 발견이 되고 했었는데, .kp 루트서버 말고도 하위 ns도 몇개 돌고 있는 것을 보면 거기도 가능성이 좀 보임. 북한 인터넷은 RedStar 나오기 전부터 있었으니 인프라는 다 윈도로 돌릴 가능성이 있음. .kp 루트 서버에는 IDS가 없어서 쉽게 스캔할 수 있었음. 실제 1024주소 포트스캔은 좀 다른 문제임. 중국 만리장성 힘을 빌리는지, 조금이라도 이상징후가 포착되면 블록당함… 그러다보니 포트스캔은 봇넷이나 클라우드의 힘을 좀 빌려야 되겠음. TCP 패킷 아닌게 몇개라도 돌기 시작하면 막히는 것이 뭔가 많이 수상함. 망에 구식 프로토콜 서비스가 도는게 아닐까 의심해봄. 또 다른 접근 방법은 공개된 웹 사이트 다 크롤링해서, 서비스에 연관된 A 호스트들 죄다 찾아서 스캔해보는 것 정도. 이것도 역시 IDS가 있어서 꽤 시간이 필요한 작업.

… 북한이 북한인지라, 인프라가 인터넷에 많이 의존하지 않아서 그리 쓸만한 짓은 못하지 않나 싶음. 소문으로 존재하는 “인트라넷”까지 도달한다 해도. 북한 실력이 얼마나 좋아서 그 두 망을 어떻게 잘 분리하고 운영하고 있는지도 미지수이긴 함.

COLOPHON

Signed-off-by: David Timber
Acked-by: 0
DATE COMMIT MSG
2024-08-20 fca481ecef3c dprk-ip: initial commit