226
2
부
공격
작업 규모를 사용자 계정 유형에 따라 측정했으므로
GET
/
metadata
/:
userid
를 통해 서버 리
소스 시간을 잡아먹는 프로필을 만들어낼 수 있다. 여러 개의 앨범에 똑같거나 비슷한 이미지
를 반복적으로 업로드하는 클라이언트 측 스크립트를 작성한다면
600
개의 앨범에
3
,
500
장의
사진이 있는 계정을 만들 수도 있을 것이다.
그리고
GET
/
metadata
/:
userid
엔드포인트에 같은 요청을 반복적으로 한다면 서버 측 코드
가 매우 견고하거나 요청별 리소스 제한이 걸려있지 않는 한 다른 사용자가 체감하는 서버 성
능을 상당히 떨어뜨릴 수 있을 것이다. 이러한 요청은 타임아웃이 될 수도 있다. 하지만 서버
소프트웨어가 타임아웃이 되어 요청을 한 클라이언트에게 결과를 보내지 않음에도 데이터베이
스는 계속 리소스를 잡고 있을 수 있다.
이는 논리
DoS
공격을 찾아 익스플로잇하는 한 가지 예에 불과하며 사례에 따라 달라진다. ‘논
리
DoS
’는 익스플로잇하려는 애플리케이션의 로직에 의해 정의되기 때문이다.
14.3
분산
DoS
분산 서비스 거부
(
DDoS
)에서는 다수의 부정 사용자에 의해 서버 리소스가 낭비된다. 그들은
대량의 요청을 하기 때문에 표준적인 요청을 수행하기도 한다. 큰 규모로 수행하면 정당한 사
용자에게 돌아가야 할 서버 리소스가 소진된다 (그림
14
-
2
).
DDoS
공격을 완전히 다루면 이 책의 범위를 벗어난다. 하지만 작동 원리는 잘 알아야 한다.
한 명의 해커가 다른 클라이언트나 서버를 타깃으로 삼아 ...