시큐어코딩
- home
- 보안소식
- 시큐어코딩
18. [보안 기능] 중요한 자원에 대한 잘못된 권한 설정
2019.04.30 10:02
중요한 자원에 대한 잘못된 권한 설정은 행정안전부에서 발표한 '소프트웨어 개발보안 가이드'에 속해있는 주요 항목입니다. 분석, 설계 단계의 보안 요구항목에서는 '보안 기능'의 '중요 자원 접근 통제'라는 항목으로, 구현 단계 보안약점에서는 '보안 기능'의 '중요한 자원에 대한 잘못된 권한 설정'이라는 항목으로 명시가 되어있습니다.
#중요한 자원에 대한 잘못된 권한 설정이란?
중요한 자원에 대한 잘못된 권한 설정이란, SW가 중요한 보안 관련 자원에 대하여 읽기 또는 수정하기 권한을 의도하지 않게 허가할 경우 발생할 수 있는 보안약점으로, 권한을 갖지 않은 사용자가 해당자원에 접근하여 사용할 수 있습니다.
위 소스코드는 /home/setup/ 경로에 system.ini라는 파일을 새로 생성하고 있는 소스코드입니다. 생성될 파일에 대한 권한을 setExecutable, setReadable, setWritable 메서드를 이용해서 설정하고 있는데, 해당 권한을 모든 사용자가 읽고, 쓰고, 실행할 수 있도록 설정하고 있어 후에 악의적인 공격자가 해당 파일에 대해 설정값을 확인하고, 변조시킬 수 있는 가능성이 있으니 주의하여야 합니다.
파일에 대해서는 최소 권한을 할당해야 합니다.
위 소스코드는 새로 생성되는 system.ini 파일에 대해 파일의 소유자에게 읽기 권한만을 부여하는 권한을 설정 후 파일을 생성하고 있습니다.
#중요한 자원에 대한 잘못된 권한 설정을 막기 위한 보안 대책은?
중요한 자원에 대한 잘못된 권한 설정을 방어하기 위한 대책은 소프트웨어 개발 생명 주기에 따라 크게 두 가지로 나눌 수 있습니다.