정보보안기사

[정보보안기사(실기)] SECTION 01 시스템 기본 학습 (1)

tnvori 2026. 3. 24. 17:11

슬슬 실기를 준비해야 한다. 여름 시험을 목표로 하고 있는데 자신이 없음

260305 여러모로 신세를 지고있는 분의 요리. 롤하고 비에 젖어 버림. 언제 또 가지


  1. 윈도우 기본 학습
    1. 윈도우 인증 과정
      1. 윈도우 인증 구성 요소
        • LSA(Local Security Authority) 서비스 기능
          • 모든 계정의 로그인에 대한 검증 및 시스템 자원에 대한 접근 권한 검사
          • 계정명과 SID를 매칭하며 SRM이 생성한 감사 로그 기록
        • SAM(Security Account Manager) 서비스 기능
          • 사용자/그룹 계정 정보에 대한 데이터베이스 관리
          • 사용자 로그인 정보와 SAM 파일에 저장된 사용자 패스워드 정보를 비교하여 인증 여부 결정
          • SAM 파일은 사용자, 그룹 계정 및 암호화된 패스워드 정보를 저장하고 있는 데이터베이스로 윈도우 설치 디렉터리에 존재
        • SRM(Security Reference Monitor) 서비스 기능
          • 인증된 사용자에게 SID 부여
          • SID를 기반으로 파일, 디렉터리에 대한 접근 허용 여부를 결정하고, 이에 대한 감사 메시지 생성
      2. 로컬 인증 — 윈도우 부팅 후 로그인 창에서 ID/PW를 입력하면 LSA 서브 시스템이 인증 정보를 받아 NTLM 모듈에 넘기고 이를 다시 SAM이 받아 로그인 처리
      3. 원격 인증
        • 윈도우 부팅 후 로그인 창에서 아이디와 패스워드를 입력하면 LSA 서브 시스템이 인증 정보를 받아 로컬 인증용인지 도메인 인증용인지 확인하고 커버로스 프로토콜을 이용하여 도메인 컨트롤러에 인증 요청
        • 도메인 컨트롤러는 인증 정보를 확인하여 접속하고자 하는 사용자에게 접근 토큰을 부여하고 해당 권한으로 프로세스 실행
      4. SAM 파일 접근통제 설정(시스템 취약점 분석, 평가 항목)
        • Administrators 및 System 그룹 외에는 SAM 파일에 대한 접근 제한
        • 불필요한 그룹 및 계정에 대해서 권한 제거
    2. 윈도우 보안 식별자(SID)
      1. 개요
        • 윈도우의 각 사용자나 그룹에 부여되는 고유한 식별 번호
        • 사용자가 로그인을 수행하면 접근 토근이 생성되며, 이에는 로그인한 사용자와 그 사용자가 속한 모든 작업 그룹들에 관한 SID 정보가 담겨있음
        • 접근 토근의 사본은 그 사용자에 의해 시작된 모든 프로세스에 할당됨
        • SAM 파일에 SID 정보가 저장되어 있음
      2. SID 구조
        • S-1-5-21-4243233100-3174512425-4165118588-500
        • S-1 — 윈도우 시스템
        • 5-21 — 시스템이 도메인 컨트롤러이거나 단독 시스템(stand-alone)임
        • 4243233100-3174512425-4165118588 — 해당 시스템만의 고유한 식별자
        • 사용자 식별자
          • 500 — 관리자
          • 501 — 게스트
          • 1000 이상 — 일반 사용자
    3. 윈도우 인증 구조
      1. 개요
        • Challenge & Response 방식
          • 인증 요청
          • Challenge 값 생성 및 전송
          • Response 값 생성 및 전송
          • Response 값 확인 및 인증 성공
      2. 인증 알고리즘
        • LM(Lan Manager) 해시 — 윈도우 2000, XP의 기본 알고리즘으로 구조적으로 취약한 알고리즘
        • NTLM 해시 — LM 해시에 MD4 해시가 추가된 형태
        • NTLMv2 해시
          • 윈도우 비스타 이후 윈도우 시스템의 기본 인증 프로토콜
          • 기존 인증 알고리즘과 다른 알고리즘으로 해시값을 생성하며 현재까지 복잡도가 충분하여 크래킹 어려움
      3. Lan Manger 인증 수준(시스템 취약점 분석, 평가 항목)
        • 네트워크를 통한 파일 및 프론터 공유 등과 같은 작업 시 인증을 담당하는 서비스
        • Lan Manager 인증 수준 설정을 통해 네트워크 로그온에 사용할 Challenge/Response 인증 프로토콜을 결정하면, 이 설정은 클라이언트가 사용하는 인증 프로토콜 수준, 협상된 세션 보안 수준 및 서버가 사용하는 인증 수준에 영향을 줌
    4. 패스워드 크래킹
      1. 사전 공격/사전 대입 공격
      2. 무차별 공격/무작위 대입 공격
      3. 혼합 공격
      4. 레인보우 테이블을 이용한 공격
        • 레인보우 테이블 — 하나의 패스워드에서 시작해 특정한 변이 함수를 이용해 여러 형태의 패스워드 생성
        • 해시 테이블과 Reduction 함수의 반복 수행을 통해 일치하는 해시값을 통해 패스워드를 찾아내는 방식
    5. UNIX/Linux 기본 학습
    6. 시스템 기본
      1. 사용자 파일
        • passwd 파일
      2. 그룹 정보
        • group 파일
          • /etc/group
        • 사용자 ID와 사용자가 속한 그룹 ID 정보 확인
        • 사용자 패스워드 변경
      3. 입출력 재지정 기능
        • 파일로 재지정
        • '>' — overwrite
        • '>>' — append
      4. 파이프 기능
        • 프로세스의 표준 출력을 다른 프로세스의 표준 입력으로 전달
      5. 특수 문자
          • — 임의의 0개 이상 문자 대체
        • ? — 1개 문자 대체
    7. 파일 시스템 응용
      1. 파일 시스템 개요
        • 개요
          • 물리적인 저장 장치에 파일을 생성, 저장, 관리하기 위한 논리적인 자료구조
          • 물리적인 저장 장치는 논리적인 파티션으로 나누어지며, 파티션별로 고유한 파일 시스템을 생성
        • 파일 시스템 구성
          • 부트 블록 — 운영체제를 부팅하거나 초기화하기 위한 부트스트랩 코드를 담고 있는 블록
          • 슈퍼 블록 — 파일 시스템을 관리하기 위한 정보를 담고 있는 블록
          • 아이노드 리스트
            • inode number — 파일 시스템 내에서 해당 파일을 식별하기 위한 고유 식별자
            • 파일 타입 — 일반 파일, 디렉터리, 장치 파일 등 파일 유형
            • 접근 권한 — 파일에 대한 접근 권한
            • link count — 해당 inode를 참조하는 링크 개수
            • 소유자
            • 소유 그룹
            • 파일 크기
            • MAC Time — Last Modification Time, Last Access Time, Last Change Time
            • Block index — Data block에 저장된 파일 데이터에 대한 인덱스 정보
            • 특정 파일의 inode 정보는 stat 명령으로 확인
            • 파일명 없음
          • Data block — 실제 파일이 저장되는 블록. 고정 크기 블록들로 이루어짐
      2. 파일 시스템과 링크 파일
        • 개요
          • -s — 심볼릭 링크 생성
          • 하드 링크 — 파일만 가능
        • 하드 링크
          • 기존 파일과 동일한 inode number를 가지는 파일 생성
          • 동일 파일 시스템 내에서만 가능
          • 링크 카운트가 0이 되었을 때 해당 파일의 inode 정보 및 데이터가 삭제
        • 심볼릭 링크
          • 원본 파일에 대한 파일 경로를 파일 내용으로 하는 새로운 파일을 생성하여 접근하는 방식
          • 파일 경로를 기반으로 하여 파일 시스템에 제한이 없고 디렉터리도 가능
          • 원본 파일이 삭제되거나 이동하게 되면 해당 경로가 바뀌어 심볼릭 링크 파일은 링크가 끊어짐
      3. 디렉터리 관리
        • 파일의 종류
          • 일반 파일
          • 디렉터리
          • 특수 파일
            • 프로세스간 통신 목적의 특수 파일 — 파이프, 소켓 등
            • 디스크, 프린터, 터미널, 키보드 등의 입출력 장치를 사용하기 위한 장치 파일: 블록 단위로 입출력하는 블록 장치 파일(버퍼링)과 문자 단위로 입출력하는 문자 장치 파일(비 버퍼링)로 굿분
        • 디렉터리 내용 출력(ls)
          • 파일명과 해당 파일의 inode number 정보만 가지고 있음
          • -l — 리스트 형태로 정보 자세히
            • 파일 종류 및 접근 권한
            • 하드 링크 개수
            • 소유자
            • 소유 그룹
            • 파일 크기
            • 최종 변경 일시
            • 파일명
          • -R — 하위 디렉터리에 있는 내용까지
          • -F — 파일명 끝에 파일 종류를 기호로 보여줌
          • -i — 지정된 inode number
          • 파일 종류
              • 일반 파일
            • d
            • b — 블록 장치 파일
            • c — 문자 장치 파일
            • l — 심볼릭 링크 파일
            • p — 이름 있는 파이프
            • s — 유닉스 도메인 소켓
        • cd
        • mkdir
          • -p — 계층 구조를 갖는 디렉터리를 모두 생성
        • rmdir
          • 삭제할 디렉터리에 파일이나 하위 디렉터리가 없어야 함
          • -p — 계층 구조를 갖는 디렉터리를 모두 삭제
      4. 파일 권한 관리
        • chmod
          • -R — 하위 디렉터리와 파일의 권한까지 변경
        • chown/chgrp
          • -R
          • -h — 심볼릭 링크 파일 자체의 소유자나 소유 그룹 변경
          • root만 가능
          • chown 소유자:소유 그룹
        • umask
          • 파일 또는 디렉터리 생성 시 접근 권한을 설정하기 위해 사용되는 값
      5. find
        • 개요
        • 입력 문법
          • -name
          • -type
          • -user
          • -group
          • -size
          • -perm mode — 검색할 파일의 접근 권한 지정
          • -atime [+-n]
          • -ctime
          • -mtime
          • -exec 명령어 — 검색한 파일에 대해 추가적인 명령 실행
          • -a — AND
          • -o — OR
          • ! — NOT
        • 기본 사용법
          • 연산의 결과를 하나의 단위로 평가하기 위해 소괄호 사용 — 소괄호 앞에 \ 추가
          • {} — 검색 결과 파일을 -exec 명령의 인수로 전달
          • \ ; — 명령의 끝
          • 소유자나 소유 그룹이 존재하지 않는 파일로 인해 위협 발생 가능
        • MAC 타임 관련 검색
          • -10 — 파일의 마지막 수정일이 10일 미만
          • +10 — 파일의 마지막 수정일이 10일 초과
          • find / -type f -mtime 10 -exec ls -al {} \ ; — 침해 사고 발생 시 무결성 검증
        • 접근 권한 관련 검색
          • -perm [-]mode에서 -가 없으면 정확히 일치하는 파일, 있으면 그 이상
        • 크기 관련 검색
          • -size [+-]n단위
          • 단위 — b(blocks, default), c(bytes), k, M, G 등
    8. 프로세스 응용
      1. 프로세스 개요
        • 개요
          • 프로세스가 생성되면 커널은 프로세스별로 관리 정보를 담고 있는 PCB를 생성함
            • 프로세스 번호 — PID, PPID 등
            • 프로그램 카운터 — 문맥 교환 발생 시 실행할 명령어의 위치값 저장
            • 레지스터 저장 영역 — 문맥 교환 발생 시 현재 프로세스의 실행 상태 정보 저장
            • 프로세스 상태 — 프로세스의 현재 상태 정보 저장
            • 메모리 정보 — 프로세스가 사용하는 메모리(Segment 또는 Page 테이블) 정보
          • 프로세스가 생성되면 프로세스별로 오픈한 파일을 관리하기 위한 파일 디스크립터 테이블(FDT)이 생성됨
            • STDIN, STDOUT, STDERR
            • 파일 디스크립터 — 프로세스 내에서 오픈한 각각의 파일을 식별하기 위한 양의 정수값
          • System open-file table — 커널이 시스템 내에서 여러 프로세스에 의해 오픈된 파일을 관리하기 위한 자료구조
            • open_mode — 파일의 읽기/쓰기 모드
            • offset — 파일 I/O를 수행하기 위한 현재 위치값
            • reference_count — 해당 파일의 참조 개수. 파일 복제 시 증가
            • Active vnode table — 해당 파일의 inode 정보를 가지고 있는 일종의 캐시 역할
        • 프로세스 기본 조건
          • 모든 프로세스는 부모 프로세스를 가짐
            • 자식 프로세스가 살아있는 상태에서 부모 프로세스가 종료되면 자식 프로세스는 고아 프로세스가 되며, 이 경우 대리모 프로세스(PID 1)가 부모 역할 수행
          • 프로세스 종료 시 자신의 종료 상태 정보를 부모 프로세스에 반환해야 정상적으로 소멸할 수 있음
            • 종료 상태 정보 — PID, Exit Code, CPU 사용 시간 등
            • 상태 정보 필드가 Z로 설정, 명령어 이름 필드(CMD 필드)에 defunct 표시 추가
            • 제거 방법 — 좀비 프로세스의 부모 프로세스를 종료시키거나 시스템을 재기동하여 커널 정보 초기화
        • 프로그램 실행 과정
          • 프로세스 생성과 동시에 프로세스 그룹도 생성
            • 터미널 제어권 — 터미널로부터 입력되는 데이터와 터미널로부터 발생하는 시그널에 대한 제어권
            • 터미널과 연결되어 세션이 생성되면, 해당 세션 내에서는 하나의 포그라운드 그룹과 하나 이상의 백 그라운드 프로세스 그룹 생성
        • 프로세스 관련 식별자
          • PID
          • PPID
          • PGID — 해당 프로세스 그룹의 리더 프로세스의 PID가 PGID로 설정
          • SID
            • 세션 — 터미널과의 논리적인 연결 상태
            • 해당 세션의 리더 프로세스(일반적으로 로그인 셸) PID
      2. ps
        • -f — f 형식으로 프로세스 정보 출력
          • UID
          • PID
          • PPID
          • STIME — 월 일 또는 시:분:초
          • TTY — 프로세스와 연결된 타입(?는 제어 터미널에 연결되어 있지 않음을 의미)
          • TIME — CPU 사용 시간(시:분:초)
          • CMD — 명령어 이름
        • -l — l 형식으로 프로세스 정보 출력
          • S — 프로세스의 현재 상태 정보
            • Z
            • R — CPU를 점유하기 위해 대기 중인 상태거나 실행 중인 상태
            • S — 인터럽트 가능한 Sleep 상태
            • D — 인터럽트 불가능한 Sleep 상태(일반적으로 IO 대기 중 상태)
            • T — 정지된 상태(Stopped)
          • PRI — 프로세스의 우선순위(낮을수록 우선순위 높음)
          • SZ — 프로세스가 차지하는 메모리 크기(Kbyte)
          • WCHAN — Sleep 상태의 프로세스가 기다리는 커널 함수명
          • CMD
        • -e — 현재 시스템에서 동작 중인 모든 프로세스 정보 출력. 생략 시 현재 셸에서 실행하여 동작 중인 프로세스 정보 출력
      3. 프로세스 간 통신(시그널)
        • 시그널 — 유닉스/리눅스 시스템에서 지원하는 프로세스 간 통신 기법(IPC) 중 하나로 커널 또는 프로세스가 약속된 신호를 전달하여 통신하는 목적으로 사용
        • 에러 상황, 외부 상황, 이벤트 발생, 인위적 발생 등으로 시그널 발생
        • kill [-signal_number | -signal_name] PID
        • -l — 시스템에서 지원하는 시그널 목록 출력
        • 시그널 번호(이름) 생략 시 SIGTERM이 디폴트로 발생
        • 리눅스(RedHat 기준) 시스템에서 지원하는 주요 시그널
          • SIGINT(2)
            • ‘Ctrl + C’ 조합키를 누르면 포그라운드 프로세스 그룹 내 모든 프로세스에 전달됨
            • 디폴트로 종료
          • SIGKILL(9)
            • 무시하거나 임의로 처리할 수 없는 시그널(관리 목적의 시그널)
            • 무조건 종료
          • SIGSTOP(19)
            • 무시하거나 임의로 처리할 수 없는 시그널(관리 목적의 시그널)
            • 무조건 정지
          • SIGTERM(15) — 디폴트로 종료
          • SIGFPE(8)
            • 커널에 의해 발생
            • 산술 연산 에러가 발생한 프로세스에 전달됨
          • SIGHLD(17) — 프로세스 종료 시 부모 프로세스에 전달
          • SIGALRM(14) — alarm() 함수를 통해 설정한 타이머에 의해 발생
          • SIGQUIT(3)
            • ‘Ctrl + \’ 조합키를 누르면 포그라운드 프로세스 내 모든 프로세스에 전달됨
            • 디폴트로 종료하며 코어 덤프 생성
          • SIGSEGV(11)
            • 커널에 의해 발생
            • 메모리 참조 오류가 발생한 프로세스에 전달
          • SIGHUP(1) — 터미널 연결이 끊어진 프로세스에 전달
          • SIGKILL, SIGSTOP은 임의로 무시하거나 시그너 핸들러로 처리할 수 없음