분류: 보안기능/ 부적절한 인가, 중요한 자원에 대한 잘못된 권한 설정
가. 항목명
중요자원 접근통제
나. 취약점 설명
관리자 페이지 노출: 관리자페이지가 인터넷에서 접근 가능할 경우 SQL 삽입, 무차별 대입 공격 등 다양한 형태의 공격 빌미르 제공하는 취약점
SSI 삽입: SSI(Server-side Includes)는 HTML 문서 내 변수 값으로 입력된 후 서버에서 처리 시 삽입 명령문을 수행해 서버 데이터 정보가 누출되는 취약점
부적절한 인가 : 프로그램 모든 접근 가능한 실행경로에 대해 접근제어 검사가 불완전해 접근 가능한 실행경로로 정보를 유출하는 취약점
중요자원에 대한 잘못된 권한 설정: 권한을 갖지 않은 사용자가 자원을 사용하게 될 수 있는 취약점
다. 보안대책
① 중요자원에 대한 접근통제 정책
② 중요기능에 대한 접근통제 정책
③ 관리자 페이지에 대한 접근 통제
라. 설계시 고려사항
* RBAC(Role Based Access Control: 역할기반 접근제어) 모델을 사용하여 사용자와 정보 객체들로 구성된 조칙체계에서 할당된 역할을 기반으로 권한을 부여하는 설계
* ACL(Access Control List: 접근제어목록) 을 구성하여 자원에 대한 접근 권한을 설정
* 접근제어 제공하는 프레임워크 별 라이브버리
JAVA - Spring Security
ASP.NET - .NET Framework
PHP - PHP-RBAC
① 중요자원에 대한 접근통제 정책
- 접근권한을 최소 권한으로 설정
- 사용자별 or 그룹별 접근 체크
- 접근 통제를 위해 ACL이나 RBAC을 적용하여 설계
② 중요기능에 대한 접근통제 정책
- 익명/일반/특권 사용자와 관리자 영역으로 구분하여 역할기반 접근통제(RBAC) 정책 및 비즈니스 로직에 따라 접근통제
- 최소 권한으로 설정
- 사용자별 또는 그룹별 접근을 체크
- 의도치 않은 범위의 권한을 획득하지 않도록 설계
- 파라미터 변조가 되지 않도록 절차 구현
- 권한상승이 필요한 경우 가장 마지막에 수행하고 종료 후 즉시 원상 복귀
③ 관리자 페이지에 대한 접근 통제
- URL은 쉽게 추측할 수 없도록 설계
- 암호화 통신채널(TLS, VPN) 을 사용해야 한다
- 접속가능한 IP 설정하고 80번이 아닌 별도의 포트를 사용
- 접속 시 추가인증을 요구
마. 진단기준 및 세부사항
① 중요자원에 대한 접근통제
- 중요자원의 식별(파일, 프로세스, 메모리, 데이터베이스, 정보 등으로 분류)
- 프로그램의 접근권한을 최소권한으로 설정
- 프로그램 접근권한을 자원별로 분리
- 접근통제 정책(ACL, RBAC 등) 설정
- 접근통제 기능의 프레임워크의 컴포넌트를 활용하여 적용
② 중요기능에 대한 접근통제
- 중요기능(ex. 개인정보 조회, 변경, 관리자등록, 사용자 등급 등록 등)이 분석 단계 산출물에 식별되는지
- 중요기능 접근하는 사용자/프로그램이 분류
- 최소권한으로 설정
- 접근통제 정책(ACL, RBAC 등) 설정
- 접근통제 기능의 프레임워크의 컴포넌트를 활용하여 적용
③ 관리자 페이지에 대한 접근통제
- 포트가 일반 사용자 페이지와 다른 포트로 사용
- 외부 네트워크로부터 관리자 페이지의 접근 차단
- 접근 가능한 IP주소 정의
- 반드시 암호화된 통신
- 접속페이지 로깅
바. 안전한 보안설계의 예
No | 요구사항명 | 해결방안 | 검수기준 | 비고 |
1 | DB사용자 계정에 최소권한 부여 | 애플리케이션에서 사용하는 DB 사용자 계정은 애플리케이션에서 사용하는 테이블, 뷰, 프로시저에 대해서만 사용권한을 부여한다 | 애플리케이션에서 사용하는 DB사용자 계정은 테이블, 뷰, 프로시저에 대한 권한만 적용된다. | 지속적인 DB사용자 계정 관리가 필요 |
'보안 > SW보안약점 진단원' 카테고리의 다른 글
[설계보안] 보안기능-암호연산 (0) | 2022.06.25 |
---|---|
[설계보안] 보안기능-암호키 관리 (0) | 2022.06.25 |
[설계보안] 보안기능-비밀번호 관리 (0) | 2022.06.24 |
[설계보안] 보안기능-인증 수행 제한 (0) | 2022.06.24 |
[설계보안] 보안기능-인증 대상 및 방식 (0) | 2022.06.24 |