1

주제: 플루드 타임 적용.

근래에 접속 폭증 문제로 곤란을 겪고 계신 분들이 계신 것 같습니다. 스팸 트랙백이나 스팸 코멘트야 목적이 확실해 보이는데, 접속 폭증은 누군가 고의적으로 하는 것 같지만 목적을 잘 알 수는 없더군요. 어쨌든 호스팅받는 입장에서 넓은 대역의 아이피들로부터 초당 수백회의 접속 요청을 받는 건 쫓겨나기 십상입니다. 사실은 서버 차원에서 대책을 만들어 줘야 하는 거라고 생각하지만, 호스팅 받는 입장에서는 생각하기 어렵더군요. 결국은 집집마다 소화기를 비치하는 방법이 좋겠습니다.

'플루드 타임'을 설정해 한 아이피로부터 '필루드 타임'보다 짧은 시간에 들어오는 요청을 무시하거나, '플루드 타임'만큼 딜레이를 준 다음 요청에 응답하는 것이 어떨까 합니다. 예를 들어 플루드 타임을 '1초'로 하면, 1초보다 작은 시간에 한 아이피로부터 들어오는 요청을 무시하거나, 이전 요청으로부터 '1초'가 경과할 때 까지 기다린 다음 요청에 응답하는 식입니다. 보통 사람이 페이지를 조작하는데 걸리는 최소한의 시간이 '1초'는 될 거라고 기대되므로, 의도적인 접속 폭증에 대응할 수 있지 않을까 합니다. 또, 너무 많은 봇들이 페이지를 긁어 페이지가 느려지거나, 트래픽 자원이 고갈되는 문제에도 어느 정도는 대응할 수 있지 않을까 합니다.

2

답글: 플루드 타임 적용.

스팸도 그렇고, 이런 요청을 볼 때마다 느끼는 게 마치 누군가 태터툴즈의 취약점을 잡고 계속 공격하는 것 같습니다. 태터툴즈 망해라~일까요?

스팸도 대응이 좀 늦어서 다들 고생했는데 이번에는 발 빠르게 대처해야겠습니다. 의견 부탁드립니다.

graphittie (2006-07-01 15:18:52)에 의해 마지막으로 수정

3

답글: 플루드 타임 적용.

밀피유님도 그런 문제가 있으셨군요. 정말이지 스팸보다 난감한 상황이지 않을 수 없더군요. 말씀하신 방법이 괜찮을 것 같습니다. 봇이 아닌 이상 반복적으로 접속할 일은 없을 테고요. 문제는 아이피가 하나 이상일 경우에는... 머리가 아파지는군요 orz.

4

답글: 플루드 타임 적용.

며칠 전 LonnieNa님께서 ".htaccess의 버그 헛점을 이용해서  접속 폭증을 일으키고 있다고 하시던 게시물을 봤는데요... index.php/xxxx 이런 식으로였다던가 그랬지요. 어떤 방식으로 접근하는지 패턴이 전혀 없나요?

DB 문제만 해결된다면 어려운 이야기는 아닌 것 같은데... 아무래 1초 단위라고 해도 접속하는 모든 분들의 IP를 저장해 놓아야 한다는 점이 걸리네요. 1초 뒤에는 expired 되겠지만요.

graphittie (2006-07-02 02:41:21)에 의해 마지막으로 수정

5

답글: 플루드 타임 적용.

지금은 세션 테이블이 어떤 방식으로 구동되고 있는지 잘 모르겠지만, 벌써 세션 테이블에 접근하는 모든 사람들의 아이피가 저장되어 있는 것이 아닌가 하고 생각했습니다. 그래서 누군가 페이지에 접근하면 세션 테이블에 이 접근이 이전에 있는지 없는지 확인해야 할텐데, 이 때 세션 테이블의 'updated' 칼럼을 확인해서 플루드 타임보다 적으면 무시 혹은 딜레이를 주는 식으로 처리하면 될 것 같습니다.

제 경험일 뿐이지만, 방문자들을 몽땅 저장한다고 해도 DB에 별다른 부하가 되진 않을 겁니다.

제 경우에는 꽤 넓은 대역의 아이피에서 같은 동작을 하는데, 태그 페이지의 모든 주소를 긁는다거나, 각 페이지의 퍼머링크들을 계속해서 긁는 행동을 하더군요. 특별히 없는 주소에 접근하지는 않았습니다.

6

답글: 플루드 타임 적용.

http://halfmoon.tistory.com/18 (임시 : http://www.hanrss.com/myfeeds_main.qst?fsrl=80447)

읽어볼만 하더군요. 요즘은 좀 덜해진듯 싶지만...

lunamoth (2006-12-07 06:32:39)에 의해 마지막으로 수정

7

답글: 플루드 타임 적용.

트래픽을 조회해 보면 알수없는 해외 아이피에서 엄청난 트래픽이 발생하고 있더군요. -_-
앞 세 자리만 갖고 마지막 자리만 다른 수십개의 아이피가 트래픽 상위를 다 먹고 있었습니다.
이거 차단해버리니까 블로그의 진짜 조회수도 알 수 있고 트래픽 낭비를 막을수 있었습니다.
테터에서는 4자리를 다 입력해야 차단이 되기 때문에 아이피 하나하나 다 입력하기 귀찮으면
호스팅 업체에 문의해서 htaccess 파일을 업로드할 수 있습니다.
이렇게 하면 앞 2자리나 3자리만 입력해도 하위 아이피가 다 차단됩니다.

8

답글: 플루드 타임 적용.

예 제가 그렇게 쓰고 있지요^^; 겐도님이 보고 놀라시더군요 ㅎㅎ;

9

답글: 플루드 타임 적용.

알수없는 다량 접속의 경우 상당수는 리퍼러 스팸일 가능성도 있습니다. 저는 개인 블로그에 시간당 15만건의 리퍼러 스팸을 받아본 적이 있습니다. 리퍼러만 바꾸고 정말 무식하게 공격해옵니다. 일반적인 유저의 경우 비슷한 주소의 리퍼러로 접속하는 경우가 흔하지 않을 것입니다. 최초에 접근 이후에 다시 그 사이트에서 건너오는 변태 짓을 하지 않기 때문입니다. 리퍼러 주소에서 호스트 부분만 저장한 후 같은 호스트가 1분내 수회 방문할 경우 그 IP를 차단하는 것도 효과가 있습니다. 물론 수 많은 IP로 접속하는 경우가 있는데 그 경우에는 추가적으로 알려진 모든 프록시를 막는 방법을 같이 사용해야 겠지요.

10

답글: 플루드 타임 적용.

...여담이지만 수 초에 한 페이지씩 보신다는 luna****님 같은 경우는 플루드에 걸리기 딱 좋으시겠...;;; <-

문제의 답은 우리 안에 있다.
내면에 귀를 기울여 보자.

11

답글: 플루드 타임 적용.

CN 작성:

알수없는 다량 접속의 경우 상당수는 리퍼러 스팸일 가능성도 있습니다. 저는 개인 블로그에 시간당 15만건의 리퍼러 스팸을 받아본 적이 있습니다. 리퍼러만 바꾸고 정말 무식하게 공격해옵니다. 일반적인 유저의 경우 비슷한 주소의 리퍼러로 접속하는 경우가 흔하지 않을 것입니다. 최초에 접근 이후에 다시 그 사이트에서 건너오는 변태 짓을 하지 않기 때문입니다. 리퍼러 주소에서 호스트 부분만 저장한 후 같은 호스트가 1분내 수회 방문할 경우 그 IP를 차단하는 것도 효과가 있습니다. 물론 수 많은 IP로 접속하는 경우가 있는데 그 경우에는 추가적으로 알려진 모든 프록시를 막는 방법을 같이 사용해야 겠지요.

bad behavior등과 같이 해당 접속을 차단해주는 플러그인이 있으면 괜찮겠군요.

예전에 태터용으로 bad behavior를 포팅한 적이 있었는데, 지금 들여다보니 걍 새로 짜는게 낫겠다 싶습니다. sad

"Everything looks different on the other side."

-Ian Malcomm, from Michael Crichton's 'The Jurassic Park'