r67 | ||
---|---|---|
r58 | 1 | [[분류:더시드위키]][[분류:나무위키]][[분류:알파위키]][[분류:문서 훼손]] |
r54 (r51으로 되돌림) | 2 | [include(틀:사건사고)] |
r60 | 3 | [include(틀:문서 훼손 주의)] |
r59 | 4 | {{{#!folding [포크를 위한 이용허락 안내 (CC BY-NC-SA 2.0 KR등)] |
r63 | 5 | [include(틀:CCL, 라이선스=CC BY-NC-SA 2.0 (KR or Unported), 아이디=disciple153)] |
r59 | 6 | ------ |
7 | [include(틀:CCL, 라이선스=CC BY 1.0, 아이디=disciple153)]}}} | |
r54 (r51으로 되돌림) | 8 | [목차] |
9 | == 개요 == | |
10 | 2021년 12월 2일(KST 기준) [[the seed]] 엔진을 사용하고 클라우드플레어 적용을 받는 세 위키 [[나무위키]], [[더시드위키]], [[알파위키]]의 접속에 장애가 발생한 사건. 이들 중 더시드위키, 알파위키는 522 오류(Connection Timed Out)를 내뿜어 접속이 거의 불가능했었으나 나무위키는 엔터프라이즈 플랜이라 데이터 유동을 어느 정도 견디어 서버 다운까지는 발생하지 않았다. | |
11 | ||
12 | == 추정되는 원인 == | |
13 | === DDoS === | |
14 | 단순 서버 오류가 아니라 DDoS 공격으로 추정된다는 설이 있다. 해당 설이 있는 이유로는 더시드위키, 알파위키에 하술한 include 도배에도 불구하고 잠간 동안 522 오류 없이 접근이 가능했기 때문이다. | |
15 | ||
16 | 더시드위키에 (KST 기준) 12시 40분에 접근이 가능해 include 도배로 반달된 문서들을 되돌린 작업이 있어 05시부터 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 | |
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 | ==== 나무위키에서의 사례 ==== |
r66 | 28 | 나무위키에서 include 구문을 악용하여 KST 2021-12-02 15:17:54 에 VPN 인 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]]는 동작하기 전 입력된 구문들만 보여주는 까닭이라 열람이 가능하다. |
r67 | 29 | 나무위키에서 include 구문을 악용하여 KST 2021-12-02 15:17:54 에 VPN 인 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으로 되돌림) | 30 | |
r65 | 31 | 해당 도배된 구문은 {{{[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|편집 기록]]) |
32 | 여기에서 분류 링크 구문에 해당되는 문구 {{{ [[분류:제7회 전국동시지방선거]][[분류:여론조사]]}}} 30자[* 5자마다 {{{\}}}를 놓으면 {{{ [[분류:\제7회 전\국동시지방\선거]][\[분류:여\론조사]]}}} 30자.]와 그 행 1자를 삭제하면 484,885자가 된다. | |
r54 (r51으로 되돌림) | 33 | |
r65 | 34 | 해당 글자수만큼 로드(load)된다고 했을 때 이를 4,760번 하면 무려 '''23억 자'''[* 정확히는 484,885 × 4,760 = 2,308,052,600 자. 게다가 개행은 0번이다. 곧 반달러가 '''한 줄에 그 많은 include구문(문법)을 다 때려넣고 저장'''한 것.]가 된다. '오미크론 변이' 문서의 글자수 변동만 해도 {{{#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으로 되돌림) | 35 | |
r63 | 36 | 번외로, '선거 여론조사' 문서는 당시 손가락에 꼽을 정도로 내용이 긴 문서였다. 그리고 이 문제를 사측에서 인지하고 있는 상황인데도 되돌리기 하는 이용자가 있었다. --운영 방해-- |
r62 | 37 | |
38 | [각주] | |
r63 | 39 | |
r61 | 40 | ==== 더시드위키에서의 사례 ==== |
r65 | 41 | 2번의 공격이 있었다. |
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가 괄호 안에 적힌 이름에 해당되는 문서의 내용을 가져오는 구문이므로 '캬루 사진 문서'는 다른 이름으로 수정되었다. 해당 반달러는 차단되었다. |
r67 | 44 | 더시드위키에서 include 구문을 악용하여 [[https://thesees.io/w/사용자:I_Love_Maizono_Sayaka|I_Love_Maizono_Sayaka]] 아이디로 들어온 이용자가 "캬루캬루캬루쨩♥"으로 이름했었던 문서(이하 "캬루 사진 문서")를 도배한 사례가 있다. 이 문서는 더시드위키의 일반 문서들 중 2021-12-02 당시 기준 __가장 내용이 많은 문서__이며, 시스템상 106,756글자이다. include가 괄호 안에 적힌 이름에 해당되는 문서의 내용을 가져오는 구문이므로 '캬루 사진 문서'는 다른 이름으로 수정되었다. 해당 반달러는 차단되었다. |
r54 (r51으로 되돌림) | 45 | |
r63 | 46 | 위와 같은 계산법으로 하여 include와 제외하고(r4판 바이트 수 기준) 개행 1자를 추가하면 106,737 자가 된다. 도배한 [[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,737 × 19,620 = 2,094,179,940 자. 그러나 입력 문구까지 보면 이보다 조금(?)은 더 많이 된다.]가 된다. |
47 | ||
r55 | 48 | 여담으로 해당 더시드위키의 반달러는 다른 문서에도 같은 짓을 해서 총 두 번 했고, 나머지는 자잘(?)하게 도배했다. 해당 이용자는 [[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 | 49 | |
r66 | 50 | ===== 12월 4일~5일 (토론 도배) ===== |
r67 | 51 | 2021-12-04일 11시 [[https://thesees.io/w/사용자:lovelovelovelovelovelovelove1972|lovelovelovelovelovelovelove1972]] 아이디로 들어온 이용자가 12월 2일 같은 include 도배 수법으로 반달하는 동시에 토론을 도배했는데, 더시드위키를 이용하는 사람이 적은 상황, 동일한 {{{ [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|편집 기록 보기]]). |
52 | 또한 이 이용자는 도배성 토론을 여러 개 발제하였다. | |
53 | 편집 요약으로 남겨놓은 --다이어트 몰러유 드립-- 내용으로 보건대 12-02일 더시드위키 반달러의 다중계정으로 추정되면서도 나무위키 반달러와 동일인으로 추정된다. | |
54 | ===== 12월 4일~5일 (토론 도배) ===== | |
r66 | 55 | 2021-12-04일 11시 [[https://thesees.io/w/사용자:lovelovelovelovelovelovelove1972|lovelovelovelovelovelovelove1972]] 아이디로 들어온 이용자가 12월 2일 같은 include 도배 수법으로 반달하는 동시에 토론을 도배했는데, 더시드위키를 이용하는 사람이 적은 상황, 동일한 {{{ [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|편집 기록 보기]]), 편집 요약으로 남겨놓은 --다이어트 몰러유 드립-- 내용으로 보건대 12-02일 더시드위키 반달러의 다중계정으로 추정되면서도 나무위키 반달러와 동일인으로 추정된다. |
r63 | 56 | |
r62 | 57 | [각주] |
r63 | 58 | |
r54 (r51으로 되돌림) | 59 | === 결론 === |
r63 | 60 | 더 많은 조사가 필요하나, 현재로서는 해당 include 구문의 악용과 도배가 유력한 원인이라고 본다. |
61 | 확실한 점으로는 반달을 방지하는 차원에서라도 인용문 구문({{{ > }}}를 입력) 같이 엔진을 개선하여 include 구문 동작에 제한을 줄 필요가 있다. | |
r65 | 62 | 이것이 원인으로 밝혀진다면 이 사건은 이용자들이 적어도 한 명의 반달러 때문에 [[2017년 나무위키 XSS 공격 보고서|대낮에 삽질하게 만든 사건]]으로 될 것이다. |
r56 | 63 | |
r63 | 64 | [각주] |