[SW개발보안] SR1-6. 웹 기반 중요기능 수행 요청 유효성 검증
크로스 사이트 요청 위조 (CSRF, Cross-site request forgery)
요청을 처리하는 서버에서
요청에 대한 요청 절차, 요청 주체를 검증하지 않고 요청을 처리했을 때 발생
→ 희생자의 권한으로 요청이 처리
[방어대책]
-
요청 절차를 확인 ⇒ 토큰(token)
-
텍스트 기반 → 사용자가 관여하지 않음 ⇒ 자동화 처리가 가능하기 때문에 안전하지 않음
-
이미지를 이용 = CAPTCHA = 사용자와의 상호작용을 통한 요청 처리 ⇒ 자동화된 요청을 방해
-
요청 주체를 확인 = 중요 기능에 대해서 재인증, 재인가
~~~~~~~~~
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)
-
화면 → 권한 있는 사용자에게만 기능 버튼, 메뉴, 링크 등을 제공
-
기능 → 권한 있는 사용자에게만 해당 기능 요청을 처리
-
데이터 → 사용자의 권한에 맞는 범위의 데이터만 제공
'슈개's IT > SW개발보안' 카테고리의 다른 글
[SW개발보안] SR1-10. 업로드·다운로드 파일 검증 (0) | 2021.01.23 |
---|---|
[SW개발보안] SR1-7. HTTP 프로토콜 유효성 검증 (0) | 2021.01.23 |
[SW개발보안] SR1-5. 웹 서비스 요청 및 결과 검증 (0) | 2021.01.23 |
[SW개발보안] SR1-4. 시스템 자원접근 및 명령어 수행 입력값 검증 (0) | 2021.01.23 |
[SW개발보안] SR1-3. 디렉터리 서비스 조회 및 결과 검증 (0) | 2021.01.23 |