자물쇠만 네 번씩 만지고 간 255곳, 46일 만에 돌아온 여벌 열쇠
10월 11일, 원격 데스크톱 문(3389)에 손을 댄 곳은 255곳으로 기록을 시작한 뒤 하루 최대였습니다. 그런데 한 곳당 접촉은 4.15번으로 가장 적었습니다. 같은 날 다른 서버에는 46일 전과 같은 도구로 들어와 1분 안에 열쇠 심기·예약 작업·흔적 삭제를 한꺼번에 시도한 세션이 다시 찍혔습니다.

학교 복도를 떠올려 봅시다. 벽을 따라 번호 자물쇠가 달린 사물함이 줄지어 있습니다. 쉬는 시간이면 수백 명이 그 앞을 지나갑니다. 대부분은 자기 사물함만 엽니다.
그런데 가끔 남의 사물함 자물쇠를 슬쩍 만져 보는 사람이 있습니다. 다이얼을 한두 번 돌려 보고 안 열리면 그냥 갑니다. 그 사람은 내 사물함을 골라서 온 게 아닙니다. 번호를 공장 설정 그대로 둔 사물함이 있는지 훑고 있을 뿐입니다.
한 사람이 한 사물함을 붙잡고 백 번 돌리는 모습은 눈에 띕니다. 그런데 어제는 그 반대였습니다. 아주 많은 곳이 와서 몇 번씩만 만지고 갔습니다. 같은 날 복도 반대편에서는 누군가 열린 사물함 안에 여벌 열쇠 구멍을 하나 더 내고 갔습니다. 46일 전에 본 것과 같은 솜씨였습니다.
우리 복도에는 사물함이 두 개 있습니다
사실 우리는 허니팟을 운영합니다. 허니팟은 일부러 허술하게 열어 둔 미끼 서버입니다. 누가 와서 무엇을 하는지 지켜보려고 둡니다. 아래 이야기는 실제 피해가 아니라 관찰 기록입니다.
사실 서버는 두 대입니다. 사물함으로 치면 이렇습니다.
- 첫 번째 사물함(센서 01) 은 쉬운 번호로 맞춰 두었습니다. 번호가 맞으면 실제로 열립니다. 안에서 무엇을 했는지까지 기록됩니다.
- 두 번째 사물함(센서 02) 은 절대 열리지 않습니다. 칸이 여러 개고, 칸마다 자물쇠 종류가 다릅니다. 누가 어느 칸 자물쇠를 몇 번 만졌는지만 적습니다.
사실 컴퓨터에서 이 ’칸’을 포트라고 부릅니다. 한 컴퓨터 안에 있는 문 번호입니다. 3389번은 윈도우 원격 데스크톱(RDP) 칸입니다. 원격 데스크톱은 멀리 있는 컴퓨터 화면을 내 화면에 그대로 띄워 쓰는 기능입니다. 오늘 이야기의 절반이 이 칸에서 나왔습니다.
255곳이 자물쇠를 만지고 갔다
사실 어제 하루, 두 번째 사물함의 원격 데스크톱 칸을 건드린 출발지는 255곳입니다. 접촉은 모두 1,058번이었습니다. 하루를 초로 나누면 약 82초에 한 번꼴입니다.
사실 255곳은 기록을 시작한 뒤 처음 보는 숫자입니다. 원격 데스크톱 기록이 있는 브리프는 8월 26일부터 10월 8일까지 25개입니다. 그 사이 출발지 수는 가장 적은 날 102곳(9/3), 가장 많은 날 164곳(8/31) 이었습니다. 어제는 종전 최대보다 91곳이 더 왔습니다. 1.55배입니다.
사실 그런데 접촉 횟수 1,058번은 평범했습니다. 25개 브리프의 범위는 567번에서 42,578번까지입니다. 어제는 그중 아래쪽입니다.
여기서 두 숫자를 나눠 보면 이 날의 모양이 드러납니다. ‘한 곳당’ 칸을 위아래로 견줘 보세요.
| 날짜 | 출발지 | 접촉 | 한 곳당 |
|---|---|---|---|
| 9/3 (출발지 최소) | 102곳 | — | — |
| 8/31 (출발지 종전 최대) | 164곳 | — | — |
| 9/27 (한 곳당 종전 최저) | — | — | 5.02번 |
| 10/8 (직전 브리프) | 119곳 | 795번 | 6.68번 |
| 10/11 (어제) | 255곳 | 1,058번 | 4.15번 |
사실 출발지 수는 기록상 최대인데 한 곳당 횟수는 기록상 최저입니다. 한 곳이 평균 네 번쯤 만지고 떠났습니다. 직전 브리프인 10월 8일과 비교하면 출발지는 두 배 넘게 늘었습니다. 한 곳당 횟수는 3분의 2 아래로 줄었습니다.
추정 한 사람이 한 사물함에 매달린 날이 아닙니다. 많은 사람이 복도를 한 번 쭉 훑고 지나간 날에 가깝습니다. 이런 걸 ’넓고 얕은 스캔’이라고 부릅니다. 다만 255곳이 같은 도구 하나를 여러 곳에 나눠 돌린 건지, 서로 상관없는 여러 스캐너가 하루에 겹친 건지는 우리 기록으로 가릴 수 없습니다.
사실 한 가지 짚어 둡니다. 두 번째 사물함은 열리지 않습니다. 그래서 이 255곳이 실제로 번호를 맞춰 봤는지는 알 수 없습니다. 기록되는 건 “자물쇠에 손을 댔다” 까지입니다.
손을 대면서 내민 꼬리표
사실 원격 데스크톱에 접속할 때는 쿠키라는 짧은 꼬리표를 붙여 보낼 수 있습니다. 사물함으로 치면 자물쇠를 만지면서 “나 누구야” 하고 붙이는 쪽지입니다. 어제 붙은 꼬리표는 이랬습니다.
| 꼬리표 | 횟수 |
|---|---|
'<ip>' |
790 |
| hello | 33 |
| eltons | 7 |
| rdpaudit | 5 |
| nmap | 4 |
| zgrab | 3 |
| (꼬리표 없음) | 216 |
사실
꼬리표는 모두 842건이고, 216건에는 꼬리표가 없었습니다. '<ip>' 790건은 전체 접촉의 74.7% 입니다. 열 번 중 일곱 번 반입니다. 10월 8일에는 이 비율이 55.8%였습니다.
사실 nmap·zgrab은 널리 알려진 스캔 도구의 이름과 같습니다. 하지만 꼬리표는 보내는 쪽이 아무 글자나 써 넣을 수 있습니다. 남의 이름을 써 붙일 수도 있습니다. 그래서 우리는 꼬리표만 보고 특정 도구나 사람으로 묶지 않습니다.
같은 사물함, 정반대인 칸
사실 두 번째 사물함의 다른 칸들도 봅니다. ’한 곳당’을 계산해 넣었습니다. 원격 데스크톱 줄과 VNC 줄을 나란히 보세요.
| 칸 | 무엇을 하는 문인가 | 포트 | 접촉 | 출발지 | 한 곳당 |
|---|---|---|---|---|---|
| VNC | 화면 공유 | 5900 | 50,922건 | 81곳 | 628.7번 |
| RDP | 윈도우 원격 데스크톱 | 3389 | 1,058건 | 255곳 | 4.15번 |
| SMB | 윈도우 파일 공유 | 445 | 257건 | 61곳 | — |
| LDAP | 회사 계정 목록 조회 | 389 | 166건 | 12곳 | — |
| MSSQL | 마이크로소프트 데이터베이스 | 1433 | 64건 | 12곳 | — |
| ADB | 안드로이드 기기 연결 통로 | 기록 없음 | 504건 | 기록 없음 | — |
사실 같은 사물함인데 칸마다 모양이 완전히 다릅니다. VNC 칸에는 81곳이 와서 한 곳당 600번 넘게 매달렸습니다. 하루 50,922건이면 1.7초에 한 번꼴입니다. 원격 데스크톱 칸에는 그 세 배 넘는 곳이 와서 네 번씩만 만지고 갔습니다. 전체 52,971건 중 VNC가 96.1%입니다.
사실
VNC에 접속할 때 내미는 버전 표기 003.008의 비중은 98.7% 였습니다. 10월 1일 63.2%, 10월 4일 94.1%, 10월 8일 98.0%에 이어 또 올랐습니다.
사실
가장 많이 온 열 곳은 각각 4,006~6,146건이고, 합치면 50,005건입니다. 그중 ATK-F81B56·ATK-943F0E·ATK-A9F1B3은 10월 8일 상위 목록에도 있던 별칭입니다. ATK-로 시작하는 이름은 우리가 출발지마다 붙이는 별칭입니다. 201.79.x.x로 가려진 별칭은 둘(ATK-F81B56·ATK-08F736)입니다. 별칭이 다르니 실제로는 서로 다른 주소입니다.
추정 열 곳의 합계가 VNC 50,922건과 가깝습니다. 그래서 이들이 VNC 칸에 매달린 쪽일 가능성이 있습니다. 다만 어느 접촉이 어느 칸을 향했는지는 기록에 없습니다.
사실 SMB 칸에서는 접속 방식 제안 215건이 들어왔습니다. ‘Samba’ 3건을 빼면 모두 SMB1 계열 이름이었습니다. SMB1은 윈도우 파일 공유의 아주 오래된 방식입니다.
추정 낡은 SMB1을 아직 받아 주는 서버를 찾는 요청으로 보입니다.
사실
ADB 칸은 504건이었습니다. 이 사물함에 남은 파일은 1종, 46,525바이트(0d3c687f…)입니다. 보낸 곳은 ATK-371699 한 곳이고, 처음 보는 별칭입니다. 하지만 파일 해시는 8/28·8/30·9/20·10/4 브리프에 이미 있던 값입니다. 해시는 파일 내용 전체로 계산한 고유 번호입니다. 한 글자만 달라도 완전히 다른 값이 나옵니다.
열리는 사물함 쪽 — 1분 안에 생긴 여벌 열쇠 구멍
이제 복도 반대편, 실제로 열리는 첫 번째 사물함으로 갑니다.
사실
한국 시간 오후 2시 39분, ATK-FB5E45(222.71.x.x)가 SSH로 로그인에 성공했습니다. SSH는 멀리 있는 컴퓨터에 들어가 명령을 치는 통로입니다. 오가는 내용을 암호로 감쌉니다. 머문 시간은 59.81초입니다. 그동안 명령 18개를 쳤고, 파일 2건을 받았습니다. 명령 하나에 3.3초꼴입니다.
사실 이 1분 동안 분류된 행동은 네 가지입니다.
- 정찰 — 시스템. 들어온 컴퓨터가 어떤 기계인지 둘러보는 일입니다.
- 지속성 — SSH 키 심기. SSH에는 비밀번호 대신 열쇠 파일로 들어오는 방법이 있습니다. 서버는
authorized_keys(허용된 열쇠 목록)에 적힌 열쇠만 받아 줍니다. 여기에 자기 열쇠를 적어 넣는 게 ’키 심기’입니다. 사물함으로 치면 번호 자물쇠 옆에 열쇠 구멍을 하나 더 뚫고, 그 열쇠를 들고 간 것입니다. 주인이 번호를 바꿔도 열쇠로는 계속 열립니다. - 지속성 — cron. cron(크론)은 예약 작업 기능입니다. 알람처럼 정해진 시각마다 컴퓨터가 정해진 일을 저절로 하게 만듭니다. 사물함으로 치면 안에 타이머 장치를 하나 넣어 둔 겁니다.
- 흔적 삭제. 사물함 사용 기록장에서 자기 줄을 지우는 일입니다.
사실 ’지속성’은 한 번 들어온 뒤에도 계속 다시 들어올 수 있게 해 두는 것을 말합니다. 이 세션 하나에 지속성 두 가지와 흔적 삭제가 함께 들어 있었습니다. 어제 하루 전체에서 ‘cron’ 의도로 분류된 건 딱 1건이었습니다.
추정 이 세션에 cron이 있었으니 그 1건이 이 세션입니다.
추정 여기서 조심할 게 있습니다. 네 가지 행동은 목록이지 순서가 아닙니다. “둘러보고 → 열쇠 구멍을 뚫고 → 타이머를 넣고 → 기록을 지웠다”고 쓰고 싶어집니다. 하지만 말할 수 있는 건 “네 가지가 1분 안에 다 관측됐다”까지입니다. 어떤 열쇠를 심었는지, 타이머를 몇 시에 무엇을 하도록 맞췄는지도 모릅니다. 입력 기록(TTY)은 남았지만 그 내용은 브리프에 없습니다.
46일 전에도 같은 솜씨가 있었다
사실
SSH로 접속하는 프로그램은 접속할 때 자기 설정 조합을 드러냅니다. 우리는 그걸로 접속 지문을 만들어 같은 도구끼리 묶습니다. 사물함으로 치면 열쇠 구멍을 뚫은 공구의 모델명입니다. 이 세션의 지문은 f555226df1963d1d3c09daf865abdc9a(SSH-2.0-libssh_0.9.6)입니다.
사실
46일 전인 8월 26일에도 이 지문으로 들어온 세션이 있었습니다. ATK-E17FA9입니다. 명령 18개, 다운로드 2건, 행동 네 가지까지 같았습니다. 머문 시간만 약 46초로 달랐습니다. 이틀 뒤 8월 28일 ATK-AE28B3도 명령 18개에 같은 행동 네 가지였습니다. 다만 지문(03a80b21…, libssh_0.11.1)과 다운로드 수(1건)가 달랐습니다. 세 날 모두 그날의 cron 의도는 1건뿐이었습니다.
| 날짜 | 별칭 | 지문 | 명령 | 다운로드 | 행동 4종 | 머문 시간 |
|---|---|---|---|---|---|---|
| 8/26 | ATK-E17FA9 | f555226d… | 18개 | 2건 | 같음 | 약 46초 |
| 8/28 | ATK-AE28B3 | 03a80b21… | 18개 | 1건 | 같음 | — |
| 10/11 | ATK-FB5E45 | f555226d… | 18개 | 2건 | 같음 | 59.81초 |
추정 그래서 이 세션은 ’처음 보는 침입’이 아닙니다. 아카이브에서 세 번째로 나온 조합입니다. 드물게 돌아오는 반복이라고 보는 게 맞습니다. 출발지 주소는 매번 달랐습니다. 하지만 공구 모델은 같았습니다.
추정 그렇다고 같은 사람이라는 뜻은 아닙니다. 같은 모델의 공구는 누구나 살 수 있습니다. 이 지문도 마찬가지입니다. 같은 기본 프로그램을 쓰는 상관없는 사람도 같은 값을 가집니다. 우리는 ’같은 도구’까지만 말하고 ’같은 조직’이라고는 쓰지 않습니다.
사실
이 공구는 어제 혼자가 아니었습니다. 어제 SSH 지문 묶음은 48개였고, f555226d…가 그중 가장 큰 묶음이었습니다. 이 지문이 나온 IP는 41곳입니다. 네 숫자를 나란히 놓으면 이렇습니다.
- 389바이트 공개키(
a8460f44…)가 내려온 횟수: 41회(보낸 곳 40곳). 389바이트는 문자 메시지 두세 통 정도 되는 크기입니다. - 지문
f555226d…가 나온 IP: 41곳 - 아이디·비밀번호
345gs5662d34/345gs5662d34를 넣어 본 IP: 37곳 - ’SSH 키 심기’로 분류된 행동: 43건
사실 네 숫자가 같은 자릿수에서 함께 움직였습니다. 9월 20일 브리프(41·41·40·43)와 비슷한 모양입니다.
같은 날 열린 다른 사물함 문들
사실 어제 첫 번째 사물함에서 눈여겨본 로그인 성공 세션은 5건입니다. 그런데 별칭·지문·파일 해시를 8월 16일부터 쌓은 35개 브리프와 맞춰 보면 새로운 조합이 하나도 없습니다. 두 서버에 남은 파일 6종 중 처음 보는 해시도 없습니다.
사실
ATK-ADE2BE(45.43.x.x)는 텔넷으로 들어왔습니다. 텔넷은 SSH와 같은 일을 하는 오래된 통로인데, 내용을 암호로 감싸지 않습니다. 60.66초, 명령 17개, 행동 5종, 다운로드 0건이었습니다. 8월 23일 브리프에 있던 같은 별칭의 세션과 수치가 똑같습니다.ATK-CA5936(130.12.x.x)은 SSH로 3.95초 머물렀습니다. 명령 1개에 행동 5종, 다운로드 2건입니다. 8월 19일 이후 거듭 나온 별칭입니다.ATK-A51A59(111.246.x.x)는 텔넷으로 88.95초 동안 명령 31개를 쳤습니다. 행동에 ’다운로드’가 있는데 실제 다운로드 기록은 0건입니다.ATK-8FB338(171.114.x.x)은 텔넷으로 19.08초 동안 명령 61개를 쳤습니다. 1초에 세 줄이 넘습니다. 다운로드 20건, 행동은 ‘흔적 삭제’ 하나였습니다. 기록 촘촘함(completeness) 69로 어제 최고입니다.
추정
가장 요란했던 건 ATK-8FB338입니다. 그런데 받아 간 건 글자 한 자짜리 파일과 이미 본 스크립트뿐이었습니다. 그래서 오늘 이야기의 중심은 조용히 1분 머문 ATK-FB5E45에 두었습니다. 남기고 간 장치의 종류가 가장 많았기 때문입니다.
시간 순서로 늘어놓으면
어제 기록을 시간 순서대로 놓으면 이렇습니다. 시각은 세계 표준시(UTC)이고, 한국 시간은 9시간을 더하면 됩니다. 위쪽 네 줄은 원격 데스크톱 칸의 하루, 아래쪽은 열리는 사물함의 장면입니다. ATK-FB5E45 줄의 시작과 끝이 1분 안에 들어오는 걸 보세요.
- 사실 RDP(3389) 접촉 1,058건, 고유 출발지 255곳. 한 곳당 평균 4.15회다
- 사실 RDP 고유 출발지는 아카이브 25개 브리프에서 102곳(9/3)~164곳(8/31) 사이였다. 오늘 255곳은 종전 최대의 1.55배다. 한 곳당 접촉 수도 종전 최저 5.02회(9/27)보다 낮다. 직전 브리프 10/8 은 795건·119곳(곳당 6.68회)이었다
- 사실 RDP 쿠키 '<ip>' 790건은 RDP 접촉의 74.7% 다(10/8 브리프 444/795 = 55.8%). 그 밖에 hello 33·eltons 7·rdpaudit 5·nmap 4·zgrab 3 이 있다. 쿠키 합계는 842건이고, 216건은 쿠키 기록이 없다
- 추정 출발지 수만 크게 늘고 한 곳당 횟수가 아카이브 최저로 내려간 모양이다. 한 곳이 집요하게 두드린 것이 아니라 많은 곳이 몇 번씩만 훑고 간 넓고 얕은 스캔으로 보인다. 같은 도구인지, 서로 무관한 여러 스캐너인지는 JSON 으로 구분할 수 없다
- 사실 ATK-FB5E45(222.71.x.x)가 SSH 로그인에 성공했다. 59.81초 동안 명령 18개, 다운로드 2건이 있었다. intents 는 정찰 — 시스템 · 지속성 — SSH 키 심기 · 지속성 — cron · 흔적 삭제 4종이다. 지문 f555226df1963d1d3c09daf865abdc9a(SSH-2.0-libssh_0.9.6), completeness 21. TTY 기록은 있지만 내용은 브리프에 없다
- 추정 command_intents 의 '지속성 — cron' 은 하루 통틀어 1건이다. ATK-FB5E45 의 intents 에 cron 이 있으므로 그 1건이 이 세션이다
- 사실 8/26 ATK-E17FA9 도 같은 지문 f555226d…·명령 18개·다운로드 2건·같은 intents 4종이었다(약 46초). 8/28 ATK-AE28B3 는 명령 18개·intents 4종이 같지만 지문(03a80b21…, libssh_0.11.1)과 다운로드 수(1건)가 다르다. 세 날 모두 그날 cron 의도는 1건뿐이었다
- 추정 intents 배열은 의도의 집합이지 실행 순서가 아니다. 그래서 '정찰 → 키 → cron → 삭제' 순으로 일어났다고는 쓸 수 없다
- 사실 ATK-ADE2BE(45.43.x.x)가 텔넷 로그인에 성공했다. 60.66초, 명령 17개, intents 5종, download_count 0, completeness 17 이다. 8/23 브리프에 기록된 같은 별칭의 세션과 수치가 같다
- 사실 ATK-CA5936(130.12.x.x)가 SSH 로그인에 성공했다. 3.95초, 명령 1개, intents 5종, 다운로드 2건이다. 지문 16443846…4397(SSH-2.0-Go)은 오늘 IP 4곳에서 보였고, 오늘 지문 목록에서 delivered_samples=true 인 유일한 값이다. 8/19 브리프 이후 반복 등장한 별칭이다
- 사실 ATK-A51A59(111.246.x.x)가 텔넷 로그인에 성공했다. 88.95초 동안 명령 31개가 있었고, intents 는 다운로드 후 실행·실행 권한 부여·파일 다운로드 3종, download_count 0 이다
- 사실 ATK-8FB338(171.114.x.x)가 텔넷 로그인에 성공했다. 19.08초 동안 명령 61개, 다운로드 20건이 있었고 intents 는 흔적 삭제 하나다. completeness 69 로 오늘 최고다. 이 별칭은 1바이트 파일(01ba4719…)과 202바이트 셸 스크립트(0c99433c…, 아카이브 8/23 에 있던 해시)의 delivered_by 에 들어 있다
- 사실 389바이트 공개키(a8460f44…) 41회·배달 출처 40곳, 지문 f555226d… IP 41곳, 자격증명 345gs5662d34/345gs5662d34 IP 37곳, 'SSH 키 심기' 의도 43건. 네 값이 같은 자릿수로 함께 움직였다. 9/20 브리프(41·41·40·43)와 비슷한 모양이다
사실 보신 대로 원격 데스크톱 쪽에는 시각이 찍힌 줄이 없습니다. 열리지 않는 사물함이라 ’언제 누가 들어왔다’는 장면이 생기지 않기 때문입니다. 반대로 첫 번째 사물함의 로그인 성공 다섯 건은 모두 1분 30초 안에 끝났습니다. 가장 짧은 건 4초가 채 안 됩니다.
어제 하루 전체
시야를 넓혀 첫 번째 사물함의 하루 전체를 봅니다. 오른쪽 ‘견줄 것’ 칸이 숫자를 손에 잡히게 해 줍니다.
| 항목 | 10월 11일 | 견줄 것 |
|---|---|---|
| 세션(접속 한 번) | 2,647건 | 약 33초에 한 번 |
| 고유 출발지 | 236곳 | 한 곳이 평균 약 11번 |
| 로그인 시도 | 2,068회 | 약 42초에 한 번 번호를 맞춰 본 셈 |
| 친 명령 | 3,357개 | 약 26초에 하나 |
| 포트 2222 (SSH) | 2,321세션 | 전체의 약 88% |
| 포트 2223 (텔넷) | 326세션 | 약 12% · 약 4분 반에 한 번 |
사실 행동으로 분류된 명령은 2,580건입니다. 그중 ’정찰 — 시스템’이 1,763건(68.3%) 입니다. 열 번 중 일곱 번은 들어와서 둘러보기만 했다는 뜻입니다. 나머지는 실행 권한 부여 689, 흔적 삭제 44, SSH 키 심기 43, 다운로드 후 실행 20, 파일 다운로드 20, cron 1입니다. 2,580건 가운데 cron이 단 한 건이었고, 그게 오늘 본 1분짜리 세션이었습니다.
사실 입력 기록(TTY)은 1,931건 남았습니다. 두 서버를 합친 고유 출발지는 최대 673곳입니다. 두 서버에 겹쳐 온 곳을 알 수 없어서 ’최대’라고만 씁니다. 세션 수는 두 서버의 세는 단위가 달라서 더하지 않습니다.
이 번호 쓰고 계신가요
사실 어제 첫 번째 사물함에 넣어 본 아이디·비밀번호 조합 중 이 글에 그대로 옮기는 건 6종입니다. 기준은 하나입니다. 서로 다른 IP 세 곳 이상에서 똑같이 넣어 본 조합만 적습니다. 여러 곳이 똑같이 들고 다니는 번호라면 누구의 것도 아닌 공장 기본값일 가능성이 높습니다. 세 번째 칸의 숫자를 보세요.
| 아이디 | 비밀번호 | 서로 다른 출발지 |
|---|---|---|
| admin | admin | 37곳 |
| 345gs5662d34 | 345gs5662d34 | 37곳 |
| root | 3245gs5662d34 | 15곳 |
| GET / HTTP/1.1 | Host: (주소 생략):23 | 5곳 |
| root | 1234 | 3곳 |
| root | 123456 | 3곳 |
사실
admin/admin은 37곳이 모두 118번 넣어 봤습니다. 한 곳당 3.2번입니다. 345gs5662d34/345gs5662d34는 37곳이 38번입니다. 거의 한 곳에 한 번씩입니다.
추정
네 번째 줄은 비밀번호가 아닙니다. 웹 페이지를 요청하는 문장(GET / HTTP/1.1)이 아이디 칸에 들어간 겁니다. 웹 서버를 찾는 스캐너가 텔넷 문에 웹 요청을 보냈습니다. 그 문장이 아이디·비밀번호 칸에 그대로 적힌 것으로 보입니다. 원래 비밀번호 칸에 주소가 들어 있었지만, 우리 서버 주소일 수 있어 생략했습니다.
사실 이 기준에 못 미친 조합은 개수만 셉니다. 어제는 1,861종이었습니다. 누군가의 진짜 계정에서 새어 나온 것일 수 있어서 값은 적지 않습니다. 표에 적은 조합 하나마다 적지 않은 조합이 310개쯤 있었던 셈입니다. 최근 흐름은 10월 1일 1,608종 → 10월 4일 3,026종 → 10월 6일 2,213종 → 10월 8일 3,212종 → 어제 1,861종입니다.
사실 어제 로그인에 성공한 다섯 세션이 어떤 조합으로 열었는지는 모릅니다. 접속과 비밀번호를 이어 주는 정보가 기록에 없습니다.
어제 나온 값 — 받아 적을 것
방어에 쓰실 수 있게 그대로 옮깁니다. 이런 값을 IOC(침해 지표)라고 부릅니다. “이 값이 보이면 의심하라”는 표지입니다. 값을 누르면 복사됩니다. 설명 칸의 ’보낸 곳’을 보세요.
01ba4719c80b6fe911b091a7c05124b64eeece964e09c058ef8f9805daca546b1바이트 빈 파일 · 하루 20회 · 보낸 곳 ATK-8FB338, ATK-FB5E45 · URL 미기록 · 아카이브에 반복 등장한 해시사실
어제의 IOC는 이 한 줄입니다. 글자 한 자짜리, 사실상 빈 파일입니다. 그런데 보낸 곳에 오늘의 주인공 ATK-FB5E45가 들어 있습니다. 새로 나온 값이 아니라 반복해서 나온 값입니다. 어제 첫 번째 사물함에 남은 파일 5종은 내려온 주소(URL)가 모두 비어 있었습니다. 그래서 어제 새로 신고할 유포지가 있었는지는 이 기록으로 확인되지 않습니다. 유포지는 파일을 내려주는 곳입니다.
공격자가 쓴 수법을 국제 분류표에 대응시키면
MITRE ATT&CK은 공격 수법마다 번호를 붙여 둔 국제 목록입니다. 어제 본 행동을 그 번호에 맞추면 이렇습니다. ID를 누르면 원문 설명으로 갑니다.
- T1078Valid Accounts — 로그인 성공 5건. 어떤 자격증명으로 들어왔는지는 JSON 에 없다추정
- T1082System Information Discovery — intents '정찰 — 시스템'추정
- T1098.004Account Manipulation: SSH Authorized Keys — intents '지속성 — SSH 키 심기'추정
- T1053.003Scheduled Task/Job: Cron — intents '지속성 — cron'추정
- T1070Indicator Removal — intents '흔적 삭제'. 명령 원문이 없어 하위 기법(히스토리 삭제·로그 삭제 등)은 특정하지 않는다추정
- T1046Network Service Discovery — 02 RDP 255곳의 넓고 얕은 접촉, RDP 쿠키 nmap·zgrab추정
사실
여섯 줄 모두 [추정] 입니다. 우리 손에 있는 건 행동 분류와 횟수까지이고, 명령 원문은 없습니다. 눈여겨볼 줄은 가운데 두 줄, T1098.004와 T1053.003입니다. 여벌 열쇠 구멍과 타이머 장치가 이 번호입니다. 둘 다 ’다음에 또 들어오기’를 위한 수법입니다. 맨 아래 T1046은 원격 데스크톱 칸을 훑고 간 255곳의 모양을 가리킵니다.
전에 이런 모양이 있었다
사실 Outlaw 봇넷 (2018~2019). 리눅스 서버에 비밀번호를 무작위로 넣어 들어간 뒤,
authorized_keys를 바꾸고 cron을 등록해 계속 드나들 수 있게 만든 무리입니다. 봇넷은 감염된 컴퓨터 여러 대를 한꺼번에 조종하는 무리를 말합니다. (출처 유형: 보안 벤더 위협 보고서 · Trend Micro 블로그)
추정 ’열쇠 심기 + 예약 작업’이라는 조합이 같습니다. 하지만 우리 기록에는 채굴 프로그램도, 실행파일도, 명령 원문도 없습니다. 그래서 Outlaw 계열이라고 판정하지 않습니다. 수법이 닮았다는 비교일 뿐, 누가 했는지 가리는 근거가 아닙니다.
그래서 뭘 해야 하나
사물함 이야기로 돌아가면 할 일은 세 가지로 모입니다. 복도에 사물함을 내놓지 말 것. 번호를 공장 설정으로 두지 말 것. 열렸던 적이 있다면 번호만 바꾸지 말고 안쪽을 뒤져 볼 것. 브리프가 꼽은 여섯 가지를 차례로 봅니다.
사실 1. 관리 포트를 인터넷에 직접 열어 뒀다 · 가능성 높음 원격 데스크톱 칸에 하루 1,058번, 255곳이 손을 댔습니다. 첫 번째 사물함에는 SSH 2,321세션, 텔넷 326세션이 왔고 그중 로그인 성공만 5건입니다.
추정 운영 중인 컴퓨터가 3389번을 인터넷에 열어 뒀다면 하루에 255곳이 그 문을 확인하고 갔을 겁니다. 두 번째 사물함은 열리지 않으니 그다음 피해는 이 기록으로 말할 수 없습니다. 확인되는 건 “열려 있다는 사실이 하루 만에 수백 곳에 알려진다” 까지입니다.
사실
2. 기본 계정·쉬운 비밀번호를 그대로 쓴다 · 가능성 높음
admin/admin은 37곳에서 118번, root/1234·root/123456은 각 3곳에서 들어왔습니다.
추정
이 조합을 쓰는 장비는 하루 안에 맞춰질 수 있습니다. 열리고 나면 ATK-FB5E45처럼 1분 안에 열쇠 심기와 예약 작업이 들어옵니다. 그 뒤에는 번호를 바꿔도 여벌 열쇠로 계속 열릴 수 있습니다. 다만 어제 성공한 다섯 건이 어느 조합으로 들어왔는지는 모릅니다.
사실 3. 비밀번호 로그인을 허용하고 열쇠 방식을 안 쓴다 · 가능성 높음 로그인 시도 2,068회, 값을 적지 않은 조합 1,861종. SSH 로그인 성공도 2건 있었습니다.
추정 비밀번호만으로 여는 서버는 공개된 6종에 더해 적지 않은 1,861종을 모두 상대해야 합니다. 새어 나온 목록에 진짜 직원 계정이 섞여 있다면 무작위 대입이 아니라 한 번에 맞는 로그인이 됩니다. 성공한 세션이 실제로 비밀번호로 들어왔는지는 기록에 없습니다.
사실
4. 실패 횟수 제한(fail2ban 등)이 없다 · 가능성 중간
345gs5662d34 조합은 37곳이 한 곳당 1.03번, admin/admin은 한 곳당 3.2번, 원격 데스크톱은 한 곳당 4.15번이었습니다.
추정 fail2ban은 같은 곳에서 몇 번 틀리면 그 출발지를 막는 도구입니다. 그런데 어제의 시도는 한 곳에서 몰아치지 않았습니다. 여러 곳에 얇게 나뉘어 있었습니다. “한 곳에서 5번 틀리면 차단” 같은 규칙은 대부분의 출발지에서 발동하지 않았을 겁니다. 그래서 ’높음’이 아니라 ’중간’입니다. 차단 기록이 조용하다고 아무도 안 온 게 아닙니다. 출발지와 상관없이 계정 하나에 쌓인 실패를 세어야 이런 분산 시도가 보입니다.
사실
5. 서버가 밖으로 나가는 연결을 막지 않는다 · 가능성 중간
‘파일 다운로드’ 20건, ‘다운로드 후 실행’ 20건이 분류됐습니다. ATK-ADE2BE·ATK-CA5936·ATK-A51A59의 행동에 ’파일 다운로드’가 있었습니다.
추정 바깥에서 파일을 받으려는 의도는 보였습니다. 하지만 어제 남은 파일 5종은 주소가 모두 비어 있고, 실행파일도 없었습니다. 바깥과 실제로 연결이 됐는지 확인되지 않아 ’중간’입니다. 바깥 연결을 막아 뒀다면 이 단계에서 흐름이 끊깁니다.
사실
6. 기록을 바깥에 모으지 않는다(로그 수집·EDR 없음) · 가능성 높음
하루 전체 ’흔적 삭제’가 44건입니다. ATK-FB5E45 한 세션에 열쇠 심기·cron·흔적 삭제가 함께 있었습니다. ATK-8FB338은 명령 61개 내내 행동이 ‘흔적 삭제’ 하나였습니다.
추정
EDR은 컴퓨터 안의 수상한 움직임을 기록하고 알려 주는 감시 프로그램입니다. 사용 기록장이 사물함 안에만 있으면 지워지는 순간 끝입니다. 여벌 열쇠 구멍과 타이머가 언제, 누구 손에 생겼는지 되짚을 수 없습니다. 그러면 비밀번호를 바꾸는 걸로 끝나지 않습니다. authorized_keys와 crontab(예약 작업 목록)을 모두 열어 보고, 다시 설치할지 판단해야 합니다. 우리가 “46일 전과 같다”고 말할 수 있는 것도 기록을 바깥에 따로 쌓아 뒀기 때문입니다.
같은 날 이야기를 60초 영상으로도 만들었습니다. 영상은 원격 데스크톱 문 앞의 255곳 하나에 집중했습니다. 이 글은 그 255곳이 다른 칸과 어떻게 달랐는지, 그리고 같은 날 열린 사물함 안에 무엇이 남았는지까지 펼쳤습니다.
우리가 모르는 것
이 블로그가 다른 곳과 다른 지점입니다. 아는 것만큼 모르는 것도 적습니다.
원격 데스크톱 칸의 255곳에 대해
- [확인 불가] 255곳이 도구 하나를 여러 곳에 나눠 돌린 것인지, 서로 상관없는 여러 스캐너가 겹친 것인지 모릅니다. 두 번째 사물함에는 SSH 지문처럼 출발지를 묶을 정보가 없습니다.
- [확인 불가] 두 번째 사물함에서 여러 칸을 함께 만진 출발지 수는 셀 수 없습니다. 출발지별 기록에 어느 칸인지 구분이 없습니다. 0으로 적으면 ’없었다’로 읽히므로 비워 둡니다.
- [확인 불가] 꼬리표가 없는 216건이 어디서 왔는지 모릅니다.
'<ip>'꼬리표 비중이 74.7%로 오른 이유도 모릅니다.
1분짜리 세션에 대해
- [확인 불가]
ATK-FB5E45가 어떤 열쇠를 심었는지, 예약 작업을 몇 시에 무엇을 하게 맞췄는지 모릅니다. 행동 분류는 ’무엇을 하려 했나’의 묶음일 뿐입니다. 명령 원문과 입력 기록 내용이 없습니다. - [데이터 불일치] 지문
f555226d…는 ’파일을 보낸 적 없음’으로 표시돼 있습니다. 그런데 이 지문의 세션ATK-FB5E45는 1바이트 파일을 보낸 곳 목록에 들어 있습니다. 빈 파일이 집계에서 빠지는 건지, 기록이 설명하지 않습니다. - [데이터 불일치] 1바이트 파일은 하루 20회인데, 보낸 두 별칭의 다운로드 수를 더하면 22회(
ATK-8FB33820 +ATK-FB5E452)입니다.ATK-FB5E45의 다운로드 2건 중 나머지 1건이 389바이트 공개키인지는 확인할 수 없습니다. 공개키를 보낸 40곳 중 이름이 공개된 건 10곳뿐입니다. - [확인 불가] 지문
f555226d…의 ‘전체 기간 IP 수’ 656곳은 누적 숫자로 읽으면 안 됩니다. 이 값이 늘기만 하는 게 아니라는 점이 9/5·9/8·9/10 브리프에서 이미 확인됐습니다.
같은 날 다른 기록에 대해
- [확인 불가]
ATK-ADE2BE·ATK-A51A59는 행동에 다운로드가 있는데 실제 다운로드는 0건입니다. 시도했다 실패한 건지, 받았지만 저장되지 않은 건지 구분하지 못합니다. - [확인 불가]
ATK-CA5936이 남긴 399바이트 OpenSSH 개인키(43728fbf…)가 공격자가 가져온 건지, 세션 중에 만들어진 건지 모릅니다. 8월 19일부터 풀리지 않은 문제입니다. - [확인 불가] 반복해서 나온 Discord 웹훅(메시지를 자동으로 보내는 주소) 1건이 어느 세션·파일과 이어지는지 모릅니다. 토큰이 들어 있어 원문은 싣지 않습니다.
- [확인 불가] 어제 남은 파일 5종은 주소가 모두 비어 있습니다. 새로 C-TAS에 신고할 유포지가 있었는지 이 기록으로 알 수 없습니다. C-TAS는 한국인터넷진흥원(KISA)의 위협 정보 공유 체계입니다. 신고는 전송 성공만 확인되고, KISA 쪽 적재 여부는 따로 확인해야 합니다.
숫자의 성격에 대해
- [확인 불가] 값을 적지 않은 1,861종 가운데 실제로 새어 나온 계정이 몇 개인지 모릅니다. ’새어 나왔을 수 있다’는 공개 기준이지 판정이 아닙니다.
- [게시 전 확인 필요] 비밀번호 표의
GET / HTTP/1.1줄에는 원래 주소 원문이 들어 있었습니다. 우리 서버 주소일 수 있어 생략했습니다. 정리 과정이 아이디·비밀번호 칸 안의 주소를 가리지 못한 것으로 보여 확인이 필요합니다. - [배경] 취약점 통계(CVE 7,679건 · 실제 악용 확인 KEV 413건 · 랜섬웨어 확인 101건, 상위에 FortiOS·Confluence·Log4j2·NetScaler·PAN-OS)는 KISA 공지 기반의 배경 정보입니다. 어제 원격 데스크톱·SSH 관측과 직접 이어지지 않습니다.
- [제외] 압축을 풀어야만 나오는 지표 12건(
31[.]77[.]227[.]121/bins/)은 8월 16일부터 반복된 값이라 어제의 새 재료로 쓰지 않았습니다.
아예 판단하지 않는 것
- 통신사·조직(ASN·ISP): 관련 데이터베이스가 없습니다. 추정하지 않습니다.
- 지리 위치: 같은 이유로 모릅니다. IP 지리정보는 애초에 누가 했는지 가리는 근거가 되지 못합니다. 이 글은 어떤 국가·기업·개인도 공격자로 지목하지 않습니다.
- VPN·Tor·클라우드 여부: 판별할 수단이 없습니다.
- VirusTotal: 연동돼 있지 않습니다. 파일 분류는 MalwareBazaar 태그를 씁니다.
- 접속 프로그램 문자열(User-Agent): 두 서버 모두 웹(HTTP) 서버가 아닙니다. 첫 번째는 SSH·텔넷, 두 번째는 SMB·RDP·VNC·MSSQL·LDAP·ADB입니다.
- 취약점 번호(CVE) 연결: SSH·텔넷 공격은 대부분 특정 취약점을 참조하지 않습니다. 두 번째 서버도 접속 규칙을 맞추는 단계라 마찬가지입니다.
어제 복도에서는 두 가지 일이 있었습니다. 열리지 않는 사물함의 원격 데스크톱 칸 앞으로 255곳이 지나갔습니다. 기록을 시작한 뒤 가장 많은 숫자입니다. 그런데 다들 자물쇠를 네 번쯤 만지고 떠났습니다. 반대편 열리는 사물함에서는 한 곳이 1분 머물렀습니다. 그동안 여벌 열쇠 구멍을 뚫고, 타이머를 넣고, 기록장을 지우려 했습니다. 46일 전에 본 것과 같은 모델의 공구였습니다.
두 장면은 한 가지를 말합니다. 자물쇠를 만지는 쪽은 사물함 주인이 누구인지 묻지 않습니다. 번호를 안 바꾼 사물함이 있는지만 봅니다. 그리고 한 번 열리면 번호를 바꿔도 계속 열리게 만들어 두고 갑니다. 그러니 할 일은 두 가지입니다. 원격 데스크톱처럼 안 쓰는 칸은 복도에서 치워 두기. 혹시 열린 적이 있다면 번호만 바꾸지 말고 안쪽에 낯선 열쇠 구멍과 타이머가 없는지 열어 보기입니다.
관측일은 2026년 10월 11일(UTC 기준 하루)이고, 이 글은 다음 날 정리했습니다. 출발지 IP는 브리프에 가림 처리된 형태(222.71.x.x, 45.43.x.x, 130.12.x.x, 111.246.x.x, 171.114.x.x, 201.79.x.x) 그대로 옮겼고 복원하지 않았습니다. 주소는 실수로 접속되지 않도록 디팽(hxxp://, [.]) 상태를 유지했습니다. 자격증명은 서로 다른 IP 3곳 이상에서 반복 관측된 조합 6개만 원문 인용했습니다. 나머지 1,861종은 개수만 밝히고 값은 적지 않았습니다. 통신사·국적·VPN 여부처럼 우리에게 계측 수단이 없는 항목은 추정하지 않고 “모른다”로 남겨 뒀습니다.
