SecurityHeroblog

9.5초짜리 녹음 전화가 1분 40초 동안 네 번 걸려 왔다

10월 8일 저녁, 같은 출발지가 텔넷으로 우리 서버에 네 번 로그인했습니다. 네 번 모두 명령 9개를 9.5~9.7초 만에 끝냈고, 매번 1,670바이트짜리 설치 스크립트를 받아 갔습니다. 이 파일은 하루 15번 내려왔고, 15번 모두 받아 간 곳은 이 출발지 하나였습니다.

모르는 번호로 전화가 왔다고 해 봅시다. 받아 보니 사람이 아니라 녹음입니다. “안녕하세요, 고객님. 아래 주소에서 앱을 받아 설치해 주세요.” 끊고 나니 1분도 안 돼 또 옵니다. 같은 목소리에 같은 문장입니다. 길이까지 똑같습니다.

사람이 거는 전화는 매번 조금씩 다릅니다. 말이 빨라지기도 하고, 한숨을 쉬기도 하고, 단어를 바꾸기도 합니다. 녹음은 그렇지 않습니다. 몇 번을 틀어도 같은 문장이 같은 초 수 안에 끝납니다.

어제 우리 서버에 이런 전화가 네 번 걸려 왔습니다. 네 번 모두 받았고, 네 번 모두 녹음이 시키는 대로 했습니다. 오늘 이야기는 그 녹음의 길이에 관한 것입니다.

우리 휴대폰은 시키는 대로 다 합니다

사실 우리는 허니팟을 운영합니다. 허니팟은 일부러 허술하게 열어 둔 미끼 서버입니다. 누가 와서 무엇을 하는지 지켜보려고 둡니다. 전화로 치면 모르는 번호도 다 받고, 시키는 일도 다 하는 휴대폰입니다. 대신 통화 내용을 전부 적어 둡니다. 아래 이야기는 실제 피해가 아니라 관찰 기록입니다.

사실 서버는 두 대입니다. 첫 번째(센서 01)는 비밀번호가 맞으면 실제로 들어갈 수 있습니다. 들어온 쪽이 무슨 일을 했는지까지 기록됩니다. 두 번째(센서 02)는 절대 열리지 않습니다. 누가 어느 문을 몇 번 두드렸는지만 적습니다. 오늘 주인공은 첫 번째 서버에서 나왔습니다.

네 통의 전화, 초 단위로 보면

사실 전화를 건 쪽은 ATK-713362입니다. ATK-로 시작하는 이름은 우리가 출발지마다 붙이는 별칭입니다. 실제 주소는 172.166.x.x처럼 뒷자리를 가려서 적습니다.

사실 이 출발지는 텔넷으로 들어왔습니다. 텔넷은 멀리 있는 컴퓨터에 들어가 명령을 치는 오래된 통로입니다. 오가는 내용을 암호로 감싸지 않습니다. 비밀번호까지 그대로 보입니다. 지금은 공유기·인터넷 카메라·오래된 장비에 주로 남아 있습니다.

네 통을 나란히 놓으면 이렇습니다. ‘통화 길이’ 칸을 위아래로 훑어보세요.

회차 시작 (한국 시간) 통화 길이 명령 받은 파일 직전 통화와 간격
1 20:04:55 9.54초 9개 1건 —
2 20:05:20 9.54초 9개 1건 15.95초
3 20:05:58 9.68초 9개 1건 27.83초
4 20:06:26 9.68초 9개 1건 18.51초

사실 네 번 모두 로그인에 성공했습니다. 전화를 받았다는 뜻입니다. 첫 통화가 시작되고 마지막 통화가 끝날 때까지 1분 40.73초가 걸렸습니다. 명령은 모두 36개, 받은 파일은 4건입니다.

사실 통화 길이를 보세요. 첫째와 둘째가 9.54초로 같습니다. 셋째와 넷째가 9.68초로 같습니다. 둘 사이의 차이는 0.14초입니다. 눈 한 번 깜빡하는 정도입니다.

사실 9.54초 동안 명령 9개면 거의 1초에 한 줄입니다. 명령 한 줄을 읽고, 생각하고, 손으로 치기에는 빠듯한 속도입니다. 그런데 그 속도가 네 번 내내 같았습니다.

추정 사람이 직접 쳤다면 네 번의 길이가 이렇게 맞기 어렵습니다. 정해진 순서를 자동으로 다시 트는 도구일 가능성이 높습니다. 녹음을 네 번 튼 것에 가깝습니다.

사실 네 통화 모두 같은 네 가지 행동이 분류됐습니다. 시스템 정찰, 파일 다운로드, 실행 권한 부여, 다운로드 후 실행입니다.

  • 시스템 정찰은 들어온 컴퓨터가 어떤 기계인지 둘러보는 일입니다.
  • 실행 권한 부여는 받은 파일에 “이건 실행해도 되는 프로그램”이라는 표시를 붙이는 일입니다.
  • 다운로드 후 실행은 받은 파일을 실제로 돌리는 일입니다.

추정 다만 이 네 가지가 어떤 순서로 일어났는지는 모릅니다. 분류 기록은 순서를 담지 않습니다. “둘러보고 → 받고 → 표시하고 → 돌렸다”고 쓰고 싶어집니다. 하지만 말할 수 있는 건 “네 가지가 다 관측됐다”까지입니다. 남의 열쇠를 몰래 걸어 두는 일(지속성)이나 기록 지우기(흔적 삭제)는 이 출발지의 통화에 없었습니다. 그래서 오늘 이야기는 들어와서, 받아서, 돌리기까지입니다.

녹음이 알려 준 주소

사실 매 통화에서 받아 간 파일은 wget.sh입니다. 셸 스크립트입니다. 셸 스크립트는 명령 여러 줄을 파일 하나에 적어 둔 쪽지입니다. 크기는 1,670바이트입니다. 영어 글자 1,670자쯤 됩니다. 휴대폰 문자(영문 160자) 열 통 남짓한 길이입니다.

사실 이 쪽지는 hxxp://143[.]20[.]154[.]42/bins/wget.sh에서 내려왔습니다. 이렇게 파일을 내려주는 곳을 유포지라고 부릅니다. 주소 앞의 hxxp와 중간의 [.]는 실수로 눌러도 접속되지 않게 일부러 망가뜨린 표기입니다.

사실 어제 하루 이 쪽지는 15번 내려왔습니다. 15번 모두 받아 간 곳은 ATK-713362 하나였습니다. 같은 녹음 전화가 같은 주소를 열다섯 번 불러 준 셈입니다.

사실 그런데 위 표의 네 통화에서 받은 파일은 4건입니다. 15건과 11건이 차이 납니다.

추정 그 차이로 보아 이 출발지는 우리가 눈여겨본 네 통 말고도 전화를 더 건 것으로 보입니다. 몇 통을 더 걸었는지, 언제였는지는 기록에 없습니다.

사실 쪽지 다음은 무엇이었을까요. 보통 이런 쪽지는 진짜 프로그램(실행파일)을 불러오는 설치 안내서 역할을 합니다. 그런데 어제 첫 번째 서버에 남은 파일 5종 가운데 실행파일은 하나도 없었습니다. 쪽지 내용도 브리프에 없습니다. 그래서 이 쪽지가 다음에 무엇을 부르려 했는지 알 수 없습니다.

사실 별칭 ATK-713362, 유포지 143[.]20[.]154[.]42, 쪽지의 해시 81a7cdbb…는 모두 8월 16일부터 쌓은 34개 브리프에 한 번도 없던 값입니다. 해시는 파일 내용 전체로 계산한 고유 번호입니다. 한 글자만 달라도 완전히 다른 값이 나옵니다.

사실 하나 더 짚어 둡니다. 들어온 주소(172.166.x.x)와 유포지(143[.]20[.]154[.]42)는 앞 두 자리가 다릅니다. 9월 7일·9월 8일·9월 15일·10월 6일에는 둘의 앞자리가 같은 모양이 나왔습니다. 이번은 그 모양이 아닙니다.

발신자 번호 표시가 안 되는 전화

사실 SSH로 들어오는 프로그램은 접속할 때 설정 조합이 드러납니다. 우리는 그걸로 접속 지문(hassh)을 만들어 같은 도구끼리 묶습니다. 그런데 텔넷에는 이런 지문이 생기지 않습니다. 기록에도 빈 칸으로 남아 있습니다.

추정 전화로 치면 발신자 번호 표시가 안 되는 전화입니다. 그래서 오늘은 도구가 아니라 통화의 모양으로 이 출발지를 봅니다. 9.5초, 명령 9개, 파일 1건. 이 모양이 네 번 반복됐다는 것이 우리가 가진 전부입니다.

사실 접속 포트(한 컴퓨터 안의 문 번호)는 세션마다 기록되지 않았습니다. 하루 전체에서 포트 2223 수(341)와 텔넷 수(341)가 정확히 같습니다.

추정 그래서 이 통화들도 2223번 문으로 왔다고 맞춰 봤습니다. 숫자를 맞춘 추정입니다.

시간 순서로 늘어놓으면

어제 기록을 시간 순서대로 놓으면 이렇습니다. 시각은 세계 표준시(UTC)입니다. 한국 시간은 9시간을 더하면 됩니다. 위 네 줄의 시작과 끝 사이 초 단위를 눈여겨보세요.

  1. 사실 ATK-713362(172.166.x.x) 텔넷 로그인 성공. 9.54초 · 명령 9개 · 다운로드 1건 · 기록 촘촘함 18. 입력 기록(TTY)은 있으나 내용은 브리프에 없다
  2. 사실 직전 세션이 끝나고 15.95초 뒤 같은 별칭이 다시 로그인 성공. 9.54초 · 명령 9개 · 다운로드 1건. 첫 세션과 초 단위까지 같은 길이
  3. 사실 세 번째 세션. 직전과 27.83초 간격. 9.68초 · 명령 9개 · 다운로드 1건
  4. 사실 네 번째 세션. 직전과 18.51초 간격. 9.68초 · 명령 9개 · 다운로드 1건. 첫 세션 시작부터 1분 40.73초 동안 명령 36개, 다운로드 4건
  5. 추정 네 세션의 행동 분류는 같다. 다만 이 목록은 실행 순서를 담지 않는다. '정찰 → 다운로드 → 권한 → 실행' 순이라고는 쓸 수 없고, 네 단계가 관측됐다는 데까지만 말할 수 있다
  6. 추정 세션 길이(9.54·9.54·9.68·9.68초)와 명령 수(9개)가 반복된다. 사람이 직접 친 것이 아니라 정해진 순서를 자동으로 재생하는 도구일 가능성이 높다
  7. 사실 wget.sh(81a7cdbb…, 1,670바이트 POSIX 셸 스크립트)가 hxxp://143[.]20[.]154[.]42/bins/wget.sh 에서 15회 내려왔다. 받아 간 곳은 ATK-713362 하나뿐
  8. 추정 15회와 위 네 세션의 다운로드 4회 사이에 11회 차이가 있다. 이 별칭은 상위 5건 밖에서도 세션을 더 연 것으로 보인다. 몇 번, 언제인지는 기록에 없다
  9. 사실 첫 번째 서버에 저장된 파일 5종 가운데 실행파일은 없다. wget.sh 가 다음에 무엇을 불러오려 했는지는 스크립트 내용이 없어 알 수 없다
  10. 사실 기록 촘촘함 최고(42) 세션은 ATK-DE3709(123.184.x.x)의 텔넷 세션. 21.91초 · 명령 22개 · 다운로드 11건 · 행동 분류는 '방어 무력화' 하나. 받은 파일은 아카이브 19개 브리프에 이미 있던 1바이트 파일(01ba4719…)
  11. 사실 들어온 주소(172.166.x.x)와 유포지(143[.]20[.]154[.]42)의 앞 두 자리가 다르다. 9/7·9/8·9/15·10/6 의 '앞자리가 같은' 모양은 아니다

사실 위 네 줄은 모두 10초 안에 끝났습니다. 네 통화를 다 합쳐도 38.44초입니다. 1분 40초 가운데 절반이 안 됩니다. 나머지 1분 2초는 전화를 끊고 다시 거는 사이였습니다.

사실 아래에서 두 번째 줄도 보세요. ATK-DE3709는 어제 기록이 가장 촘촘했던 세션입니다. 하지만 받아 간 파일은 1바이트, 글자 딱 한 자짜리였습니다. 그것도 이미 19번의 브리프에 나온 파일입니다. 그래서 오늘 주인공에서 뺐습니다.

어제 하루 전체

이제 시야를 넓혀 첫 번째 서버의 하루 전체를 봅니다. 오른쪽 ‘견줄 것’ 칸이 숫자를 손에 잡히게 해 줍니다.

항목 10월 8일 견줄 것
세션(접속 한 번) 3,793건 약 23초에 한 번
고유 출발지 197곳 한 곳이 평균 약 19번
로그인 시도 3,436회 약 25초에 한 번 비밀번호를 넣어 본 셈
친 명령 4,083개 약 21초에 하나
포트 2222 (SSH) 3,452세션 전체의 약 91%
포트 2223 (텔넷) 341세션 약 9% · 약 4분에 한 번

사실 SSH는 텔넷과 같은 일을 하는 통로입니다. 차이는 내용을 암호로 감싼다는 점입니다. 텔넷 쪽은 하루 341건으로 전체의 열에 하나도 안 됩니다. 그런데 오늘 주인공은 그 적은 쪽으로 왔습니다.

사실 의도로 분류된 명령은 3,532건입니다. 그중 3,161건(89.5%)이 시스템 정찰이었습니다. 열 번 중 아홉 번은 들어와서 둘러보기만 했다는 뜻입니다. ’SSH 키 심기’는 35건이었습니다. 비밀번호 없이 들어올 수 있는 열쇠를 몰래 걸어 두는 일입니다. 같은 389바이트짜리 열쇠(a8460f44…)가 33번 내려왔습니다. 문자 메시지 두세 통 정도 되는 크기입니다. 이건 오늘 주인공이 아니라 다른 접속들에서 나온 숫자입니다.

사실 두 서버를 합친 고유 출발지는 최대 494곳입니다. 두 서버에 겹쳐 온 곳을 알 수 없어서 ’최대’라고만 씁니다. 세션 수는 두 서버의 세는 단위가 달라서 더하지 않습니다.

이 비밀번호 쓰고 계신가요

사실 어제 시도된 아이디·비밀번호 조합 중 이 글에 그대로 옮기는 건 19종입니다. 기준은 하나입니다. 서로 다른 IP 세 곳 이상에서 똑같이 넣어 본 조합만 적습니다. 여러 곳이 똑같이 들고 다니는 번호라면 누구의 것도 아닌 공장 기본값일 가능성이 높습니다. 세 번째 칸의 숫자를 보세요.

아이디 비밀번호 서로 다른 출발지
345gs5662d34 345gs5662d34 34곳
root 3245gs5662d34 16곳
admin admin 14곳
root admin 5곳
root 123456 5곳
root 12345 5곳
root 111111 4곳
root (빈 칸) 3곳
root vizxv 3곳
root anko 3곳
root 888888 3곳
root root 3곳
root 123321 3곳
root 123123 3곳
root 1234 3곳
root 12345678 3곳
root 123456789 3곳
root password 3곳
guest guest 3곳

사실 이 기준에 못 미친 조합은 개수만 셉니다. 어제는 3,212종이었습니다. 누군가의 진짜 계정에서 새어 나온 것일 수 있어서 값은 적지 않습니다. 표에 적은 조합 하나마다 적지 않은 조합이 170개쯤 있었던 셈입니다.

사실 3,212종은 34개 브리프 가운데 가장 많은 숫자입니다. 최근 흐름은 10월 1일 1,608종 → 10월 4일 3,026종 → 10월 6일 2,213종 → 어제 3,212종입니다. 일주일 전의 두 배쯤 됩니다.

사실 오늘 주인공이 이 중 어떤 조합으로 전화를 받게 했는지는 모릅니다. 접속과 비밀번호를 이어 주는 정보가 기록에 없습니다.

두 번째 서버 앞은

사실 열리지 않는 두 번째 서버에는 누가 어느 문을 몇 번 두드렸는지만 남습니다.

문 무엇을 하는 문인가 포트 접촉 출발지
VNC 화면 공유 5900 36,037건 60곳
RDP 윈도우 원격 데스크톱 3389 795건 119곳
SMB 윈도우 파일 공유 445 224건 43곳
ADB 안드로이드 기기 연결 통로 기록 없음 211건 기록 없음
LDAP 회사 계정 목록 조회 389 88건 42곳
MSSQL 마이크로소프트 데이터베이스 1433 40건 14곳

사실 전체 37,395건 중 VNC가 **96.4%**입니다. 하루 36,037건이면 약 2.4초에 한 번입니다. 한 출발지가 평균 600번쯤 두드렸습니다. 접속할 때 내미는 버전 표기 003.008의 비중은 98.0%였습니다. 10월 1일 63.2%, 10월 4일 94.1%에 이어 또 커졌습니다.

사실 가장 많이 온 여섯 곳은 각각 4,780~5,338건으로 고르게 나뉩니다. 여섯 곳을 합치면 29,492건입니다.

추정 숫자가 고른 걸 보면 같은 설정의 스캐너들이 일을 비슷하게 나눠 맡은 모양입니다. 다만 이 접촉들이 어느 문을 향했는지는 기록에 없습니다.

사실 SMB 쪽에서는 SMB 2.??? 한 건을 빼면 전부 SMB1 계열 이름만 나왔습니다. SMB1은 윈도우 파일 공유의 아주 오래된 방식입니다.

추정 아직 이 낡은 방식을 받아 주는 서버를 찾는 요청으로 보입니다.

사실 RDP로 접속할 때 붙여 보내는 꼬리표(쿠키)는 655건이었습니다. 이 꼬리표는 상대가 마음대로 채우는 글자라서 특정 도구로 묶지 않습니다. 이 서버에 남은 파일 4종은 모두 전에 본 해시입니다. 보낸 별칭 ATK-E2D202만 처음 보는 값이었습니다.

어제 나온 값 — 받아 적을 것

방어에 쓰실 수 있게 그대로 옮깁니다. 이런 값을 IOC(침해 지표)라고 부릅니다. “이 값이 보이면 의심하라”는 표지입니다. 값을 누르면 복사됩니다. 주소는 망가뜨린 표기 그대로 둡니다. 설명 칸의 ’받아 간 곳’을 보세요.

url
hxxp://143[.]20[.]154[.]42/bins/wget.sh1,670바이트 POSIX 셸 스크립트 · 하루 15회 · 받아 간 곳 ATK-713362 단독 · 신규 유포지
sha256
81a7cdbbf15c84b01f5144fa45f4148dd12a373df07ea37850510cc3b0694d92위 wget.sh · 아카이브 34개 브리프에 없던 값

사실 두 줄 모두 어제 처음 본 값입니다. 받아 간 곳이 한 군데뿐이라 이 두 줄은 사실상 한 출발지의 서명입니다. 새 유포지 143[.]20[.]154[.]42는 C-TAS 신고 대상입니다. C-TAS는 한국인터넷진흥원(KISA)의 위협 정보 공유 체계입니다. 확인된 건 전송 성공까지입니다. KISA 쪽에 실제로 올라갔는지는 따로 확인해야 합니다.

공격자가 쓴 수법을 국제 분류표에 대응시키면

MITRE ATT&CK은 공격 수법마다 번호를 붙여 둔 국제 목록입니다. 어제 본 행동을 그 번호에 맞추면 이렇습니다. ID를 누르면 원문 설명으로 갑니다.

  • T1078Valid Accounts — 기본 계정 사용 추정. ATK-713362 가 어떤 자격증명으로 들어왔는지는 기록에 없다추정
  • T1082System Information Discovery — 행동 분류 '정찰 — 시스템'추정
  • T1105Ingress Tool Transfer — 행동 분류 '파일 다운로드', wget.sh 하루 15회추정
  • T1222.002Linux and Mac File and Directory Permissions Modification — 행동 분류 '실행 권한 부여'추정
  • T1059.004Command and Scripting Interpreter: Unix Shell — 행동 분류 '다운로드 후 실행', 받은 파일이 셸 스크립트추정

사실 다섯 줄 모두 **[추정]**입니다. 우리 손에 있는 건 행동 분류와 횟수, 파일까지입니다. 명령 36줄의 원문은 없습니다. 그래서 번호를 붙이는 일은 늘 해석입니다. 눈여겨볼 줄은 T1105입니다. 녹음이 불러 준 주소에서 쪽지를 받아 오는 단계가 이 번호입니다.

전에 이런 모양이 있었다

사실 Mirai 봇넷 (2016). 텔넷 기본 계정으로 IoT 장비에 로그인해 감염시킨 사건입니다. IoT 장비는 공유기·CCTV처럼 인터넷에 연결된 작은 기기입니다. 봇넷은 이렇게 감염된 기기 수많은 대를 한꺼번에 조종하는 무리입니다. (출처 유형: 정부 보안 경보 US-CERT TA16-288A · 학술 논문 USENIX Security 2017 ‘Understanding the Mirai Botnet’)

추정 텔넷으로 들어와 밖에서 파일을 받고, 실행 표시를 붙이고, 돌리는 흐름이 같습니다. 위 비밀번호 표의 root/vizxv·root/anko 같은 조합도 Mirai 공개 소스의 기본 계정 목록에 있는 값과 같은 형태입니다. 하지만 어제 쪽지의 내용과 그다음 프로그램을 확인하지 못했습니다. 그래서 Mirai 계열이라고 판정하지 않습니다.

그래서 뭘 해야 하나

전화 이야기로 돌아가면 할 일은 세 가지로 모입니다. 모르는 번호는 받지 않게 할 것. 받더라도 잠금 비밀번호를 기본값으로 두지 말 것. 녹음이 불러 준 주소에서 앱을 못 깔게 할 것. 브리프가 꼽은 다섯 가지를 차례로 봅니다.

사실 1. 관리 포트(텔넷)를 인터넷에 직접 열어 뒀다 · 가능성 높음 하루 동안 텔넷 접촉이 341건이었습니다. 그중 한 출발지는 1분 40초 사이 네 번 로그인에 성공했습니다.

추정 운영 서버가 텔넷을 열어 뒀다면 같은 전화를 같은 횟수만큼 받았을 겁니다. 텔넷은 내용을 감싸지 않으니 오가는 계정 정보도 그대로 드러납니다. 공유기나 카메라 설정 화면에서 텔넷을 꺼 두면 전화벨 자체가 울리지 않습니다.

사실 2. 기본 계정·쉬운 비밀번호를 그대로 쓴다 · 가능성 높음 admin/admin은 14곳, root/admin·root/123456·root/12345는 각 5곳, root/root·guest/guest는 각 3곳에서 들어왔습니다.

추정 이 표에 있는 비밀번호를 쓰는 장비는 서로 다른 출발지들이 같은 날 같은 조합으로 두드립니다. 열리고 나면 어제처럼 10초 안에 둘러보기·받기·표시·실행이 끝납니다. 다만 어제 주인공이 어느 조합으로 들어왔는지는 모릅니다.

사실 3. 비밀번호 로그인을 허용하고 열쇠 방식을 안 쓴다 · 가능성 높음 로그인 시도 3,436회, 값을 적지 않은 조합만 3,212종입니다.

추정 열쇠 방식(키 인증)은 비밀번호 대신 내 컴퓨터에만 있는 열쇠 파일로 들어가는 방법입니다. 비밀번호만으로 여는 서버는 이 목록 전체를 상대해야 합니다. 그리고 텔넷에는 열쇠 방식이 아예 없습니다. 텔넷을 쓰는 한 이 항목도 그대로 해당합니다. 새어 나온 목록에 우리 직원 계정이 섞여 있다면 수천 번이 아니라 한 번에 맞을 수도 있습니다.

사실 4. 서버가 밖으로 나가는 연결을 막지 않는다 · 가능성 높음 하루 동안 ’파일 다운로드’가 65회, ’다운로드 후 실행’이 28회 분류됐습니다. wget.sh는 15번 내려왔습니다.

추정 휴대폰에 “출처를 알 수 없는 앱 설치 차단”이라는 설정이 있습니다. 서버에도 같은 장치가 있습니다. 서버가 아무 바깥 주소에나 연결하지 못하게 막아 두는 겁니다. 그랬다면 녹음이 주소를 열다섯 번 불러 줘도 쪽지를 받는 단계에서 흐름이 끊겼을 겁니다. 쪽지가 그다음에 무엇을 부르려 했는지는 확인하지 못했습니다.

사실 5. 기록을 바깥에 모으지 않는다 · 가능성 중간 하루 전체에서 ’흔적 삭제’가 37회, ’방어 무력화’가 1회 있었습니다. 오늘 주인공의 통화에는 둘 다 없었습니다.

추정 그래서 ’중간’입니다. 같은 서버를 노리는 다른 출발지의 위험입니다. 통화 기록을 휴대폰 안에만 두면 지워지는 순간 끝입니다. 바깥으로 실시간 보낸 기록만 남습니다. 어제 “34개 브리프에 없던 값”이라고 말할 수 있었던 것도 지난 기록이 따로 쌓여 있어서였습니다.

같은 날 이야기를 60초 영상으로도 만들었습니다. 영상은 “처음 보는 손님이 15번 드나들었다”는 한 가지에 집중했습니다. 이 글은 그 손님이 매번 몇 초 머물렀는지, 무엇을 들고 나갔는지를 펼쳤습니다.

우리가 모르는 것

이 블로그가 다른 곳과 다른 지점입니다. 아는 것만큼 모르는 것도 적습니다.

네 통의 전화에 대해

  • [확인 불가] ATK-713362가 어떤 아이디·비밀번호로 들어왔는지 모릅니다. 접속과 비밀번호가 이어져 있지 않습니다.
  • [확인 불가] 매번 친 명령 9개의 내용과 순서를 모릅니다. 행동 분류는 ’무엇을 하려 했나’의 묶음일 뿐 실행 순서가 아닙니다.
  • [확인 불가] wget.sh 15회 중 네 통화에 잡히지 않은 11회가 언제, 몇 번의 접속에서 일어났는지 모릅니다.
  • [확인 불가] 세션별 접속 포트는 기록에 없습니다. 텔넷을 2223번 문으로 본 건 하루 숫자를 맞춰 본 추정입니다.

쪽지에 대해

  • [확인 불가] wget.sh의 내용을 모릅니다. 이 쪽지가 다음에 어떤 파일을 부르려 했는지도 모릅니다.
  • [확인 불가] 첫 번째 서버에 실행파일이 남지 않았습니다. 다음 단계가 실패한 건지, 다른 길로 간 건지, 원래 없던 건지 구분할 수 없습니다.
  • [확인 불가] C-TAS 신고는 전송 성공만 확인됐습니다. KISA 쪽 적재 여부는 따로 확인해야 합니다.

같은 날 다른 기록에 대해

  • [확인 불가] ATK-DE3709의 ’방어 무력화’가 무엇을 끄려 한 것인지 모릅니다. 1바이트 파일을 11번 받아 간 목적도 모릅니다.
  • [확인 불가] VNC 003.008 비중이 10/1 63.2% → 10/4 94.1% → 어제 98.0%로 커진 이유를 모릅니다. 상대 도구가 바뀐 건지, 우리 쪽 설정이 바뀐 건지 구분할 수 없습니다.
  • [확인 불가] 두 번째 서버에서 여러 문을 함께 두드린 출발지 수는 셀 수 없습니다. 출발지별 기록에 어느 문인지 구분이 없습니다. 0으로 적으면 ’없었다’로 읽히므로 비워 둡니다.

숫자의 성격에 대해

  • [확인 불가] 값을 적지 않은 3,212종 가운데 실제로 새어 나온 계정이 몇 개인지 모릅니다. ’새어 나왔을 수 있다’는 공개 기준이지 판정이 아닙니다.
  • [확인 불가] 취약점 통계(CVE 7,679건 · 실제 악용 확인 KEV 413건 · 랜섬웨어 확인 101건)는 KISA 공지 기반의 배경 정보입니다. 어제 허니팟 관측과 직접 이어지지 않습니다.
  • [제외] 압축을 풀어야만 나오는 지표 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·텔넷 공격은 대부분 특정 취약점을 참조하지 않습니다. 두 번째 서버도 접속 규칙을 맞추는 단계라 마찬가지입니다.

어제 저녁 8시, 같은 번호에서 전화가 네 통 왔습니다. 네 통 모두 9.5초 남짓이었습니다. 매번 아홉 마디를 하고, 같은 주소에서 같은 쪽지를 받아 가게 했습니다. 그 쪽지는 하루 열다섯 번 내려왔고, 받아 간 곳은 그 번호 하나였습니다.

녹음 전화는 상대를 가리지 않습니다. 누가 받든 같은 문장을 같은 길이로 틉니다. 그러니 막는 방법도 상대를 알아보는 데 있지 않습니다. 텔넷을 꺼서 전화벨이 울리지 않게 하고, 서버가 아무 주소에서나 받지 못하게 하면 됩니다. 집에 오래된 공유기나 카메라가 있다면, 오늘 설정 화면에서 텔넷부터 확인해 볼 차례입니다.


관측일은 2026년 10월 8일(UTC 기준 하루)이고, 이 글은 다음 날 정리했습니다. 출발지 IP는 브리프에 가림 처리된 형태(172.166.x.x, 123.184.x.x) 그대로 옮겼고 복원하지 않았습니다. 주소는 실수로 접속되지 않도록 디팽(hxxp://, [.]) 상태를 본문과 IOC 블록 모두에서 유지했습니다. 자격증명은 서로 다른 IP 3곳 이상에서 반복 관측된 조합 19개만 원문 인용했고, 나머지 3,212종은 개수만 밝히고 값은 적지 않았습니다. 통신사·국적·VPN 여부처럼 우리에게 계측 수단이 없는 항목은 추정하지 않고 “모른다”로 남겨 뒀습니다.