현상
Linux 기반 운영 체제의 Tibero 운영 환경에서 .bash_profile 파일에 PATH 설정 시 .(현재 디렉토리)를 맨 앞에 지정할 경우, 명령어 하이재킹(Masquerading) 또는 권한 상승(Root 권한 악용) 등 보안 취약점이 발생할 수 있습니다.
원인
.은 현재 디렉토리를 의미하며 현재 디렉토리의 실행 파일을 쉽게 실행하기 위해 사용됩니다.
"PATH=.:" 설정 시 터미널에서 명령어 실행 시 현재 디렉토리에 있는 실행 파일이 우선적으로 실행되어 다음과 같은 문제가 발생할 수 있습니다.
1. 외부 공격 가능성 존재
.공격자가 ls, cp, rm 등의 악의적인 명령어 파일을 만든 경우, 해당 디렉토리에서 명령어 수행 시 악의적인 프로그램이 먼저 실행될 우려가 존재합니다.
2. 악성 스크립트 root 권한으로 실행 우려
. root나 DB 운영자가 .bash_profile에 .을 포함한 상태로 스크립트를 실행하면, 악성 스크립트가 root 권한으로 실행될 우려가 존재합니다.
해결
.bash_profile PATH 환경 변수 설정 시 앞에 . 추가 시 보안 취약점 노출되는 현상에 대한 우회 방안은 아래와 같습니다.
1. .bash_profile PATH에서 . 제거
. 현재 디렉토리에 존재하는 파일 실행 시 명시적으로 ./{실행파일 이름} 을 입력합니다.
•
AS-IS : export PATH=.:$TB_HOME/bin:$TB_HOME/client/bin:$PATH
•
TO-BE : export PATH=$TB_HOME/bin:$TB_HOME/client/bin:$PATH
2. PATH에서 .의 위치를 맨 뒤로 이동 (우회 방안)
.의 위치를 맨 뒤로 이동함으로써 PATH 검색 순서를 후순위로 밀어냅니다.
. 해당 방안은 “/etc/profile”, root 계정의 환경변수 파일, 일반 계정의 환경변수 파일을 순차적으로 검색하여 확인함으로 완전한 해결책은 아니지만 우회 방안으로 사용 가능합니다.
•
AS-IS : export PATH=.:$TB_HOME/bin:$TB_HOME/client/bin
•
TO-BE : export PATH=$TB_HOME/bin:$TB_HOME/client/bin:.
3. AS-IS / TO-BE 예시
구분 | 설정 예시 |
AS-IS (위험) | export PATH=.:$TB_HOME/bin:$TB_HOME/client/bin:$PATH |
TO-BE (권장) | export PATH=$TB_HOME/bin:$TB_HOME/client/bin:$PATH |
TO-BE (우회) | export PATH=$TB_HOME/bin:$TB_HOME/client/bin:$PATH:. |