보안/SW보안약점 진단원

[설계보안] 보안기능-인증 대상 및 방식

re-bugger 2022. 6. 24. 22:36

분류: 보안기능 / 서버사이드 요청 위조, 적절한 인증 없는 중요기능 허용, DNS lookup에 의존한 보안결정

가. 항목명

인증 대상 및 방식

나. 취약점 설명

중요기능이나 리소스 요청하는 경우 인증되었는지 먼저 확인하지 않고 요청을 처리하여 중요 정보나 리소스가 노출되는 취약점

다. 보안대책

① 중요기능이나 리소스에 대해 인증 후 사용 정책 적용

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

③ 중요기능에 대해 2단계 (2-factor) 인증 고려

라. 설계시 고려사항

① 중요기능이나 리소스에 대해 인증 후 사용 정책 적용

  • 인증기능을 제공하는 프레임워크 또는 라이브러리를 활용하여 중앙집중식 인증이 적용되도록 설계

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

  • 인증이 필요한 기능이나 리소스에 접근할 때 서버에서 인증 여부를 확인한다

 중요기능에 대해 2단계 (2-factor) 인증 고려

  • 중요기능에 대해 멀티 디바이스(SMS, ARS 등) 을 이용한 추가인증이나 공인인증서, 바이오 정보(지문,홍채 등)을 이용한 2단계 인증 고려
  • 2단계 인증은 아래 Type 3개 중2개 이상의 인증기법을 사용하도록 설계
    • Type1(비밀번호/PIN 등 지식기반인증)
    • Type2(토큰/스마트카드 등 소유기반인증)
    • Type3(지문/홍채 등 생체인증) 
  • 인증기능을 제공하는 프레임워크
    • JAVA (Spring Security), ASP.NET(.NET Framework), PHP(Zend Framework, Symfony)

마. 진단기준 및 세부사항

① 중요기능이나 리소스에 대한 인증 후 사용 정책

  • 중요기능과 중요 리소스(정보) 분류
  • 중요기능과 중요 리소스(정보)  접근권한  분류
  • 인증 누락 발생을 대비해 위해 프레임워크의 컴포넌트 활용

② 안전한 인증방식을 사용하여 인증우회 및 권한상승 발생 방지

  • 인증기능 설계시 안전한 인증방식 사용
    • 비밀번호/PIN 등 지식기반
    • 토큰/스마트카드 등 소유기반
    • 지문/홍채 등 생체기반
  • 인증 사용되는 값은 서버에 저장
  • 인증실패 횟수 제한 및 오류처리 기능 설계
  • 인증오류 또는 인증실패에 대한 로깅 설계

③ 중요 기능에 대해 2단계(2-factor) 인증 고려                         

  • 중요기능의 경우 추가인증을 요청하도록 설계
  • 추가인증 설계 시 안전한 인증방식 사용
    • ID/비밀번호 또는 일회용 비밀번호(OTP)
    • 멀티디바이스(SMS, ARS 등)
    • (공인 및 사설) 인증서
    • 바이오정보(홍채, 지문 등)

바. 안전한 보안설계의 예

No 요구사항명 해결방안 검수기준 비고
1 DB사용자 계정에 최소권한 부여 애플리케이션에서 사용하는 DB 사용자 계정은 애플리케이션에서 사용하는 테이블, 뷰, 프로시저에 대해서만 사용권한을 부여한다 애플리케이션에서 사용하는 DB사용자 계정은 테이블, 뷰, 프로시저에 대한 권한만 적용된다. 지속적인 DB사용자 계정 관리가 필요