본문 바로가기
프로그램 개발해서 돈벌기/해킹과 보안

RUDY 공격으로 해킹하는 개념과 공격 툴 소스와 사용법

by ubmuhan 2023. 7. 6.
반응형

 

RUDY attack

'R U Dead Yet?', 즉 RUDY는 터무니없이 느린 속도로 양식 데이터를 제출하여 웹 서버를 묶인 상태로 유지하는 것을 목표로 하는 서비스 거부 공격 도구입니다.RUDY 악용은 많은 양의 빠른 요청으로 서버를 압도하는 것보다 몇 가지 인출 요청을 생성하는 데 초점을 맞추므로 낮고 느린 공격으로 분류됩니다.RUDY 공격이 성공하면 피해자의 원본 서버를 합법적인 트래픽에서 사용할 수 없게 됩니다.

 

RUDY 소프트웨어에는 사용자 친화적인 포인트 앤 클릭 인터페이스가 포함되어 있으므로 공격자는 도구를 취약한 대상으로 지정하기만 하면 됩니다. 양식 입력을 허용하는 모든 웹 서비스는 RUDY 공격에 취약합니다. 공격 도구가 양식 필드를 스니핑 하고 양식 제출 프로세스를 악용하여 작동하기 때문입니다.

 

동작 방식

  1. RUDY 도구는 피해자의 애플리케이션을 크롤링하여 양식 필드를 찾습니다.

  2. 양식이 발견되면 이 도구는 합법적인 양식 제출을 모방하기 위해 HTTP POST 요청을 생성합니다. 이 POST 요청에는 매우 긴 콘텐츠가 곧 제출될 것임을 서버에 알리는 헤더*가 포함되어 있습니다.

  3. 그런 다음 이 도구는 양식 데이터를 각각 1바이트 정도로 작은 패킷으로 분해하고 각각 약 10초의 무작위 간격으로 이러한 패킷을 서버에 전송하여 양식 데이터를 제출하는 프로세스를 오래 끕니다.

    예를 들어 특정 사이트 페이지가 Content-Length: 100일때
    전체인 100을 응답하지 않고 2개씩 끊어서 10초 간격으로 계속 보내게 됩니다. 그러면 50번을 시도하게 됩니다. 10(초) * 50 = 500초(8분 30초)가 소요하게 됩니다.
    여러 개 연결에서 이런 식으로 동작을 하게 되면 목표 시스템 성능에 따라서 서비스 연결이 느려지거나 서비스 불능 상태까지 갈 수 있습니다.

  4. 이 도구는 데이터를 무기한 계속 제출합니다. 공격 동작이 연결 속도가 느린 사용자가 양식 데이터를 제출하는 동작과 유사하므로 웹 서버는 패킷을 수락하기 위해 연결을 열린 상태로 유지합니다. 한편 웹 서버의 합법적인 트래픽 처리 능력이 손상됩니다.

 

RUDY 도구는 모두 하나의 웹 서버를 대상으로 하는 이러한 느린 요청 여러 개를 동시에 생성할 수 있습니다.웹 서버가 한 번에 아주 많은 연결만 처리할 수 있으므로 RUDY 공격으로 사용 가능한 모든 연결을 묶을 수 있습니다. 즉, 웹 서버에 액세스 하려는 합법적인 사용자에 대한 서비스가 거부됩니다. 많은 수의 연결을 사용할 수 있는 강력한 웹 서버라도 컴퓨터 네트워크를 통해 동시에 공격을 수행하는 RUDY에 의해 중단될 수 있습니다. 이를 분산 서비스 거부(DDoS) 공격이라고 합니다.

 

* HTTP 헤더는 HTTP 요청 또는 응답과 함께 전송되는 키/값 쌍이며 사용 중인 HTTP 버전, 콘텐츠의 언어, 전달되는 콘텐츠의 양 등 중요한 정보를 제공합니다.

 

소스 위치

https://github.com/SergiDelta/rudy

 

GitHub - SergiDelta/rudy: Implementation of RUDY (Are you dead yet?) Denial of Service attack in Python.

Implementation of RUDY (Are you dead yet?) Denial of Service attack in Python. - GitHub - SergiDelta/rudy: Implementation of RUDY (Are you dead yet?) Denial of Service attack in Python.

github.com

 

소스는 파이션으로 작성되었습니다. 500라인 정도로 간단한 프로그램입니다. 그러나 해킹 피해는 서비스 전체가 먹통이 되는 치명적인 기능을 갖는 해킹 툴입니다.

 

RUBY 공격에 대응하기 위해 웹 서버에 아주 짮은 연결 시간 초과 간격 제한을 설정할 수 있습니다. 그러나 이 방법은 인터넷 서비스가 느린 지역의 정상적인 사용자까지 서비스 거부가 될 수 있습니다. 해킹 방식 자체가 http 프로토콜 기능을 지키고 있어 방어가 어렵습니다.

 

Cloudflare 같은 곳은 역방향 프록시를 이용해서 방어를 한다고 합니다.

 

 

사용방법

usage: rudy [-h] [-s SOCKETS] [-t TIME] [-b BYTES] [-l LENGTH] [-x PROXY] [-v]
            [--version]
            url

> python3 rudy.py -s 100 -t 5 http://localhost/login.php

 

 

 

 

 

 

 
 
 
반응형

댓글