반응형
https://www.kisa.or.kr/public/laws/laws3.jsp
구현 단계 시큐어코딩 가이드 - 보안 기능 - 부적절한 인가
가. 개요
- 프로그램이 모든 가능한 실행 경로에 대해서 접근제어를 검사하지 않거나 불완전하게 검사하는 경우, 공격자는 접근 가능한 실행 경로를 통해 정보를 유출할 수 있다.
나. 보안대책
- 응용프로그램이 제공하는 정보와 기능을 역할에 따라 배분함으로써 공격자에게 노출되는 공격노출면[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 검색을 진행해야 한다.
참고자료
- CWE-285 Improper Authorization, MITRE,
http://cwe.mitre.org/data/definitions/285.html - Access Control, OWASP,
https://www.owasp.org/index.php/Access_Control_Cheat_Sheet
반응형
'공부 > KISA' 카테고리의 다른 글
취약한 암호화 알고리즘 사용 - KISA 소프트웨어 개발 보안 가이드 (0) | 2020.07.20 |
---|---|
중요한 자원에 대한 잘못된 권한 설정 - KISA 소프트웨어 개발 보안 가이드 (0) | 2020.07.20 |
적절한 인증 없는 중요기능 허용 - KISA 소프트웨어 개발 보안 가이드 (0) | 2020.07.20 |
포맷 스트링 삽입 - KISA 소프트웨어 개발 보안 가이드 (0) | 2020.07.20 |
메모리 버퍼 오버플로우 - KISA 소프트웨어 개발 보안 가이드 (0) | 2020.07.20 |
댓글