정보보안기사

[정보보안기사(실기)] SECTION 14 시스템 점검 도구

tnvori 2026. 6. 16. 18:02

시스템 점검 도구도 시간이 난다면 이거 활용해서 서버 점검을 시도해도 좋을 것 같다.

선배들이 만들고 있는 게임의 데모가 출시됐다(좀 지났지만). 영상이 올라왔길래 생각나서 적어봄

던전 세틀러즈 많관부

https://store.steampowered.com/app/2798330/__Dungeon_Settlers/

[Dungeon Settlers on Steam

A colony sim based dungeon crawler where you manage your expedition to build a settlement in barren land, provide food and shelter for your people, lead them deep into the merciless dungeon, overcome challenging combat by your strategy.

store.steampowered.com](https://store.steampowered.com/app/2798330/__Dungeon_Settlers/)

https://www.youtube.com/watch?v=0TtGmz-Ge_0

--- ### 1. 취약점 점검 도구
  1. 개요
    • 취약점 유형
      • 네트워크 — 네트워크 장비나 기기들의 취약점부터 네트워크 구조에 대한 취약점
      • 시스템 — 시스템과 관련된 계정, 권한, 파일 관리, 서비스 등의 취약점
      • 웹 — 웹 브라우저나 웹 서버, 웹 프로그램의 취약점
    • 취약점 점검 도구
      • nessus(네서스)
        • 테너블에서 개발, 배포하는 취약점 점검 도구
        • 로컬 또는 원격지에서 다양한 방법을 통해 시스템, 네트워크, 웹 애플리케이션 등의 알려진 취약점에 대한 점검을 수행하며 점검을 통해 취약점의 내용과 해결 방법 제공
      • nikto(닉토)
        • 공개용 웹 취약점 점검 도구
        • 웹 서버나 웹 기반의 응용 프로그램 취약점 점검 가능
        • 웹 서버 설치 시 기본적으로 설치되는 파일과 웹 서버의 종류와 버전 등을 스캔하며 DB를 이용하여 취약한 CGI 파일 스캔
  2. nessus
    1. 특징
      • 클라이언트/서버 구조로 도작
        • 서버에 nessus 데몬과 각종 취약점 점검 플러그인 등이 설치되며 취약점을 점검하고 결과를 조회할 수 있는 인터페이스 제공
        • 클라이언트는 nessus 데몬에 접속하여 대상 시스템에 대한 취약점 점검
      • 사용이 자유롭고 플러그인 업데이트 등이 용이 — 클라이언트는 GUI 형태로 취약점 점검 설정 및 결과를 확인할 수 있어 사용하기 쉽고 취약점이 공개되면 빠르게 취약점 DB가 업데이트됨
      • HTML 등 여러 형태로 결과 리포트 — 모든 OS 및 장비에 대한 취약점 정보를 제공하고 TXT, HTML, PDF 등 다양한 포맷으로 결과 저장
    2. 실습
      • 기본 포트 — 8834/tcp
  3. nikto
    1. 특징
      • 방대한 취약점 DB를 통해 웹 서버의 잘못된 설정, 기본적으로 설치되는 파일이나 스크립트의 존재 유무, 안전하지 못한 파일이나 스크립트의 유무 등 웹 서버에 대한 포괄적 점검 수행
      • HTML, TXT, CSV 등의 형식으로 결과 저장
    2. 실습

2. 무결성 점검 도구(tripwire)

  1. 개요
    • 파일 시스템 무결성 점검 — 파일 시스템의 상태 추적 및 허가받지 않은 변경 여부를 주기적으로 점검하여 의심스러운 변화가 감지되면 이를 검사하고 복구하는 과정
    • tripwire — 유닉스/리눅스 환경에서 파일 시스템 무결성을 점검하는 대표적인 도구. 오픈소스 버전과 상용 버전 존재
    • 시스템 내에 지정한 중요한 디렉터리와 파일에 대한 정보를 담은 데이터베이스를 생성한 후에 tripwire를 실행할 때 새로 생성된 데이터베이스와 비교하여 그 차이점을 보고함으로써 시스템 관리자가 시스템 내에 어떠한 변화가 있는지 감지할 수 있는 도구
    • 공격자가 루트킷/백도어를 설치한 후 tripwire 데이터베이스를 갱신하는 경우 공격 사실을 알 수 없음
  2. 동작 방식
    • 최초 설정 파일에 등록된 파일 및 디렉터리의 해시값을 생성하여 데이터베이스에 저장
    • 주기적으로 트립 와이어가 동작하면서 기존 데이터베이스에 저장된 해시값과 현재 각 파일 및 디렉터리의 해시값 비교
    • 비교 결과 값이 다를 경우 변경 내역을 출력하여 관리자가 확인
  3. 실습

3. 루트킷 점검 도구(chkrootkit)

  1. 개요
    • 루트킷 — 지속적으로 자신의 존재가 탐지되지 않도록 숨기면서 관리자 권한의 획득과 백도어 등의 기능을 수행하는 코드와 프로그램의 집합
      • 많이 변조되는 실행 파일 — ls, ps, netstat, login, top, dir, du, ifconfig 등
    • 초기에는 서버 장비에 설치되어 Telnet, FTP 등의 패킷을 스니핑하여 대상 시스템의 아이디와 패스워드를 획득하여 루트 권한을 탈취하는 방식
  2. 실습하기
    1. 테스트용 루트킷 실행
    2. chkrootkit 실행
    3. 루트킷의 hidden process 탐지 원리
      • /proc 파일 시스템 이해하기
        • 유닉스/리눅스 커널이 메모리상에 사용하고 있는 모든 자원들에 대한 정보들을 파일 형식으로 보관하는 파일 시스템
        • 커널이 관리하는 프로세스 등의 자원, 커널 파라미터 등에 대한 상태 정보를 파일명으로 보관하고 있으며 물리적 디스크 영역이 아닌 메모리 영역에 존재하는 파일 시스템으로 부팅 시마다 새롭게 생성됨
        • /proc//exe — 프로세스의 실행 파일명 및 경로를 확인할 수 있는 심볼릭 링크 파일
        • /proc//cmdline
          • 프로세스를 실행한 명령어 및 전달 인자 정보를 담고 있는 파일
          • 프로세스가 실행된 방식을 정확하게 파악하는 데 활용
      • 탐지 원리
        • 루트킷 — 숨기고자 하는 프로세스가 출력되는 부분만 제거하고 출력되도록 ps 프로그램을 만들어 타깃 시스템에 있는 정상적인 ps 프로그램과 교체하는 방식
        • 루트킷 탐지 프로그램 — ps 실행 결과와 /proc 디렉터리에 있는 프로세스 정보를 비교하여 /proc에는 프로세스가 있지만 ps 실행 시 보이지 않는 프로세스 탐지
        • 일반적으로 백도어를 실행한 후 실행 파일을 숨기기 위한 목적으로 위 예와 같이 실행 후 삭제하는 방식 사용
        • 실행 파일이 삭제돼도 실행 중인 상태라면 메모리상에 남아있기 때문에 cp 명령을 통해 복원 가능
  3. 대응 방법
    1. RPM(Redhat Package Manager) 명령을 이용하여 변조된 파일 확인
      • rpm
        • 레드햇 계열 리눅스에서 패키지를 관리하는 명령어
        • rpm -Uvh <패키지 파일 이름.rpm> — 해당 패키지 신규 설치 또는 업그레이드 수행
        • rpm -qf <파일 절대 경로> — 해당 파일이 어느 패키지에 포함돼 있는지 확인
        • rpm -V <패키지 이름> — 해당 패키지를 통해 설치된 파일의 무결성 검사
          • S — 파일 크기 변경
          • M — 파일 퍼미션 변경
          • 5 — MD5 체크섬 변경
          • T — 파일 수정 시간 변경
          • U — 소유자 정보 변경
          • G — 소유 그룹 정보 변경
          • D — 장치 정보 변경
          • L — 심볼릭 링크 정보 변경
    2. strace 명령을 이용하여 변조된 파일 확인
      • strace
        • 유닉스/리눅스 시스템에서 특정 프로그램의 시스템 콜과 시그널을 추적하는 데 사용하는 디버깅 도구
        • 시스템 콜을 비교하여 변조 여부 확인
    3. 패키지 재설치
      • 패키지 재설치 시 오류 발생
        • —force — 동일하거나 더 높은 버전의 패키지가 이미 설치되어 있더라도 강제로 기존의 것을 삭제하고 설치
        • 공격자가 변조한 실행 파일을 삭제하지 못하도록 속성(i)을 설정했을 경우 재설치 오류 발생
      • 파일 속성 변경 후 재설치
        • chattr 명령을 통해 i 속성 제거
        • 해당 시스템을 다시 설치하는 것이 최선
    4. 리눅스 파일 속성 설정
      • 파일 속성 개요
        • 특정 파일 자체에 대한 허가
        • 변경 불가, 쓰기 시 추가만 허용, 삭제 불가 등
      • lsattr
        • lsattr [파일명]
        • 해당 파일의 속성 정보 확인
        • i
          • 읽기 전용 모드
          • 내용 변경, 추가 및 파일 삭제 불가능
        • a
          • 내용 추가만 허용
          • 내용 변경 및 파일 삭제 불가능
          • 로그 파일의 경우 변경, 삭제는 못하고 추가만 가능하도록
        • A
          • Access Time을 변경하지 않음
          • 웹사이트의 기본 페이지처럼 빈번하게 접속하는 경우 매번 갱신이 발생하는데, 해당 옵션 설정 시 부하 감소
      • chattr를 통한 속성 변경
          • — 속성 설정
          • — 속성 제거
        • 퍼미션이 있어도 속성이 설정되어 있으면 설정 불가능