728x90
🔪 웹 공격 기술
11.1 웹 공격 기술
- 웹 애플리케이션 등의 리소스가 주요 타겟이다.
- HTTP에는 보안 기능이 없어 애플리케이션에서 모두 구현해야 한다.
- 변조가 가능한 요청에 공격 코드를 실어서 공격한다.
11.1.1 웹 애플리케이션에 대한 공격 패턴
- 공격 패턴은
능동
,수동
두 가지가 존재한다. - 능동적 공격은 서버를 노리는 공격이다. 리소스에 대해 직접 실행된다.
- 대표적인 케이스는
SQL 인젝션
과OS 커맨드 인젝션
등이 있다. - 수동적 공격은 유저를 노리는 공격이다. 함정을 이용해 유저가 공격 코드를 실행하도록 한다.
- 대표적인 케이스는
XSS, cross-site scripting
,CSRF, Cross Site Request Forgery
등이 있다.
11.2 출력 값의 이스케이프 미비로 인한 취약성
- 보안 검사는 클라이언트에서 입력을, 서버 쪽에서는 입/출력에 대해서 체크하면서 이루어진다.
- 클라이언트 측의 검사와 서버의 입력 검사는 보안 대책으로 적합하지 않다.
- 출력값에 사용되는 이스케이프에 대한 보안이 중요하다.
11.2.1 크로스 사이트 스크립팅(XSS)
- 보안이 취약한 웹을 사용하는 유저의 브라우저에
HTML 태그
나JS
등을 동작시키는 공격이다. - 가짜 입력 폼으로 개인 정보를 도난당하거나, 쿠키 탈취 등으로 피해를 받는다.
11.2.2 SQL 인젝션
- 웹 애플리케이션에서 사용하는 DB에 의도하지 않은 쿼리를 보내는 공격이다.
- 데이터 조작, 인증 회피 등으로 피해를 받는다.
11.2.3 OS 커맨드 인젝션
- 웹 애플리케이션에 접근해서 의도치 않은 OS 명령을 실행하는 공격이다.
- CLI에서 동작하는 다양한 커맨드로 피해를 입힐 수 있다.
11.2.4 HTTP 헤더 인젝션
- 응답 헤더 필드에 개행 문자 등을 삽입함으로써 헤더 필드나 바디를 추가하는 공격이다.
- 바디를 추가하는 공격을
HTTP 리스폰스 분할 공격
이라고 한다. - 임의의 쿠키 셋을 받거나 다른 URL로 리다이렉트 등으로 피해를 받는다.
11.2.5 메일 헤더 인젝션
- 웹 애플리케이션의 메일 송신 기능에 의도치 않은 헤더를 추가하는 공격이다.
- 보안이 취약한 웹 사이트를 통해 스팸 메일이나 바이러스 메일을 임의의 주소로 송신한다.
11.2.6 디렉터리 접근 공격
Directory Traversal
은 비공개 디렉터리의 파일에 대해 경로를 가로질러 접근하는 공격이다.- 파일 처리 중 경로에 대한 보안이 부족하다면 의도치 않은 파일에 접근할 수 있다.
11.2.7 리모트 파일 인클루션
- 스크립트의 일부를 다른 파일에서 읽어올 때 외부 서버의 URL을 읽게 하는 공격이다.
- 주로 PHP에서 발생하는 문제이다.
11.3 웹 서버의 설정이나 설계 미비로 인한 취약성
- 웹 서버를 잘못 설계하거나 설정하면서 발생하는 문제로 생기는 취약성이다.
11.3.1 강제 브라우징
- 공개 디렉터리 중 공개 의도가 없던 파일이 열람되는 문제이다.
- 보안을 URL에 의존하고 추측하기 쉬운 파일명이나 디렉토리명일 때 문제가 된다.
11.3.2 부적절한 에러 메시지 처리
- 공격자에게 유의미한 정보가 에러 메시지에 포함되어 발생하는 문제이다.
- 사용하는 DBMS 노출, 인증 정보 노출 등이 대표적인 예시이다.
11.3.3 오픈 리다이렉트
- 오픈 리다이렉트는 지정한 임의의 URL로 리다이렉트 하는 기능이다.
- 이 기능으로 유저를 악의가 있는 웹 사이트로 연결시킬 수 있다.
11.4 세션 관리 미비로 인한 취약성
- 세션은 유저 상태를 관리하는 기능이지만, 인증 상태를 빼앗길 수도 있다.
11.4.1 세션 하이잭
- 유저 세션 ID를 모종의 방법으로 입수해 악용하는 것이다. 유저로 위장해서 공격한다.
- ID를 추측, 도용 등의 방식으로 입수한다.
11.4.2 세션 픽세이션
- 유저에게 강제로 고정된 세션 ID를 사용하게 하는 공격이다.
- 하이잭은 빼앗았다면 픽세이션은 강제로 사용하게 하므로
세션 고정 공격
이라고도 부른다.
11.4.3 크로스 사이트 리퀘스트 포저리
- 인증된 유저가 함정에 의해서 어떤 상태 처리를 강제로 실행시키는 공격이다.
- 설정 정보 갱신, 의도치 않은 게시글 작성 등의 형태로 피해를 입는다.
11.5 기타
11.5.1 패스워드 크래킹
- 비밀번호를 논리적으로 풀어 인증을 통과하는 공격이다. 애플리케이션 이외의 시스템에서도 사용된다.
SQL 인젝션
으로 인증을 회피하거나,XSS
로 패스워드로 훔칠 수도 있다.- 네트워크 경유로 패스워드 후보를 시험해 보는데 2가지 방법이 존재한다.
- 무차별 대입 : 모든 키를 테스트한다. 얼마나 시간이 걸릴지 모른다.
- 사전 대입 : 후보 키를 테스트한다. 대표적으로 생년월일이 존재한다.
- 암호화된 패스워드를 해독하는 방법도 있다. 다음과 같은 4가지 방법이 존재한다.
무차별/사전 대입
을 통한 유추 : 해시 값을 비교하면서 유추한다.- 레인보우 테이블 : 미리 준비한 평문과 해시 값을 나열한 표를 사용하는 방법이다.
무차별/사전 대입
공격 시간을 단축한다. - 열쇠 입수 : 암호화에 사용된 키를 입수해서 복호화한다.
- 암호 알고리즘의 취약성 : 취약성을 이용하는 방법이지만 취약성이 발견될 확률이 적다.
11.5.2 클릭 재킹
- 투명한 버튼이나 링크를 함정으로 만들어 웹 페이지에 심어두는 방법이다.
- 의도치 않은 콘텐츠에 접근하게 한다.
UI Redressing
이라고도 불린다.
11.5.3 DoS 공격
- 서비스 제공을 정지 상태로 만드는 공격이다.
- 액세스를 집중시켜 부하를 일으키는 방법과 취약성을 노려 정지시키는 방법이 존재한다.
11.5.4 백도어
백도어
는 제한된 기능을 절차 없이 이용하려고 설치한 뒷문이다.- 다양한 방법으로 설치될 수 있지만 보통 발견하기 어렵다.
😋 지극히 개인적인 블로그지만 댓글과 조언은 제 성장에 도움이 됩니다 😋
'개인 공부 > Network (그림으로 배우는 Http&Network Basic)' 카테고리의 다른 글
Http&Network Basic : 웹 콘텐츠에서 사용하는 기술 (10장) (0) | 2023.07.11 |
---|---|
Http&Network Basic : HTTP에 기능을 추가한 프로토콜 (9장) (0) | 2023.07.04 |
Http&Network Basic : 누가 엑세스하고 있는지를 확인하는 인증 (8장) (0) | 2023.07.04 |
Http&Network Basic : 웹을 안전하게 지켜주는 HTTPS (7장) (0) | 2023.06.27 |
Http&Network Basic : HTTP 헤더 (6장) (0) | 2023.06.20 |
댓글