설계단계 보안설계 기준 - 중요자원 접근통제
유형 | 보안기능 |
설계항목 | 중요자원 접근통제 |
설명 | 중요자원(프로그램 설정, 민감한 사용자 데이트 등)을 정의하고, 정의된 중요자원에 대한 신뢰할 수 있는 접근통제 방법(권한관리 포함) 설계 및 접근통제 실패 시 처리방법을 설계한다. |
보안대책 | ① 중요자원에 대한 접근통제 정책을 수립하여 적용해야 한다. ② 중요기능에 대한 접근통제 정책을 수립하여 적용해야 한다. ③ 관리자 페이지에 대한 접근통제 정책을 수립하여 적용해야 한다. |
연관된 구현단계 기준 | 부적절한 인가 중요한 자원에 대한 잘못된 권한 설정 |
취약점 개요
사례1 : 관리자 페이지 노출
관리자 페이지가 인터넷으로 접근 가능할 경우, 해당 페이지는 공격자의 주 공격대상으로 SQL 삽입, 무차별대입 공격 등 다양한 형태의 공격 빌미를 제공하게 되는 취약점이다.
사례2 : SSL 삽입
SSL(Server-side Includes)는 HTML 문서 내 변수 값으로 입력된 후, 이를 서버가 처리하게 되는데, 이 때 SSL 삽입 명령문이 수행되어 서버 데이터 정보가 누출되는 취약점이다.
사례3 : 부적절한 인가
프로그램이 모든 가능한 실행경로에 대해서 접근제어를 검사하지 않거나 불완전하게 검사하는 경우, 공격자는 접근 가능한 실행경로로 정보를 유출할 수 있는 취약점이다.
사례4 : 중요자원에 대한 잘못된 권한 설정
소프트웨어가 중요한 자원에 대하여 읽기, 수정 등의 권한을 의도하지 않게 허가할 경우 권한을 갖지 않은 사용자가 해당 자원을 사용하게 될 쉬 있는 취약점이다.
설계 시 고려사항
RBAC(Role Based Access Control : 역할기반 접근제어) 모델을 사용하여 기업, 정부 등 다수의 사용자가 정보객체들로 구성된 조직체계에서 사용자에게 할당된 역할을 기반으로 권한을 부여하도록 설계한다.
(예시) Spring Security 프레임워크 사용 시 ACL 모듈 추가, 객체에 대한 접근제어 구현
1. 모든 도메인 객체에 대한 ACL 엔트리를 효과적으로 검색하고 수정한다.
2. 메서드 호출에 앞서, 각 사용자가 객체에 대해 특정 작업을 수행할 권한이 있는지 검증한다.
3. 메서드 호출이 끝난 후, 각 사용자가 객체(또는 반환되는 객체)에 대해 특정 작업을 수행할 권한이 있는지 검증한다.
① 중요자원에 대한 접근통제 정책을 수립하여 적용해야 한다.
중요자원에 대한 접근권한을 최소권한으로 설정한다.
중요자원에 대한 접근통제 정책을 설정하고, 사용자별 또는 그룹별 접근을 체크한다.
중요자원(파일, 프로세스, 데이터베이스와 같은)에 대한 접근을 통제하기 위해 ACL이나 RBAC을 적용하도록 설계한다.
접근통제 정책을 수립할 때는 최소권한의 원칙과 권한 분리정책에 따라 자원에 대한 권한을 할당하고, 자원에 대한 접근은 요구조건을 충족할 때만 허가하도록 설계한다.
② 중요기능에 대한 접근통제 정책을 수립하여 적용해야 한다.
중요기능에 대한 접근권한은 최소권한으로 설정한다.
중요기능에 대한 접근통제 정책을 설정하고, 사용자별 또는 그룹별 접근을 체크한다.
프로그램에서 사용자 또는 자원에 대한 권한의 할당, 수정, 확인, 검사를 수행하여 의도치 않은 범위의 권한을 획득하지 않도록 한다.
파라미터 변조로 인증이 올바르게 수행되지 않을 수 있으므로, 파라미터가 변조되지 않았는지 확인하는 절차를 구현한다.
상위권한을 사용해 수행되는 기능을 구현해야 하는 경우, 권한상승은 가능한 가장 마지막에 수행하고 수행종료 즉시 원상 복귀한다.
③ 관리자 페이지에 대한 접근통제 정책을 수립하여 적용해야 한다.
관리자 페이지의 URL은 쉽게 추측할 수 없도록 설정한다.
관리자 페이지의 접속 시 암호화 통신 채널(TLS 등)을 사용한다.
관리자 페이지에 접속 가능한 IP를 설정하고 80번이 아닌 별도의 포트를 사용한다.
관리자 페이지 접속 시 추가 인증을 요구하도록 한다.
※ 접근제어를 제공하는 프레임워크 및 라이브러리
Spring Security (Java)
.NET Framework (ASP.NET)
PHP-RBAC (PHP
진단 세부사항
요구사항 ① 중요자원에 대한 접근통제 정책을 수립하여 적용해야 한다.
- 중요자원에 대한 접근통제 정책이 수립되고 적용되도록 설계되어 있는지 확인
- 중요자원에 대한 접근통제를 점검하는 테스트 계획이 수립되어 있는지 확인
요구사항 ② 중요기능에 대한 접근통제 정책을 수립하여 적용해야 한다.
- 중요기능에 대한 접근통제 정책이 수립되고 적용되도록 설계되어 있는지 확인
- 중요기능에 대한 접근통제를 점검하는 테스트 계획이 수립되어 있는지 확인
요구사항 ③ 관리자 페이지에 대한 접근통제 정책을 수립하여 적용해야 한다.
- 관리자 페이지에 대한 접근통제 정책이 적용되도록 수립되어 있는지 확인
- 관리자 페이지에 대한 접근통제를 점검하는 테스트 계획이 수립되어 있는지 확인