👨🏻‍💻 모각코

웹 보안 공격

kangkibong 2023. 7. 16. 23:47

SQL Injection

  • 서버에서 실행되는 SQL을 악의적으로 이용하는 공격

XSS(Stored XSS)

  • Cross-Site Scripting
  • 악성 스크립트를 삽입한는 공격

Relected XSS

  • 검색어 등을 보여주는 곳에 스크립트를 심는 공격
  • URL을 사용자에게 누르게 만들면 공격 성공

DOM Based XSS

  • DOM에 악의적인 스크립트를 심는 공격

CSRF Attack

  • Cross-Site Request Forgery
  • 공격자가 사용자를 이용하여 웹 사이트에 요청을 보내는 공격
  • 가짜 피싱 사이트의 폼을 입력하여 요청하면 공격 성공

방어

  1. Referrer Check
  2. 허용한 도메인만 요청 허락하도록 설정
  3. CSRF Token
  4. 모든 요청에 토큰을 발급하여 서버에서 검증
  5. CAPTCHA
  6. 사람이 요청한 것이 맞는지 검증

Command Injection

  • 보기 힘든 공격 방법이지만 괴장히 위험함
  • 애플리케이션에서 사용되는 시스템 명령에 악의적인 명령어를 삽입하는 공격(WebShell Attack)
  • 서버 root 권한을 취득할 수 있다.

방어

  1. 시스템 함수를 사용하지 않는다.

File Upload Attack

  • 악성 스크립트 파일을 업로드하는 공격

방어

  1. 확장자 / 파일 타입 검사
  2. 특수 문자가 포함된 경우 업로드 금지

JavaScript Injection

  • Client-Side에서 JavaScript를 삽입시키는 공격
  • 크롬 console로 조작 가능하다
  • Client-Side에 민감한 데이터를 넣을 경우 쉽게 탈취 가능하기 때문이다.

방어

  1. Client-Side에 민감한 정보를 절대 넣지 않는다.
  2. 중요한 데이터의 유효성 검사가 필요한 경우 Client에서만 검사하면 안되고 서버와 같이 통신하여 검사해야한다.

DDOS

  • Distributes Denial of Service
  • 서버에 비정상적으로 많은 트래픽을 보내는 공격 ⇒ 서비스 마비 + 비용 발생
  • 여러 좀비PC들에게 웹에 새로고침만 해도 많은 트래픽을 보낼 수 있음

방어

  1. 제일 단순하지만 막기 어렵다.
  2. DDOS를 탐지해주는 솔루션을 구매(비싼 비용이 단점)

Dictionary Attack

  • 미리 사전에 등록해놓은 문자열을 암호로 대입하여 공격
  • Brute Force의 일종

방어

  1. 의미가 있는 문자열은 암호로 등록 못하도록 설정
  2. 2-factor 인증
  3. Account Lockout Policy(5번이상 틀리면 Lock)

Rainbow Table

  • 해시 함수를 이용한 평문을 모두 저장시켜 놓은 표
  • 계정 탈취 후 암호 원문을 알아내기 위해 사용