hashtable Attack 정보


  • 요약
    • POST등으로 값이 넘어온 KEY와 VALUE로 hashtable을 만들게 되는데, 이 때 KEY에 특정 문자열이 들어가면 hashtable을 만들고 검색하는데의 엄청난 시간(CPU사용)이 걸리게 된다.
    • 문제있는 문자열
      • Ez
      • FY
      • G8
      • H%17
    • 일반적으로는 발생할 수 없다. 왜냐면 넘어온 값의 수가 1000개가 넘고(즉, 엄청나게 많은 수), 문제있는 문자열이 포함되어있어야하기 때문이다.
    • 하지만, 이걸로 공격할려고 한다면... 공격되겠지.
    • 해결법은 대부분 넘어오는 POST의 갯수를 제한.


  • # 해결방안 (http://truefeel.tistory.com/206 참고)
  • PHP 업데이트 : 5.4.0RC, 5.3.9 이상 버전
    • 현재 회사 서버의 PHP 버전은 : .5.2.13 (13 부분은 다를 수 있습니다.)
  • 수호신 보안 모듈 사용 (현재 상태에서 추천)
    • POST 변수 수를 제한할 수 있음.
    • 가장 간단할 것으로 예상
  • Apache(웹서버)에서 POST 사이즈 제한
    • 이 경우 파일 업로드 등에서 문제가 생김.
  • Php.ini 설정 변경
    • max_input_time
    • post_max_size
      • 완벽한 방어가 안됨
    • 이 경우 파일 업로드 등에서 문제가 생김.

#테스트

글자 수(ANSI): 1,441,792 (1.3MB)

# sar 데이터 파랗게 된 부분에서 CPU하나가 100%를 사용함.
(CPU 8코어, 1코어의 100%는 전체의 12.5%)

10:55:35          all      0.25      0.00      0.51      0.25      0.00     98.99
10:55:36          all      0.00      0.00      0.13      0.00      0.00     99.87
10:55:37          all      0.13      0.00      0.00      0.38      0.00     99.49
10:55:38          all      3.68      0.00      0.76      0.25      0.00     95.30
10:55:39          all     13.07      0.00      0.38      0.00      0.00     86.55
10:55:40          all     12.94      0.00      0.38      0.00      0.00     86.68
10:55:41          all     12.94      0.00      0.38      0.00      0.00     86.68
10:55:42          all     12.94      0.00      0.25      0.00      0.00     86.80
10:55:43          all     13.07      0.00      0.38      0.51      0.00     86.04
10:55:44          all     12.82      0.00      0.13      0.00      0.00     87.06
10:55:45          all     12.80      0.00      0.38      0.00      0.00     86.82
10:55:46          all     12.82      0.00      0.25      0.25      0.00     86.68
10:55:47          all     12.93      0.00      0.38      0.00      0.00     86.69
10:55:48          all     12.96      0.00      0.38      0.38      0.00     86.28
10:55:49          all     12.67      0.00      0.00      0.25      0.00     87.07
10:55:50          all     12.69      0.00      0.13      0.00      0.00     87.18
10:55:51          all     12.91      0.00      0.25      0.00      0.00     86.84
10:55:52          all     12.71      0.00      0.00      0.25      0.00     87.04
10:55:53          all     12.91      0.00      0.25      0.13      0.00     86.71
10:55:54          all     12.96      0.00      0.13      0.13      0.00     86.79
10:55:55          all     12.82      0.00      0.13      0.00      0.00     87.06
10:55:56          all     12.66      0.00      0.13      0.13      0.00     87.09
10:55:57          all     12.72      0.00      0.00      0.00      0.00     87.28
10:55:58          all     12.78      0.00      0.13      0.00      0.00     87.09
10:55:59          all     12.66      0.00      0.00      0.13      0.00     87.22
10:56:00          all     12.74      0.00      0.13      0.00      0.00     87.14
10:56:01          all     16.29      0.00      2.78      0.63      0.00     80.30
10:56:02          all     12.64      0.00      0.00      0.00      0.00     87.36
10:56:03          all     12.63      0.00      0.13      0.00      0.00     87.25
10:56:04          all     12.75      0.00      0.00      0.00      0.00     87.25
10:56:05          all     12.64      0.00      0.13      0.00      0.00     87.23
10:56:06          all     12.75      0.00      0.13      0.00      0.00     87.12
10:56:07          all     12.64      0.00      0.00      0.00      0.00     87.36
10:56:08          all     12.74      0.00      0.25      0.13      0.00     86.89
10:56:09          all     12.64      0.00      0.00      0.00      0.00     87.36
10:56:10          all     12.75      0.00      0.00      0.00      0.00     87.25
10:56:11          all     12.75      0.00      0.13      0.00      0.00     87.12
10:56:12          all     12.75      0.00      0.00      0.00      0.00     87.25
10:56:13          all     12.74      0.00      0.38      0.25      0.00     86.63
10:56:14          all      0.63      0.00      0.51      0.00      0.00     98.86
10:56:15          all      0.00      0.00      0.00      0.00      0.00    100.00

#결론
한 번의 공격으로(POST DATA 1.3MB) 34 초간 하나의 CPU를 100% 사용함.
해당 공격으로는 현 시스템에서는 문제가 발생됩니다.


댓글
  • No Nickname
    No Comment
  • 권한이 없습니다.
    {{m_row.m_nick}}
    -
제목 작성자 날짜
공대여자
공대여자
mins01
공대여자
공대여자
공대여자
공대여자
공대여자
공대여자
공대여자
공대여자
공대여자
공대여자
공대여자
공대여자
공대여자
공대여자
공대여자