페이지에서 나갈까요?

지금 나가면 작성중인 내용은 저장되지 않아요

취약점
XSS(크로스 사이트 스크립트)란? 공격 유형부터 보안대책까지!
2024
.
01
.
17

■ 웹 취약점을 노리는 공격, XSS란?

XSS(Cross Site Scripting)는 웹 서버 사용자에 대한 입력값 검증이 미흡할 때 발생하는 취약점으로, 주로 여러 사용자가 보는 게시판이나 메일 등을 통해 악성 스크립트를 삽입하는 공격 기법입니다. 일반적으로 사용자 쿠키/세션 값 탈취, 키보드 입력값 탈취 등이 가능하며, 피싱 사이트와 같은 악성 사이트로의 접근 유도가 가능해 사용자에게 직접적인 피해를 줄 수 있습니다.

■ XSS 공격 유형은?

크로스 사이트 스크립트 공격은 주로 스크립트 언어와 취약한 코드를 대상으로 하는데요. 공격 방법에 따라 유형이 나뉘며 크게 3가지로 구분할 수 있습니다.

✅ Stored XSS (저장형 크로스사이트스크립트)

취약점이 있는 웹 서버에 악성 스크립트를 저장하는 공격 방법입니다. 공격자는 악성 스크립트가 포함된 게시글을 작성하여 게시판 등 사용자가 접근할 수 있는 페이지에 업로드 합니다. 이후 사용자가 해당 게시글을 요청하면 서버에 저장된 악성 스크립트가 사용자 측에서 동작하게 됩니다.

✅ Reflected XSS (반사형 크로스사이트스크립트)

웹 응용 프로그램의 지정된 변수를 이용할 때 발생하는 취약점을 이용하는 공격으로, 악성 스크립트가 데이터베이스와 같은 저장소에 별도로 저장되지 않고 사용자의 화면에 즉시 출력되는데요. 주로 이메일, 메신저 등에 포함된 URL을 통해 공격이 이루어지고 있습니다.

✅ DOM Based XSS (DOM 기반 크로스사이트스크립트)

악성 스크립트가 서버와 상호작용 없이 브라우저 자체에서 실행되는 취약점으로, 페이지에 포함되어 있는 브라우저 악성코드가 DOM[1] 환경에서 실행됩니다.

[1] DOM(Document Object Model, 문서 객체 모델): 브라우저가 웹 페이지를 렌더링 하는데 사용하는 모델로 HTML 및 XML 문서에 접근하기 위한 인터페이스

Stored XSS 및 Reflected XSS는 서버에서 악성 스크립트의 공격이 이루어지기 때문에 위험 징후를 발견할 수 있습니다. 반면, DOM Based XSS는 브라우저에서 바로 공격이 이루어지기 때문에 취약점을 쉽게 발견할 수 없다는 특징이 있어 보다 깊은 주의가 필요합니다.

■ 의심과 점검은 필수! XSS 취약점 보안 대책

XSS 취약점은 공격자가 삽입한 악성 스크립트로 인해 발생하기 때문에 사용자 입력에 대해서는 항상 의심하고 검증하는 작업이 필요합니다. 이를 통해 악성 스크립트가 삽입되는 것을 방지하고 무효화 시켜야 하는데요. 보다 상세히 어떤 보안 대책들이 있는지 알아볼까요?

🔐입력 값 필터링

악성 스크립트가 삽입되어도 동작하지 않도록 스크립트에 사용되는 <, >, ‘, “ 등의 특수문자는 &It;, &gt; 등의 HTML Entity로 치환하여 입력해야 합니다.

👉문자열 치환 상세 가이드 확인하기

🔐WhiteList 필터링

게시판과 같이 HTML 태그 사용이 필요한 경우에는 사용할 태그를 지정하여 해당 태그만 허용하는 방식인 WhiteList 필터링 방식을 적용해야 합니다.

searchWord = searchWord.replaceAll("<p>","<p>");

searchWord = searchWord.replaceAll("<br>","<br>");

searchWord = searchWord.replaceAll("<P>","<P>");

searchWord = searchWord.replaceAll("<BR>","<BR>");

🔐라이브러리 이용

XSS 필터 관련 외부 라이브러리를 활용하여 악성스크립트가 삽입되는 것을 방지할 수 있습니다.

- Lucy-XSS-Filter: WhiteList 방식으로 공격을 방어하는 Java 기반의 오픈 소스 라이브러리

- OWASP ESAPI: OWASP에서 제공하는 무료 오픈 소스 라이브러리로 JAVA, PHP 등 다양한 언어 지원

​​

취약점 공격은 계정 탈취 등 수많은 피해로 이어질 수 있는데요. SK쉴더스는 이러한 취약점을 진단해주는 서비스를 통해 고객이 보안 사고를 사전에 예방할 수 있도록 노력하고 있습니다. 개인정보 보호가 정말 중요한 요즘, SK쉴더스와 함께 안전하게 지켜보세요!

서비스와 월 이용 요금에 대한
예상 견적을 알아보세요
실시간 카카오 상담으로
쉽고 빠르게 안내받으세요
전문상담 예약
전화상담 연결
1800-6400

이름을 입력해주세요.

연락처를 입력해주세요.

상담 시간을 선택해주세요.

문의가 완료되었어요.

URL이 복사되었습니다.

구독신청이 완료되었습니다.

불편∙제안사항글 올리기 완료되었습니다

서비스와 월 이용 요금에 대한
예상 견적을 알아보세요
실시간 카카오 상담으로
쉽고 빠르게 안내받으세요