👿DoS : Denial of Service
DATE : 2024/2/3
What is DoS?
DoS란, Denial of Service의 약자로 서버가 제공하고자 하는 서비스를 하지 못하도록 만드는 공격을 말한다.
DoS 공격 전략을 크게 분류해보자면 다음과 같다.
(1) Web Application 취약점 활용
다른 사용자 계정을 삭제할 수 있는 취약점을 발견했다고 할 때,
1초 마다 모든 사용자 계정을 삭제하는 코드를 반복 실행 한다면 아무도 로그인을 할 수 없게 된다..!
혹은 비밀번호 오류 횟수가 제한된 서비스에서 다른 사람의 비밀번호를 무작위로 입력하여
특정 시간 동안 로그인 하지 못하도록 만들 수도 있을 것이다.
(2) Server Resource 소모
게시판에 자료를 업로드하는 기능을 떠올려 보자.
자료를 업로드한다는 건, 사용자의 필요에 따라 자료를 수정하거나 다운로드하거나 삭제할 수 있도록
자료를 저장하고 있다는 의미이다.
이때 중요한 건, 자료를 무한대로 저장할 수 있는 서버는 없다는 것..!
저장 공간은 제한될 수 밖에 없기 때문에
큰 파일을 많이 올리게 되면 어느 순간 정해진 용량을 꽉 채우게 될 것이다.
이런 부분을 고려해봤을 때 대용량 파일 수백, 수천 개를 서버에 업로드하게 되면
더는 파일을 업로드할 공간이 부족해 다른 사용자가 파일을 업로드할 수 없게 된다.
(3) Network 대역폭 소모
네트워크 대역폭이란, 1초에 보낼 수 있는 최대 비트(bit per second)를 나타내는 값으로
1초 동안 전달할 수 있는 최대 데이터 양을 의미한다.
자동차를 데이터, 차선을 대역폭으로 비유했을 때 서버로 어떤 요청을 보낸다는 건
차선에 주행하는 자동차가 생기는 것으로 자동차가 많아지게 되면 1차선에만 주행하던 차가
2차선, 3차선까지 늘어날 것이고, 어떨 때는 도로가 꽉 막히는 경우도 있을 것이다.
즉 방대한 양의 데이터를 보내 네트워크 대역폭을 꽉 채우는 방법으로
다른 사용자가 정상적으로 서버와 소통하지 못하게 만드는 것 또한 DoS 공격에 속한다 할 수 있다.
What is DDoS?
DDoS는 Distributed DoS의 약자이다.
Distribute라는 단어는 "분산"이라는 의미를 나타내는데
분산이라 함은 쉽게 말해 한 대의 컴퓨터가 아닌, 여러 대의 컴퓨터를 동작 시키는 거라 생각하면 된다.
(업무를 여러 명에서 나눠서 수행한다 해서 분산 시스템이라 칭하는 것)
(3)번의 경우를 예시로 생각해보자. 요즘은 서버가 처리할 수 있는 데이터 양이 크기 때문에
한 대의 컴퓨터가 열심히 데이터를 날려봤자 서버를 다운 시키기는 무리일 것이다.
그렇다 보니, 데이터를 많이 보내는 컴퓨터를 많이 동원해서 DoS를 수행한다.
한 대의 컴퓨터가 대장과 같은 역할을 맡아 나머지 컴퓨터에게 명령을 내리면 일제히 서버에
데이터를 마구마구 보내는 형태(= C&C server)로 DoS를 수행하다 보니
여러 컴퓨터를 동원해 DoS 공격을 한다고 해서 DDoS 라 부른다.
What is DRDoS?
DRDoS란, Distributed Reflected DoS의 약자로
DDoS와 마찬가지로 여러 컴퓨터를 동원해 공격을 수행하지만 다른 점이 있다면 중간에
반사 서버가 등장한다는 점이다.
여기서 말하는 반사 서버는 요청 하나를 주면 응답 10개를 주는 식으로 동작하는 서버를 말한다.
DDoS와 다른 점이 있다면 요청 하나에 복수의 응답을 돌려주기 때문에
컴퓨터가 그리 많지 않아도 효율이 좋다는 것이다.
여기서 반사되는 형태가 왜 중요하냐!
원래 서버는 요청을 보낸 곳에 응답을 돌려주기 마련인데 IP Spoofing으로
출발지 IP에 공격할 대상의 주소를 적게 되면 반사 서버에 요청을 한 번 보낼 때마다 10개의 응답이
대상 컴퓨터로 날아가게 된다.
이런 구조를 활용해 소수의 컴퓨터로도 효율성 좋게 DoS 공격을 할 수 있게 되는 것!
이렇게 해서 DoS와 관련된 내용을 간략하게 정리해보았다.
DoS는 궁극적으로 서버가 서비스를 하지 못하도록 하는 게 목표이기 때문에
여러 형태로 공격이 이루어질 수 있다 보니 정리한 바와 같이 전략 & 공격 유형이 다양하다.
그 중에서도 다음으로는 대표적인 DoS 예시로 접해볼 수 있는 Syn Flood 에 대해 살펴볼까 한다.
Last updated