세션 고정 공격 상황에 대해서 질문있습니다.
499
작성한 질문수 19
수업에서 배운 세션 고정 공격은 먼저 공격자가 서버에 로그인 인증을 완료한 후 세션ID를 받은 뒤에 피해자에게 몰래 심는 거잖아요.
해당 세션ID로 피해자가 서버에 접속하는 걸텐데, 서버 입장에선 공격자의 신상으로 이미 인증이 되어 있어서 피해자의 모든 요청에 허용을 하지 않을까요? 굳이 피해자가 다시 로그인을 하는 상황이 머릿속에 그려지지 않습니다.
또 피해자가 사이트에 접속했을 때 이미 인증이 되어 있기 때문에 다른 사람으로 로그인이 되어 있을테고, 그러면 오히려 공격자의 신상이 피해자에게 노출되는 꼴 아닌가요..? ㅎㅎ 그렇다고 피해자가 다시 로그인을 하기 위해서 로그아웃하는 순간 악의적인 세션ID는 더 이상 사용하지 못하게 되구요..
궁금합니다!
답변 2
1
아 네
공격자가 먼저 로그인을 하는 것이 아니라 사용자가 공격자의 쿠키로 로그인을 하는 상황을 말하는 것입니다.
즉 공격자가 심어놓은 쿠키로 사용자가 로그인을 하게 되고 그 이후 공격자가 사용자의 사이트에 접속하게 되면 마치 사용자처럼 활동할 수 있다는 의미입니다.
그래서 사용자가 공격자의 쿠키로 로그인할 때 서버에서는 사용자의 쿠키를 다시 새로운 값으로 변경한다는 것이 세션고정보호이고 그렇게 되면 공격자가 사용자의 사이트를 접속하더라도 이제 더 이상 공격자의 쿠키와 사용자의 쿠키는 틀린 상태이기 때문에 공격자에게 사용자의 정보가 노출되지 않는다는 것을 의미합니다.
강의에서는 이 부분을 설명하고 있습니다.
0
안녕하세요, 인프런 AI 인턴입니다.
질문하신 세션 고정 공격에 대해 답변드리겠습니다. 세션 고정 공격에서는 공격자가 임의로 생성하거나 획득한 세션 ID를 피해자에게 강제로 사용하게 만들어 서버가 피해자를 공격자로 오인하게 하는 것이 핵심입니다. 이 과정에서 피해자가 해당 세션 ID로 서버에 접속했을 때, 서버 입장에서는 이미 인증된 사용자로 판단하기 때문에, 피해자는 별도로 로그인 과정 없이 공격자의 권한을 가진 상태로 서비스를 이용하게 되죠.
하지만, 이런 상황에서 피해자가 사이트 내에서 자신의 계정 정보를 확인하면 공격자의 정보가 노출되는 문제가 발생할 수 있습니다. 이는 공격자에게도 리스크가 될 수 있는 부분입니다. 또한, 피해자가 로그아웃을 하는 순간 공격자가 심은 세션ID는 무효화되어 더이상 공격에 사용할 수 없게 됩니다.
세션 고정 공격을 방지하기 위해 웹어플리케이션은 로그인 시 새로운 세션ID를 발급하여 사용하는 등의 보안 조치를 취하는 것이 중요합니다. 게시하신 내용 외에도 보안에 관련하여 더 알아보고 싶으시다면 Spring Security 등의 프레임워크를 활용하는 것도 좋은 방법입니다. Spring Security는 Spring Boot와 함께 사용할 수 있으며 보안 관련 다양한 기능을 제공합니다. 관련된 내용은 Spring Security 프로젝트 페이지를 참고하시길 바랍니다.
참고자료:
- Spring Security 프로젝트 페이지: https://spring.io/projects/spring-security
도움이 되었기를 바랍니다. 추가적인 질문이 있으시면 언제든지 문의해 주세요.
로그아웃-logout()-2 강에서 겟방식 로그아웃 호출 후 화면이동 질문입니다.
0
30
2
단원별 소스코드
0
60
2
CustomAuthenticationProvider 추가 관련 문의
0
70
2
AOP 의존성 명칭 변경
0
67
1
빈 1개 등록 시 다른 해결 방법
0
65
1
@Bean으로 AuthenticationProvider를 등록 시 http.authenticationProvider 함수를 이용해서 추가해줘야되나요?
0
86
2
OIDC의 id token에 담긴 데이터에 대해
0
75
1
loginPage("/loginPage") 질문드립니다.
0
69
1
@EnableWebSecurity
0
147
1
트랜잭션과 롤백
0
99
1
68. 인증 이벤트 - AuthenticationEventPublisher 활용 강좌 음성 문제
0
90
2
AuthenticationManager 사용 방법
0
150
2
HttpSecurity.authorizeHttpRequests() - 2 강의 부분에 대한 질문
0
105
2
spring security 6.3에서는 HttpSecurity가 만들어지기 전 WebSecurity가 먼저 만들어지는게 맞나요??
0
190
1
init(B Builder), configure(B builder) 에 대하여 질문 드립니다.
0
108
2
메타 주석 질문
0
68
1
동시세션제어 기능에서 로그아웃하기
0
147
3
로그인 후, redirect 에서 error
0
138
3
Session 생성 타이밍에 대한 질문
0
85
2
강의 참고 내용을 개발 로그로 작성해도 될지 문의드립니다.
0
133
2
customAuthentication 관련
0
128
2
authenticationManagerBuilder 주입받은거 vs 만든 거
0
111
1
UserDetailsService()에서 UserDetail이 아닌 타입을 반환할 수 있나요?
0
101
1
9:28 패턴 3의 경우 마지막으로 설정한 것만 적용되는 것 같습니다.
0
159
2





