루트킷·멀웨어
루트킷·백도어·은닉 프로세스 흔적 — 이미 침해된 정황을 최우선으로 탐지.
- 알려진 루트킷 흔적 알려진 루트킷 파일·경로·시그니처 존재 여부.
- ld.so.preload 인젝션 /etc/ld.so.preload 및 LD_PRELOAD 로 강제 로드되는 공유 라이브러리.
- 은닉 프로세스 ps 목록과 /proc 실사 간 불일치(숨겨진 PID).
- 의심 커널 모듈 서명 없는/알려지지 않은 로드된 커널 모듈.
- 무차별 모드 NIC promiscuous 모드로 설정된 네트워크 인터페이스.
- 루트킷 스캐너 결과 rkhunter/chkrootkit 설치 시 그 경고 결과.
패치·업데이트
보안 업데이트 적용·EOL 여부 — 알려진 취약점 노출 표면.
- 보안 업데이트 대기 적용되지 않은 보안 업데이트 개수(yum/apt).
- EOL 운영체제 지원 종료(EOL)된 OS 릴리스 여부.
- 커널 재기동 대기 실행 중 커널이 설치된 최신 커널과 다름(재기동 대기).
SSH 설정
원격 접속 관문의 하드닝 — 루트 로그인·비밀번호 인증·빈 암호.
- root 직접 로그인 sshd PermitRootLogin 설정.
- SSH 빈 암호 허용 sshd PermitEmptyPasswords 설정.
- SSH 비밀번호 인증 sshd PasswordAuthentication 설정(키 기반 권장).
- SSH 취약 알고리즘 구식 프로토콜/약한 KEX·암호·MAC 사용 여부.
- SSH 인증 시도 제한 sshd MaxAuthTries 값.
계정·권한
권한 상승 표면 — UID0 중복·빈 암호 계정·과도한 sudo.
- UID 0 중복 계정 root 외에 UID 0(슈퍼유저) 계정 존재.
- 빈 암호 계정 /etc/shadow 상 암호가 비어 있는 계정.
- 무암호 sudo 광범위 NOPASSWD sudo 규칙(ALL 등).
- 암호 만료 정책 비밀번호 최대 사용기간 설정 여부.
- 시스템 계정 셸 시스템 계정이 로그인 가능한 셸을 가짐.
네트워크 노출
외부 노출 서비스·레거시 프로토콜·공개된 DB 포트.
- 레거시 평문 서비스 telnet·rsh·rlogin·평문 ftp 등 활성 여부.
- DB 포트 외부 노출 MySQL/PostgreSQL/Redis/Mongo 포트가 0.0.0.0 로 리슨.
- 외부 노출 리스너 0.0.0.0/:: 로 리슨하는 서비스 목록.
파일시스템 권한
world-writable·SUID·민감 파일 권한 — 로컬 권한 상승 경로.
- /etc/shadow 권한 섀도 파일의 소유·권한(640/000 권장).
- world-writable 파일 스티키 없는 누구나 쓰기 가능 파일/디렉토리.
- SUID/SGID 인벤토리 예상 밖의 SUID/SGID 바이너리.
- /etc/passwd 권한 passwd 파일 권한(644 · root 소유).
- /tmp 실행 제한 /tmp 가 noexec·nosuid 로 마운트.
시스템 하드닝
커널·보안 모듈 설정 — ASLR·SELinux·SYN 쿠키 등 방어 기본기.
- SELinux/AppArmor 필수 접근제어(MAC)가 enforcing 인지.
- ASLR kernel.randomize_va_space 값(2 권장).
- TCP SYN 쿠키 net.ipv4.tcp_syncookies 활성 여부.
- IP 포워딩 net.ipv4.ip_forward 값(라우터가 아니면 0).
- 코어 덤프 제한 setuid 코어 덤프·전역 코어 덤프 제한.
서비스·방화벽
호스트 방화벽 활성·불필요 서비스 — 공격면 축소.
감사·로깅
auditd·syslog — 침해 후 추적과 포렌식의 전제.
- 감사 데몬(auditd) auditd 실행 여부.
- 시스템 로깅 rsyslog/journald 실행 여부.
내 서버의 버전을 직접 추적하세요
InfraGuard 는 모든 서버에 설치된 소프트웨어 버전을 수집하고, 알려진 취약점이 있는 버전을 알려 줍니다. 자체 호스팅이라 데이터가 내 네트워크를 벗어나지 않습니다.