Jveloper

XSS와 CSRF(XSRF)의 차이점 본문

보안

XSS와 CSRF(XSRF)의 차이점

Jveloper 2019. 12. 15. 12:07

사이트 간 스크립팅(XSS: Cross-Site Scripting)

웹 애플리케이션에서 많이 나타나는 취약점의 하나로, 웹사이트 관리자가 아닌 이가 웹 페이지에 악성 스크립트를 삽입할 수 있는 취약점이다.

- 이 취약점은 웹 애플리케이션이 사용자로부터 입력 받은 값을 제대로 검사하지 않고 사용할 경우 나타난다. 주로 여러 사용자가 보게 되는 전자 게시판에 악성 스크립트가 담긴 글을 올리는 형태로 이루어진다.

- 이 취약점으로 해커가 사용자의 정보(쿠키, 세션 등)를 탈취하거나, 자동으로 비정상적인 기능을 수행하게 하거나 할 수 있다. 주로 다른 웹사이트와 정보를 교환하는 식으로 작동한다.

 

대응방안 :

1. script문장에 존재한 특수문자를 메타캐릭터로 변환시킨다.
                < ---- &lt

                > ---- &gt
                (  ---- &#40

                )  ---- &#41

               #  ---- &#35

               &  ---- &#38

2. Contents 구문 사용

3. Replace 구문 사용

사이트 간 요청 위조(CSRF: Cross-Site Request Forgery)

웹사이트 취약점 공격의 하나로, 사용자가 자신의 의지와는 무관하게 공격자가 의도한 행위(수정, 삭제, 등록 등)를 특정 웹사이트에 요청하게 하는 공격을 말한다.

- XSS를 이용한 공격이 사용자가 특정 웹사이트를 신용하는 점을 노린 것이라면,
CSRF(사이트간 요청 위조)는 특정 웹사이트가 사용자의 웹 브라우저를 신용하는 상태를 노린 것이다.

- 일단 사용자가 웹사이트에 로그인한 상태에서 사이트간 요청 위조 공격 코드가 삽입된 페이지를 열면,
공격 대상이 되는 웹사이트는 위조된 공격 명령이 믿을 수 있는 사용자로부터 발송된 것으로 판단하게 되어 공격에 노출된다.

 

대응방안 :

1. CSRF 토큰 사용

2. 사용자와 상호 처리 기능 적용

3. 재인증 요구

쿠키 가로채기 – 입력값 검사: 웹페이지 입력폼에 사용자 입력 값 검사, 비정상 값은Reject
– 쿠키 사용: 쿠키에 중요정보 미포함
세션 변조 사용 – Query String 검사
– 민감 데이터나 값의 트랜잭션 위해 재인증이나 트랜잭션 서명 요청(GET 금지)
부정클릭 사용 – 유일한 토큰 사용
DRDoS – DoS 관련 취약점 제거

 

XSS와 CSRF의 차이요약

- XSS는 공격대상이 Client이고, CSRF는 Server이다.

- XSS는 사이트변조나 백도어를 통해 클라이언트에 대한 악성공격을 한다.

- CSRF는 요청을 위조하여 사용자의 권한을 이용해 서버에 대한 악성공격을 한다.

'보안' 카테고리의 다른 글

CORS(Cross Origin Resource Sharing)  (0) 2019.06.14
Comments