2022. 12. 25. 21:38ㆍ애플리케이션 보안
CSRF(Cross-Site Request Forgery), 교차 사이트 요청 위조
인증된 사용자가 웹 애플리케이션에 특정 요청을 보내도록 유도하는 공격 기법
해당 공격 기법을 통해 사용자의 정보 탈취가 가능하지만 이보다는 특정 작업을 무단으로 진행하기 위한 목적으로 이루어지는 경우가 많음
CSRF 공격을 시행하기 위한 조건
- 피해자는 사이트에 로그인이 되어 있어야 한다.
- 피해자는 공격자가 쓴 게시물이나 메일에 접속 해야 한다.
2008년 옥션에서도 CSRF 해킹 공격을 받은적이 있었습니다.
해당 공격은 다음과 같이 진행 되었습니다.
1. 공격자(해커)가 다음과 같이 img 태그에 코드를 추가하여 옥션 관리자한테 메일을 전송
*옥션 관리자는 옥션에 관리자 계정으로 로그인 되어 있던 상황입니다.
2. 옥션 관리자는 해당 메일을 확인
관리자가 메일을 열면 해당 코드는 이미지를 받아오기 위해 해당 링크(url)로 이동
이미지는 크기가 0이기 때문에 확인 할 수 없음
3. url의 내용처럼 id와 password가 admin으로 변경
XSS 공격과 CSRF 공격의 차이점
XSS : 클라이언트에서 발생하며 사용자가 특정 사이트를 신뢰한다는 점을 공격
CSRF : 서버에서 발생하며 특정 사이트가 사용자의 브라우저를 신뢰 한다는 점을 공격
방지 방법
1. Referrer 검증
- 요청의 referrer을 검증하여 도메인이 일치하는지 확인
- 옥션 홈페이지가 아닌 메일을 통한 외부로부터의 요청의 경우 referrer이 다를 수밖에 없음
2. Token 사용
서버가 토큰 생성 후 저장시키는 장소
- HttpSessionCsrfTokenRepository : 서버 사용자 세션
- CookieCsrfTokenRepository : 브라우저 쿠키
1) 서버 측에서 랜덤한 token을 생성한뒤 사용자의 세션에 저장
2) 클라이언트(사용자)의 매 요청마다 token 값을 포함시켜 response(응답)
3) 클라이언트로부터 요청을 수신 받으면 서버는 해당 요청에 포함된 토큰 값과 사용자 세션에 저장된 토큰값을 비교
4) 토큰값이 일치하면 요청을 허용하고 토큰값이 다르거나 요청에 토큰값이 포함되어 있지 않을 경우 요청을 거부
5) 이 과정은 클라이언트의 요청 때마다 진행되며 토큰 값 또한 요청 때마다 변경됨
3. CHPTCHA
해당 사용자가 사람인지 컴퓨터인지를 구별하기 위해 사용
4. VPN 사용
사용자의 실제 IP가 아닌 가상 IP를 사용하기 때문에 보안 강화
'애플리케이션 보안' 카테고리의 다른 글
모의해킹 시나리오 - Hashcat (0) | 2023.01.16 |
---|---|
XSS - Reflected XSS (0) | 2022.09.07 |