위치:
API(OAuth 설정 활성화): 인가 코드 및 자격 증명 플로 설정
이 제어는 "인가 코드 및 자격 증명 플로"에 대한 특정 보안 요구 사항을 구성합니다.
제어 이름
연결된 앱: API(OAuth 설정 활성화): 인가 코드 및 자격 증명 플로 설정
권장 구성
인가 코드 및 자격 증명 플로를 활성화합니다.
웹 서버 플로에 암호 필요 및 새로 고침 토큰 플로에 암호 필요를 선택하지 않거나 선택 취소합니다.
제어 개요
이 제어는 "권한 부여 코드 및 자격 증명 플로"에 대한 특정 보안 요구 사항을 구성하여 응용 프로그램이 "개인 클라이언트"(서버측) 또는 "공용 클라이언트"(브라우저/모바일)인지 여부를 기반으로 클라이언트 암호를 확인해야 하는지 여부를 결정합니다.
구성되지 않은 경우 보안 위험
공개 클라이언트에 암호를 올바르지 않게 요구하면 자격 증명이 쉽게 도난되는 프런트엔드 코드로 하드 코딩되지만 비공개 클라이언트에 암호를 요구하지 않으면 공격자가 응용 프로그램의 개인 키를 필요로 하지 않고도 가로채기된 코드를 교환할 수 있습니다.
위협 시나리오
공격자가 모바일 앱을 세분화하여 하드 코딩된 클라이언트 암호를 추출하거나 서버측 앱에서 인가 코드를 가로채고 교환에 암호가 필요하지 않으므로 고권한 액세스 토큰을 거래합니다.
예상 CVSS 점수 범위
중요(9.0~10.0)
위험 영향 고려 사항
잘못된 구성으로 인해 클라이언트 자격 증명이 손상되거나 무단 세션 하이재킹이 활성화되므로 중요한 데이터에 대한 영구적 인증되지 않은 액세스가 발생합니다.
위험이 높은 경우
보조 방어로 PKCE(코드 교환 증명 키)가 없는 고권한 통합에 플로가 사용되거나 암호가 일반 텍스트 클라이언트측 리포지토리에 저장되는 경우
낮은 위험 시기
"개인 클라이언트"가 보안 서버측 저장소에 저장된 암호를 엄격하게 적용하고 "공용 클라이언트"가 PKCE를 사용하여 취약한 공유 암호를 필요로 하지 않고 교환을 보호합니다.
비즈니스 및 통합 고려 사항
이를 올바르게 구현하려면 백엔드 구동 응용 프로그램과 프런트엔드 구동 응용 프로그램을 명확하게 아키텍처로 구분하여 인증 핸드샷을 중단하지 않고 적절한 "암호" 정책이 적용되도록 해야 합니다.
권장 수정
비공개/서버측 클라이언트의 경우 "웹 서버 플로에 암호 필요" 및 "새로 고침 토큰 플로에 암호 필요"를 모두 선택합니다. 공개/모바일 클라이언트의 경우 대신 이러한 옵션을 선택 취소하고 PKCE를 구현합니다.
보안 상태 검토 지침
보안 상태 검토에서는 암호의 보안이 클라이언트의 보호 능력에 따라 달라지며 공유 암호가 브라우저 또는 모바일 환경에 노출되지 않도록 요구합니다.

