XSS 공격은 크로스 사이트 스크립팅(Cross Site Scripting)을 뜻하며, 브라우저에서 특정 스크립트가 실행되도록 하는 공격 방식입니다. 공격자는 XSS 공격을 통해 사용자의 세션을 가로채거나, 웹사이트를 변조하고, 피싱을 시도할 수 있습니다.
XSS, 크로스 사이트 스크립팅이란?
크로스 사이트 스크립팅은 웹 애플리케이션에서 발생하는 가장 일반적인 10가지 공격 중 하나에 해당하며, 웹사이트에 악성 스크립트를 심어 이를 열람한 피해자를 공격하는 방법입니다.
해커는 쿠키의 정보를 사용해 세션을 가로채거나, 웹사이트를 변조하고 피싱 공격을 시도할 수 있습니다. 또한, 사용자가 키보드를 통해 입력하는 정보를 가로채는 키 로거(Key Logger), 마우스 위치를 추적하는 마우스 스니퍼(Mouse Sniffer), 스크립트 암호화 및 우회 등을 시도할 수 있습니다.
XSS 공격 방법
XSS 공격은 저장형(stored)과 반사형(reflected)이 존재합니다.
저장형은 사용자가 보는 게시물에 악성 스크립트를 삽입하여, 이를 열람할 경우 공격자의 자바스크립트가 실행됩니다. 공격자의 스크립트는 데이터베이스에 저장되어 이를 열람하는 사용자들을 공격하게 됩니다. 공격자는 이를 통해 사용자의 쿠키, 세션 등의 정보를 획득합니다.
반사형은 URL에 스크립트 코드를 삽입하는 것입니다. 특정 링크를 클릭하면, 링크 URL에 삽입된 스크립트가 실행되며 웹페이지의 내용이 변경됩니다.
XSS 공격 방어 방법
XSS 공격에는 어떤 방어 방법으로 대응할 수 있을까요? 안타깝게도 XSS 공격은 사전 방어가 어려우며, 사용자의 개인 기기가 아닌 방문하는 웹사이트를 대상으로 하기 때문에 공격에 노출되기가 쉽습니다. 그럼에도 몇 가지 대응 방안이 있습니다.
개발자는 다음과 같은 방어 방법을 구축할 수 있습니다.
- 중요한 정보는 쿠키에 저장하지 않아야 합니다
- 스크립트 코드에 사용되는 특수 문자를 정확히 필터링해야 합니다. 일례로 사용자가 입력할 수 있는 문자를 제외하고는 공격에 사용될 수 있는 특수 문자들(
<, >, &, %...
)이 입력되지 못하도록 합니다. - HTML 형식의 입력을 제한해야 하여. HTML 태그들이 자유롭게 입력될 수 없도록 해야 합니다.
사용자는 다음과 같은 주의 사항을 준수할 수 있습니다.
- 이메일이나 신뢰할 수 없는 출처의 링크를 클릭하지 않고, 즐겨찾기 해둔 URL을 통해 사이트에 접속합니다.
- 브라우저를 최신 버전으로 업데이트합니다.
- 쿠키 수집을 차단하는 등 브라우저 보안을 설정합니다.
- 웹 메일에서 자바스크립트 허용 여부를 검토할 수 있습니다.
마치며
XSS 크로스 사이트 스크립팅은 사용자의 브라우저에서 악성 스크립트를 실행하여 사용자의 세션을 가로채거나 웹사이트를 변조하고, 피싱 등을 시도하는 공격의 한 유형입니다.
참고: https://nordvpn.com/ko/blog/xss-attack/
'Auth | Security' 카테고리의 다른 글
JWT 토큰 발급과 로그인 처리 방법 (0) | 2022.04.06 |
---|---|
SSO 싱글사인온이란? (0) | 2022.03.08 |
SSH 개념과 사용 방법: 퍼블릭 키와 프라이빗 키 설명 (1) | 2022.03.01 |