일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | ||||||
2 | 3 | 4 | 5 | 6 | 7 | 8 |
9 | 10 | 11 | 12 | 13 | 14 | 15 |
16 | 17 | 18 | 19 | 20 | 21 | 22 |
23 | 24 | 25 | 26 | 27 | 28 |
- 객체 상속 속성 인스턴스 메소드 오퍼레이션
- factory metohd pattern
- gof design pattern
- status diagram
- base64
- ssh
- nc reverse shell
- 소프트웨어공학 디자인패턴
- ui 디자인 기본원칙
- fan-in fan-out
- 매크로를 바라보는 시각
- strucuture charat
- 암표거래
- 디자인패턴
- 모듈구조도
- 클래스 관계
- sofrware architeture
- UseCase
- Bandit
- usecase description
- 상태다이어그램
- bandit21
- telnet
- madia designer ui design
- 팬인과 팬아웃
- 구조적 설계
- 리버스쉘
- cron
- prototypepattern 예시 example
- 생성패턴 행위패턴 구조패턴
- Today
- Total
2.log
setuid 에 대하여 본문
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 설정이 변경되더라도 다른 사용자나 프로세스가 디렉터리에 엑세스 하지 못하도록 함)
'HACKING > Bandit+' 카테고리의 다른 글
Bash 취약점에 대하여 (0) | 2023.04.07 |
---|---|
install 명령어로 파일 권한 변경 하는 법 (0) | 2023.04.06 |
Shell 과 bashrc (0) | 2023.04.01 |
SSH 키 이용 시 bad permissions: ignore key: 에러가 발생할 경우 (0) | 2023.04.01 |
diff 명령어 (0) | 2023.04.01 |