작업공간

3rd Meet - CSP / OWASP 본문

2021 동계 모각코 Main

3rd Meet - CSP / OWASP

씨코더 2022. 1. 13. 23:06

Daily Object

    - CSP / OWASP 학습

Review

    - 

 

CSP

웹사이트에서 XSS 공격을 막기 위해 만든 정책이라고 한다.

 

XSS 공격은 무엇인가?

 

XSS(Cross Site Scripting)
웹 브라우저에서 사용자가 입력 할수 있는 input태그 등에 악의적인 script를 작성하여 해당 contents를 이용하는 다른 이용자의 개인정보 및 쿠키정보 탈취, 악성코드 감염, 웹 페이지 변조등의 공격을 한다.

 

예를 들어 input 태그에 아래와 같은 javascript 문장을 넣고 submit을 하여 서버에 저장하면

<script> alert("this is xss")</script>

해당 input 태그가 존재하는 페이지를 다른 사용자가 열면 alert 창을 마주하게 된다.

악의적인 공격에서는 단순 alert가 아닌 정보 탈취를 위한 코드를 삽입하여 다른 사용자에게 피해를 주게된다.

결국 XSS 공격은 서버에 피해를 주는 행위가 아닌 타 사용자에게 피해를 주는 것이다.

 

그럼 어떻게 막는 건가?

 

헤더에 Content-Security-Policy 를 설정하여 특정 도메인 or 하위 리소스 or 특정 태그 or ssl 상태일 때 등을 설정하여

조건을 만족하는 script만 실행하도록 한다. 

만약 Server 도메인만 허용된 상태에서 위의 상황처럼 공격자가 inline으로 스크립트를 넣었다면 아래와 같은 오류를 맞을 것이다.

Content Security Policy: 페이지 설정으로 인해 자원 읽기 차단: inline ("default-src").

스크립트의 출처가 허용된 도메인이 아니기 때문에 발생한 오류이다.

 

하위 도메인의 리소스만

Content-Security-Policy: default-src 'self'

특정 도메인만

Content-Security-Policy: default-src 'self' *.mydomain.com

특정 태그 계열만

Content-Security-Policy: default-src 'self' *.mailsite.com; img-src *

특정 도메인만 무조건 SSL

Content-Security-Policy: default-src https://coderhs.tistory.com

 

OWASP

 

OWASP(The Open Web Application Security Project)는 오픈소스 웹 애플리케이션 보안 프로젝트이다. 주로 웹에 관한 정보노출, 악성 파일 및 스크립트, 보안 취약점 등을 연구하며, 10대 웹 애플리케이션의 취약점(2021년)을 발표했다.

 

A01 : Broken Access Control (접근 권한 취약점)

엑세스 제어는 사용자가 권한을 벗어나 행동할 수 없도록 정책을 시행합니다. 만약 엑세스 제어가 취약하면 사용자는 주어진 권한을 벗어나 모든 데이터를 무단으로 열람, 수정 혹은 삭제 등의 행위로 이어질 수 있습니다. 

A02 : Cryptographic Failures (암호화 오류)
Sensitive Data Exposure(민감 데이터 노출)의 명칭이 2021년 Cryptographic Failures(암호화 오류)로 변경되었습니다. 적절한 암호화가 이루어지지 않으면 민감 데이터가 노출될 수 있습니다. 

A03: Injection (인젝션)
SQL, NoSQL, OS 명령, ORM(Object Relational Mapping), LDAP, EL(Expression Language) 또는 OGNL(Object Graph Navigation Library) 인젝션 취약점은 신뢰할 수 없는 데이터가 명령어나 쿼리문의 일부분으로써, 인터프리터로 보내질 때 취약점이 발생합니다. 

A04: Insecure Design (안전하지 않은 설계)
Insecure Design(안전하지 않은 설계)는 누락되거나 비효율적인 제어 설계로 표현되는 다양한 취약점을 나타내는 카테고리 입니다. 안전하지 않은 설계와 안전하지 않은 구현에는 차이가 있지만, 안전하지 않은 설계에서 취약점으로 이어지는 구현 결함이 있을 수 있습니다. 

A05: Security Misconfiguration (보안설정오류)
애플리케이션 스택의 적절한 보안 강화가 누락되었거나 클라우드 서비스에 대한 권한이 적절하지 않게 구성되었을 때, 불필요한 기능이 활성화 되거나 설치되었을 때, 기본계정 및 암호화가 변경되지 않았을 때, 지나치게 상세한 오류 메세지를 노출할 때, 최신 보안기능이 비활성화 되거나 안전하지 않게 구성되었을 때 발생합니다. 

A06: Vulnerable and Outdated Components (취약하고 오래된 요소)
취약하고 오래된 요소는 지원이 종료되었거나 오래된 버전을 사용할 때 발생합니다. 이는 애플리케이션 뿐만 아니라, DBMS, API 및 모든 구성요소 들이 포함됩니다. 

A07: Identification and Authentication Failures (식별 및 인증 오류)
Broken Authentication(취약한 인증)으로 알려졌던 해당 취약점은 identification failures(식별 실패)까지 포함하여 더 넓은 범위를 포함할 수 있도록 변경되었습니다. 사용자의 신원확인, 인증 및 세션관리가 적절히 되지 않을 때 취약점이 발생할 수 있습니다. 

A08: Software and Data Integrity Failures(소프트웨어 및 데이터 무결성 오류)
2021년 새로 등장한 카테고리로 무결성을 확인하지 않고 소프트웨어 업데이트, 중요 데이터 및 CI/CD 파이프라인과 관련된 가정을 하는데 중점을 둡니다. 

A09: Security Logging and Monitoring Failures (보안 로깅 및 모니터링 실패)
Insufficient Logging & Monitoring(불충분한 로깅 및 모니터링) 명칭이었던 카테고리가 Security Logging and Monitoring Failures (보안 로깅 및 모니터링 실패)로 변경되었습니다. 로깅 및 모니터링 없이는 공격활동을 인지할 수 없습니다. 이 카테고리는 진행중인 공격을 감지 및 대응하는데 도움이 됩니다. 

A10: Server-Side Request Forgery (서버 측 요청 위조)
2021년 새롭게 등장하였습니다. SSRF 결함은 웹 애플리케이션이 사용자가 제공한 URL의 유효성을 검사하지 않고 원격 리소스를 가져올 때마다 발생합니다. 이를 통해 공격자는 방화벽, VPN 또는 다른 유형의 네트워크 ACL(액세스 제어 목록)에 의해 보호되는 경우에도 응용 프로그램이 조작된 요청을 예기치 않은 대상으로 보내도록 강제할 수 있습니다.

 

 

 



OWASP 출처: https://blog.alyac.co.kr/4135 

'2021 동계 모각코 Main' 카테고리의 다른 글

4th Meet - Cryptography  (0) 2022.01.20
4th Meet Plan  (0) 2022.01.20
3rd Meet Plan  (0) 2022.01.13
2nd Meet - SSL/TLS  (0) 2022.01.06
2nd Meet Plan  (0) 2022.01.06