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}}
    -
목록형 📷 갤러리형
제목
[기본형] HTML (with 부트스트랩5.3 , jquery 3.7, vue.js)
유용한 리눅스(LINUX) 명령어
[공지] 기술 게시판
4.28
4.29
4.30
5.1
5.2
5.3
5.4
5.5
5.6
5.7
5.8
5.9
5.10
5.11
5.12
5.13
5.14
5.15
5.16
5.17
5.18
5.19
5.20
5.21
5.22
5.23
5.24
5.25
5.26
5.27
5.28
5.29
5.30
5.31
6.1