[웹개발 로드맵] 8. 웹 보안 기초

남현우·2022년 6월 30일
0

웹개발 로드맵

목록 보기
8/10

웹보안

웹 서비스에 대한 공격은 데이터베이스 조작부터 대규모 네트워크 중단까지 다양하다.
이러한 웹 공격으로부터 보호하기 위한 조치로는 암호화, 인증 등 종합적인 웹 보안 전략이 필요하다.
따라서 웹 보안을 위한 기초적인 지식으로 https, cors, csp, owasp 을 알아보자.

HTTPS

HTTP가 Application계층의 데이터 전송 프로토콜이었음을 기억하고 있을 것이다.
HTTPS는 전에 학습한 HTTP에 보안 버전으로 민감한 데이터 전송을 위해 전송간 암호화를 지원한다.

HTTPS는 암호화 프로토콜인 SSL 또는 TLS를 사용한다. 이 프로토콜은 비대칭 공개 키 인프라 라고 하는 것을 사용하여 통신을 보호한다. 이 유형의 보안 시스템은 두 개의 다른 키를 사용하여 두 당사자 간의 통신을 암호화한다.

쉽게 이해하자면 HTTPS를 사용해 데이터 전송이 이루어질 경우, 서버에서는 데이터를 바르게 전송받아 복호화하여 이해할 수 있으나 전송되는 패킷이 스니핑 혹은 가로채져도 의미없는 문자열로 이해할 수 없게되어 보안성을 높이는 것 이다.

SSL / TLS

SSL은 TLS 이전 단계의 암호화 프로토콜로 3.0버전을 참고로 표준화한 것이 TLS다.
즉, 버전이 다른 정도이지 같은 프로토콜로 봐도 무방한 정도이다.

클라이언트 - 서버 기반으로 동작하며 Application 계층과 Transport 계층 사이에서 Transport에 조금 더 가깝게 동작하는 소켓 지향적인 프로토콜이다.

주요 기능으로는 아래와 같이 확인할 수 있다.

상호 인증
공개키를 통한 서버 클라이언트간 상대방에 대한 인증.
메세지 인증
HMAC(메세지 인증 코드)를 통한 메세지 무결성을 제공.
메세지 압축
디폴트는 압축하지 않는 것이지만, 압축이 가능.
암호화용 세션 키 생성을 위한 키 교환
생성된 공유 비밀키에 의해 암호화된 종단간 안전한 연결 통로 제공

CORS

SOP

CORS를 설명하기 전에 SOP를 잠깐 알아보도록 하면, SOP는
Same-Origin Policy의 약자로, 동일 출처 정책이라고 한다.
다른 출처의 리소스를 사용하는 것을 제한하는 보안 방식이라고 한다.
간단히 설명하자면, 서버와 클라이언트 사이에서 상호작용이 일어날 때, 누군가 클라이언트인 척하는 것을 방지하는 정책을 의미한다.

CORS

CORS는 Cross-Origin Resource Sharing의 약자로 교차 출처 리소스 공유라고 하며,
HTTP 헤더를 사용하여 한 출처에서 실행중인 웹 어플리케이션이 다른 출처의 선택한 자원에
접근할 수 있는 권한을 부여하도록 브라우저에 알려주는 체제이다.

즉, SOP가 출처가 교차하는 것을 막아서 보안을 유지한다면, CORS는 출처가 교차해도 안전하게
사용할 수 있도록 보안을 유지하는 것을 의미한다.

CSP

CSP는 콘텐트 보안 정책으로 Content Security Policy라고 부른다.
이는 XSS(Cross-Site Scripting) 및 데이터 삽입 공격 등의 특정 공격을 감지하고
방어를 돕는 추가 보안 계층이다.

CSP의 주요 목표는 XSS 공격을 완화하고 보고하는 것이다. XSS 공격은 서버에서 받은 콘텐츠에 대한 브라우저의 신뢰를 악용해서 클라이언트의 브라우저에서 악성 스크립트를 실행한다. 이게 가능한 이유는 브라우저가 콘텐츠의 출처가 출처가 아닌 것처럼 보이는 경우에도 콘텐츠 출처를 신뢰하기 때문이다.

하지만 CSP를 사용하면 브라우저가 실행 가능한 스크립트의 유효한 소스로 간주해야 하는 도메인을 지정해, 서버 관리자가 XSS가 발생할 수 있는 벡터를 줄이거나 제거할 수 있다.
따라서 CSP가 실행된 브라우저는 허용된 도메인에서 받은 소스 파일에 로드된 스크립트만 실행하고 다른 모든 스크립트는 무시한다.

OWASP

OWASP은 Open Web Application Security Project의 약자로 웹 어플리케이션 보안 프로젝트이다.
OWASP이라는 비영리 단체가 주관하여 다양한 파트너 조직에서 수집한 포괄적인 데이터를 기반으로
웹에 관한 보안 취약점 등을 연구해 10대 웹 어플리케이션 취약점(OWASP TOP10)을 발표한다.
발표는 매년 진행되는 것이 아니며 가장 최신 OWASP TOP10은 2021년에 발표되었다.

profile
개발 관련 지식을 기록하는 블로그입니다.

0개의 댓글