Notice
Recent Posts
Recent Comments
Link
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | 4 | 5 | ||
6 | 7 | 8 | 9 | 10 | 11 | 12 |
13 | 14 | 15 | 16 | 17 | 18 | 19 |
20 | 21 | 22 | 23 | 24 | 25 | 26 |
27 | 28 | 29 | 30 | 31 |
Tags
- React Native
- 리액트 네이티브
- SQL
- 백준 5525번
- 스터디
- 깃허브 로그인
- 지네릭스
- 백준 4949번
- 깃 연동
- 딥러닝
- 깃 터미널 연동
- 모두를 위한 딥러닝
- 모두의 네트워크
- 리액트 네이티브 시작하기
- 문자열
- 백준 4358 자바
- 팀플회고
- 데베
- 백준 4358번
- 깃허브 토큰 인증
- 자바
- 네트워크
- HTTP
- 모두의네트워크
- 데이터베이스
- 정리
- 백준
- 모두를위한딥러닝
- 머신러닝
- 리액트 네이티브 프로젝트 생성
Archives
- Today
- Total
솜이의 데브로그
11장 ) 웹 공격 기술, 취약성 (1) 본문
Reference : 그림으로 배우는 Http&Network Basic
11.1 웹 공격 기술
HTTP 자체는 보안 상의 문제가 일어날 정도로 복잡하지는 않으므로, 공격대상은 서버와 클라이언트 그리고 서버상에서 동작하는 웹 애플리케이션 등의 리소스이다.
HTTP에는 보안 기능이 없다
- 현재의 웹사이트 대부분은 인증, 세션 관리, 암호화 등의 보안기능이 필요하다.
- 따라서 웹 애플리케이션에서 인증이나 세션 관리 기능을 개발자가 설계하고 구현해야한다.
웹 애플리케이션에 대한 공격은 HTTP 리퀘스트 메시지에 공격코드를 실어서 실행된다.
웹 애플리케이션에 대한 공격 패턴
- 서버를 노리는 능동적 공격
- 공격자가 직접 웹 애플리케이션에 액세스해서 공격 코드를 보내는 타입의 공격.
- 서버 상의 리소스에 대해 직접 실행되기 때문에 공격자가 리소스에 액세스할 필요가 있다.
- ex) SQL 인젝션, OS 커맨드 인젝션
- 유저를 노리는 수동적 공격
- 함정을 이용해서 유저에게 공격 코드를 실행시키는 공격.
- 사용자가 함정에 걸려 공격 코드를 실행하면 취약성이 있는 웹 애플리케이션을 경유한 결과로써 유저가 가지고 있는 쿠키 등의 기밀정보를 도둑맞거나 로그인 중인 유저의 권한이 악용되는 등의 피해가 발생한다.
- ex) 크로스 사이트 스크립팅(XSS), 크로스 사이트 리퀘스트 포저리(CSRF)
- 유저가 처한 환경을 이용한 인트라넷 등에 대한 공격
- 공격자가 설치한 함정에 유저가 액세스할 수 있는 네트워크라면 인트라넷도 공격할 수 있다.
11.2 출력 값의 이스케이프 미비로 인한 취약성
보안 대책을 실시하는 장소
- 클라이언트에서 체크
- 대부분 JavaScript 사용
- 웹 애플리케이션(서버 측)에서 체크
- 입력값 체크
- 출력값 체크
크로스 사이트 스크립팅 (XSS)
- 취약성이 있는 웹사이트를 방문한 사용자의 브라우저에서 부정한 HTML 태그나 JavaScript 등을 동작시키는 공격.
- 동적으로 HTML을 생성하는 부분에서 취약성 발생
- 공격 사례
- 가짜 입력 폼 등에 의해 유저의 개인정보를 도둑맞음
- 스크립트에 의해 유저의 쿠키 값이 도둑맞거나 피해자가 의도하지 않는 리퀘스트가 송신
- 가짜 문장이나 이미지 등이 표시
- XSS는 공격자가 함정을 준비하는 수동적 공격이다.
SQL Injection
- 웹 애플리케이션을 이용하고 있는 데이터베이스에 SQL을 부정하게 실행하는 공격.
- 공격 영향
- 데이터베이스 내의 데이터 부정 열람이나 변조
- 인증 회피
- 데이터베이스 서버를 경유한 프로그램 실행
OS 커맨드 인젝션
- 웹 애플리케이션을 경유하여 OS 명령을 부정하게 실행하는 공격
- 쉘을 호출하는 함수가 있는 곳에서 발생할 가능성이 있다.
- Windows와 Linux 등의 커맨드라인에서 프로그램을 기동하는 쉘에 대해 커맨드를 보낼 수 있다.
HTTP 헤더 인젝션
- 공격자가 리스폰스 헤더 필드에 개행 문자 등을 삽입함으로써 임의의 리스폰스 헤더 필드나 바디를 추가하는 수동적 공격이다.
- 바디를 추가하는 공격을 HTTP 리스폰스 분할 공격이라한다.
- 리스폰스 헤더 필드에 값을 출력하는 처리가 있던 곳에 개행문자를 삽입함으로써 발생할 수 있다.
- 공격 영향
- 임의의 쿠키 세트
- 임의의 URL에 리다이렉트
- 임의의 바디 표시(HTTP 리스폰스 분할 공격)
- 함정에 빠진 유저의 브라우저에 가짜 웹 페이지를 표시해서 개인정보를 입력하게 하거나 크로스사이트 스크립팅과 같은 효과를 얻을 수 있다.
메일 헤더 인젝션
- 웹 애플리케이션의 메일 송신 기능에 공격자가 임의의 To 및 Subject 등의 메일 헤더를 부정하게 추가하는 공격이다.
- 취약성이 있는 웹 사이트를 이용해 스팸 메일이나 바이러스 메일 등을 임의의 주소에 송신할 수 있다.
디렉토리 접근 공격
- 비공개 디렉토리의 파일에 대해서 부정하게 디렉토리 패스를 가로질러 액세스하는 공격이다.
- [../] 등의 상대 경로를 지정하거나 [/etc/passwd] 등의 절대경로를 지정함으로써 임의의 파일이나 디렉토리에 액세스 할 수 있다.
- 이로 인해 웹 서버 상의 파일이 잘못 열람되어 버리거나 변조 또는 삭제되어 버릴 수 있다.
리모트 파일 인클루션
- 스크립트의 일부를 다른 파일에서 읽어올 때 공격자가 지정한 외부 서버의 URL을 파일에서 읽게 함으로써 임의의 스크립트를 동작시키는 공격이다.
- 주로 PHP에서 발생하는 취약성으로 PHP의 include와 require 설정에 따라서 외부 서버의 URL을 파일명으로 지정할 수 있는 기능이다.
'CS > Network' 카테고리의 다른 글
11장 ) 취약성(2,3), 기타 (0) | 2021.12.21 |
---|---|
10장 ) 웹 콘텐츠에서 사용하는 기술 (0) | 2021.12.05 |
9장 ) HTTP에 기능을 추가한 프로토콜 (0) | 2021.11.25 |
8장 ) 액세스 인증 (0) | 2021.11.09 |
7장 ) 웹을 안전하게 하는 HTTPS (0) | 2021.11.01 |