CSRF Cross-site Request Forgery


개요

웹 애플리케이션 취약점 중 하나로 사용자가 자신의 의지와 무관하게 공격자가 의도한 행동을 하여 특정 웹페이지를 보안에 취약하게 한다거나 수정, 삭제 등의 작업을 하게 만드는 공격방법을 의미한다


예방대책

폼 작성 시 GET보다 POST방식을 사용하고 폼과 해당 입력을 처리하는 프로그램 사이에 토큰을 사용하여 공격자의 직접적인 URL사용이 동작하지 않도록 처리한다. 


Referer 로 HTTP헤더 정보 체크.

패스워드 변경 등 민감한 정보를 다룰때 토큰발급하여 토큰없이는 요청거부하는 방법.

CAPTCHA를 이용하여 인증하는 방법.

스프링 컨트롤러 사용 시 RequestMethod 로 GET/POST 구분 정의.

'보안, 시큐어코딩' 카테고리의 다른 글

랜섬웨어 예방  (0) 2018.12.17
XSS 크로스 사이트 스크립팅  (0) 2018.12.17
SQL 인젝션  (0) 2018.12.17

XSS 크로스 사이트 스크립팅


개요

SQL injection과 함께 웹 상에서 가장 기초적인 취약점 공격 방법의 일종으로, 악의적인 사용자가 공격하려는 사이트에 스크립트를 넣는 기법을 말한다. 공격에 성공하면 사이트에 접속한 사용자는 삽입된 코드를 실행하게 되며,[2] 보통 의도치 않은 행동을 수행시키거나 쿠키나 세션 토큰 등의 민감한 정보를 탈취한다. (나무위키 인용)

보통 자바스크립트를 이용하여 공격하는 경우가 많음.




보안대책

사용자가 입력한 문자열에서 <,>,&,"," 등을 replace등의 문자 변환메소드를 사용하여 &lt,&amp, &quot로 치환

게시판 등에서 html태그 허용 시 html 태그의 리스트를 선정한 후, 해당 태그만 허용하는 방식 적용


코드예제 

파라미터(name)에 <script>alert(document.cookie);</script>와 같은 스크립트 코드가 입력되고, 이 값이 그대로 사용되면 사용자의 쿠키정보가 공격자에게 전송될 수 있는 코딩



외부 입력 문자열에서 replaceAll()메소드를 사용하여 <,>,&," " 같이 스크립트 생성에 사용되는 문자열을 &lt, &gt, &amp, &quot 등으로 변경하면, 파라미터 name에 악성코드가 포함되더라도 스크립트 실행 불가하도록 코딩




참고문헌 및 이미지 출처

행정안전부, 한국인터넷진흥원 - 홈페이지 SW(웹) 개발보안 가이드

행정자치부, 한국인터넷진흥원 - 전자정부SW개발운영자를 위한 JAVA 시큐어코딩 가이드

'보안, 시큐어코딩' 카테고리의 다른 글

랜섬웨어 예방  (0) 2018.12.17
CSRF 사이트 간 요청 위조  (0) 2018.12.17
SQL 인젝션  (0) 2018.12.17

SQL 인젝션


개요

공격자가 입력 폼 및 URL 입력란에 SQL문을 삽입하여 DB로부터 정보를 열람하거나 조작할 수 있는 보안취약점




보안대책

  • 1. preparedStatement 클래스와 하위 메소드 executeQuery(), execute(), executeUpdate()를 사용하는 것이 바람직하다.
  • 2. preparedStatement 클래스를 사용할 수 없는 환경이라면, 입력값을 필터링 처리한 후 사용한다. 필터링 기준은 SQL구문 제한, 특수문자 제한, 길이제한을 복합적으로 사용한다.


코드예제

다음은 안전하지 않은 코드의 예를 나타낸 것으로, 외부로부터 tableName과 name의 값을 받아서 SQL쿼리를 생성하고 있으며, name의 값으로 name' OR 'a'='a를 입력하면 조작된 쿼리문 전달이 가능한 형태의 코딩


외부로부터 인자를 받는 preparedStatement 객체를 상수 스트링으로 생성하고, 인자 부분을 setXXX 메소드로 설정하여, 외부의 입력이 쿼리문의 구조를 바꾸는 것을 방지하는 코딩




참고문헌 및 이미지 출처

행정안전부, 한국인터넷진흥원 - 홈페이지 SW(웹) 개발보안 가이드

행정자치부, 한국인터넷진흥원 - 전자정부SW개발운영자를 위한 JAVA 시큐어코딩 가이드

'보안, 시큐어코딩' 카테고리의 다른 글

랜섬웨어 예방  (0) 2018.12.17
CSRF 사이트 간 요청 위조  (0) 2018.12.17
XSS 크로스 사이트 스크립팅  (0) 2018.12.17

+ Recent posts