가. 취약점 개요
중요기능이나 리소스를 요청하는 경우 인증이 되었는지를 먼저 확인하지 않고 요청을 처리하는 경우 중요 정보나 리소스가 노출될 수 있다.
나. 설계시 고려사항
① 중요기능이나 리소스에 대해서는 인증 후 사용 정책이 적용되어야 한다.
분석단계에 분류된 중요기능에 대해 “인증 후 사용” 정책이 반드시 적용될 수 있도록 한다.
각각의 중요기능에서 인증을 요청하도록 구현하는 것은 쉽지 않다. 시스템 설계시 중요기능을 분류 하고 식별된 중요기능에 대해 일괄적으로 인증을 요구하도록 시스템을 설계한다. 이 경우 직접적으로 기능과 인증을 매핑시켜 처리하는 컴포넌트를 개발하거나, 인증기능을 제공하는 프레임 워크 또는 라이브러리를 활용하여 중앙집중식 인증이 적용되도록 설계한다.
② 안전한 인증방식을 사용하여 인증우회나 권한 상승이 발생하지 않도록 해야 한다.
인증정보는 서버 측에 저장하여 인증이 필요한 기능이나 리소스에 접근을 시도할 때 서버에서 인증 여부를 확인할 수 있도록 해야 한다.
(ㄱ) 일회용 비밀번호 사용시
일회용 비밀번호를 적용하는 경우 타 서비스나 시스템과의 연동이 보장되도록 설계해야 한다. 일회용 비밀번호를 도입하는 경우 다음과 같은 규칙을 적용하여 설계한다.
A. 일회용 비밀번호는 시각정보, 이벤트정보, 질의‐응답 방식으로 취득한 정보를 이용해 생성할 수 있다.
B. 시각정보 기반의 연계정보는 특정시간 동안만 유효하여야 하며, 이벤트/질의‐응답 방식을 사용할 경우에는 연계정보를 추측할 수 없도록 보호방안을 제공할 수 있어야 한다.
C. 일회용 비밀번호에는 시간적 제한을 설정해야 한다. (금융영역에서는 30~60초)
D. 일회용 비밀번호는 중복 및 유추가 불가능하도록 6자리 이상의 숫자 및 문자로 구성한다.
E. OTP발생기와 인증서버에서 동일한 정보를 생성해야 한다.
③ 중요기능에 대해 2단계(2-factor)인증을 고려해야 한다.
중요기능에 대해 멀티 디바이스(SMS, ARS 등)를 이용한 추가인증이나, 공인인증서, 바이오 정보(지문, 홍채 등)를 이용한 2단계 인증을 고려해야 한다. 2단계인증은 Type1(비밀번호/PIN 등 지식기반인증), Type2(토큰/스마트카드 등 소유기반 인증), Type3(지문/홍채 등 생체기반인증) 중 2개 이상의 인증기법을 사용하도록 설계한다. 중앙 집중화된 형식의 인증 메커니즘을 제공하기 위해 아래와 같은 프레임워크를 활용할 수 있다.
[테스트 문제]
문제: 인증정보는 서버 측에 저장하여 인증이 필요한 기능이나 리소스에 접근을 시도할 때 서버에서 인증 여부를 확인할 수 있도록 해야 한다.
정답: O
문제: 보안대책을 서술하시오.
정답:
① 인증 후 사용 정책 적용
② 안전한 인증방식 사용 설계
③ 2-Factor 인증 적용
문제: 빈칸을 채우시오.
나. 설계시 고려사항
① 중요기능이나 리소스에 대해서는 (ㄱ) 사용 정책이 적용되어야 한다.
분석단계에 분류된 중요기능에 대해 “(ㄱ) 사용” 정책이 반드시 적용될 수 있도록 한다.
각각의 중요기능에서 인증을 요청하도록 구현하는 것은 쉽지 않다. 시스템 설계시 중요기능을 분류 하고 식별된 중요기능에 대해 일괄적으로 인증을 요구하도록 시스템을 설계한다. 이 경우 직접적으로 기능과 인증을 매핑시켜 처리하는 컴포넌트를 개발하거나, 인증기능을 제공하는 프레임 워크 또는 라이브러리를 활용하여 중앙집중식 인증이 적용되도록 설계한다.
② 안전한 인증방식을 사용하여 (ㄴ)나 (ㄷ)이 발생하지 않도록 해야 한다.
인증정보는 (ㄹ) 측에 저장하여 인증이 필요한 기능이나 리소스에 접근을 시도할 때 (ㄹ)에서 인증 여부를 확인할 수 있도록 해야 한다.
1. 일회용 비밀번호 사용시
일회용 비밀번호를 적용하는 경우 타 서비스나 시스템과의 연동이 보장되도록 설계해야 한다. 일회용 비밀번호를 도입하는 경우 다음과 같은 규칙을 적용하여 설계한다.
A. 일회용 비밀번호는 시각정보, 이벤트정보, 질의‐응답 방식으로 취득한 정보를 이용해 생성할 수 있다.
B. 시각정보 기반의 연계정보는 특정시간 동안만 유효하여야 하며, 이벤트/질의‐응답 방식을 사용할 경우에는 연계정보를 추측할 수 없도록 보호방안을 제공할 수 있어야 한다.
C. 일회용 비밀번호에는 시간적 제한을 설정해야 한다. (금융영역에서는 30~60초)
D. 일회용 비밀번호는 중복 및 유추가 불가능하도록 6자리 이상의 숫자 및 문자로 구성한다.
E. OTP발생기와 인증서버에서 동일한 정보를 생성해야 한다.
③ 중요기능에 대해 2단계(2-factor)인증을 고려해야 한다.
중요기능에 대해 멀티 디바이스(SMS, ARS 등)를 이용한 추가인증이나, 공인인증서, 바이오 정보(지문, 홍채 등)를 이용한 2단계 인증을 고려해야 한다. 2단계인증은 (ㅁ), (ㅂ), (ㅅ) 중 2개 이상의 인증기법을 사용하도록 설계한다.
정답
ㄱ: 인증 후
ㄴ: 인증 우회
ㄷ: 권한 상승
ㄹ: 서버
ㅁ: Type1(비밀번호, PIN번호 등 지식기반인증)
ㄹ: Type2(토큰/스마트카드 등 소유기반인증)
ㅅ: Type3(지문/홍채 등 생체기반인증)
인증 대상 및 방식 | |
입력데이터 검증 및 표현 | 서버 사이드 요청 위조 |
보안기능 | 적절한 인증 없는 중요기능 허용 |
보안기능 | 부적절한 인증서 유효성 검증 |
API 오용 | DNS lookup에 의존한 보안 결정 |