건 곳은 109군데 그대로, 벨만 24배 울렸다
9월 10일, 원격 데스크톱 포트를 두드린 기록이 하루 34,811건이었습니다. 8월 26일부터 9월 8일까지 14일치를 전부 더한 21,483건의 1.62배인데, 두드린 곳은 109곳으로 평소 범위 안쪽이었어요. 찾아온 곳이 늘어난 게 아니라 한 곳이 319번씩 눌렀던 날의 기록입니다.

집 전화기에 부재중 기록이 300통 쌓여 있다고 해 봅시다.
이걸 읽는 방법이 두 가지입니다. 300명이 한 번씩 걸었을 수도 있고, 세 사람이 100번씩 걸었을 수도 있어요. 부재중 숫자만 보면 두 경우가 똑같이 300통입니다.
통화 수를 세면 안 됩니다. 번호를 세야 구분이 됩니다.
어제 우리 서버에서 벌어진 일이 정확히 이겁니다. 벨은 24배 더 울렸는데, 건 번호는 109개로 평소와 같았습니다.
먼저, 벨이 몇 번 울렸나
사실 우리는 허니팟 서버 두 대를 돌립니다. 허니팟은 일부러 열어 두고 누가 뭘 하는지 지켜보는 미끼 서버예요. 그중 한 대(센서 02)의 원격 데스크톱 포트를 두드린 기록이 어제 34,811건이었습니다. 원격 데스크톱은 집에서 회사 컴퓨터 화면을 그대로 불러오는 그 기능이고, 포트 번호는 3389입니다.
사실 숫자만 보면 감이 안 오니까 옆에 견줄 걸 놓겠습니다. 8월 26일부터 9월 8일까지 14일 동안 이 문이 두드려진 횟수를 전부 더하면 21,483건입니다. 하루 평균 1,534번꼴이에요.
사실 어제 하루가 그 14일치 합계의 1.62배입니다. 직전 최고치였던 8월 31일의 3,410건과 견주면 10.21배, 9월 8일의 1,443건과 견주면 24.1배입니다.
사실 하루를 초로 나눠 보면 이렇습니다. 34,811번이면 2.5초에 한 번씩 하루 종일 벨이 울린 셈입니다.
사실 14일치를 순서대로 늘어놓으면 어제가 얼마나 튀는 값인지 눈에 보입니다.
| 날짜 | 두드린 횟수 |
|---|---|
| 8월 26~30일 | 1,221 · 1,425 · 2,114 · 1,064 · 2,139 |
| 8월 31일 | 3,410 (직전 최고치) |
| 9월 1~5일 | 2,030 · 808 · 568 · 795 · 918 |
| 9월 6~8일 | 1,474 · 2,074 · 1,443 |
| 9월 10일 | 34,811 |
사실 9월 9일이 빠져 있는 게 보이실 겁니다. 그날 기록 파일이 우리 아카이브에 없습니다. 그래서 이 글의 ’직전’은 전부 9월 8일 기준입니다. 9일에 무슨 일이 있었는지는 이 글이 답할 수 없어요.
그런데 건 번호는 109개였다
사실 여기가 어제의 핵심입니다. 그 34,811번을 만든 고유 출발지는 109곳이었습니다. 지난 14일 동안 이 값은 102곳에서 164곳 사이를 오갔어요. 어제 값은 그 안쪽이고, 오히려 두 번째로 적은 값입니다.
사실 나눠 보면 답이 나옵니다.
| 날짜 | 두드린 횟수 | 두드린 곳 | 한 곳당 | 한 곳 기준 간격 |
|---|---|---|---|---|
| 8월 31일 | 3,410건 | 164곳 | 20.8회 | 1시간 9분에 한 번 |
| 9월 8일 | 1,443건 | 110곳 | 13.1회 | 1시간 50분에 한 번 |
| 9월 10일 | 34,811건 | 109곳 | 319.4회 | 4분 30초에 한 번 |
추정 전화기로 돌아가 보겠습니다. 9월 8일에는 110명이 각자 하루에 열세 번쯤 걸었습니다. 어제는 같은 109명이 각자 319번씩 걸었어요. 한 사람이 4분 30초마다 한 번씩, 자정부터 자정까지 쉬지 않고 다시 건 셈입니다. 건 사람 수는 그대로인데 한 사람이 하는 일이 24.4배가 됐습니다.
추정 9월 6일 글에서는 정확히 반대 모양을 적었습니다. 그날은 사람이 늘고 한 사람이 하는 일은 얇아졌어요. 어제는 사람은 그대로인데 한 사람이 두꺼워졌습니다. 총합만 보면 둘 다 “늘었다”인데, 막는 방법은 서로 다릅니다.
발신자 이름 칸에 적힌 것
사실 원격 데스크톱은 접속을 시작할 때 짧은 문자열 하나를 같이 보냅니다. ’쿠키’라고 부르는 칸인데, 거는 쪽이 자기가 채워 넣는 값이에요. 휴대폰 화면에 뜨는 발신자 이름과 성격이 같습니다.
사실 어제 그 칸에 적혀 온 값입니다.
| 적혀 온 값 | 횟수 |
|---|---|
mstsc |
32,042 |
<ip> |
418 |
hello |
16 |
Administr |
6 |
| 빈 값 | 4 |
Test |
3 |
사실
합이 32,489건입니다. 어제 원격 데스크톱 접촉 34,811건의 **93.3%**이고, 나머지 2,322건(6.7%)에는 이 칸이 비어 있었습니다. mstsc 하나가 전체 접촉의 92.0%, 값이 기록된 것만 놓고 보면 **98.6%**예요.
사실
mstsc는 윈도우에 원래 들어 있는 원격 데스크톱 프로그램의 실행 파일 이름과 같은 문자열입니다.
사실 그리고 이 이름은 어제 갑자기 나타났습니다. 직전 사흘의 같은 칸은 이랬어요.
| 날짜 | 적혀 온 값 |
|---|---|
| 9월 6일 | hello 897 · <ip> 427 · Administr 3 · 빈 값 3 · nmap 1 · eltons 1 — mstsc 0건 |
| 9월 7일 | hello 1,391 · <ip> 448 · mstsc 11 · eltons 2 · 빈 값 2 · Test 2 |
| 9월 8일 | hello 845 · <ip> 442 · 빈 값 5 · 무작위 9자리 3 — mstsc 0건 |
사실 우리 기록에서 이 이름의 하루 최대는 11번(9월 7일)이었습니다. 어제는 32,042번입니다.
추정
Administr 6건은 이 칸이 아홉 글자에서 잘리는 자리에 계정 이름을 적었을 때 나오는 모양으로 읽습니다. Administrator의 앞 아홉 글자거든요. 다만 우리는 협상 원문을 내보내지 않기 때문에 확정할 수 없습니다.
추정
여기서 한 번 멈추겠습니다. 이 칸의 값이 mstsc라는 건 상대가 그렇게 적어 보냈다는 뜻이지, 상대가 실제로 그 프로그램을 썼다는 증거가 아닙니다. 발신자 이름에 ’택배’라고 뜬다고 해서 택배 기사인 건 아닌 것과 같아요. 우리가 가진 건 문자열의 분포뿐입니다.
한 번호가 다 걸었을까
사실 어제 센서 02에 가장 많이 접촉한 별칭은 ATK-E37B01(149.50.x.x)로 34,229건이었습니다. 이 서버의 하루 전체 100,752건 중 **34.0%**예요.
사실 2위부터는 8,090 · 7,995 · 7,323 · 5,364 · 5,316 · 2,844 · 2,840 · 2,163으로 이어지다가, 10위부터 681 · 648 · 238로 뚝 떨어집니다. **상위 12곳이 만든 게 77,731건(77.2%)**이고, 나머지 599곳이 만든 건 다 합쳐 23,021건입니다. 한 곳당 평균 38.4건이에요.
추정 1위의 34,229건과 어제 원격 데스크톱 총량 34,811건은 582건 차이입니다. 숫자가 이렇게 맞아떨어지면 어제 늘어난 몫의 대부분이 이 한 곳에서 나왔다고 읽고 싶어집니다.
사실 그런데 말할 수 없습니다. 우리 데이터에는 출발지별로 어느 서비스를 두드렸는지가 적혀 있지 않아요. 이 별칭이 원격 데스크톱을 두드린 건지 화면공유를 두드린 건지 데이터가 알려주지 않습니다. 숫자가 가깝다는 정황뿐입니다.
옆 회선들은 어땠나
사실 이 서버는 문을 여섯 개 열어 뒀습니다. 어제 하루 접촉은 100,752건, 고유 출발지는 611곳이었어요. 하루를 초로 나누면 0.86초에 한 번입니다. 여섯 서비스의 접촉을 더하면 정확히 100,752로 총계와 맞습니다.
| 문 (서비스) | 포트 | 두드린 횟수 | 두드린 곳 | 한 곳당 |
|---|---|---|---|---|
| VNC (화면공유) | 5900 | 65,487건 (65.0%) | 387곳 | 169.2회 |
| RDP (원격 데스크톱) | 3389 | 34,811건 (34.6%) | 109곳 | 319.4회 |
| SMB (파일 공유) | 445 | 198건 | 42곳 | 4.71회 |
| LDAP (계정 조회) | 389 | 166건 | 12곳 | 13.8회 |
| MSSQL (데이터베이스) | 1433 | 59건 | 43곳 | 1.37회 |
| ADB (안드로이드 디버깅) | (미기록) | 31건 | (미기록) | — |
사실 같은 날 같은 서버인데 문마다 성격이 딴판입니다. 데이터베이스 문은 43곳이 딱 59번 두드렸어요. 한 곳이 1.37번씩만 건드리고 지나간 겁니다. 계정 조회 문은 12곳뿐인데 166번으로 소수 집중형이고, 이 166건은 14일 밴드(5~222건) 안쪽 위편입니다.
사실 어제 뛴 것은 화면공유가 아닙니다. 화면공유는 65,487건 · 387곳으로 9월 8일의 65,322건 · 416곳과 사실상 같아요. 접촉은 0.25% 늘었고 출발지는 7.0% 줄었습니다.
사실 이 문은 8월 26일 40,791 → 9월 6일 48,605 → 9월 7일 58,811 → 9월 8일 65,322으로 계속 오르던 곡선이었는데, 이틀째 65,400 부근에서 멈춘 모양입니다.
상대가 스스로 말한 버전
사실
화면공유는 연결하기 전에 서로 “나는 몇 번 버전으로 대화할게” 하고 합을 맞춥니다. 어제 상대가 제안한 버전은 003.003이 63,144회, 003.008이 1,852회였어요. 버전이 기록된 64,996건의 **97.2%**가 가장 오래된 쪽입니다. 491건은 버전이 기록되지 않았습니다.
사실
파일 공유 쪽도 같은 모양입니다. 상대가 제안한 방언(대화 방식)은 336건인데, 그중 최신 계열인 SMB 2.???는 **2건(0.6%)**뿐입니다. 나머지 334건은 NT LM 0.12 73 · LANMAN1.0 65 · LM1.2X002 65 · PC NETWORK PROGRAM 1.0 33 · Windows for Workgroups 3.1 33 · LANMAN2.1 33 · LANMAN 32처럼 옛 어휘였어요.
추정 가장 낡은 버전을 먼저 내미는 건 오래된 시스템한테까지 대답을 받아 내려는 범용 도구의 행동에 가깝습니다. 아무 번호로나 전화를 돌리면서 제일 알아듣기 쉬운 말로 먼저 말을 거는 것과 비슷해요. 우리 서버가 구식이라는 뜻도 아니고, 특정 취약점을 노렸다는 뜻도 아닙니다. 어제 접촉을 어떤 CVE와도 연결하지 않습니다.
이 서버가 어제 건진 파일 하나
사실
센서 02가 어제 저장한 파일은 딱 하나입니다. 46,582바이트짜리(7a48c93c…)이고, 별칭 ATK-2DD9A8이 한 번 놓고 갔어요.
사실 이 해시는 9월 3일 기록에 **“아카이브 18일치에 한 번도 없던 새 파일”**로 적혀 있던 것과 같은 값·같은 크기입니다. 그때 배달한 별칭은 ATK-5A7674였어요. 일주일 만의 두 번째 관측입니다.
사실 그리고 여기서 한 번 더 멈춰야 합니다. 이 서버는 문을 실제로 열어 주지 않습니다. 저상호작용 방식이라 로그인 성공도, 명령도, 자격증명도 애초에 존재하지 않아요. 여기서 말할 수 있는 건 “어느 문을 몇 곳이 몇 번 두드렸나”와 “상대가 뭐라고 말을 걸었나”까지입니다. 벨이 몇 번 울렸는지는 세지만, 받은 적이 없으니 무슨 이야기를 하려던 건지는 기록될 수 없습니다.
실제로 받는 전화기 — 센서 01
옆에 있는 서버 한 대는 전화를 받습니다. 문이 실제로 열리고, 열린 다음의 행동이 남아요.
사실 어제 이쪽에는 세션 2,412건이 들어왔습니다. 고유 출발지 296곳, 로그인 시도 2,017회, 명령 2,293개, 화면 녹화 1,783건입니다.
사실 로그인 시도 2,017회는 하루로 나누면 43초에 한 번꼴입니다. 명령 2,293개는 38초에 한 번이에요. 급하지도 쉬지도 않는 속도입니다.
사실 포트별로는 2222번(SSH) 2,071건 + 2223번(텔넷) 341건 = 2,412로 총계와 정확히 맞습니다. SSH가 85.9%, 텔넷이 14.1%이고, 세션의 **73.9%**에 화면 녹화가 남았어요.
사실 문이 열린 다음에 무슨 일이 있었는지 종류별로 세면 이렇습니다.
| 무엇을 했나 | 횟수 | 견줄 것 |
|---|---|---|
| 정찰 — 시스템 살펴보기 | 1,700회 | 전체 명령 2,293개의 74.1% |
| 실행 권한 부여 | 191회 | 다운로드 23회의 8.3배 |
| 다운로드 후 실행 | 23회 | — |
| 파일 다운로드 | 23회 | 위와 정확히 같다 |
| 지속성 — SSH 키 심기 | 18회 | — |
| 흔적 삭제 | 17회 | — |
| 방어 무력화 | 1회 | 어제 딱 한 번 |
사실 합이 1,973으로 전체 명령의 86.0%입니다. **정찰 하나가 전체 명령의 74.1%**예요. 9월 6일의 1,374회, 8월 28일의 995회보다 큰 값입니다.
사실 ’실행 권한 부여’는 파일에 “이건 실행해도 되는 파일이야”라는 표시를 붙이는 동작입니다. 리눅스에서는 이 표시가 없으면 프로그램이어도 그냥 안 돌아갑니다.
사실 ‘파일 다운로드’ 23회와 ‘다운로드 후 실행’ 23회가 정확히 같습니다. 내려받은 것은 예외 없이 실행 단계로 갔다는 뜻이에요. 이 두 값이 맞아떨어지는 건 8월 22일 이후 대부분의 날에 반복됩니다.
18분 안에 세 번, 같은 모양으로
사실 0시 41분 45초부터 44분 45초까지, 180초짜리 텔넷 세션이 있었습니다(ATK-B108F9, 180.233.x.x). 로그인에 성공했고 명령 26개, 다운로드 1건입니다. 순서는 파일 내려받기 → 실행 권한 주기 → 실행 세 단계였어요.
사실
같은 모양이 18분 안에 세 번 반복됐습니다. 0시 55분 57초에 ATK-F5E7E2(85초 · 명령 31개), 0시 59분 12초에 ATK-B949E7(68초 · 명령 31개)입니다. 셋 다 hxxp://185[.]93[.]89[.]72/wget의 306바이트 셸 스크립트를 배달한 8개 별칭 안에 들어 있어요.
사실 8시 19분 36초부터 20분 39초까지, 63초짜리 세션 하나는 의도가 다섯 가지(정찰 · 파일 다운로드 · 실행 권한 부여 · 다운로드 후 실행 · SSH 키 심기)나 붙은 어제 유일한 세션이었습니다(ATK-6BC9D8, 108.165.x.x). 그런데 저장된 다운로드는 0건입니다. 내려받기 의도는 분류됐는데 파일이 없어요.
사실 11시 08분 00초부터 09분 06초까지, 66초짜리 세션(ATK-6C52B2, 91.81.x.x)은 어제 완결성 점수가 가장 높았고(42점) 다운로드가 11건이었습니다. 그런데 붙은 의도는 ‘방어 무력화’ 하나뿐이에요. 어제 방어 무력화 명령 총계가 1회니까, 그 1회가 이 세션입니다.
사실 이 세션이 11번 받아 간 건 전부 1바이트짜리 빈 파일이었습니다. 1바이트면 글자 하나 분량이에요. 가장 많이 움직였는데 손에 쥔 건 빈 파일이라는 이 형태는 8월 17일 · 8월 22일 · 9월 6일 기록에도 있습니다.
어제 들어온 것을 다 합쳐도 705바이트
사실 어제 이 서버에 저장된 파일은 4종이고, 실행 바이너리는 0개입니다. 네 개의 크기를 다 더하면 705바이트 — 문자 메시지 네댓 줄 분량이에요. 옆 서버가 어제 건진 파일 하나(46,582바이트)의 66분의 1입니다.
사실
네 개가 전부 전에 본 적 있는 해시입니다. 389바이트 공개키(a8460f44…)는 아카이브 24개 파일 전부에 있고 어제만 17개 별칭이 17번 배달했어요. 306바이트 셸 스크립트(a6296a79…)는 23개 파일에 같은 해시로 있고 어제 8개 별칭이 배달했습니다. 1바이트 빈 파일은 13개 파일에, 9바이트 텍스트는 22개 파일에 기록돼 있습니다.
사실
389바이트짜리는 SSH 공개키입니다. 쉽게 말하면 비밀번호 없이 들어올 수 있는 여벌 열쇠예요. 서버의 authorized_keys(허용된 열쇠 목록)라는 파일에 이 값을 한 줄 적어 넣으면, 그 열쇠를 가진 쪽은 이후 비밀번호를 묻지 않아도 들어옵니다.
가장 많이 온 표식과, 물건을 놓고 간 표식
사실 접속해 온 프로그램마다 지문이 하나씩 남습니다. 상대 프로그램이 “나는 이런 방식으로 대화한다”고 먼저 알려주는 값들을 한 덩어리로 요약한 값이에요.
사실
어제 기록된 지문 12개 중 가장 많은 곳에서 온 건 acaa53e0…(SSH-2.0-OpenSSH_7.4)로 112곳이었습니다. 이 서버 전체 출발지 296곳의 **37.8%**예요. 그런데 이 묶음이 놓고 간 검체는 한 건도 없습니다.
사실
어제 실제로 파일을 놓고 간 표식은 16443846…(SSH-2.0-Go) 하나뿐이고, 이 표식을 달고 온 곳은 3곳이었습니다.
사실 이 값은 프로그램 빌드의 지문이지 사람의 지문이 아닙니다. 같은 배포판이 기본으로 넣어주는 SSH를 쓰는 사람들은 서로 아무 관계가 없어도 같은 값을 갖습니다. 112곳을 한 조직으로 읽으면 안 됩니다.
사실 그리고 텔넷에는 이 지문이 아예 안 남습니다. 그래서 위에 적은 눈에 띄는 세션 5건은 지문 칸이 전부 빈 문자열이에요. 이 세션들을 어느 묶음에도 붙일 수 없습니다.
어떤 비밀번호로 들어오려 했나
사실 어제 시도된 아이디·비밀번호 조합은 1,836종이었습니다. 그중 여기 싣는 건 8종뿐입니다. 나머지 1,828종은 개수만 셉니다.
이유는 하나입니다. 서로 다른 IP 3곳 미만에서만 보인 조합은 실제로 어딘가에서 유출된 진짜 계정일 수 있습니다. 그런 값은 우리 글에 옮기지 않습니다.
아래 8종은 반대쪽이에요. 여러 곳에서 반복돼서 **‘누구의 것도 아닌 출고 기본값’**이라고 볼 수 있는 것들입니다.
| 아이디 | 비밀번호 | 서로 다른 출발지 |
|---|---|---|
| 345gs5662d34 | 345gs5662d34 | 17곳 |
| admin | admin | 16곳 |
| root | 3245gs5662d34 | 9곳 |
| root | 123456 | 7곳 |
| admin | (빈 값) | 3곳 |
| support | support | 3곳 |
| root | root | 3곳 |
| root | default | 3곳 |
추정 여기서 숫자 하나를 붙여 보겠습니다. 이 8종의 시도를 다 더하면 101회입니다. 어제 로그인 시도가 2,017회였으니, 나머지 1,916회가 1,828종에 흩어져 있습니다. 조합당 평균 1.05회예요.
추정 같은 비밀번호를 여러 번 두드린 게 아니라 서로 다른 비밀번호를 한 번씩 훑고 간 모양입니다. 어제 쓰인 조합의 99.6%가 하루에 사실상 한 번씩만 쓰였어요. 이건 우리를 겨냥해 만든 목록이 아니라 어디서나 통하는 값을 순서대로 넣어 보는 사전입니다.
어제 하루 전체
사실 전화를 실제로 받는 쪽(센서 01)의 하루 집계입니다.
| 항목 | 어제 | 견줄 것 |
|---|---|---|
| 세션 | 2,412건 | 한 곳당 8.1건 |
| 고유 출발지 | 296곳 | — |
| 로그인 시도 | 2,017회 | 43초에 한 번 · 조합 1,836종 |
| 명령 | 2,293개 | 38초에 한 번 · 의도가 붙은 건 1,973개(86.0%) |
| 포트 2222 (SSH) | 2,071세션 | 전체의 85.9% |
| 포트 2223 (텔넷) | 341세션 | 그런데 눈에 띈 세션 5건이 전부 이쪽 |
| 화면 녹화 | 1,783건 | 세션의 73.9% · 열람 가능한 건 250건 |
| 보관된 검체 | 115개 | 어제 새로 저장된 건 4종·705바이트 |
사실 옆 서버(센서 02)의 100,752건은 세는 단위가 달라서 더하지 않습니다. 이쪽은 ’세션’이고 저쪽은 ’접촉’이에요. 원본 데이터도 같은 이유로 합산을 금지하고 있습니다.
사실 두 서버를 합친 고유 출발지는 최대 907곳입니다. 두 서버에 같은 곳이 겹쳐서 왔는지를 데이터가 알려주지 않아서 그냥 더한 상한이에요. 겹친 만큼 실제 숫자는 더 작습니다. 아카이브 24일치 최대가 9월 6일의 897곳이었으니 어제가 새 최대값입니다.
사실 그리고 이 서버 두 대는 어디에도 주소를 알린 적이 없습니다. 광고한 적도, 링크를 걸어 둔 적도 없어요.
시간 순서로 늘어놓으면 이렇게 됩니다. ’아카이브 대조’라고 적힌 줄을 눈여겨보세요 — 어제 하루만 봐서는 안 보이고, 지난 기록과 나란히 놓아야 보이는 것들입니다.
- 사실 접촉 100,752건 / 고유 출발지 611곳. 서비스별로 VNC(5900) 65,487건 · RDP(3389) 34,811건 · SMB(445) 198건 · LDAP(389) 166건 · MSSQL(1433) 59건 · ADB 31건이며, 이 여섯을 더하면 정확히 100,752 로 총계와 일치한다. RDP 가 전체의 34.6%, VNC 가 65.0%다
- 사실 RDP 34,811건은 관측 14일치(8/26~9/8: 1,221 · 1,425 · 2,114 · 1,064 · 2,139 · 3,410 · 2,030 · 808 · 568 · 795 · 918 · 1,474 · 2,074 · 1,443) 합계 21,483건의 1.62배다. 직전 최고치는 8/31 의 3,410건으로 오늘은 그 10.21배, 9/8 의 1,443건과 비교하면 24.1배다
- 사실 RDP 고유 출발지는 109곳이다. 14일 밴드는 102~164곳이고 오늘 값은 두 번째로 적다. 출발지당 접촉 수는 34,811 ÷ 109 = 319.4회로, 9/8 의 13.1회(1,443÷110) · 8/31 의 20.8회(3,410÷164)와 자릿수가 다르다
- 사실 RDP 협상에서 기록된 쿠키 값은 mstsc 32,042 · <ip> 418 · hello 16 · Administr 6 · 빈 값 4 · Test 3 으로 합 32,489건이며 RDP 세션 34,811건의 93.3%다. 나머지 2,322건(6.7%)에는 쿠키 값이 기록되지 않았다. mstsc 하나가 RDP 전체의 92.0%, 기록된 쿠키의 98.6%다
- 사실 쿠키 분포가 하루 만에 뒤집혔다. 9/6 은 hello 897 · <ip> 427 · Administr 3 · 빈 값 3 · nmap 1 · eltons 1 로 mstsc 가 0건, 9/7 은 hello 1,391 · <ip> 448 · mstsc 11 · eltons 2 · 빈 값 2 · Test 2, 9/8 은 hello 845 · <ip> 442 · 빈 값 5 · 무작위 9자리 3 으로 mstsc 가 0건이었다. 오늘은 mstsc 32,042 · hello 16 이다
- 추정 mstsc 는 윈도우 기본 원격 데스크톱 클라이언트의 실행 파일 이름과 같은 문자열이다. 이 값이 클라이언트가 접속 요청에 스스로 적어 넣는 필드에 담겨 온 것이지, 상대가 실제로 그 프로그램을 썼다는 증거는 아니다. 'Administr' 6건은 이 필드가 9자에서 잘리는 자리에 계정 이름을 적었을 때 나오는 모양으로 읽힌다 — 원문 프레임은 내보내지 않으므로 확정할 수 없다
- 사실 최다 접촉 별칭 ATK-E37B01(149.50.x.x)이 34,229건으로 02 전체 100,752건의 34.0%다. 2위부터 8,090 · 7,995 · 7,323 · 5,364 · 5,316 · 2,844 · 2,840 · 2,163 이고 10위부터 681 · 648 · 238 로 급락한다. 상위 12곳 합은 77,731건(77.2%)이며 나머지 599곳이 23,021건, 한 곳당 평균 38.4건이다
- 추정 1위 별칭의 34,229건과 RDP 총량 34,811건은 582건 차이다. 오늘 RDP 급증분의 대부분이 이 한 출발지에서 나왔을 가능성이 크다고 읽는다. 다만 데이터에 출발지별 서비스 매핑이 없어 이 별칭이 RDP 를 두드린 것인지 VNC 를 두드린 것인지 확정할 수 없다 — 숫자가 맞아떨어진다는 정황뿐이다
- 사실 VNC 는 65,487건 · 387곳으로 9/8 의 65,322건 · 416곳과 사실상 같다(접촉 +0.25%, 출발지 −7.0%). 8/26 40,791 → 9/6 48,605 → 9/7 58,811 → 9/8 65,322 로 오르던 곡선이 이틀째 65,400 부근에서 멈춘 모양이다. 오늘 뛴 것은 VNC 가 아니라 RDP 다
- 사실 VNC 협상에서 상대가 제안한 RFB 버전은 003.003 이 63,144회, 003.008 이 1,852회로 기록된 64,996건의 97.2%가 가장 오래된 003.003 이다(491건은 버전 미기록). SMB 는 제안된 방언이 NT LM 0.12 73 · LANMAN1.0 65 · LM1.2X002 65 · PC NETWORK PROGRAM 1.0 33 · Windows for Workgroups 3.1 33 · LANMAN2.1 33 · LANMAN 32 · SMB 2.??? 2 로 총 336건 중 SMB2 계열은 2건(0.6%)뿐이다
- 추정 가장 오래된 버전·방언을 먼저 제안하는 것은 옛 시스템까지 응답을 받아 내려는 범용 스캐너의 행동에 가깝다. 우리 서버가 구식이라는 뜻도, 특정 취약점을 노렸다는 뜻도 아니다 — CVE 연결 근거는 우리에게 없다
- 사실 서비스마다 모양이 정반대다. VNC 는 387곳이 65,487번(출발지당 169.2회), RDP 는 109곳이 34,811번(319.4회)인 반면 MSSQL 은 43곳이 59번(1.37회), SMB 는 42곳이 198번(4.71회)이다. LDAP 만 12곳이 166번(13.8회)으로 소수 집중형이며, LDAP 166건은 14일 밴드(5~222건) 안쪽 위편이다
- 사실 02 가 오늘 저장한 파일은 7a48c93c…(46,582바이트, ATK-2DD9A8, 1회) 한 건이고 집계상 검체 수 1 과 일치한다. 이 해시는 9/3 브리프에 '아카이브 18일치에 없던 신규'로 기록된 것과 같은 값·같은 크기이며 당시 배달 별칭은 ATK-5A7674(3회)였다. 일주일 만의 두 번째 관측이다
- 사실 세션 2,412건 / 고유 출발지 296곳 / 로그인 시도 2,017회 / 명령 2,293개 / TTY 녹화 1,783건. 포트 2222(SSH) 2,071건 + 포트 2223(텔넷) 341건 = 2,412 로 세션 총계와 정확히 일치한다. SSH 가 85.9%, 텔넷이 14.1%이고 세션의 73.9%에 TTY 녹화가 남았다
- 사실 정찰 — 시스템 1,700 · 실행 권한 부여 191 · 다운로드 후 실행 23 · 파일 다운로드 23 · 지속성(SSH 키 심기) 18 · 흔적 삭제 17 · 방어 무력화 1. 합 1,973 으로 전체 명령 2,293개의 86.0%이며, 정찰 하나가 전체 명령의 74.1%다. 9/6 의 정찰 1,374 · 8/28 의 995 보다 큰 값이다. '파일 다운로드' 23회와 '다운로드 후 실행' 23회가 정확히 같은 것은 8/22 이후 대부분의 날에 반복되는 형태다
- 추정 서로 다른 IP 3곳 이상에서 관측돼 원문을 인용할 수 있는 조합은 8개뿐이고, 단일 출처라 개수만 센 조합이 1,828개다. 인용 가능한 8개의 시도 합은 101회이므로 나머지 1,916회가 1,828개 조합에 흩어져 있다 — 조합당 평균 1.05회다. 오늘 관측된 서로 다른 조합 1,836개 중 99.6%가 하루에 사실상 한 번씩만 쓰였다는 뜻이다
- 사실 ATK-B108F9(180.233.x.x) 텔넷 세션. 로그인 성공, 명령 26개, 다운로드 1건, TTY 녹화 있음. 의도는 파일 다운로드 → 실행 권한 부여 → 다운로드 후 실행 세 단계다. 같은 형태가 00:55:57 ATK-F5E7E2(85초·명령 31개)와 00:59:12 ATK-B949E7(68초·명령 31개)에서 18분 안에 세 번 반복됐고, 셋 다 hxxp://185[.]93[.]89[.]72/wget 의 306바이트 셸 스크립트를 배달한 8개 별칭에 들어 있다
- 사실 ATK-6BC9D8(108.165.x.x) 텔넷 세션. 로그인 성공, 명령 17개, 의도 5종(정찰 · 파일 다운로드 · 실행 권한 부여 · 다운로드 후 실행 · 지속성 SSH 키 심기)이 붙은 오늘 유일한 세션이다. 그런데 다운로드 건수는 0 이다 — 내려받기 의도는 분류됐는데 저장된 파일이 없다
- 사실 ATK-6C52B2(91.81.x.x) 텔넷 세션. completeness 42 로 오늘 최고치이고 다운로드 11건인데, 붙은 의도는 '방어 무력화' 하나뿐이다. 오늘 방어 무력화 명령 총계가 1회이므로 그 1회가 이 세션이다. 받아 간 11건은 전부 1바이트 빈 파일 01ba4719… 이다 — 같은 '가장 많이 움직였는데 받은 건 빈 파일' 형태가 8/17 · 8/22 · 9/6 브리프에도 있다
- 사실 오늘 저장된 4종에 실행 바이너리가 0개다. a8460f44…(389바이트 OpenSSH RSA 공개키)는 아카이브 24개 파일 전부에 있고 오늘 17개 별칭이 17회 배달했다. a6296a79…(306바이트 POSIX 셸 스크립트, hxxp://185[.]93[.]89[.]72/wget)는 23개 파일에 같은 해시로 있으며 오늘 8개 별칭이 배달했다. 01ba4719…(1바이트)는 13개 파일에, 4af5a5c9…(9바이트 ASCII)는 22개 파일에 기록돼 있다. 네 파일 크기를 다 더하면 705바이트다
- 사실 지문 12개 중 오늘 IP 가 가장 많은 것은 acaa53e0a7d7ac7d1255103f37901306(SSH-2.0-OpenSSH_7.4)으로 112곳 — 01 전체 출발지 296곳의 37.8%인데 검체 배달은 없다. 오늘 검체를 배달한 지문은 16443846184eafde36765c9bab2f4397(SSH-2.0-Go, 오늘 3곳) 하나뿐이다. 텔넷에는 hassh 가 남지 않아 눈에 띈 세션 5건은 지문·클라이언트가 전부 빈 문자열이다
- 사실 고유 IP 상한 907곳. 센서 간 고유 IP 교집합을 알 수 없어 상한이며 실제 값은 그 이하다. 아카이브 24일치(8/16~9/8) 중 최대는 897곳(9/6)이었고 9/8 은 850곳이었으므로 오늘이 새 최대값이다. 이 서버 두 대는 어디에도 주소를 알린 적이 없다
위에서 붙여 읽어야 하는 건 세 번째 줄과 여덟 번째 줄입니다. 하나는 “건 곳은 평소대로 109곳”이고, 다른 하나는 “그런데 한 곳이 전체의 34%를 만들었다”예요. 같은 이야기의 앞과 뒤인데, 우리 데이터는 그 둘을 이어 주지 않습니다.
문 앞에 놓인 것
사실 방어에 쓰실 수 있게 값을 그대로 옮깁니다. 값을 클릭하면 복사됩니다. 주소는 접속되지 않도록 변형(defang)해 두었으니 그대로 두고 쓰세요. 위 두 줄과 아래 두 줄을 견줘 보세요 — 위쪽은 24일 내내 안 바뀐 값이고, 아래쪽은 어제 하루가 처음이 아닌 재등장입니다.
a8460f446be540410004b1a8db4083773fa46f7fe76fa84219c93daa1669f8f2389바이트 OpenSSH RSA 공개키 · 센서 01 · 어제 17개 별칭이 17회 배달 · 주소 칸이 비어 있어 세션 안에서 직접 심긴 것으로 보이나 확정 불가 · 아카이브 24개 파일 전부에 같은 해시a6296a79f44e21b76604d2d2bbf795d2cf380f70e39d45fbf166707ff3b4a6a4306바이트 POSIX 셸 스크립트 · 센서 01 · 어제 8개 별칭이 배달 · 아카이브 23개 파일에 같은 해시hxxp://185[.]93[.]89[.]72/wget위 306바이트 스크립트의 유포지. 어제 18분 안에 반복된 세션 세 건이 전부 이 8개 별칭 안에 있다01ba4719c80b6fe911b091a7c05124b64eeece964e09c058ef8f9805daca546b1바이트 빈 파일 · 센서 01 · 별칭 1곳(ATK-6C52B2)이 11회 · 어제 완결성 최고 세션이 받아 간 것이 전부 이것이다 · 아카이브 13개 파일에 기록4af5a5c98ad132095c6fbe7b02c242153a190a01cc321e50a916a0ca46fbaa629바이트 ASCII 텍스트 · 센서 01 · 별칭 1곳(ATK-BECAD3)이 6회 · 아카이브 22개 파일에 기록된 상시 해시7a48c93c5cb63a09505a009260d1cca8203285e0c1c6ff5b0df9cbb47082086546,582바이트 · 센서 02 · 별칭 1곳(ATK-2DD9A8)이 1회 · 이 센서의 다운로드에는 주소 칸 자체가 없다 · 9/3 에 '신규'로 기록된 것과 같은 해시·같은 크기이며 일주일 만의 두 번째 관측사실 크기 감을 붙여 두겠습니다. 389바이트는 문자 메시지 두세 줄, 306바이트는 두 줄, 9바이트는 영어 아홉 글자, 1바이트는 글자 하나 분량입니다. 어제 센서 01이 받은 네 개를 다 합쳐도 705바이트예요.
사실 맨 아래 46,582바이트짜리는 위 네 개를 다 합친 것의 66배입니다. 다만 이 서버 쪽 기록에는 파일 종류를 적는 칸이 아예 없어서, 이게 무엇인지는 여기서 말할 수 없습니다.
공격자가 쓴 수법을 국제 분류표에 대응시키면
MITRE ATT&CK은 공격 수법마다 번호를 붙여 놓은 국제 목록입니다. 어제 본 행동을 그 번호에 맞추면 이렇게 됩니다. ID를 누르면 원문 설명으로 갑니다 — 우리 말을 믿지 말고 직접 확인하시라고 링크를 겁니다.
- T1595Active Scanning — 02 의 RDP 34,811건·VNC 65,487건 접촉과 프로토콜 협상 단계 관측추정
- T1133External Remote Services — 인터넷에 노출된 3389·5900·445·389·1433 에 대한 접촉추정
- T1110Brute Force — 01 의 로그인 시도 2,017회, 조합 1,836개추정
- T1082System Information Discovery — 명령 의도 '정찰 — 시스템' 1,700회추정
- T1105Ingress Tool Transfer — '파일 다운로드' 23회, 저장된 파일 4종추정
- T1222.002File and Directory Permissions Modification: Linux — '실행 권한 부여' 191회추정
- T1098.004Account Manipulation: SSH Authorized Keys — '지속성 SSH 키 심기' 18회, 389바이트 공개키 17회 배달추정
- T1070Indicator Removal — '흔적 삭제' 17회추정
- T1562Impair Defenses — '방어 무력화' 1회(ATK-6C52B2 세션)추정
아홉 줄 전부 [추정] 배지가 붙은 걸 봐 주세요. 우리 손에 있는 건 명령의 ’의도 분류 결과’와 ’몇 번이었나’까지입니다. 명령 원문은 없어요. 분류표에 맞추는 일은 언제나 해석이고, 해석에는 해석이라고 적습니다.
전에 이런 일이 있었다
추정 BlueKeep 공개 직후의 3389 스캔 급증(2019). 원격 데스크톱에 심각한 결함(CVE-2019-0708)이 공개되자, 인터넷 전역에서 이 포트 하나를 두드리는 횟수가 한 자릿수 배수로 뛰었던 일이 있습니다. 어제 우리 기록의 모양 — 다른 문은 그대로인데 문 하나만 열 배로 뛰는 것 — 이 그때와 같은 계열입니다. 다만 어제 관측을 이 취약점과 연결할 근거는 우리에게 없습니다. 우리 쪽 센서는 협상 단계에서 멈추고, CVE 연결 데이터도 없어요. (출처 유형: 벤더 보안 권고 · CISA 경보 · NVD)
추정 WannaCry / EternalBlue 이후 SMB1 스캔의 상시화(2017). 파일 공유 프로토콜의 옛 버전을 노린 사건 뒤로, 그 옛 어휘를 먼저 던져 보는 도구들이 인터넷에 상시로 돌게 됐습니다. 어제 우리가 받은 방언 제안 336건 중 334건이 그 옛 계열이었어요. 배경 맥락으로만 씁니다. 우리 관측은 “상대가 어떤 말로 먼저 말을 걸었나”까지이고, 실제로 공격을 시도했는지는 알 수 없습니다. (출처 유형: 벤더 보안 권고 MS17-010 · 각국 CERT 권고)
추정
Mirai 봇넷(2016). 텔넷 기본 계정 사전으로 IoT 장비에 들어간 뒤 곧바로 파일을 내려받게 하던 방식입니다. 어제 센서 01에서 본 형태 — 로그인 성공 후 63~180초 안에 파일을 받아 실행 권한을 주는 순서, 그리고 admin/admin · root/root 같은 기본값 사용 — 이 같은 계열이에요. 다만 어제 받아 간 파일에는 실행 바이너리가 한 개도 없었습니다. (출처 유형: 정부기관 경보 US-CERT/CISA TA16-288A · 이후 미 법무부 공소 자료)
그래서 뭘 해야 하나
전화기 이야기로 돌아가겠습니다. 어제 벨은 24배 더 울렸지만, 실제로 갈린 지점은 “받았느냐”입니다. 아래 항목은 전부 그 얘기예요.
1. 관리 포트를 인터넷에 그대로 열어 두고 있다 · 가능성 높음 어제 하루 원격 데스크톱에 34,811건·109곳, 화면공유에 65,487건·387곳, 파일 공유에 198건·42곳, 계정 조회에 166건·12곳, 데이터베이스에 59건·43곳이 사전 접촉 없이 곧바로 닿았습니다. 전화를 받는 쪽에도 2222번에 2,071건, 2223번에 341건이 들어왔고요. 이 서버 두 대는 어디에도 주소를 알린 적이 없습니다. 열어 두는 것만으로 하루 10만 건 규모의 접촉이 옵니다. 어제 원격 데스크톱은 한 출발지가 319.4번씩 두드렸어요. 계정 하나가 약하면 그 횟수가 전부 시도로 바뀝니다. VPN이나 점프호스트 뒤로 옮기면 이 접촉 대부분이 인증 단계 앞에서 끊깁니다.
2. 기본 계정·취약 비밀번호를 그대로 쓰고 있다 · 가능성 높음
위 표 여덟 줄이 전부 장비나 배포판이 출고할 때 넣어 두는 값입니다. admin/admin이 서로 다른 16곳에서 38회, root/123456이 7곳, root/root가 3곳, root/default가 3곳, support/support가 3곳, admin/빈 비밀번호가 3곳에서 14회 시도됐어요. 어제 눈에 띈 세션 5건이 전부 로그인에 성공한 세션입니다. 이 조합 중 하나만 실제 서버에 남아 있어도 그날 안에 문이 열립니다. 열린 세션들은 63~180초 안에 다음 단계로 넘어갔어요.
3. 비밀번호 로그인을 허용하고 열쇠 방식을 안 쓰고 있다 · 가능성 높음
어제 시도된 조합의 폭이 1,836종입니다. 비밀번호 문이 열려 있는 한 이 사전은 매일 다시 옵니다. 그런데 침입한 쪽은 열쇠 방식의 효용을 이미 알고 있어요. 어제 ’SSH 키 심기’가 18회, 389바이트 공개키가 서로 다른 17곳에서 들어왔습니다. authorized_keys(허용된 열쇠 목록)에 남의 열쇠가 한 줄 들어가면 비밀번호를 바꿔도 그 열쇠로 계속 들어옵니다. 어제 심긴 그 공개키는 아카이브 24일치 전부에 같은 해시로 있어요.
4. 밖으로 나가는 연결을 막지 않고 있다 · 가능성 높음
‘파일 다운로드’ 23회와 ‘다운로드 후 실행’ 23회가 정확히 같았습니다. 내려받는 행위가 예외 없이 실행 단계로 이어졌다는 뜻이에요. 실제로 hxxp://185[.]93[.]89[.]72/wget에서 306바이트 셸 스크립트가 8개 별칭에게 내려왔습니다. 로그인은 이미 뚫린 다음이라, 서버가 밖으로 나가는 연결을 끊는 게 실제 피해를 막는 마지막 지점이에요. 나가는 연결이 막혀 있었다면 어제 다운로드 23회는 전부 실패했을 단계입니다.
5. 횟수 기반 차단(fail2ban 등)만 믿고 있다 · 가능성 중간 여기가 어제 데이터가 둘로 갈리는 지점입니다. 센서 02의 원격 데스크톱은 한 곳이 319.4번씩 두드렸으니 출발지 단위 속도 제한이 있었다면 확실히 걸립니다. 그런데 전화를 받는 쪽은 조합당 평균 1.05회예요. ‘한 계정에 5회 틀리면 잠금’ 같은 계정 단위 방어는 어제 한 번도 발동하지 않았을 가능성이 큽니다. 그래서 ’높음’이 아니라 ’중간’입니다. 방어의 종류에 따라 결과가 정반대로 갈립니다. 출발지 단위 제한이 없으면 3389 한 포트에서만 하루 3만 건이 로그와 세션 자원을 그대로 먹습니다.
6. 로그를 서버 안에만 두고 있다 · 가능성 중간 ‘흔적 삭제’ 의도가 어제 17회, ’방어 무력화’가 1회 분류됐습니다. 지우려는 의도가 실제로 관측됐어요. 우리가 그걸 볼 수 있었던 건 화면 1,783건이 서버 밖에서 따로 녹화됐기 때문입니다. 서버 안의 로그만 근거로 삼으면 그 17회가 지나간 자리에서 사건 재구성이 안 됩니다. 어제 눈에 띈 세션들은 63초·66초·68초·85초·180초짜리였어요. 사람이 화면을 보고 알아차릴 수 있는 길이가 아닙니다.
우리가 모르는 것
이 블로그가 다른 곳과 다른 점은 여기입니다. 모르는 것을 모른다고 적습니다.
어제 주제 자체에 대한 의심
- [확인 불가] 어제 원격 데스크톱 34,811건이 한 출발지에서 나온 것인지 확정할 수 없습니다. 최다 별칭 ATK-E37B01의 34,229건과 582건 차이라는 정황뿐이에요. 데이터에 출발지별 서비스 짝이 없고, 서비스 목록은 출발지를 알려주지 않고, 상위 출발지 목록은 서비스별로 나뉘어 있지 않습니다.
- [확인 불가] 이름 칸이
mstsc로 뒤집힌 게 도구가 바뀐 것인지, 같은 도구의 설정이 바뀐 것인지, 완전히 다른 쪽이 새로 온 것인지 판단할 근거가 없습니다. 우리가 가진 건 문자열 분포뿐이에요. - [확인 불가]
Administr6건이Administrator가 아홉 글자에서 잘린 것이라는 해석은 추정입니다. 협상 원문을 내보내지 않으므로 확정할 수 없습니다. - [확인 불가] 한 출발지가 여러 문을 함께 훑었는지 계산할 수 없습니다. 서비스별 출발지 합(387+109+42+12+43=593)이 전체 611곳보다 18 작은데, ADB 쪽 출발지가 목록에 행이 없어서 그런 것으로 보이지만 데이터가 그렇다고 말해 주지는 않아요. 이 값을 0으로 쓰면 거짓이 되므로 ’산출 불가’로 둡니다.
- [확인 불가] 아카이브에 9월 9일 파일이 없습니다. 그래서 이 글의 ‘직전’ 비교는 전부 9월 8일 기준이고, 비교 밴드는 8월 26일~9월 8일의 14일치입니다. 9일에 무슨 일이 있었는지는 이 글이 답할 수 없습니다.
어제 데이터에서 설명이 안 되는 것
- [확인 불가] ATK-6BC9D8은 ‘파일 다운로드’·‘다운로드 후 실행’ 의도가 붙었는데 다운로드 건수가 0입니다. 내려받기가 실패한 건지, 이미 있던 해시라 저장되지 않은 건지, 분류기가 명령을 과하게 분류한 건지 구분할 수 없어요.
- [확인 불가] ATK-6C52B2는 완결성 42·다운로드 11건인데 붙은 의도가 ‘방어 무력화’ 하나뿐입니다. 나머지 명령 21개가 무엇이었는지는 분류 결과로만 남고 원문이 우리 손에 없습니다.
- [확인 불가] 어제 ‘SSH 키 심기’ 18회, 389바이트 공개키를 배달한 별칭 17개,
345gs5662d34/345gs5662d34조합의 출발지 17곳이 서로 같은 집합인지 데이터가 연결해 주지 않습니다. 숫자가 가깝다는 것 이상은 말할 수 없어요. - [확인 불가] 센서 02가 저장한 46,582바이트 파일이 어느 통로로 들어온 것인지 명시돼 있지 않습니다. 이 서버에서 파일을 저장할 수 있는 통로가 안드로이드 디버깅 쪽뿐이고 검체 수가 1로 맞는다는 정황뿐이에요. 파일 종류를 적는 칸이 없어 무엇인지도 알 수 없습니다.
- [확인 불가] 지문 목록의 ‘지금까지 본 IP 수’ 칸이 여전히 단조 증가가 아닙니다.
f555226d…는 8월 29일 289곳 → 8월 30일 366곳 → 9월 8일 226곳 → 어제 158곳이에요. 9월 5일 글이 지적한 ‘누적이 누적이 아니다’ 상태가 닷새 뒤에도 그대로입니다. 이 칸을 누적으로 읽으면 안 됩니다. - [확인 불가] 텔넷에는 접속 프로그램 지문이 안 남아서, 어제 눈에 띈 세션 5건 전부 지문 칸이 비어 있습니다. 이 세션들을 42개 지문 묶음 어디에도 붙일 수 없어요.
- [확인 불가] 어제 저장된 파일 4종의 내용은 우리 손에 없습니다. 306바이트 스크립트가 무슨 일을 하는지, 1바이트 빈 파일과 9바이트 텍스트가 왜 반복해서 내려오는지 판단할 근거가 없습니다.
- [확인 불가] ’아카이브에 있던 해시’라는 판단은 8월 16일~9월 8일 기록 24건과 대조한 것이지 원본 로그 전수 대조가 아닙니다. 기록에 실리지 않은 검체는 이 비교에 안 잡힙니다.
일부러 싣지 않은 것 · 연결하지 않은 것
- [제외] 압축을 풀어야만 드러나는 유포 주소 12건과 별도 경로로 확보된 Discord 웹훅 주소는 어제 저장분에서 나온 것이 아닙니다. 어제 센서 01의 4종에는 압축 실행파일이 한 개도 없어요. 배경 재료로만 남기고 어제 사건과 연결해 쓰지 않았습니다.
- [제외] 배경 통계로 들어온 추적 CVE 7,619건 · CISA KEV 395건 · 랜섬웨어 확인 99건은 KISA 보안공지에서 뽑은 값입니다. 어제 관측된 어떤 접촉·세션·검체와도 연결되지 않아 서술의 근거로 쓰지 않았습니다.
- [확인 불가] 관측한 유포지는 C-TAS로 신고하지만, 확인되는 건 전송이 성공했다는 것까지입니다. 실제 적재 여부는 별도 확인이 필요합니다.
아예 판단하지 않는 것
- ASN·ISP — 관련 데이터베이스가 없습니다. 추정하지 않습니다.
- 지리정보 — 위와 같습니다. IP 지리정보는 애초에 귀속의 근거가 되지도 않아요. 어제 등장한 마스킹 IP 어느 것에도 국가·지역을 붙이지 않습니다.
- VPN·Tor·클라우드 여부 — 판별 수단이 없습니다.
- 검체의 악성 여부 — VirusTotal을 연동하지 않았습니다. 검체 분류는 MalwareBazaar 태그를 쓰는데 어제 데이터에는 그 태그가 없습니다.
- 접속 프로그램 표식 — 지문은 빌드의 지문이지 사람의 지문이 아닙니다. 같은 배포판 기본 SSH를 쓰는 무관한 사람도 같은 값을 갖습니다. 112곳짜리 묶음을 한 주체로 읽으면 안 됩니다.
- User-Agent — 두 관측면 다 HTTP가 아닙니다. 센서 01은 SSH·텔넷, 센서 02는 SMB·RDP·VNC·MSSQL·LDAP·ADB예요.
- CVE 연결 — SSH·텔넷 공격은 대개 CVE를 참조하지 않고, 센서 02도 협상 단계라 마찬가지입니다. 어제 원격 데스크톱 34,811건을 어떤 취약점과도 연결하지 않습니다.
- 출발지 신원 — 별칭(ATK-XXXXXX)은 글과 글 사이에서 같은 출발지를 가리키는 표식일 뿐 신원이 아닙니다. 마스킹된 자리는 복원하지 않고, 어떤 국가·기업·개인도 공격자로 지목하지 않습니다.
어제 벨은 34,811번 울렸습니다. 14일치를 다 더한 것보다 많았어요. 그런데 건 곳은 109군데로, 지난 2주 중에서도 적은 편이었습니다.
그러니 어제 기록은 **“더 많은 곳이 찾아왔다”가 아니라 “같은 곳이 훨씬 자주 걸었다”**입니다. 이 둘은 다른 문장이고, 막는 방법도 다릅니다. 한 곳이 4분 30초마다 다시 거는 형태는 출발지 단위 속도 제한에 확실히 걸립니다. 반대로 옆 서버에서 벌어진 일 — 1,836가지 비밀번호를 한 번씩 훑고 간 형태 — 은 “몇 번 틀리면 잠근다”는 규칙이 발동조차 하지 않습니다.
그리고 그 32,042번은 발신자 이름 칸에 mstsc라고 적어 보냈습니다. 그 칸은 거는 쪽이 쓰는 칸입니다. 이름을 보고 거를 수 있는 문이었다면 어제가 제일 잘 통과된 날이었을 거예요. 우리가 셀 수 있었던 건 누가 뭐라고 말했나가 아니라, 몇 번 울렸나까지입니다.
관측일은 2026-09-10이며, 센서 01·02 모두 하루 집계 기준입니다. 출발지 IP는 뒤 두 자리를 가려서 적었고 복원하지 않습니다. 유포 주소는 접속되지 않도록 변형(defang)했습니다. 자격증명은 서로 다른 IP 3곳 이상에서 반복 관측된 8종만 인용했으며, 3곳 미만에서만 보인 1,828종은 개수만 세고 값은 적지 않았습니다.
