👨🏻💻 모각코
웹 보안 공격
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
- 공격자가 사용자를 이용하여 웹 사이트에 요청을 보내는 공격
- 가짜 피싱 사이트의 폼을 입력하여 요청하면 공격 성공
방어
- Referrer Check
- 허용한 도메인만 요청 허락하도록 설정
- CSRF Token
- 모든 요청에 토큰을 발급하여 서버에서 검증
- CAPTCHA
- 사람이 요청한 것이 맞는지 검증
Command Injection
- 보기 힘든 공격 방법이지만 괴장히 위험함
- 애플리케이션에서 사용되는 시스템 명령에 악의적인 명령어를 삽입하는 공격(WebShell Attack)
- 서버 root 권한을 취득할 수 있다.
방어
- 시스템 함수를 사용하지 않는다.
File Upload Attack
- 악성 스크립트 파일을 업로드하는 공격
방어
- 확장자 / 파일 타입 검사
- 특수 문자가 포함된 경우 업로드 금지
JavaScript Injection
- Client-Side에서 JavaScript를 삽입시키는 공격
- 크롬 console로 조작 가능하다
- Client-Side에 민감한 데이터를 넣을 경우 쉽게 탈취 가능하기 때문이다.
방어
- Client-Side에 민감한 정보를 절대 넣지 않는다.
- 중요한 데이터의 유효성 검사가 필요한 경우 Client에서만 검사하면 안되고 서버와 같이 통신하여 검사해야한다.
DDOS
- Distributes Denial of Service
- 서버에 비정상적으로 많은 트래픽을 보내는 공격 ⇒ 서비스 마비 + 비용 발생
- 여러 좀비PC들에게 웹에 새로고침만 해도 많은 트래픽을 보낼 수 있음
방어
- 제일 단순하지만 막기 어렵다.
- DDOS를 탐지해주는 솔루션을 구매(비싼 비용이 단점)
Dictionary Attack
- 미리 사전에 등록해놓은 문자열을 암호로 대입하여 공격
- Brute Force의 일종
방어
- 의미가 있는 문자열은 암호로 등록 못하도록 설정
- 2-factor 인증
- Account Lockout Policy(5번이상 틀리면 Lock)
Rainbow Table
- 해시 함수를 이용한 평문을 모두 저장시켜 놓은 표
- 계정 탈취 후 암호 원문을 알아내기 위해 사용