r96 | ||
---|---|---|
r58 | 1 | [[분류:더시드위키]][[분류:나무위키]][[분류:알파위키]][[분류:문서 훼손]] |
r54 (r51으로 되돌림) | 2 | [include(틀:사건사고)] |
r60 | 3 | [include(틀:문서 훼손 주의)] |
r59 | 4 | {{{#!folding [포크를 위한 이용허락 안내 (CC BY-NC-SA 2.0 KR등)] |
r89 | 5 | [include(틀:CCL, 라이선스=CC BY-NC-SA 2.0 (KR or Unported), 아이디=disciple153\, kmile\, A01)] |
r59 | 6 | ------ |
r89 | 7 | [include(틀:CCL, 라이선스=CC BY 1.0, 아이디=disciple153\, A01)]}}} |
r54 (r51으로 되돌림) | 8 | [목차] |
9 | == 개요 == | |
10 | 2021년 12월 2일(KST 기준) [[the seed]] 엔진을 사용하고 클라우드플레어 적용을 받는 세 위키 [[나무위키]], [[더시드위키]], [[알파위키]]의 접속에 장애가 발생한 사건. 이들 중 더시드위키, 알파위키는 522 오류(Connection Timed Out)를 내뿜어 접속이 거의 불가능했었으나 나무위키는 엔터프라이즈 플랜이라 데이터 유동을 어느 정도 견디어 서버 다운까지는 발생하지 않았다. | |
11 | ||
12 | == 추정되는 원인 == | |
13 | === DDoS === | |
r86 | 14 | 단순 서버 오류가 아니라 DDoS 공격으로 추정된다는 설이 있다. 해당 설이 있는 이유로는 더시드위키, 알파위키에 하술한 include 도배에도 불구하고 잠깐 동안 522 오류 없이 접근이 가능했기 때문이다. |
r54 (r51으로 되돌림) | 15 | |
r86 | 16 | 더시드위키에 (KST 기준) 12시 40분에 접근이 가능하였는지 include 도배로 반달된 문서들을 되돌린 작업이 있어 5시부터 12시 30분 까지, 12시 50분부터 17시까지에 발생한 것으로 추정된다. |
r54 (r51으로 되돌림) | 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 | |
19 | [각주] | |
r54 (r51으로 되돌림) | 20 | |
r63 | 21 | === include 구문을 비롯한 도배 === |
r65 | 22 | [anchor(include_반달)]include 구문(문법. 이하 "구문"으로 한다.)이 대상 문서에서 본문들을 모두 호출하는 명령이면서 '''무제한으로 가능'''함을 감안할 때, 문서 하나 열 때마다 KB(킬로바이트) 단위 되는 내용이 include 구문으로 도배한 횟수 만큼 기계적으로 로드(load)되는 구조라고 보면서 서버 자체에 무리를 준 공격의 원인이 되지 아니하냐는 설이 있다. 만일 문서 시스템이 이렇게 기계적으로 일일이 구문을 불러오고 이렇게 불어난 구문들을 컴파일하고 출력하는 방식으로 동작되고 있었다면 심각한 문제일 것이다. |
r54 (r51으로 되돌림) | 23 | |
r65 | 24 | 이 설이 있는 근거로는 두 사례가 있다. |
25 | include로 문서를 끼워넣을 때 가져올 문서에 적힌 include명령문, 분류 등은 동작되지 않고 공백이 되어 끼워넣기가 되므로, 다음 글자수는 해당 설이 참이라고 가정했을 때 include 구문으로 입력되는 글자 수는 include구문, 분류 구문, 그 행이 입력된 개행(1회당 1자)들을 삭제하고 계산한 글자수이다. | |
r54 (r51으로 되돌림) | 26 | |
r61 | 27 | ==== 나무위키에서의 사례 ==== |
r83 | 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 | |
r65 | 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 | |
r79 | 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 | |
r93 | 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분이라고 한다. |
r90 | 36 | 이 문제를 사측에서 인지하고 있는 상황인데도 되돌리기 하는 이용자가 있었다. --운영 방해-- |
r62 | 37 | |
38 | [각주] | |
r63 | 39 | |
r61 | 40 | ==== 더시드위키에서의 사례 ==== |
r87 | 41 | 최소 2번의 공격이 있었다. |
r65 | 42 | ===== 12월 2일 (include 구문 도배) ===== |
r66 | 43 | 더시드위키에서 include 구문을 악용하여 [[https://thesees.io/w/사용자:I_Love_Maizono_Sayaka|I_Love_Maizono_Sayaka]] 아이디로 들어온 이용자가 "캬루캬루캬루쨩♥"으로 이름했었던 문서(이하 "캬루 사진 문서")를 도배한 사례가 있다. 이 문서는 더시드위키의 일반 문서들 중 2021-12-02 당시 기준 __가장 내용이 많은 문서__이며, 시스템상 106,756글자이다. include가 괄호 안에 적힌 이름에 해당되는 문서의 내용을 가져오는 구문이므로 '캬루 사진 문서'는 다른 이름으로 수정되었다. 해당 반달러는 차단되었다. |
r54 (r51으로 되돌림) | 44 | |
r80 | 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 | |
r55 | 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 | |
r69 | 49 | [각주] |
r63 | 50 | |
r72 | 51 | ===== 12월 4일~5일 (토론 도배) ===== |
r81 | 52 | 2021-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 | |
r70 | 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|편집 기록 보기]]). |
r82 | 55 | 다중계정 검사 결과 VPN 이용자(라는 답변)인 점, 편집 요약으로 남겨놓은 --다이어트 몰러유 드립-- 내용이 나무위키와 흡사한 점으로 보건대 12-02일 더시드위키 반달러의 다중계정으로 추정되면서도 나무위키 반달러와 동일인으로 추정된다. |
r69 | 56 | |
r82 | 57 | 번외같지만, 12월 5일 3시 경 괴상한 글자로 도배한 토론까지 발제되었다고 한다. (어떤 이용자가 [[https://archive.md/OhjwB|아카이브한 페이지(KST 2021-12-05 03시)]]) |
r69 | 58 | |
r72 | 59 | ==== 기타 의심되는 사례 ==== |
r91 | 60 | ===== 알파위키 (토론, 연습장 도배) ===== |
r95 | 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 | |
r91 | 64 | ===== 더시드위키 (ACL조작과 연계된 도배) ===== |
r95 | 65 | A. 2021-12-08에 더시드위키:연습장/ACL 문서에 나무위키와 동일한 LG U+ IPv6 통피 이용자가 무의미한 편집요약 도배를 하였다. 사용 말투를 보면 동일인인 듯하다. |
66 | [[ACL]]는 어떻게 설정되어 있느냐에 따라 편집 등이 제한되는데, 문서에 특별한 제한이 걸려있지 않으면 이름공간 ACL이 적용된 점을 악용한 것. 다시 말해서 문서 ACL이 우선 적용하는 시스템을 악용한 것이다. | |
r96 | 67 | |
r95 | 68 | 동일인으로 의심되는 IP[* 기여내역이 전무하다.]가 이름공간 ACL에서 특정 ACL그룹(IDC등)의 특정 행위(edit, thread 등)를 접근을 거부(deny)하도록 ACL이 입력(insert)되어 있어도 이를 삭제(delete)하지 아니한 채 '''문서 ACL에서 특정 ACL그룹의 접근'''을 허가(allow)하도록 ACL을 변경하였다. |
r96 | 69 | |
70 | 그 뒤로는 그 통피로 도배성 토론이 발제되었으며, 글자 1자를 추가한 다음 저장하는 행위와 글자 1자를 빼고 저장하는 행위를 번갈아함으로써 최근 변경 목록까지 도배되었다고 한다. | |
r62 | 71 | [각주] |
r87 | 72 | |
r88 | 73 | == 영향 == |
74 | === 나무위키 === | |
r92 | 75 | 이 사건 이후로 나무위키에 적용되는 the seed 엔진이 사건 발생 4일만에 두 번 업데이트되었다. |
r88 | 76 | === 더시드위키 === |
77 | 도배놀이의 장난감으로 되기 쉬운 요인을 차단하였다. | |
r96 | 78 | A. 2021-12-05 도배사건으로 정식 관리자가 통피 로그인 허용 차단을 하였다. |
79 | ||2021-12-05 04:01:27 Cocoa 사용자가 ::/0 (로그인 허용 차단 ACL 그룹에 추가) #1378 (영구적으로)|| | |
r95 | 80 | A. 2021-12-08 도배사건으로 ACL연습장의 사용이 영구 종료되었다. |
r88 | 81 | |
82 | == 결론 == | |
r63 | 83 | 더 많은 조사가 필요하나, 현재로서는 해당 include 구문의 악용과 도배가 유력한 원인이라고 본다. |
84 | 확실한 점으로는 반달을 방지하는 차원에서라도 인용문 구문({{{ > }}}를 입력) 같이 엔진을 개선하여 include 구문 동작에 제한을 줄 필요가 있다. | |
r65 | 85 | 이것이 원인으로 밝혀진다면 이 사건은 이용자들이 적어도 한 명의 반달러 때문에 [[2017년 나무위키 XSS 공격 보고서|대낮에 삽질하게 만든 사건]]으로 될 것이다. |
r56 | 86 | |
r63 | 87 | [각주] |