본문 바로가기
정보처리기사

[정처기 실기] 애플리케이션 공격 기법 - 이해와 암기

by 공불러 2023. 4. 4.
728x90
반응형

애플리케이션 공격 

서비스가 제공되는 응용(Application) 단계에서 이 서비스가 제대로 동작하지 못하도록 하는 공격.

경쟁사일 수도 있고, 해커들이 커리어를 쌓기 위해 하는 행동일 수도 있음.

 애플리케이션 공격 기법

 

HTTP GET Flooding - get 요청을 계속 보냄

  • Cache Control Attack
  • 과도한 get 메시지를 보냄
  • 처리할 양이 많아져서 서버 뻗음
  • 캐싱 서버가 아닌 웹 서버에서 직접 처리 유도
  • 추가 설명
    • HTTP GET flooding은 여러 개의 HTTP GET 요청을 과도하게 보내는 것을 말함
      이것은 공격자가 웹 서버를 공격하는 방법 중 하나임
      공격자는 여러 대의 컴퓨터나 봇넷(Botnet)을 이용해 대량의 HTTP GET 요청을 보내어, 서버의 처리 능력을 초과하게 만들어 웹 서버가 느려지거나 다운될 수 있도록 공격
    • 이 공격을 방지하기 위해서는 웹 서버가 클라이언트의 IP 주소를 기록하고, 특정 IP 주소에서 너무 많은 요청이 발생할 경우 해당 IP 주소를 차단하는 방법이 일반적
    • CDN(Content Delivery Network)을 이용하거나, 웹 방화벽(Web Application Firewall) 등의 보안장치를 이용해 공격을 방어

왜 post 방식 아닌 get 방식일까?

더보기

HTTP GET 메서드는 요청한 데이터를 URL에 포함시켜 전송하는 방식이기 때문에, 보안에 취약

반면, HTTP POST 메서드는 요청한 데이터를 HTTP 요청 본문에 포함시켜 전송하므로 URL에 데이터가 노출되지 않아 GET 메서드에 비해 보안성이 높음

하지만, HTTP GET 요청을 이용한 공격은 요청을 간단하게 작성할 수 있고, HTTP POST 요청에 비해 더 빠른 요청 속도와 더 적은 처리 부담을 가지므로 공격자들이 선호하는 방법 중 하나

또한, HTTP GET 요청은 캐시 기능을 사용할 수 있어 동일한 요청을 반복할 때 불필요한 데이터 전송을 줄일 수 있는 이점이 있기 때문에, 공격자는 더 많은 요청을 보낼 수 있음

따라서, HTTP GET 요청을 이용한 공격은 보안에 취약한 면이 있지만, 요청을 쉽게 작성하고 빠르게 전송할 수 있기 때문에 공격자들이 많이 이용하는 방법 중 하나임

 

POST 방식을 이용한 공격도 있음

RUDY

 

Slowloris(slow HTTP Header Dos) - 해더 양식을 따르지 않음

  • HTTP GET 메서드를 이용하여 헤더의 최종 끝을 알리는 개행문자(\r\n\r\n)을 전송하지 않음
  • 그럼 웹 서버와 연결 상태가 지속됨
  • 서버 뻗음

개행 문자를 왜 쓰는 걸까?

더보기

HTTP를 통해 요청과 응답을 보낼 때, 헤더, 바디를 보내는데, 각 영역을 개행 문자로 구분

~한 요청을 받았다.

\r\n\r\n (여기까지 요청)

내 응답은 ~이다.

\r\n\r\n (여기까지 응답)

슬로우 로리스는 실제 동물이름 - 뭔가 개행문자 뺴놓고 보내게 생긴것 같기도..

개행 문자가 없어서, 문장들이 구분이 안되서 기다리는 상황

 

RUDY (slow HTTP POST DoS) - 큰 요청을 보냄

  • 요청 header의 Content-Lenth를 비정상적으로 크게 설정
  • 메시지 body 부분은 매우 소량으로 계속보냄
  • 연결 상태 유지
  • HTTP GET Flooding과 차이
    • RUDY는 HTTP POST 메서드에 많은 요청들을 담아 보냄(물론, 다수를 보내기는 하나 메시지 하나가 담고 있는 처리 항목이 많음)
    • HTTP GET Flooding은 GET 매서드 여러개를 보냄

Slow HTTP Read DoS - 데이터를 읽는 데 제한이 있음

  • TCP 윈도 크기와 데이터 처리율을 감소시킨 상태에서 (zero window packet) 다수 HTTP 패킷을 전송
  • 여기에서 윈도(window)는  SYN 패킷에 포함된 내용이며, 얼만큼의 데이터를 전송할 수 있는지 적어둔 것
  • 이 윈도 크기를 줄이면,  사용자가 받을 수 있는 데이터크기가 작아져서, 서버가 보내는 응답을 받을 수 없음
  • 그럼, 서버는 데이터를 계속 주는데, 클라이언트는 받질 않으니, 연결상태가 유지되는 것

 

Hulk Dos - 걍 냅다 다양하게 막 url 요청함 

왜 hulk DoS 인가?

더보기

HTTP Unbearable Load King의 약자. 

견딜 수 없을 만큼의 부하!

  • url을 여러개 만듦
  • url을 계속 보냄
  • url을 지속적으로 변경시켜 임계치 기반의 디도스 대응 장비 우회
  • 임계치 기반이라는 건 트래픽 임계치를 정해놓았고, 그 걸 넘어가면 접속을 못하게 막아버리는 것이다.
  • 근데, URL을 여러개 쓰면 동일한 트래픽으로 간주하지 않을 수 있다고 한다.

Hash DoS

  • HTTP를 처리할 때, 서버는 hash table을 쓴다
  • 연산이 빠르다는 장점이 있지만, 한번에 복잡한 요청이 오면 서로 충돌할 수 있다.
  • 공격자는 조작된 많은 수의 파라미터를 POST 방식으로 웹 서버로 전달하여 다수의 해시 충돌(Collison)을 발생시켜 자원을 소모시킴



네트워크 공격

스니핑(Sniffing) : 킁킁 거리면서 정보 빼감 쥐 마냥

  • 직접적인 공격이 아니며, 몰래 접근해서 정보만 쏙~ 빼감

네트워크 스캐너/스니퍼(Sniffer) - 취약점 파악 도구

  • 네트워크의 취약점 파악을 위한 도구를 악용

Password Cracking - 패스워드를 훔쳐가는 방법

  • Brute Force : 그냥 무차별적으로 모든 키를 다 입력해보는 것. (brute : 인정사정없는, 잔인할 정도의)
  • Ditionctory : ID와 PASSWORD 후보 군을 미리 작성해두고 대입하는 것
  • Pass word hybrid : 위의 두가지를 합친 것 
  • Rainbow Table Attack : 비밀번호 별로 해시 값을 미리 지정, 테이블로 모음, 크래킹하고자하는 해시값을 테이블에서 검색해서 역으로 비밀번호를 찾는 방법

잠깐 TIP

IP, ARP, ICMP란?

더보기

 

       
프로토콜 계층 OSI 계층명 설명
IP 3 네트워크 계층 인터넷에서 데이터를 전송하고 전송 경로를 결정하는 데 사용되는 프로토콜입니다.
ARP 2 데이터 링크 계층 물리적인 네트워크 주소를 해결하기 위해 IP 주소를 사용하는 프로토콜입니다.
ICMP 3 네트워크 계층 네트워크 상황을 보고하고 오류 메시지를 전송하는 데 사용되는 프로토콜입니다.

 

  • IP (인터넷 프로토콜) :
    • OSI 모델에서는 네트워크 계층에 해당합니다.
    • 인터넷에서 데이터를 전송하고, 전송 경로를 결정하는 데 사용됩니다.
    • 패킷을 수신한 라우터가 패킷의 목적지 IP 주소를 보고, 패킷을 해당 목적지로 전달하기 위한 경로를 선택합니다.
    • IP 프로토콜은 무엇인가를 보낼 때 사용하는 것이 아니라, 어디로 보낼 것인가를 결정하기 위해 사용됩니다.
  • ARP (주소 해결 프로토콜) :
    • OSI 모델에서는 데이터 링크 계층에 해당합니다.
    • 물리적인 네트워크 주소를 해결하기 위해 IP 주소를 사용하는 프로토콜입니다.
    • ARP는 네트워크 상에서 다른 컴퓨터의 IP 주소를 가지고 그 컴퓨터에 대한 물리적인 MAC 주소를 찾아냅니다.
    • ARP 요청을 보낸 호스트가 목적지 호스트의 물리적인 MAC 주소를 알게되면, 이후의 통신에서는 해당 MAC 주소를 사용하여 패킷을 전달합니다.
  • ICMP (인터넷 제어 메시지 프로토콜) :
    • OSI 모델에서는 네트워크 계층에 해당합니다.
    • 네트워크 상황을 보고하고, 오류 메시지를 전송하는 데 사용되는 프로토콜입니다.
    • ICMP는 네트워크 라우터에서 사용되는 프로토콜입니다.
    • ICMP 메시지는 네트워크 상황을 알리기 위해 사용됩니다. 라우터나 호스트 등의 장비나 소프트웨어에서 문제가 발생할 때, 해당 문제를 진단하기 위한 정보를 제공합니다.
 
 

IP Spoofing - spoofing은 도용, 위장이라는 뜻으로 변경, 변조했다고 보면 된다.

  • 침입자가 인증한 컴퓨인척함
  • 공격자의 패킷 헤더를 인증된 호스트의 IP 어드레스로 위조
  • 그럼, 타깃은 인증된 호스트가 온 줄알고 문열어주고 정보 뜯김

ARP Spoofing

  • 공격자가 특정 호스트의 MAC 주소를 자신의 MAC으로 위조한 ARP Reply를 만듬
  • 타깃에게 지속적으로 전송
  • 타깃의 ARP cache Table에 특정 호스트의 MAC 정보를 공격자의 MAC  정보로 변경
  • 타깃으로 부터 특정 호스트로 나가는 패킷을 공격자가 스니핑함.
  • mac 주소란 기기에 고유한 번호를 말함. 
    • 내폰의 주소를 위조해서 내 폰에 올 정보를 가져가는 것임, 이게 ARP 스푸핑

ICMP Redirection

  • ICMP를 리다이렉션할 때, 네트어크에 존재하는 또다른 라우터로 알림
    • 라우터는 1계층부터 3계층까지 사용됨
  • ICMP redirect를 공격자가 마음대로 바꿔서 특정 목적지로 가져감

 

Trojan Horses - 트로이 목마

  • 악성 루틴이 숨어 잇는 프로그램으로 겉은 멀쩡한데, 실행하면 악성 코드가 실행됨
  • 악성 코드를 감염시킬 수 있는 프로그램을 다운로드하거나 설치
  • 감염된 프로그램이 실행
  • 악성 코드가 사용자의 시스템에 침투하여 사용자의 컴퓨터를 제어할 수 있게 됨
  • 공격자는 침투된 시스템에 대한 외부 접근을 가능하게 하여 해당 시스템을 원격으로 조작할 수 있음

 

 

 

728x90
반응형

댓글