슈개's IT/SW개발보안

[SW개발보안] SR1-6. 웹 기반 중요기능 수행 요청 유효성 검증

슈개 2021. 1. 23. 10:12
반응형

[SW개발보안] SR1-6. 웹 기반 중요기능 수행 요청 유효성 검증

 

크로스 사이트 요청 위조 (CSRF, Cross-site request forgery)

요청을 처리하는 서버에서

요청에 대한 요청 절차, 요청 주체를 검증하지 않고 요청을 처리했을 때 발생

→ 희생자의 권한으로 요청이 처리

 

[방어대책]

  1. 요청 절차를 확인 ⇒ 토큰(token)

    1. 텍스트 기반 → 사용자가 관여하지 않음 ⇒ 자동화 처리가 가능하기 때문에 안전하지 않음

    2. 이미지를 이용 = CAPTCHA = 사용자와의 상호작용을 통한 요청 처리 ⇒ 자동화된 요청을 방해

  1. 요청 주체를 확인 = 중요 기능에 대해서 재인증, 재인가

                        ~~~~~~~~~

                      1) 데이터가 생성, 수정, 삭제 = 트랜젝션이 발생

                      2) 중요 정보를 다루는 기능  

                      3) 과금이 발생하는 기능

 

예: 패스워드 변경

 

   "abc" ~~~~~session~~~~~>

변경 신청             변경 처리          

changPwForm.jsp ----> changePwProc.jsp

                      1) 인증 여부 확인 (로그인 여부)

NewPw: ______         2) 처리에 필요한 정보가 파라미터로 전달되었는지 확인 ⇒ newpw

NewPw: ______         3) 처리에 필요한 서버가 가지고 있는 정보를 확인 ⇒ userid

                      4) UPDATE session.userid.pw ⇐ parameter.newpw

<input type="hidden" value="abc">

       [변경]

 

공격자가 회원 서비스를 제공하는 게시판에 아래와 같은 공격 코드를 삽입

 

[공지] 꼭 보세요.

-----------------------------------------------------------------------

<iframe src="changePwProc.jsp?newpw=123" width="0" height="0"></iframe>



 

식별, 인증, 인가

식별(Identification)

인증(Authentication)

  • Type1 지식 → 패스워드 

  • Type2 소유 → OTP, 보안카드, 스마트폰, 인증서, … 

  • Type3 특징 → 지문, 홍채, 정맥, 성문, … 필기체 서명

              ~~~~~~~~~~~~~~~~~~~~~~ 바이오인증

인가(Authorization)

  • 화면 → 권한 있는 사용자에게만 기능 버튼, 메뉴, 링크 등을 제공

  • 기능 → 권한 있는 사용자에게만 해당 기능 요청을 처리

  • 데이터 → 사용자의 권한에 맞는 범위의 데이터만 제공

반응형