시큐어코딩
- home
- 보안소식
- 시큐어코딩
03. [입력 데이터 검증 및 표현] 크로스사이트스크립트
2018.03.07 16:51
안녕하세요, 지에스인포입니다.
이번에는 입력 데이터 검증 및 표현의 3번째 항목인 '크로스 사이트 스크립트'에 대해서 알아보겠습니다.
크로스사이트스크립트는, 행정자치부에서 발표한 '소프트웨어 개발보안 가이드'에서 '입력 데이터 검증 및 표현'에 속해있는
세 번째 항목입니다.
분석, 설계 단계의 보안요구항목에서는 '입력 데이터 검증 및 표현'의 '웹 서비스 요청 및 결과 검증'이라는 항목으로, 구현 단계 보안약점에서는 '입력 데이터 검증 및 표현'의 '크로스 사이트 스크립트'라는 이름으로 명시가 되어있습니다.
# 크로스 사이트 스크립트란?
크로스 사이트 스크립트란, 검증되지 않은 외부 값에 대한 적절한 검증이 이루어지지 않은 채 응답 페이지에서 사용될 경우 발생할 수 있는 보안약점으로, 공격자가 웹 페이지에 악의적인 스크립트를 포함한 상태로 요청하고, 해당 스크립트가 웹 페이지의 응답 값에 사용될 경우, 악의적인 행동을 하는 스크립트가 동작하여 정보유출등의 공격을 수행 할 수 있습니다.
예를 들어 살펴보겠습니다.
공격자가 게시판에 HELLO라는 알림메시지를 띄우는 스크립트인 <script>alert("HELLO");</script>
라는 내용이 포함된 게시물을 작성하였다고 하였을 때, 스크립트가 포함된 글은 서버의 데이터베이스에 저장되고, 이후 일반 사용자가 해당 글을 읽었을때 사용자의 웹 페이지에 스크립트가 실행되어 HELLO 라는 창을 띄우게 됩니다.
이와 같은 공격이 크로스 사이트 스크립트이며, 알림창을 띄우는 대신에, 정보유출을 하거나, 권한 탈취를 위한 스크립트를 실행할 경우, 치명적인 피해를 입을 수 있습니다.
# 크로스 사이트 스크립트를 막기 위한 보안 대책은?
크로스 사이트 스크립트를 방어하기 위한 대책은 소프트웨어 개발 생명 주기에 따라 크게 두 가지로 나눌 수 있습니다.
크로스 사이트 스크립트를 방어하는 데에는 정해진 답은 없지만, 소프트웨어 개발보안 가이드에서 제시하는 방법은 위와 같으며, 각각의 상황에 맞게 적절히 사용하기를 권장하고 있습니다.
오늘은 "크로스 사이트 스크립트"에 대해 살펴봤습니다.
다음은 시큐어코딩 4번째 항목, "운영체제 명령어 삽입"에 대해 살펴보겠습니다.
댓글 0
본사주소 : 서울특별시 금천구 가산디지털1로 181, 가산더블유센터 1508호 COPYRIGHT ⓒ ALL RIGHT RESERVED.