IT 코딩

웹 보안

김잔버 2020. 11. 22. 18:20

CH 01. 인터넷의 이해

용어 정리

ARPA(Advanced Research Project Agency)NET: 인터넷망의 시초

Protocol : 상호 간에 정한 여러 가지 통신 규칙과 방법에 대한 약속 또는 규약

-3가지 요소를 포함

구문(syntax) : 데이터의 형식이나 신호로 부호화 방법을 정의

의미(semantics) : 정확한 정보 전송을 위한 전송 제어와 오류 제어 방법을 정의

순서(timing) : 양단의 통신 시스템, 망 사이의 통신 속도나 순서를 정의

TCP/IP(Transmission Control Protocol/Internet Protocol) :

RFC(Request for Comments) : 국제인터넷표준화기구(IETF)에서 만듬, 기본 틀 제공 기술 관련 문서

IETF : 인터넷의 운영, 관리, 개발에 대해 협의하고 프로토콜과 구조적인 사안을 분석

ICANN(Internet Corporation for Assigned Names and Numbers) : 국제인터넷주소관리기구

도메인 이름 시스템(DNS)IP 주소, 프로토콜 매개변수 배정 등을 관리,

DNS 루트 네임 서버 시스템의 개선 및 운영 담당

 

IANA(Internet Assigned Numbers Authority) : 인터넷할당번호관리기관, DNS Root Zone 관리

ITU(International Telecommunication Union) : 국제전기통신연합

정보통신에 대한 기술적인 표준과 운영 표준을 발행

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

CH 02. 웹의 이해

하이퍼텍스트 : 글자에 링크를 걸어놓고 클릭하면 다른 화면이 나타나도록 함

하이퍼링크를 통해 다른 페이지의 문서로 쉽게 이동 è 웹 브라우징, 웹 서핑

 

HTTP 1.0

1.     client à connect à server

è  Request

(GET : url에 요청 데이터전달, POST : body영역에 소켓을 이용하여 데이터 전송, HEAD)

ç  Response

(프로토콜 버전, HTTP 상태 코드, 전달할 데이터의 형식, 데이터 길이 등 추가 정보)

*HTML문서를 받은 후 연결을 끊고 다시 연결 요청 (1,2,3 반복)

 

 

HTTP 1.1 (계층적 프록시, 캐시, 지속적인 연결의 필요성, 가상 호스트 등의 영향 측면에서 개선)

 

-웹 애플리케이션 기술

           ASP, JSP, PHP, VBScript, 펄 같은 서버 측 스크립트 언어

è  클라이언트가 요청한 데이터를 서버 측에서 처리하여 돌려줌

           아파치, IIS, 넷스케이프     같은 웹 서버

           Microsoft SQL Server, 오라클, 사이베이스, MySQL과 같은 DB

 

*클라이언트 측 기능

           HTM(Markup)L과 자바스크립트(넷스케이프, 속도 문제로 클라이언트 측에서 처리)

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

CH 03. 웹 해킹의 기초

1.     공격 대상 선정

2.     정보 수집

자동화 도구, 스캐너 이용, 검색엔진

3.     취약점 분석

4.     공격

5.     Report, Defacement, 흔적 제거 등

 

-OWASP

인젝션 취약점 : 입력 값에 대한 검증이 없을 때 발생한다.

인증 및 세션 관리 취약점 : 사용자에 대한 인증 및 세션 처리를 잘못했을 때 발생한다.

XSS(크로스 사이트 스크립팅) : 사용자의 쿠키나 세션 값을 훔치기 위해 코드를 삽입

취약한 직접 객체 참조 : 특정 객체를 직접 참조할 때 발생

보안 설정 오류 : 설정 오류, 최신 보안 패치 업데이트 하지 않을 경우

민감한 데이터 노출 : 데이터를 제대로 보호하지 않을 때 발생

기능 수준의 접근 통제 누락 : 특정 기능에 대한 적절한 검증이 이뤄지지 않을 때 발생

크로스 사이트 요청 변조(CSRF) : 악성 스크립트에 의해 특정 행동을 하도록 만드는 것

알려진 취약점이 있는 컴포넌트 사용

검증되지 않은 리다이렉트 및 포워드 :

공격자는 피해자를 피싱 사이트나 악성 코드가 포함된 사이트로 리다이렉트

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

CH 04. 인증 기술과 접근 통제

인증 유형

종류

알고 있는 것

패스워드, 주민등록번호, i-PIN

가지고 있는 것

신분증, 여권, 신용카드, 인증서, OTP, Key, 스마트카드

그 자체

홍채, 지문, 각막, 행동, 서명

위치하는 곳

지역, IP 주소

 

 

-접근 통제

수직적 접근 통제

특정 정보에 대한 접근 권한을 수준별로 상이하게 설정한 통제를 의미한다.

예를 들면 일반 사용자와 관리자의 접근 권한 차이

 

수평적 접근 통제

여러 사용자가 존재할 때 상대방의 정보를 볼 수 없도록 통제하는 것

각 사용자에 따른 권한 차이도 없지만 서로의 고유 정보에는 접근 할 수 없다.

 

비즈니스 로직 접근 통제

사용자 권한에 종속되지 않고 민감하거나 중요한 자원에 대한 접근 통제를 의미한다.

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

CH 05. SQL 인젝션 공격

공격자가 임의의 SQL 명령어를 삽입할 수 있다

정상적이지 않은 값을 입력해봄으로써 취약점의 흔적을 발견할 수 있다.

 

(XML 기반의 XPath 삽입 공격도 있다)

CH 06. XSS 공격

웹 사이트에 방문하는 사용자를 공격하는 기법

 

-쿠키

           웹 사이트에 방문할 때 생기는 4KB 이하의 파일 (response에 헤더를 포함해서 보냄)

사용자와 웹 사이트를 연결해주는 정보가 담겨 있어 나중에 클라이언트가 해당 사이트에 접속하려고 하면 쿠키 내용을 이용하여 클라이언트의 신분을 알 수 있다.

1.     사용자 컴퓨터에 쿠키 생성

2.     사용자 컴퓨터의 쿠키를 웹 서버로 전송

 

-쿠키의 용도

           사이트 개인화 (사용자의 성향 파악)

           장바구니 시스템 (이전에 구매한 것과 비슷한 상품 추천)

           웹 사이트 이용 방식 추적 (어떤 사이트를 방문했는지)

           타깃 마케팅

 

-XSS

스크립트 코드를 입력해 저장하면 다른 사용자가 해당 게시물을 열람할 때 스크립트 코드가 실행

EX) 쿠키 정보 탈취

1)     Stored 방식

글을 저장하는 부분에 스크립트 코드를 입력

2)     Reflected 방식

저장하지 않고 스크립트 코드를 입력하는 동시에 결과가 바로 전해지는 공격

보안è script <> 문자열을 막는다.

 

-CSRF(cross site request forgery)

스크립트가 사용자로 하여금 개인정보 수정이나 회원 탈퇴 등 원치 않는 임의의 행동을 하게 함정상적인 요청이 아닌 임의의 요청을 하도록 위조하는 것 (특정 사이트에 강제적으로 리퀘스트)