[시큐어코딩 가이드] 2-2-3. 중요한 자원에 대해 잘못된 권한 설정

중요한 자원에 대해 잘못된 권한 설정

정의

응용프로그램이 중요한 보안 관련 자원에 대해 읽기 또는 수정하기 권한을 의도하지 않게 허가할 경우, 권한을 갖지 않은 사용자가 해당 자원을 사용

 

안전한 코딩기법

설정 파일, 실행 파일, 라이브러리 등은 관리자에 의해서만 읽고 쓰기가 가능하도록 설정하고, 설정 파일과 같이 중요한 자원을 사용하는 경우 허가받지 않은 사용자가 중요한 자원에 접근 가능한지 검사

 

코드예제

다음은 /root/system_config 파일에 대해서 모든 사용자가 읽기, 쓰기, 실행 권한을 가지는 상황을 보여주는 안전하지 않은 코드예제입니다.

#중요한 자원에 대해 잘못된 권한 설정(안전X)
import os
def write_file_bad():
    os.chmod('root/system_config',0o777)

with open('root/system_config', 'w') as f:
    f.write('your config is broken')

 

주요파일에 대해서는 최소 권한만 할당해야 합니다. 아래 코드는 안전한 코드 예제입니다.

#중요한 자원에 대해 잘못된 권한 설정(안전O)
import os
def write_file_good():
    os.chmod('root/system_config',0o700)

with open('root/system_config', 'w') as f:
    f.write('your config is broken')

 

 

 

보안기능/중요한 자원에 대해 잘못된 권한 설정

[참고문헌] Python 시큐어코딩 가이드(2022) / KISA(한국인터넷진흥원)