Fail Open Authentication Scheme
[Description]
인증 메커니즘 전송 방식에는 Fail Open 방식과 Fail Close 전송 방식이 있습니다.
Fail Open : 고장 시 열림. 장애 발생 시 특정 요소(트래픽, 권한, 서비스 등)를 허용하는 정책
Fail Close : 고장 시 닫힘. 장애 발생 시 특정 요소(트래픽, 권한, 서비스 등)를 차단하는 정책
다음은 , Fail Open 방식을 사용하고 있습니다.
Fail Open을 사용하게 되면 , 사용자 인증이 실패하지만 최종 사용자에게 웹 애플리케이션의 인증이 되므로 사용자는 인증을 무시하고 웹 응용 프로그램의 인증 된 섹션에 액세스 할 수 있습니다.
[그림1]
[그림1] 임의의 문자열을 입력 후 로그인을 하는 동시에 패킷을 잡은 그림.
임의의 문자열을 입력 후 , 패킷을 통해 Request 값 분석 시 , 위와 같이
Username 값 에 내가 입력한 ID , Password 값 에 내가 입력한 PW 가 존재합니다.
Fail Open 방식을 사용하고 있을 경우 , Password 를 입력하지 않아도 로그인이가능합니다.
따라서 , Password 변수를 지우고 로그인이 성공되는지 취약점을 진단합니다.
[그림2]
[그림2] Password 매개변수 값을 지운 그림.
Fail Open 방식의 취약점을 테스트 하기 위해 Password 값을 지운 뒤 , Forward 를 통해
결과 값을 분석합니다.
[그림3]
[그림3] Password 없이 로그인이 성공한 그림.
위와 같이 Password 없이 ID 값만 가지고 로그인이 성공됩니다.
이는 Fail Open 방식을 사용하고 있으며 , Password 를 읽을 때
Java 예외 처리와 관련된 보안설정으로 인해 발생합니다.
[impact]
공격자는 Password 없이 로그인이 가능합니다.
댓글
댓글 쓰기