- 회원들이 추천해주신 좋은 글들을 따로 모아놓는 공간입니다.
- 추천글은 매주 자문단의 투표로 선정됩니다.
Date 22/08/08 15:49:35
Name   T.Robin
Subject   가끔 홍차넷을 버벅이게 하는 DoS(서비스 거부 공격) 이야기
[Disclaimer]
이 글에는 간접광고(?)가 포함되어 있습니다

안녕하세요. T.Robin입니다.

타임라인에 모종의 글을 쓰다가 오해를 살 수도 있을 것 같아서 해당 글을 지우고 해명글같은 것을 쓰고 있었는데, 막상 쓰다 보니 내용이 많이 길어지더군요. 그래서, 이왕 하는 김에 졸필이나마 IT에 대해 잘 모르시는 분들께 도움을 드리는 것도 좋겠다 싶어서 아예 티타임으로 글을 옮겼습니다.

홍차넷을 최소 1~2년 이상 사용하셨던 분들이시라면 최소한 수차례 이상 홍차넷이 아무런 이유도 없이 느려지는 것을 경험해보신 적이 있으실 겁니다. 신규 유입이 갑자기 확 늘어난 것도 아니고, 그렇다고 운영진이 뭔가 공사(?)를 하는 것도 아닌데 갑자기 버버버벅...... 대는 거죠. 여기에는 이런저런 이유가 있을 수 있습니다만, 이 중 상당수는 홍차넷 서버가 서비스 거부 공격(DoS, Denial of Service)을 받았기 때문입니다. 서비스 거부 공격을 받는 서버는 서비스를 수행할 수 있는 자원이 부족해서 속도가 느려지거나, 궁극적으로는 아예 접속 자체가 불가능해지게 됩니다.

그럼 자원이 부족하게 만들려면 어떻게 해야 하나...... 사실 이건 별거 없습니다. 서버에다 대고 데이터를 왕창 요청하면 서버가 수없이 많은 요청을 일일이 처리하다가 지쳐 나자빠집니다. 사람하고 똑같아요. 아무도 모르는 보안 취약점을 타고 들어가서 자신만의 음흉한(?) 코드를 집어넣는다거나 하는 그런 고급 기술은 필요 없습니다. 그냥 데이터 요청을 엄청나게 많이 할 수만 있으면 되고, 심지어는 PC 한 대만 있어도 공격을 수행할 수 있습니다. 어려울게 전혀 없어요.

여담으로, 이 공격을 한 대에서 수행하면 서비스 거부 공격(DoS)이 되고, 여러대(최소 수백대 이상)가 한꺼번에 수행하면 분산 서비스 거부 공격(DDoS, Distributed Denial of Service)이 됩니다. 어디서 들어보신 기억이 나시나요? 한 때 신문지상에서도 많이 보실 수 있었던 바로 그 DDoS 공격이 이겁니다. 공격하는 쪽에서는 그냥 물량 많이 만들어놨다가 어택땅으로 한 번 밀어부치기만 하면 끝납니다. 참 쉽죠? (응?)

그럼 이걸 어떻게 막으면 되느냐...... 요령은 간단합니다. 요청을 미친듯이 많이 보내는 IP의 요청을 무시해버버리면 됩니다. 다만 여기엔 문제가 있는데, 어느 IP가 요청을 그렇게 덤프트럭에서 모래 쏟아붓듯이 마구잡이로 쏟아내는지를 어떻게 판단하느냐는 겁니다. 정상적인 홍차넷 홈페이지(https://kongcha.net)를 최초로 로딩할 경우 빠르면 0.5초 이내에 20~30개의 요청을 한꺼번에 처리하는데, 이게 모이고 모이면 정상적인 접근만으로도 순식간에 수천~수만개의 요청이 쌓이게 됩니다. 게다가 어떤 접속들은 어떻게 보면 DoS 공격처럼 보이지만 실제로는 아닌 경우도 있습니다(이를테면 모바일로 접속하는 경우, 서버 입장에서는 서로 다른 기기가 몇 개 IP로 뭉쳐서 보여지게 됩니다). 그리고 그동안에는 이런 공격이 오면 홍차넷 운영진 여러분들이 사람과 시간을 갈아넣어서(OTL) 몸빵으로 대응해 오시고 계셨습니다. 저도 원래 정보보안 엔지니어였던 터라, 홍차넷이 몇 차례정도 DoS 공격을 받고, 어떻게 대응하시는지를 옆에서 보고 있자니 사람 갈려나가는게 대충 보이더군요(......).

옆에서 보고 있다보니 역시 이건 좀 아닌 듯 하기도 하고, 제가 현재 만드는 솔루션이 네트워크 진단/분석 솔루션이기도 한 터라 이 부분은 제가 도움을 드릴 수 있을 것 같아서, 어느 IP가 초당 몇 번이나 데이터를 요청했는지를 파악하는 프로그램을 만들었습니다. 이런게 있으면 DoS 공격이 발생했을때 누가 공격했는지를 쉽게 파악할 수 있죠. 요컨데, 컴퓨터보고 "야 네가 좀 알아서 세어서 보고해봐라 쫌"이라고 하는겁니다. 다만, 홍차넷 서버의 성능이 솔직히 그렇게 좋은 편은 아니기 때문에(그렇게 알고 있습니다), 방법에 따라서는 서버에 [본래 서비스보다 훨씬 많은 부하]를 줄 수 있어서, 만드는데 기계어 명령어 세트를 한 개라도 더 줄이기 위해 최대한 노력했습니다.

프로그램의 동작을 전문용어로 표현하자면, [TCP SYN 패킷만 캡쳐해서 source IP별로 카운팅]하는 프로그램 되겠습니다. C++로 만든 libpcap 기반 프로그램이고, 마지막 1분간의 데이터를 저장하는 단일 파일을 계속 덮어씁니다. 데이터는 자동으로 휘발되고, TCP SYN 패킷만 보고 다른 패킷은 무시하기 때문에, 프로그램 입장에서는 무슨 데이터가 오가는지를 알 수가 없습니다. 그리고 그것보다, 모든 패킷을 다 보려고 했다간 분명히 홍차넷 서버가 버거워해서 [메인 서비스가 느려질게 뻔한데], 그러면 운영진께서 분명히 "이거 못쓰겠는데요"라고 하실 거란 말이죠...... =_=a

[여기서부터 대충 간접광고(?)]
참고로 이 프로그램은 무료(freeware, public domain)로 제공할 생각입니다. 서버가 Windows 또는 Linux이면 아무데서나 동작하고, 의존성은 Windows의 경우 npcap, Linux의 경우 libpcap 하나 뿐입니다. 혹시 이 글을 읽으시는 분들 중 본 프로그램이 필요하신 경우 말씀해주시면 바이너리 파일을 제공해 드릴 수 있습니다. Linux의 경우 일단 빌드 환경은 Ubuntu 20.04 LTS와 CentOS 7이 준비되어 있습니다만, 다른 환경이신 경우 OS만 말씀해주시면 맞춤형으로 빌드해 드릴 수 있습니다. 광고......랄게 하나 있긴 한데, TXT로 되어있는 카운팅 보고서 맨 위에 제가 재직중인 회사 홈페이지 URL이 들어가는 정도 수준입니다(이렇게 하면 저희 회사 영업사원들이 회사 홍보용으로 쓸 수도 있어서......). 회사와 이야기해봤는데, 이런거 필요 없답니다. 그래서 회사 광고는 지우고 사이트 광고만 넣었습니다.

혹시 프로그램 필요하신 분이 있으시면 말씀해주세요. 원하시면 소스코드 보여드리고 현장에서 직접 컴파일해드릴 수도 있습니다.
[여기까지 광고(?) 끝]

자, 그래서 결론을 정리하면......

1. DoS나 DDoS는 대단한 기술이 필요없는 공격이다. 요청을 엄청 많이 해서 서버가 진 빠지게 하는게 전부다
2. 홍차넷도 DoS 공격을 여러차레 받은 경험이 있고, 그동안에는 운영진이 몸빵으로(......) 공격을 막았다
3. T.Robin이란 인간이 DoS 공격을 빠르게 확인할 수 있게 해주는 프로그램을 만들어서 홍차넷 서버에 사용할 수 있도록 하였다
4. 이 인간, 하는 김에 프로그램을 그냥 무료(freeware, public domain)로 뿌릴 생각이다

정도 되겠습니다.

날씨가 덥습니다.
아무쪼록, 전국의 IT 서비스 운영자 여러분, 건승을 기원합니다.


* Cascade님에 의해서 티타임 게시판으로부터 게시물 복사되었습니다 (2022-08-21 13:52)
* 관리사유 : 추천게시판으로 복사합니다.



25
  • 아 이게 광고신고버튼이던가?
  • 기술이 미래딘
  • 추천



감사합니다. 아무튼 감사합니다.
12
T.Robin
쉽게 쓴다고 쓴 글입니다만...... 어디가 이해가 안 되사나요? ToT
으엉. ㅋㅋㅋ
짤은 저렇게 달았지만, 쉽게 설명해주셔서 거의 다 이해했어요, 정말.
페스토
저 짤은 75%는 이해했다는 의미 아닐지 ㅋㅋ
(대충 완벽히 이해했어 짤)
고생하셨습니다. 잘하면 CDN 비용을 아끼는 유명 프로그램이 될지도 모르겠군용.

그리고 그렇게... 더이상 토비님이 몸빵을 하지 않으시게 되었군요 (왠지 실망한 듯 하다)
T.Robin
대신에 토비님께 다른 기능을 만들어달라고 졸라대시면..??
cummings
F5 많이 누르면 홍차넷 차단됩니까@_@? 한번만 누르겠읍니다ㅎㅎ
T.Robin
홍차넷 페이지 20~30개를 한꺼번에 띄운 상황에서 각 페이지를 1초에 2회 이상 F5를 눌러주시는 작업을 약 5분 이상 계속하시면 시스템에 과부하가 걸릴 것 같습니다만, 인력으로 가능할 것 같지는 않습니다.
(Alt-Tab + F5 신공을 1/20~1/30초에 한 번씩 수행해야 하는데, 키보드가 입력을 못 따라갈 듯 합니다.)
2
보이차
저도 이거 압니다
마이크로소프트가 만든게 유명해서 ms dos라고 불립니다
6
T.Robin
선생님 그건 Disk Operating System...... -o-;
하마소
또스 무서웡 ㅠㅠ
앞으로 홍차넷 접속상태가 이상할 시 선생님께 자문을 구해도 되는 부분입니까 ㅋㅋㅋ
T.Robin
설마요. 전 서버 접근 권한이 없어서 서버에서 무슨 일이 벌어지고 있는지 모릅니다.
하마소
대충 운영진 출마 선언으로 보고 밀어드리는 것이읍니다?!
T.Robin
전 작고 보잘것없는 일개 회원으로 남는게 더 좋습니다.
켈로그김
기능재부 감사합니다
T.Robin
별말씀을요.
그러나저러나 웬지 캠릿브지같은 느낌입니다만, 몸이 피곤한게 기분탓이겠죠......
홍차넷을 dos 공격하는 곳은 어디일지가 궁금하네요. 뭐하러...?
T.Robin
저도 그게 궁금합니다. 공격해봐야 얻을 수 있을만한 (특히 금전적인) 요인이 아무것도 없는데?

공격도구 시험용으로 쓰는 건가...... -_-;
1
보리건빵
앗 리본님 저 정말 필요한 도구일 거 같습니다
저도 커뮤니티를 9월달에 개장할 예정인데요
제일 걱정되는데 DOS공격이거든요.....
쪽지 드리겠습니다.
T.Robin
블로그에 설명서와 함께 올려볼 생각입니다. 준비되는데로 말씀드리겠습니다.
매뉴물있뉴
아 그게 도스고 고게 또스였군요..!! ㅋㅋㅋ
좋은 프로그램을 공유해주셔서 감사합니다.
이런 광고 조아요!
T.Robin
공익광고협의회에서 협찬해줬으면 좋겠습니다(?).
고구마별
너무 멋지십니당 +_+
T.Robin
저희 집사람과 저희 어머니는 저보고 멋대가리라고 하나도 없다고 합니다. OTL
아, 부동산을 사라는 말씀이시군요.
고맙습니다. 잘 배웠습니다.
T.Robin
?
??
???? -_-;
whenyouinRome...
감사합니다!
T.Robin
뭐 별말씀을...... =_=a
물사조
가장 궁금한게 홍차넷에 DDOS공격 따위를 해서 얻을 수 있는 게 뭐가 있죠? 심심풀이?
T.Robin
DDoS는 생각보다 시간과 돈이 좀 드는 편이라 여기에 공격하면 분명 자기 지갑만 빈털터리 될거고...... DoS는 모르겠습니다.
켈로그김
영정러의 복수일지도...
궁금한게 있습니다. http2나 1.1 keep-alive를 사용하면 tcp syn은 해당 ip에서 많이 발생하지 않을 것 같은데요, 그렇다면 이러한 DoS공격을 회피하기 위해선 홍차넷 백엔드내에 rate limiter같은게 있는게 좋을까요?
T.Robin
세션당 사용 가능한 대역폭을 제한하는 throttling 기능이 있다면 사용하는 것이 좋겠습니다. 다만, 그 경우라도 DDoS는 방어하기가 힘듭니다.

다만 제 생각에는 대역폭을 몽땅 다 잡아먹는 bandwidth 기반의 고전적 DoS 공격이 들어온다면 호스팅 업체에서 눈치채고 자체적으로 대응을 할 것 같긴 합니다. 그 정도의 트래픽이라면 해당 호스팅사가 운영하는 다른 고객들에게도 피해가 갈게 뻔하거든요. SYN flooding으로 깨작거리는(......)게 목적 달성에 더 걸맞을 거라 생각합니다.
아하... 감사합니다. 그러면 flooding에 대응할 수 있도록 time window를 변경할 수 있는 옵션이 제공되겠군요. 하나 더 궁금한게 있는데, syn cookie는 성능에 영향을 크게 미치나요?? syn cookie를 사용한다고 하더라도 flooding이 발생할 수 있다고는 생각됩니다.
T.Robin
거기까지는 찾아보지 않아서 잘 모르겠습니다만, SYN cookie의 특성을 생각한다면 flooding을 어느 정도까지는 막을 수 있으리라 봅니다. 다만 DDoS 상황이 된다면 뭐 답 없죠(......)
목록
번호 제목 이름 날짜 조회 추천
1450 여행그간 다녀본 리조트 간단 정리 : 푸켓, 나트랑, 안탈리아 8 당근매니아 25/03/21 847 23
1449 꿀팁/강좌스피커를 만들어보자 - 4. 재질과 가공 (완) 10 Beemo 25/03/17 532 11
1448 기타남의 인생 멋대로 판단하는 이야기 11 바닷가의 제로스 25/03/13 1708 51
1447 꿀팁/강좌1. 만화란 뭘까? 인스타툰은 어떻게 시작해야할까? 11 흑마법사 25/03/12 822 26
1446 일상/생각첫 마라톤 풀코스 도전을 일주일 앞두고 24 GogoGo 25/03/09 948 24
1445 일상/생각포스트-트라우마와 사회기능성과 흙수저-학대가정 탈출 로직 6 골든햄스 25/03/06 944 21
1444 정치/사회 2월 28일, 미국 우크라이나 정상회담 파토와 내용 정리. 11 코리몬테아스 25/03/01 1852 29
1443 문화/예술2025 걸그룹 1/6 18 헬리제의우울 25/03/03 977 16
1442 정치/사회목요일 대학살 - 믿을 수 없이 부패한 트럼프 16 코리몬테아스 25/02/19 1966 24
1441 정치/사회화교는 상속세를 내지 않는다는 말 18 당근매니아 25/02/11 3266 17
1440 정치/사회무엇이 한국을 분열시킬 수 있는가? 5 meson 25/02/09 1209 7
1439 기타애착을 부탁해 - 커플을 위한 보론 (2) 5 소요 25/02/09 755 7
1438 기타애착을 부탁해 - 커플을 위한 보론 (1) 소요 25/02/07 1008 11
1437 IT/컴퓨터LLM에 대한 두서없는 잡썰 (3) 23 덜커덩 25/02/05 1401 23
1436 일상/생각여행을 나서면 집에 가고 싶다. 4 풀잎 25/01/30 1089 10
1435 꿀팁/강좌스피커를 만들어보자 - 3. 인클로저 설계 Beemo 25/01/29 1111 4
1434 체육/스포츠해리 케인의 무관에 대하여. 12 joel 25/01/27 1267 12
1433 체육/스포츠볼링 이야기 20 거소 25/01/19 990 5
1432 일상/생각저에게는 원칙이 있습니다. 13 whenyouinRome... 25/01/19 1852 49
1431 일상/생각집사 7년차에 써보는 고양이 키우기 전 고려할 점 13 Velma Kelly 25/01/18 1240 20
1430 일상/생각입시에 대해 과외하면서 느꼈던 것들, 최근 입시에 대한 생각 12 Daniel Plainview 25/01/17 1838 16
1429 정치/사회민주당을 칭찬한다 13 명동의밤 25/01/15 2358 34
1428 꿀팁/강좌전자렌지로 탕후루 만들기 레시피 수퍼스플랫 25/01/11 1064 7
1427 정치/사회탄핵심판의 범위 및 본건 탄핵심판의 쟁점 6 김비버 25/01/06 1155 14
1426 IT/컴퓨터인공지능 시대, 우리에게 필요한 것은 "말빨" 5 T.Robin 25/01/05 1297 8
목록

+ : 최근 6시간내에 달린 댓글
+ : 최근 12시간내에 달린 댓글

댓글
회원정보 보기
닫기
회원정보 보기
닫기
회원정보 보기
닫기
회원정보 보기
닫기
회원정보 보기
닫기
회원정보 보기
닫기
회원정보 보기
닫기
회원정보 보기
닫기
회원정보 보기
닫기
회원정보 보기
닫기
회원정보 보기
닫기
회원정보 보기
닫기
회원정보 보기
닫기
회원정보 보기
닫기
회원정보 보기
닫기
회원정보 보기
닫기
회원정보 보기
닫기
회원정보 보기
닫기
회원정보 보기
닫기
회원정보 보기
닫기
회원정보 보기
닫기
회원정보 보기
닫기
회원정보 보기
닫기
회원정보 보기
닫기
회원정보 보기
닫기
회원정보 보기
닫기
회원정보 보기
닫기
회원정보 보기
닫기
회원정보 보기
닫기
회원정보 보기
닫기
회원정보 보기
닫기
회원정보 보기
닫기
회원정보 보기
닫기
회원정보 보기
닫기
회원정보 보기
닫기
회원정보 보기
닫기
회원정보 보기
닫기
회원정보 보기
닫기
회원정보 보기
닫기
회원정보 보기
닫기
회원정보 보기
닫기
회원정보 보기
닫기
회원정보 보기
닫기
회원정보 보기
닫기
회원정보 보기
닫기
회원정보 보기
닫기
회원정보 보기
닫기
회원정보 보기
닫기
회원정보 보기
닫기
회원정보 보기
닫기
회원정보 보기
닫기
회원정보 보기
닫기
회원정보 보기
닫기
회원정보 보기
닫기
회원정보 보기
닫기
회원정보 보기
닫기
회원정보 보기
닫기
회원정보 보기
닫기
회원정보 보기
닫기
회원정보 보기
닫기
회원정보 보기
닫기
회원정보 보기
닫기