본문 바로가기
공부/KISA

부적절한 인가 - KISA 소프트웨어 개발 보안 가이드

by Skogkatt의 개인 블로그 2020. 7. 20.
반응형

https://www.kisa.or.kr/public/laws/laws3.jsp

 

기술안내서 가이드 < 관련법령·기술안내서 < 자료실 : 한국인터넷진흥원

기술안내서 가이드 한국인터넷진흥원 기술안내서 가이드 입니다. 게시판 목록 보기 기술안내서 가이드 표 대분류 소분류 기술안내서 가이드 대상 수준 인터넷 진흥 및 이용 활성화 인터넷 진흥

www.kisa.or.kr

구현 단계 시큐어코딩 가이드 - 보안 기능 - 부적절한 인가

가. 개요

  • 프로그램이 모든 가능한 실행 경로에 대해서 접근제어를 검사하지 않거나 불완전하게 검사하는 경우, 공격자는 접근 가능한 실행 경로를 통해 정보를 유출할 수 있다.

나. 보안대책

  • 응용프로그램이 제공하는 정보와 기능을 역할에 따라 배분함으로써 공격자에게 노출되는 공격노출면[footnote]OSSTMM 3 Defines Attack Surface as "The lack of specific separations and functional controls that exist for that vector"[/foonote] (Attack Surface)을 최소화하고 사용자의 권한에 따른 ACL(Access Control List)을 관리한다. 프레임워크를 사용해서 취약점을 피할 수도 있는데 예를 들면, JAAS Authorization Framework나 OWASP ESAPI Access Control 등을 인증 프레임워크로 사용 가능하다.

다. 코드예제

JAVA
더보기

아래의 코드는 사용자 입력값에 따라 삭제 작업을 수행하고 있으며, 사용자의 권한 확인을 위한 별도 의 통제가 적용되지 않고 있다.

아래의 코드처럼 세션에 저장된 사용자 정보를 통해 해당 사용자가 삭제작업을 수행할 권한이 있는지 확인한 뒤 권한이 있는 경우에만 수행하도록 해야 한다.

 

C#
더보기

운영자 권한 검사 없이 컨트롤러와 내부의 개별 액션에 접근이 가능한 C# 코드이다.

운영자 권한 검사 후에 개별 액션에 접근해야 한다.

 

C
더보기

사용자 자격인증 없이 LDAP 검색을 시도하는 C 코드의 예제이다.

사용자의 자격인증 및 로그인 정보와 일치하는지 검사 후 LDAP 검색을 진행해야 한다.


참고자료

반응형

댓글