|
|
방화벽은 기본적으로 네트워크 트래픽 제어를 담당합니다.
반면, setUID는 파일 시스템과 실행 권한 관련 기능입니다.
즉, setUID는 네트워크와는 관계없는 로컬 파일 시스템 수준의 권한 설정입니다.
🔒 setUID 권한 상승 방지를 위한 보안 조치들 ✅ 1. setUID 비트 제거
루트 권한이 필요 없는 setUID 프로그램에서는 chmod -s 명령어로 제거:
sudo chmod -s /usr/bin/some_program ✅ 2. setUID 스캔 주기적으로 수행 find / -perm -4000 -type f 2>/dev/null
-4000은 setUID 비트가 설정된 파일을 찾습니다.
✅ 3. 컴파일 시 setUID 금지 (예: gcc -fno-sanitize=address 등 보안 설정) ✅ 4. 파일 시스템에서 setUID 비트 비활성화
예: nosuid 옵션을 마운트 시 지정:
mount -o remount,nosuid /home
이렇게 하면 해당 파티션에서 setUID 동작 자체가 막힙니다.
✅ 5. AppArmor 또는 SELinux 활용
이 보안 프레임워크들을 사용하면 특정 setUID 프로그램 실행 자체를 막거나 제한할 수 있습니다.
❓보조 질문: setUID를 사용하는 악성코드를 방화벽으로 간접적으로 탐지하거나 제어할 수 있는가? ➤ 간접적으로는 가능:
setUID로 권한 상승 후 네트워크 접근을 시도할 경우, 방화벽이나 IDS/IPS에서 이상 트래픽 감지가 가능합니다.
예: iptables, ufw, firewalld + Snort, Suricata 등으로 감시.
🔚 요약
항목 설명
| setUID 직접 차단 | 🔴 방화벽으로는 불가능 |
| 차단 방법 | ✅ 파일 권한 제어, 파일 시스템 nosuid, SELinux/AppArmor 사용 |
| 방화벽 역할 | 🔁 권한 상승 후의 네트워크 활동 감지 정도만 가능 |
필요하시면 setUID 권한을 주는 프로그램 목록을 찾고 관리하는 스크립트 예시도 제공해 드릴 수 있습니다.