2.log

setuid 에 대하여 본문

HACKING/Bandit+

setuid 에 대하여

2.log 2023. 4. 6. 22:34
728x90
반응형

 

setuid?

UNIX/Linux 시스템의 파일 특별 권한 중 하나로, setuid 가 설정된 프로그램 / 파일 실행 시, 실행한 사용자 대신 파일 소유자의 권한으로 실행이 이루어짐. 이는 권한 없는 사용자가 권한을 부여받을 시 root 권한으로 실행되어 악용될 수 있기에 주의 필요함

 

 

 

설정방법

#문자모드
$ chmod u+s [파일명]

#숫자모드
$ chmod 4755 [파일명]

 

 

bit 모드로 설정 시 4는 setuid(4000), 755 는 rwx (4,2,1) 권한 조합을 나타내며, setuid 설정이 되면 파일 소유자 권한이 x 대신 s 로 표시됨

 

 

 

 

예를들어 해당 파일의 경우 소유자에게 rwx 권한이 있는데 setuid 가 설정되어 x 대신 s 가 부여되었고, 나머지 그룹과 기타 사용자에게는 r-x 권한과 아무 권한설정이 되어있지 않은 상태임

 

 

 

취약점

1. 파일 경로 조작 (Path Traversal)

setuid 권한을 부여한 파일에서 외부 입력값을 충분히 검증하지 않아 공격자가 실행 파일 경로를 조작하는 경우로, 이 경우 공격자는 다른 파일의 setuid 권한을 부여한 실행 파일을 실행시키거나, 임의의 코드 실행이 가능해짐

 

2. 버퍼 오버플로우 (Buffer Overflow)

setuid 권한을 부여한 실행 파일이 충분한 입력값 검증 없이 입력값을 받는 경우, 공격자는 입력값을 조작해 프로그램 동작에 장애 일으킬 수 있음

 

3. TOCTOU (Time-of-Check Time-of-Use)

setuid 권한을 부여한 실행 파일에서 외부 입력값 검증 시, 검증과 실행 사이 시간 간격을 이용해 입력값 조작 가능

 

4. DoS (Denial-of-Service)

setuid 권한을 부여한 실행 파일이 오랜 시간동안 실행되는 경우, 이를 악용해 시스템 자원을 소모하거나 다른 서비스 실행 방해 가능

 

대응방안

1. setuid 사용을 최소화하며 꼭 필요한 경우 최소한의 권한만 부여

 

2. 외부 입력값 충분히 검증

 

3. 필요한 경우 *SELinux 와 같은 보안 정책 적용하여, 실행파일에 대한 접근제어와 권한 제한을 수행하여 권한 상승 방지

 

4. setuid 권한 부여한 파일에 대한 주기적 보안 검토

 

5. 최신 보안 업데이트 적용

 

 

 

 

*SELinux (Security-Enhanced Linux) : 리눅스 커널에 구현된  MAC(Mandatory Access Control) 기반 보안 정책 프레임 워크로, 일반적인 자격증명 기반의 접근제어(DAC, Discretionary Access Control)와 달리, 파일, 디렉토리, 소켓 등 객체들에 대한 접근 제어를 강화함 (엑세스 관리 정책이 설정되어 있어서 홈 디렉터리의 DAC 설정이 변경되더라도 다른 사용자나 프로세스가 디렉터리에 엑세스 하지 못하도록 함)

 

 

 

 

 

728x90
반응형
Comments