r103
r98

(r96으로 되돌림)
1[[분류:더시드위키]][[분류:나무위키]][[분류:알파위키]][[분류:문서 훼손]]
2[include(틀:사건사고)]
3[include(틀:문서 훼손 주의)]
4{{{#!folding [포크를 위한 이용허락 안내 (CC BY-NC-SA 2.0 KR등)]
5[include(틀:CCL, 라이선스=CC BY-NC-SA 2.0 (KR or Unported), 아이디=disciple153\, kmile\, A01)]
6------
7[include(틀:CCL, 라이선스=CC BY 1.0, 아이디=disciple153\, A01)]}}}
8[목차]
9== 개요 ==
102021년 12월 2일(KST 기준) [[the seed]] 엔진을 사용하고 클라우드플레어 적용을 받는 세 위키 [[나무위키]], [[더시드위키]], [[알파위키]]의 접속에 장애가 발생한 사건. 이들 중 더시드위키, 알파위키는 522 오류(Connection Timed Out)를 내뿜어 접속이 거의 불가능했었으나 나무위키는 엔터프라이즈 플랜이라 데이터 유동을 어느 정도 견디어 서버 다운까지는 발생하지 않았다.
r54

(r51으로 되돌림)
11
r98

(r96으로 되돌림)
12== 추정되는 원인 ==
13=== DDoS ===
14단순 서버 오류가 아니라 DDoS 공격으로 추정된다는 설이 있다. 해당 설이 있는 이유로는 더시드위키, 알파위키에 하술한 include 도배에도 불구하고 잠깐 동안 522 오류 없이 접근이 가능했기 때문이다.
r54

(r51으로 되돌림)
15
r98

(r96으로 되돌림)
16더시드위키에 (KST 기준) 12시 40분에 접근이 가능하였는지 include 도배로 반달된 문서들을 되돌린 작업이 있어 5시부터 12시 30분 까지, 12시 50분부터 17시까지에 발생한 것으로 추정된다.
17알파위키의 접속 가능상황은 더시드위키와 비슷했다. 그러나 알파위키 내에서 당시의 [[https://archive.ph/xyGub|최근 변경내역(KST 2021-12-03 06시 아카이브)]][*UTC 접속한 컴퓨터의 시간대에 맞게 편집, 토론 스레드 등의 시각이 변한다. 아카이브의 시각은 UTC 시간대이며 여기에 맞춰 스냅샷이 저장된 것. 따라서 UTC 및 기록된 편집 시각 등에서 9시간을 더 경과시킨 시각을 KST라 생각하면 이해할 수 있다.]을 보면 [[https://archive.ph/sWPzq|더시드위키(KST 2021-12-03 06시 아카이브)]][*UTC]와 다르게 include도배와 관련된 편집이나 편집 요청 내역이 없다. 그럼에도 불구하고 알파위키가 더시드위키와 동시에 접속이 안 되었던 정황과 두 위키 모두 [[namu]]의 소유인 정황으로 미루어 두 위키가 동일서버를 사용한다는 추정이 있다. (만일 이것이 사실이고 DDoS가 원인이라면 공격은 12시까지 되었고 12시 50분 경에 재시작했다는 말이 된다.)
r62
18
r98

(r96으로 되돌림)
19[각주]
r54

(r51으로 되돌림)
20
r98

(r96으로 되돌림)
21=== include 구문을 비롯한 도배 ===
22[anchor(include_반달)]include 구문(문법. 이하 "구문"으로 한다.)이 대상 문서에서 본문들을 모두 호출하는 명령이면서 '''무제한으로 가능'''함을 감안할 때, 문서 하나 열 때마다 KB(킬로바이트) 단위 되는 내용이 include 구문으로 도배한 횟수 만큼 기계적으로 로드(load)되는 구조라고 보면서 서버 자체에 무리를 준 공격의 원인이 되지 아니하냐는 설이 있다. 만일 문서 시스템이 이렇게 기계적으로 일일이 구문을 불러오고 이렇게 불어난 구문들을 컴파일하고 출력하는 방식으로 동작되고 있었다면 심각한 문제일 것이다.
r54

(r51으로 되돌림)
23
r98

(r96으로 되돌림)
24이 설이 있는 근거로는 두 사례가 있다.
25include로 문서를 끼워넣을 때 가져올 문서에 적힌 include명령문, 분류 등은 동작되지 않고 공백이 되어 끼워넣기가 되므로, 다음 글자수는 해당 설이 참이라고 가정했을 때 include 구문으로 입력되는 글자 수는 include구문, 분류 구문, 그 행이 입력된 개행(1회당 1자)들을 삭제하고 계산한 글자수이다.
r54

(r51으로 되돌림)
26
r98

(r96으로 되돌림)
27==== 나무위키에서의 사례 ====
28나무위키에서 include 구문을 악용하여 KST 2021-12-02 15:17:54에 LG U+ IPv6 통피인 2001:4430:412b:fc8c:d06a:7d30:babe:410e 의 편집으로 [[https://namu.wiki/w/SARS-CoV-2/%EC%98%A4%EB%AF%B8%ED%81%AC%EB%A1%A0%20%EB%B3%80%EC%9D%B4|"SARS-CoV-2/오미크론 변이"]] 문서(이하 "오미크론 변이" 문서)에 include 구문으로 도배되었다. 이 문서의 [[https://namu.wiki/history/SARS-CoV-2/%EC%98%A4%EB%AF%B8%ED%81%AC%EB%A1%A0%20%EB%B3%80%EC%9D%B4?from=720|편집 기록]] 중 r698판에 대한 "편집 비교"나 "Blame"을 열람하고자 하면 오류로 '''탭 로드가 중지되면서 튕긴다.''' ("편집 비교"나 "Blame"이 구문에 대하여 일부 동작이 되면서 데이터 비교를 보여주는 동작으로 추정된다.) 다만 r698판의 [[https://namu.wiki/raw/SARS-CoV-2/%EC%98%A4%EB%AF%B8%ED%81%AC%EB%A1%A0%20%EB%B3%80%EC%9D%B4?rev=698|RAW]]는 동작하기 전 입력된 구문들만 보여주는 까닭이라 열람이 가능하다.
r54

(r51으로 되돌림)
29
r98

(r96으로 되돌림)
30해당 도배된 구문은 {{{[include(제7회 전국동시지방선거/여론조사)]}}} 만 4,760번 입력인데, '오미크론 변이' 문서 수정 당시 시점인 KST 2021-12-02 15:17:54 기준으로 붙여놓기 된 문서는[[https://namu.wiki/w/%EC%A0%9C7%ED%9A%8C%20%EC%A0%84%EA%B5%AD%EB%8F%99%EC%8B%9C%EC%A7%80%EB%B0%A9%EC%84%A0%EA%B1%B0/%EC%97%AC%EB%A1%A0%EC%A1%B0%EC%82%AC|"제7회 전국동시지방선거/여론조사" 문서]](이하 "선거 여론조사" 문서)의 r1328판이다. 글자수만 해도 '선거 여론조사'에서 include구문과 그 구문이 기입된 행을 제외하고 연습장으로 옮겨 적으면 484,916자가 된다. (비교 : '선거 여론조사' 문서의 [[https://namu.wiki/raw/%EC%A0%9C7%ED%9A%8C%20%EC%A0%84%EA%B5%AD%EB%8F%99%EC%8B%9C%EC%A7%80%EB%B0%A9%EC%84%A0%EA%B1%B0/%EC%97%AC%EB%A1%A0%EC%A1%B0%EC%82%AC?rev=1328|1328판의 RAW]], 나무위키:연습장의 [[https://namu.wiki/raw/%EB%82%98%EB%AC%B4%EC%9C%84%ED%82%A4:%EC%97%B0%EC%8A%B5%EC%9E%A5?rev=13684|r13684판의 RAW]] 및 [[https://namu.wiki/history/%EB%82%98%EB%AC%B4%EC%9C%84%ED%82%A4:%EC%97%B0%EC%8A%B5%EC%9E%A5?from=13710|편집 기록]])
31여기에서 분류 링크 구문에 해당되는 문구 {{{ [[분류:제7회 전국동시지방선거]][[분류:여론조사]]}}} 30자[* 5자마다 {{{\}}}를 놓으면 {{{ [[분류:\제7회 전\국동시지방\선거]][\[분류:여\론조사]]}}} 30자.]와 그 행 1자를 삭제하면 484,885자가 된다.
r54

(r51으로 되돌림)
32
r98

(r96으로 되돌림)
33해당 글자수만큼 로드(load)된다고 했을 때 이를 4,760번 하면 무려 '''23억 자'''[* 정확히는 484,885 × 4,760 = 2,308,052,600 자. 게다가 개행은 0번이다. 곧 반달러가 '''한 줄에 그 많은 include구문(문법)을 다 때려넣고 저장'''한 것. 참고로 바이트 수로 따지자면 무려 '''2.3GB'''가 된다. 이걸 보는 사람이 많은 문서에 퍼뜨려 놨으니..]가 된다. '오미크론 변이' 문서의 글자수 변동만 해도 {{{#green +97,446}}} 자이며 처음부터 반달 겸 도배하는 수정이므로 실제 변경된 글자 수는 이보다 더 많겠지만[* 5자마다 {{{\}}}를 놓으면 {{{ [incl\ude(제\7회 전국\동시지방선\거/여론조\사)]}}} 로 28자, 이 문구가 4,760 번 도배되었으니 입력된 구문은 28 × 4,760 = 133,280자.[br]이 13여 만 자에서 변동폭을 뺀 만큼의 글자수가 '''반달되기 직전 문서의 글자 수'''가 된다. 이 글자수 만큼 전체 지우고 해당 도배문구로 채웠으니 실제 변경된 글자 수는 다음으로 된다.[br](최대) (133,280 - 97,446)+133,280 =169,114 자.]앞의 연습장의 수정에서는 이보다 서너 배 넘는 글자수가 수정되었어도 동작이 원활했다. (단순 글자수 변동이 아니라 어떤 동작원리가 있다고 추정된다.)
r54

(r51으로 되돌림)
34
r98

(r96으로 되돌림)
35번외로, '선거 여론조사' 문서는 당시 손가락에 꼽을 정도로 내용이 긴 문서였다. 또한 include 도배의 영향으로 서버가 혼잡했다고 한다. 당시 코로나 바이러스 팬데믹인 상황에서 오미크론 변이에 대한 이야기가 갓 보도될 만큼 오미크론 변이는 따끈따끈한 주제이었으니 이와 관련하여 해당 문서를 읽거나 편집하는 사람들이 많았을 것이다.[* 실제로 오미크론 변이 문서는 실시간 검색어 1위였다.] (의도적인 편집요청일 가능성이 적지 않다.) 관련된 [[https://namu.wiki/w/%EB%82%98%EB%AC%B4%EC%9C%84%ED%82%A4/%EC%84%9C%EB%B2%84%20%EC%97%90%EB%9F%AC%20%EA%B8%B0%EB%A1%9D|"서버 에러 기록" 문서]]에서 기여자의 편집을 진술로 보면 서버가 혼잡했던 기간은 약 30분이라고 한다.
36이 문제를 사측에서 인지하고 있는 상황인데도 되돌리기 하는 이용자가 있었다. --운영 방해--
r62
37
r98

(r96으로 되돌림)
38[각주]
r63
39
r98

(r96으로 되돌림)
40==== 더시드위키에서의 사례 ====
41최소 2번의 공격이 있었다.
42===== 12월 2일 (include 구문 도배) =====
43더시드위키에서 include 구문을 악용하여 [[https://thesees.io/w/사용자:I_Love_Maizono_Sayaka|I_Love_Maizono_Sayaka]] 아이디로 들어온 이용자가 "캬루캬루캬루쨩♥"으로 이름했었던 문서(이하 "캬루 사진 문서")를 도배한 사례가 있다. 이 문서는 더시드위키의 일반 문서들 중 2021-12-02 당시 기준 __가장 내용이 많은 문서__이며, 시스템상 106,756글자이다. include가 괄호 안에 적힌 이름에 해당되는 문서의 내용을 가져오는 구문이므로 '캬루 사진 문서'는 다른 이름으로 수정되었다. 해당 반달러는 차단되었다.
r54

(r51으로 되돌림)
44
r98

(r96으로 되돌림)
45위와 같은 계산법으로 하여 include와 그 개행을 제외하고 보면 r4판 글자수인 106,736 자가 된다. 도배한 [[https://theseed.io/raw/%EB%8B%B4%EB%8F%84%EC%95%94%EB%B3%B5%EC%8B%B1%206%ED%98%B8%EC%84%A0?rev=8|"담도암복싱 6호선" 문서]]만 봐도 {{{ [include(캬루캬루캬루쨩♥)]}}}을 19,620번을 도배했는데, 이렇게 되면 문서에 로드 되는 글자수는 무려 '''20억 자''' [* 정확히는 106,736 × 19,620 = 2,094,160,320 자. 그러나 입력 문구까지 보면 이보다 조금(?)은 더 많이 된다.]가 된다.
r63
46
r98

(r96으로 되돌림)
47여담으로 해당 더시드위키의 반달러는 다른 문서에도 같은 짓을 해서 총 두 번 했고, 나머지는 자잘(?)하게 도배했다. 해당 이용자는 [[https://theseed.io/history/마이조노 사야카|어떤 캐릭터에 대한문서]]를 [[https://theseed.io/raw/마이조노 사야카?rev=1|편집(r1판)]]하면서 [[http://namu.wiki/w/마이조노 사야카|해당 캐릭터]]의 [[https://i.pinimg.com/736x/d7/44/34/d74434e96f564f618dbea1d5659718b6.jpg|이미지]]가 업로드가 안된다는 편집 요약을 남겼다면 자유게시판에 다른 질문을 할 수 있을텐데도 "비로그인 이용자가 편집 못한다" 하는 [[https://theseed.io/thread/OptimalAblazeTameMiddle|핑계 토론]]에 기여내역들이 부정입력으로 벌이는 업무방해 행위들이니 유감일 따름이다.
r62
48
r98

(r96으로 되돌림)
49[각주]
r63
50
r98

(r96으로 되돌림)
51===== 12월 4일~5일 (토론 도배) =====
522021-12-04일 22~23시 경 [[https://thesees.io/w/사용자:lovelovelovelovelovelovelove1972|lovelovelovelovelovelovelove1972]] 아이디로 들어온 이용자가 12월 2일 같은 include 도배 수법으로 반달하는 동시에 여러 도배성 토론을 발제했다. 이 때문에 당분간 대부분의 기기에서 더시드위키의 [[https://theseed.io/RecentDiscuss|최근 토론란]] 접속이 불가능했었으며, 이 이용자가 남겨놓은 토론들은 [[delete_thread]] 긴급조치로 삭제되었다. ([[https://theseed.io/thread/LyingEnchantingLiterateExchange|토론 삭제 알림]]) 도배에 대한 강렬한 흔적이 남아있기 때문인지 해당 이용자의 토론 기여 내역을 보고자 하면 '''탭 로드가 중지되면서 튕긴다.'''
r69
53
r98

(r96으로 되돌림)
54더시드위키를 이용하는 사람이 적은 상황, 동일한 {{{ [include(캬루캬루캬루쨩♥)]}}} 도배(이 문서에다 도배했다. [[https://theseed.io/history/2021%EB%85%84%20the%20seed%20%EC%97%94%EC%A7%84%20%EC%9C%84%ED%82%A4%20%EC%84%9C%EB%B2%84%20%EA%B3%BC%EB%B6%80%ED%95%98%20%EC%82%AC%EA%B1%B4?from=30|편집 기록 보기]]).
55다중계정 검사 결과 VPN 이용자(라는 답변)인 점, 편집 요약으로 남겨놓은 --다이어트 몰러유 드립-- 내용이 나무위키와 흡사한 점으로 보건대 12-02일 더시드위키 반달러의 다중계정으로 추정되면서도 나무위키 반달러와 동일인으로 추정된다.
r69
56
r98

(r96으로 되돌림)
57번외같지만, 12월 5일 3시 경 괴상한 글자로 도배한 토론까지 발제되었다고 한다. (어떤 이용자가 [[https://archive.md/OhjwB|아카이브한 페이지(KST 2021-12-05 03시)]])
r69
58
r98

(r96으로 되돌림)
59==== 기타 의심되는 사례 ====
60===== 알파위키 (토론, 연습장 도배) =====
61 A. 더시드위키에서 괴상한 글자로 도배되었던 토론이 알파위키에도 발제되었다고 한다. 아마 범인이 더시드위키에서 차단된 이후 나무위키는 보는 눈이 많아서 가지는 못하는 대신 알파위키로 건너간 듯하다.
62 A. 어떤 이용자가 [[https://awiki.theseed.io/w/알파위키:연습장|알파위키 연습장]]에 의미없는 도배를 하였다. [[https://awiki.theseed.io/history/%EC%95%8C%ED%8C%8C%EC%9C%84%ED%82%A4:%EC%97%B0%EC%8A%B5%EC%9E%A5?from=1000|편집 기록]]을 보면 글자수 변동이 '''130만'''까지 갔었다. RAW만 들어가도 렉이 걸리는데, 그 쓰이는 마름모 문구를 봐서는 동일인으로 의심된다.
r82
63
r98

(r96으로 되돌림)
64===== 더시드위키 (ACL조작과 연계된 도배) =====
65 A. 2021-12-08에 더시드위키:연습장/ACL 문서에 나무위키와 동일한 LG U+ IPv6 통피 이용자가 무의미한 편집요약 도배를 하였다. 사용 말투를 보면 동일인인 듯하다.
66 [[ACL]]는 어떻게 설정되어 있느냐에 따라 편집 등이 제한되는데, 문서에 특별한 제한이 걸려있지 않으면 이름공간 ACL이 적용된 점을 악용한 것. 다시 말해서 문서 ACL이 우선 적용하는 시스템을 악용한 것이다.
67
68 동일인으로 의심되는 IP[* 기여내역이 전무하다.]가 이름공간 ACL에서 특정 ACL그룹(IDC등)의 특정 행위(edit, thread 등)를 접근을 거부(deny)하도록 ACL이 입력(insert)되어 있어도 이를 삭제(delete)하지 아니한 채 '''문서 ACL에서 특정 ACL그룹의 접근'''을 허가(allow)하도록 ACL을 변경하였다.
69
70 그 뒤로는 그 통피로 도배성 토론이 발제되었으며, 글자 1자를 추가한 다음 저장하는 행위와 글자 1자를 빼고 저장하는 행위를 번갈아함으로써 최근 변경 목록까지 도배되었다고 한다.
71[각주]
r87
72
r98

(r96으로 되돌림)
73== 영향 ==
74=== 나무위키 ===
r101
75> * v4.20.0 (a2e197c / 66e1e93)
r102
76> * include 문법이 과도하게 사용된 리비전을 열람시 '문서 길이가 너무 깁니다.' 라는 문구 출력과 함께 열람이 불가능해졌다.
r101
77>-------
r102
78> 나무위키 [[https://namu.wiki/w/the seed/업데이트#2021년|the seed 업데이트]] 문서 인용
r98

(r96으로 되돌림)
79이 사건 이후로 나무위키에 적용되는 the seed 엔진이 사건 발생 4일만에 두 번 업데이트되었다.
r101
80
r98

(r96으로 되돌림)
81=== 더시드위키 ===
82도배놀이의 장난감으로 되기 쉬운 요인을 차단하였다.
83 A. 2021-12-05 도배사건으로 정식 관리자가 통피 로그인 허용 차단을 하였다.
r103
84 ||{{{#!wiki
85 * 2021-12-05 04:01:27 Cocoa 사용자가 ::/0 ''('''''''로그인 허용 차단''------''''' ACL 그룹에 추가)'' #1378 (영구적으로)}}}||
r98

(r96으로 되돌림)
86 A. 2021-12-08 도배사건으로 ACL연습장의 사용이 영구 종료되었다.
r103
87 ||{{{#!wiki
88 *2021-12-08 16:46:39 Cocoa 사용자가 0.0.0.0/0 ''('''''''로그인 허용 차단''------''''' ACL 그룹에 추가)'' #1389 (영구적으로)}}}||
r99
89=== 나무위키 마이너 갤러리 ===
r101
90 * 일부 이용자들 간에 관련된 [[https://gall.dcinside.com/mgallery/board/view/?id=namuwiki&no=37913|반달]]의사가 있는 이상 더 설명 할 필요가 없어 보인다. ---용의자?---
r88
91
r98

(r96으로 되돌림)
92== 결론 ==
93더 많은 조사가 필요하나, 현재로서는 해당 include 구문의 악용과 도배가 유력한 원인이라고 본다.
94확실한 점으로는 반달을 방지하는 차원에서라도 인용문 구문({{{ > }}}를 입력) 같이 엔진을 개선하여 include 구문 동작에 제한을 줄 필요가 있다.
r102
95이것이 주 원인으로 밝혀진다면 이 사건은 이용자들이 적어도 한 명의 반달러 때문에 [[2017년 나무위키 XSS 공격 보고서|대낮에 삽질하게 만든 사건]]으로 될 것이다.
r56
96
r98

(r96으로 되돌림)
97[각주]