본문 바로가기
Cert/소프트웨어(SW) 보안약점 진단원

설계단계 보안설계 기준 - 인증 대상 및 방식

by 브루노W 2024. 8. 23.
유형 보안기능
설계항목 인증 대상 및 방식
설명 중요정보/기능의 특성에 따라 인증방식을 정의하고 정의된 인증방식을 우회하지 못 하게 설계해야 한다.
보안대책 ① 중요기능이나 리소스에 대해서는 인증 후 사용 정책이 적용되어야 한다.
② 안전한 인증방식을 사용하여 인증우회나 권한 상승이 발생하지 않도록 해야 한다.
③ 중요기능에 대해 2단계(2-factor)인증을 고려해야 한다.
연관된 구현단계 기준 서버사이드 요청 위조
적절한 인증 없는 중요기능 허용
부적절한 인증서 유효성 검증
DNS lookup에 의존한 보안결정

 

취약점 개요

 

중요기능이나 리소스를 요청하는 경우 인증이 되었는지를 먼저 확인하지 않고 요청을 처리하는 경우 중요 정보나 리소스가 노출될 수 있다.

 

 

 

설계 시 고려사항

 

① 중요기능이나 리소스에 대해서는 인증 후 사용 정책이 적용되어야 한다.

분석단계에 분류된 중요기능에 대해 "인증 후 사용" 정책이 반드시 적용될 수 있도록 한다.

시스템 설계 시 중요기능을 분류하고 식별된 중요기능에 대해 일괄적으로 인증을 요구하도록 시스템을 설계한다.

기능과 인증을 매핑시켜 처리하는 컴포넌트를 개발하거나, 인증기능을 제공하는 프레임워크 또는 라이브러리를 활용하여 중앙집중식 인증이 적용되도록 설계한다.


② 안전한 인증방식을 사용하여 인증우회나 권한 상승이 발생하지 않도록 해야 한다.

인증정보는 서버 측에서 저장하여 인증이 필요한 기능이나 리소스에 접근을 시도할 때 서버에서 인증 여부를 확인할 수 있도록 한다.

 

(ㄱ) 일회용 비밀번호 사용 시

일회용 비밀번호를 적용하는 경우 타 서비스나 시스템과의 연동이 보장되도록 설계해야 한다.

일회용 비밀번호를 도입하는 경우 다음과 같은 규칙을 적용하여 설계한다.

A. 일회용 비밀번호는 시각정보, 이벤트정보, 질의‐응답 방식으로 취득한 정보를 이용해 생성할 수 있다.
B. 시각정보 기반의 연계정보는 특정시간 동안만 유효하여야 하며, 이벤트/질의‐응답 방식을
사용할 경우에는 연계정보를 추측할 수 없도록 보호방안을 제공할 수 있어야 한다.
C. 일회용 비밀번호에는 시간적 제한을 설정해야 한다. (금융영역에서는 30~60초)
D. 일회용 비밀번호는 중복 및 유추가 불가능하도록 6자리 이상의 숫자 및 문자로 구성한다.
E. OTP 발생기와 인증서버에서 동일한 정보를 생성해야 한다.


③ 중요기능에 대해 2단계(2-factor)인증을 고려해야 한다.

중요기능에 대해 멀티 디바이스(SMS, ARS 등)을 이용한 추가인증이나, 공인인증서, 바이오정보(지문, 홍채 등)를 이용한 2단계 인증을 고려해야 한다.

2단계 인증은 Type1(비밀번호/PIN 등 지식기반 인증), Type2(토큰/스마트카드 등 소유기반 인증), Type3(지문/홍채 등 생체기반 인증) 중 2개 이상의 인증기법을 사용하도록 설계한다.

 

※ 인증기능을 제공하는 프레임워크
Spring Security (Java)
.NET Framework (ASP.NET)
Zend Framework, Symfony (PHP)

 

 

진단 세부사항

 

요구사항 ① 중요기능이나 리소스에 대해서는 인증 후 사용 정책이 적용되어야 한다.

- 중요기능과 중요 리소스가 분류되어 있는지 확인
- 중요기능이나 리소스에 접근하기 위한 인증 정책이 안전하게 적용되도록 설계되어 있는지 확인
- 중요기능과 리소스 접근 우회 취약점을 점검하는 테스트 계획이 수립되어 있는지 확인

 

요구사항 ② 안전한 인증방식을 사용하여 인증우회나 권한 상승이 발생하지 않도록 해야 한다.

- 안전한 인증방식이 적용되도록 설계되어 있는지 확인
- 인증우회 또는 권한상승 발생 여부를 점검하는 테스트 계획이 수립되어 있는지 확인

 

요구사항 ③ 중요기능에 대해 2단계(2-factor)인증을 고려해야 한다.

- 추가적인 인증이 필요한 중요기능의 경우, 안전한 인증방식을 사용하도록 설계되어 있는지 확인
- 중요기능에 대한 추가적인 인증요구 수행을 점검하는 테스트 계획이 수립되어 있는지 확인