Web Security Fundamentals (Same-Origin Policy, CORS)

두비니

·

2023. 4. 13. 04:22

 

 

 

1. Web Vulnerability

취약점(Vulnerability)이란?

 

정의: 시스템의 정보 보증을 낮추는데 사용되는 약점 또는 공격 영역

취약점의 3요소: 시스템 민감성, 결함에 대한 공격 가능성, 공격 기법

 

취약점 진단

 

정의: 취약점을 발견하기 위한 테스트 방법

  • 취약점진단에서는 취약점 이외에 보안기능 미흡사항도 발견
  • 관련 법률: 정보통신망법 제45조의3, 정보통신기반 보호법 제9조

 

취약점 진단 항목

 

항목: 서버시스템, 네트워크장비, 웹 응용프로그램, 보안장비, DB서버, 제어망 시스템, 모바일 앱

진단 항목: OWASP Top 10 웹 보안 취약점, 주요정보통신기반시설 취약점 분석 평가 가이드

 

웹 스캐너 & 웹 프록시 (툴) 이해

 

웹 스캐너

  • 웹 취약점 스캐너를 통한 정보 수집은 빠른 시간 내에 다양한 접속 시도를 수행
  • 예시: Arachni 등

 

웹 프록시

  • 취약점 분석을 위해서 사용됨
  • 웹 서버와 웹 브라우저 간에 전달되는 모든 HTTP 패킷을 확인하고 수정할 수 있어 사용
  • 예시: Burp Suite 등
  • Forward Proxy, 그리고 Reverse Proxy 등이 있다.

 

웹 프록시 서버 수행 과정

 

 

2. Same Origin Policy, SOP

 

Origin이란: 브라우저가 서버로부터 리소스를 다운받아 처리할 때 그 출처를 말함

1, 2번만 same origin (scheme, host, port까지 동일)

 

능동적 공격과 수동적 공격

 

능동적 공격: 공격자가 직접 웹 서버에 공격하는 것

수동적 공격: 웹사이트에 malicious한 함정을 숨겨놓고, 이를 방문하는 사용자들을 대상으로 공격

 

수동적 공격 예시

 

 

수동적 공격에 대한 대책

샌드박스: 정해진 메모리 안에서만 실행되도록 하는것 

Javascript의 샌드박스

  • 로컬 파일 접근 금지
  • 프린터 자원 사용금지 (readonly)
  • 네트워크 접근 제한 (Same Origin Policy)

 

자바스크립트 이외의 크로스 도메인 접근

crossdomain.xml 보안 정책파일

  • 처음에는 Adobe Flash 파일이 외부 도메인의 데이터에 접근하기 위해 사용한 보안 정책 파일
  • 근데 다양한 보안 문제로 인하여 더이상 사용하지 않음

 

3. CORS (Cross-Origin Resource Sharing)

Strict SOP를 통해서는 개발에 제한을 많이 받음

이를 좀 풀기 위해서 고안된게 CORS이다.

신뢰할 수 있는 사이트에 한해서 HTTP 정보 요청과 반환이 가능하도록 하는 것

 

CORS 취약점

  • 접근제어 우회: Access-Control-Allow-Origin 헤더를 잘못 정의했을 경우, 공격자는 외부에서 직접 접근할 수 없는 내부 네트워크의 웹 사이트에 접근 가능
  • CORS와 Web Socket을 이용한 원격 쉘: XHR과 Web Socket 기술을 이용하면 사용자의 브라우저 세션을 탈취하고 행동을 제어 (세션 하이재킹 공격)
  • CORS와 Web Socket을 이용한 웹 기반: CORS와 Web Socket 기술을 이용하면 사용자의 브라우저들을 제어하여 다양한 정보를 수 집하거나 명령을 내릴 수 있음
  • CORS와 Web Worker를 이용한 DDOS 공격: CORS와 Web Worker를 이용하면 보다 효과적으로 DDoS 공격을 수행

 

 

 

참고

https://evan-moon.github.io/2020/05/21/about-cors/

 

CORS는 왜 이렇게 우리를 힘들게 하는걸까?

이번 포스팅에서는 웹 개발자라면 한번쯤은 얻어맞아 봤을 법한 정책에 대한 이야기를 해보려고 한다. 사실 웹 개발을 하다보면 CORS 정책 위반으로 인해 에러가 발생하는 상황은 굉장히 흔해서

evan-moon.github.io

 

https://inpa.tistory.com/entry/WEB-%F0%9F%93%9A-CORS-%F0%9F%92%AF-%EC%A0%95%EB%A6%AC-%ED%95%B4%EA%B2%B0-%EB%B0%A9%EB%B2%95-%F0%9F%91%8F

 

🌐 악명 높은 CORS 개념 & 해결법 - 정리 끝판왕 👏

악명 높은 CORS 에러 메세지 웹 개발을 하다보면 반드시 마주치는 멍멍 같은 에러가 바로 CORS 이다. 웹 개발의 신입 신고식이라고 할 정도로, CORS는 누구나 한 번 정도는 겪게 된다고 해도 과언이

inpa.tistory.com

 

'WEB' 카테고리의 다른 글

XSS(Cross Site Scripting)  (0) 2023.04.13
Overview of Web Application Security  (0) 2023.04.12
draft  (0) 2022.08.20
SSTI Bypass  (0) 2021.11.07
[WEB] SSRF(Server Side Request Forgery)에 대해서  (0) 2021.08.09