[웹 보안] 분산 서비스 거부 공격 DDoS(Distributed Denial of Service) [DDoS 정의, 공격 방법, 방어 방법]

2024. 5. 3. 19:09·◈ Study/웹 보안(Web Security)🔐
728x90

- 분산 서비스 거부 공격 DDoS(Distributed Denial of Service)

이 공격은 DoS처럼 인터넷 트래픽의 폭주로 공격 대상이 정상적으로 네트워크가 작동하지 않게 한다. 그러나, DDoS는 1대 1로 싸우는 것이 아닌 1대 다수로 싸우게 된다.

갑자기 이슈가 되어 접속자가 많아진 웹사이트와 DDoS 공격을 받고 있는 웹사이트를 구별하는 것은 어렵다. 숙련된 DDoS 공격은 알려진 해결책으로도 방어가 매우 어렵다. 뚜렷한 해결책이 없어서 DDoS는 방어라는 표현보다는 완화라는 표현을 사용할 정도이다.

일반적인 경우는 공격자가 다수의 보안이 약한 일반 사용자를 먼저 공격한다.(=좀비PC 생성) 그리고 그들의 컴퓨터에서 원격으로 진짜 목표에 트래픽을 보낸다. 이로 인해 진짜 공격 대상은 너무 많은 요청으로 인해 정상적인 서비스를 하지 못하게 된다. 공격을 위해 공격 날짜를 미리 정해야 하며, 사회적인 영향을 키우기 위해 특정 기념일에 공격하는 경우도 있었다.

DDoS 원리


- DDoS 공격 유형

1) 이전 포스팅 했던 DoS를 좀비PC들이 수행
2) 좀비PC들이 http 요청(GET, POST 등)을 연속적으로 전송
3) 정규표현식을 검사하는 로직에 검사에 시간이 걸리는 문자들을 넣어서, 서버의 자원을 낭비

- 좀비PC가 되지 않으려면?

1) 기본적인 보안 수칙을 지킨다. (수상한 파일 실행하지 않기10 등)
2) 웹 서버도 조심해야 한다. 포트폴리오를 올려놓은 웹 서버도 약한 보안조치로 인해 좀비pc가 될 수 있다.

- DDoS 방어 방법

웹 개발 과정에서 비정상적으로 빠르게 같은 요청을 보내는 사용자를 일시적으로 방화벽에서 차단하는 방법 등을 사용할 수 있다. 이외에도 로드 밸런서를 도입해도 효과적이다. 로드 밸런서는 많은 사용자들이 몰릴 때를 대비해 많이 사용하지만, DDoS 완화에도 효과가 있다.

그러나 작정하고 공격할 경우, 단순히 개발자의 노력만으로는 힘들다. 따라서 DDoS는 어쩔 수 없이 솔루션을 추천하며, 보통 클라우드 컴퓨팅을 제공하는 곳에서 DDOS 완화 솔루션을 같이 제공하기도 한다.

- 참고자료

 

[지금 무료] 웹 개발자라면 꼭 알아야 할 보안 기초 | Jason - 인프런

Jason | 정보 보안은 어렵고, 너무 전문적인 내용이라고요? 아니요. 지금 당장 안전한 웹을 만들어 갈 수 있는 정보 보안 기초를 시작해 보세요!, 배워서 바로 써먹는정보 보안 기초 🖥️ 웹 개발

www.inflearn.com


728x90
'◈ Study/웹 보안(Web Security)🔐' 카테고리의 다른 글
  • [웹 보안] Apache에서 보안 헤더 설정 방법 [HttpOnly, Content-Security-Policy, X-Content-Type-Options, X-Frame-Options, X-XSS-Protection]
  • [웹 보안] 세션 만료 시간 설정하기 [로그인 만료 기준(30분) 시간 초과]
  • [웹 보안] 서비스 거부 공격 DoS(Denial-of-Service) [SYN Flooding, Ping of Death, 스머프 공격]
  • [웹 보안] 포트는 왜 중요할까? [포트와 보안의 상관 관계]
예르미(yermi)
예르미(yermi)
끊임없이 제 자신을 계발하는 개발자입니다👨🏻‍💻
  • 예르미(yermi)
    예르미의 코딩노트
    예르미(yermi)
  • 전체
    오늘
    어제
    • 분류 전체보기 (937)
      • ◎ Java (133)
        • Java☕ (93)
        • JSP📋 (26)
        • Applet🧳 (6)
        • Interview👨🏻‍🏫 (8)
      • ◎ JavaScript (48)
        • JavaScript🦎 (25)
        • jQuery🌊 (8)
        • React🌐 (2)
        • Vue.js🔰 (6)
        • Node.js🫒 (3)
        • Google App Script🐑 (4)
      • ◎ HTML5+CSS3 (17)
        • HTML5📝 (8)
        • CSS3🎨 (9)
      • ──────────── (0)
      • ▣ Framework (67)
        • Spring🍃 (36)
        • Spring Boot🍀 (12)
        • Bootstrap💜 (3)
        • Selenium🌕 (6)
        • MyBatis🐣 (10)
      • ▣ Tools (47)
        • API🎯 (18)
        • Library🎲 (15)
        • JitPack🚀 (3)
        • Jenkins👨🏻 (7)
        • Thymeleaf🌿 (4)
      • ▣ Server (32)
        • Apache Tomcat🐱 (14)
        • Apache HTTP Server🛡️ (1)
        • Nginx🧶 (7)
        • OracleXE💿 (4)
        • VisualSVN📡 (4)
      • ▣ OS : 운영체제 (18)
        • cmd : 명령프롬프트💻 (10)
        • Linux🐧 (8)
      • ▣ SQL : Database (56)
        • Oracle SQL🏮 (26)
        • PL SQL💾 (9)
        • MySQL🐬 (6)
        • MariaDB🦦 (6)
        • H2 Database🔠 (3)
        • SQL 실전문제🐌 (6)
      • ────────── (0)
      • ◈ Human Project (86)
        • Mini : Library Service📚 (15)
        • 화면 설계 [HTML]🐯 (10)
        • 서버 프로그램 구현🦁 (15)
        • Team : 여수어때🛫 (19)
        • Custom : Student🏫 (9)
        • Custom : Board📖 (18)
      • ◈ Yermi Project (40)
        • 조사모아(Josa-moa)📬 (5)
        • Riddle-Game🧩 (6)
        • 맛있을 지도🍚 (2)
        • 어디 가! 박대리!🙋🏻‍♂️ (5)
        • 조크베어🐻‍❄️ (4)
        • Looks Like Thirty🦉 (2)
        • Toy Project💎 (12)
        • 오픈소스 파헤치기🪐 (4)
      • ◈ Refactoring (15)
        • Mini : Library Service📚 (8)
        • 서버 프로그램 구현🦁 (1)
        • Team : 여수어때🛫 (0)
        • 쿼리 튜닝일지🔧 (6)
      • ◈ Coding Test (89)
        • 백준(BOJ)👨🏻‍💻 (70)
        • 프로그래머스😎 (2)
        • 코드트리🌳 (7)
        • 알고리즘(Algorithm)🎡 (10)
      • ◈ Study (102)
        • 기초튼튼 개발지식🥔 (25)
        • HTTP 웹 지식💡 (4)
        • 클린코드(Clean Code)🩺 (1)
        • 디자인패턴(GoF)🥞 (12)
        • 다이어그램(Diagram)📈 (4)
        • 파이썬(Python)🐍 (16)
        • 에러노트(Error Note)🧱 (34)
        • 웹 보안(Web Security)🔐 (6)
      • ◈ 공부모임 (39)
        • 혼공학습단⏰ (18)
        • 코드트리 챌린지👊🏻 (2)
        • 개발도서 100독👟 (8)
        • 나는 리뷰어다🌾 (11)
      • ◈ 자격증 공부 (37)
        • 정보처리기사🔱 (16)
        • 정보처리산업기사🔅 (9)
        • 컴퓨터활용능력 1급📼 (12)
      • ─────────── (0)
      • ◐ 기타 (113)
        • 알아두면 좋은 팁(tip)✨ (46)
        • 개발자의 일상🎈 (44)
        • 개발도서 서평🔍 (10)
        • 개발관련 세미나🎤 (2)
        • 블로그 꾸미기🎀 (9)
        • 사도신경 프로젝트🎚️ (2)
  • 인기 글

  • 최근 댓글

  • 태그

    Project
    프로그래밍
    BOJ
    html
    spring
    Error Note
    javascript
    일상
    jsp
    코딩
    자바스크립트
    SQL
    Oracle
    백준 티어
    Database
    꿀팁
    Java
    코딩 테스트
    백준
    CSS
  • 250x250
  • hELLO· Designed By정상우.v4.10.3
예르미(yermi)
[웹 보안] 분산 서비스 거부 공격 DDoS(Distributed Denial of Service) [DDoS 정의, 공격 방법, 방어 방법]
상단으로

티스토리툴바