🛡️ 정보보안기사 | 시스템보안 핵심 정리 (1-2편)
버퍼 오버플로우 심화 · 리눅스 파일 구조 · PAM · TCP Wrapper · 로그 파일 · 악성코드 심화 · 인증 기술까지
1-1편에 이어 시험 빈출 59문항을 주제별로 완벽 정리합니다.
📋 목차
- 1. 버퍼 오버플로우 심화 (취약 함수 · 대응)
- 2. 리눅스 파일 구조 심화 (passwd · shadow · umask · SUID)
- 3. PAM · TCP Wrapper
- 4. 리눅스 로그 파일 완벽 정리
- 5. 윈도우 감사 정책 심화
- 6. 악성코드 심화 (바이러스 · 드로퍼 · 백도어 · 제로데이)
- 7. 인증 기술 (OTP · Kerberos · MFA · 생체인증)
- 8. 보안 관리 개념 (ISMS · 허니팟 · 보안 관제)
- 9. 시험 출제 포인트 최종 요약
1. 버퍼 오버플로우 심화
🔧 현직자 실무 포인트
시큐어 코딩 점검 시 strcpy, gets 같은 취약 함수 사용 여부가 필수 체크 항목입니다. SAST(정적 분석) 도구는 이런 함수를 자동으로 탐지합니다. 스택과 힙 오버플로우의 차이를 명확히 알아야 CVE 분석도 가능합니다.
| 유형 | 공격 대상 | 변조 목표 |
|---|---|---|
| 스택 버퍼 오버플로우 | 스택 영역 | 복귀(리턴) 주소 변조 |
| 힙 버퍼 오버플로우 | 힙 영역 | 함수 주소·데이터 변조 |
| 취약 함수 | 안전한 대체 함수 | 취약한 이유 |
|---|---|---|
| strcpy | strncpy, strcpy_s | 복사 길이 검사 없음 |
| gets | gets_s, fgets | 입력 길이 제한 없음 |
| sprintf | snprintf | 출력 버퍼 크기 검사 없음 |
🎯 시험 출제 포인트
- 스택 오버플로우 = 복귀 주소 변조 / 힙 오버플로우 = 함수 주소·데이터 변조
- strcpy 대체: strncpy, strcpy_s
- gets 대체: gets_s, fgets
- 심볼릭 링크 생성: ln -s
- 포맷 스트링 3대 위협: 프로세스 종료 / 메모리 읽기 / 메모리 쓰기
2. 리눅스 파일 구조 심화
🔧 현직자 실무 포인트
서버 보안 점검 시 /etc/passwd에 UID 0 계정이 root 외에 존재하면 즉시 침해 의심입니다. shadow 파일 권한이 400을 초과하거나 other 읽기 권한이 있으면 취약입니다. umask 설정은 서버 초기 세팅 시 반드시 확인합니다.
| 파일 | /etc/passwd 필드 순서 | 권장 권한 |
|---|---|---|
| /etc/passwd | 계정명 : 패스워드(x) : UID : GID : 설명 : 홈 디렉터리 : 로그인 쉘 | 644 |
| /etc/shadow | $알고리즘ID $Salt $해시값 형식으로 암호화된 패스워드 저장 | 400 이하 |
📐 umask 계산법
파일 기본 권한 666 − umask 값 = 최종 파일 권한
디렉터리 기본 권한 777 − umask 값 = 최종 디렉터리 권한
예시) umask 022 → 파일: 666−022 = 644 / 디렉터리: 777−022 = 755
| 특수 권한 | 숫자 값 | 권한 표시 | 특징 |
|---|---|---|---|
| SUID | 4000 | 소유자 x → s | 파일 소유자 권한으로 실행 |
| SGID | 2000 | 소유그룹 x → s | 소유그룹 권한으로 실행 |
| Sticky Bit | 1000 | other x → t | 소유자와 root만 삭제 가능. /tmp 대표적 |
| 명령어 | 기능 | 비고 |
|---|---|---|
| chown | 파일 소유자 변경 | chown root 파일명 |
| chgrp | 파일 소유 그룹 변경 | chgrp sec 파일명 |
| umask | 파일 생성 시 제거할 권한 지정 | 기본값 022 권장 |
| /etc/services | 서비스명↔포트번호·프로토콜 매핑 | 서비스 포트 참조 파일 |
🎯 시험 출제 포인트
- passwd 필드: 계정명:PW:UID:GID:설명:홈:쉘
- passwd 권한: 644 / shadow 권한: 400 이하
- shadow 형식: $알고리즘ID$Salt$해시값
- umask 022 → 파일 644 / 디렉터리 755
- SUID=4000 / SGID=2000 / Sticky Bit=1000
- Sticky Bit: 소유자와 root만 삭제 가능
- SUID 탐색: find / -perm -4000 -print
3. PAM · TCP Wrapper
🔧 현직자 실무 포인트
PAM은 SSH, sudo, su 등 리눅스 인증이 필요한 모든 서비스에서 사용합니다. hosts.allow/deny는 간단하지만 강력한 접근 제어 수단입니다. 현업에서는 iptables나 firewalld로 대체되는 경우가 많지만 시험과 보안 점검에서는 필수 개념입니다.
| PAM 모듈 유형 | 역할 |
|---|---|
| auth | 패스워드 검증 — 사용자가 본인임을 확인 |
| account | 계정 유효성 검증 — 계정 만료·잠금 여부 확인 |
| password | 패스워드 변경 — 새 패스워드 갱신 처리 |
| session | 인증 전후 작업 — 로그 기록, 환경 설정 등 |
| PAM 제어 방식 | 동작 | 핵심 키워드 |
|---|---|---|
| requisite | 실패 시 즉시 인증 거부, 이후 모듈 실행 안 함 | 즉시 거부 |
| required | 실패해도 모든 모듈 수행 후 마지막에 거부 | 마지막에 거부 |
| sufficient | 성공하면 즉시 허용, 이후 모듈 실행 안 함 | 즉시 허용 |
| optional | 결과에 관계없이 계속 진행 | 선택적 |
| TCP Wrapper 파일 | 역할 |
|---|---|
| hosts.allow | 접근 허용 호스트 등록. 먼저 확인 |
| hosts.deny | 접근 거부 호스트 등록. allow에 없으면 확인 |
🎯 시험 출제 포인트
- PAM = Pluggable Authentication Module
- PAM 4대 모듈: auth / account / password / session
- requisite = 즉시 거부 / required = 마지막에 거부 / sufficient = 즉시 허용
- TCP Wrapper 설정 파일: hosts.allow (먼저 확인) → hosts.deny
- TCP Wrapper 적용 데몬: tcpd
4. 리눅스 로그 파일 완벽 정리
🔧 현직자 실무 포인트
침해사고 분석 시 wtmp(last), btmp(lastb), lastlog, acct 파일을 순서대로 확인합니다. 공격자가 .bash_history를 삭제해도 acct/pacct로 명령어 추적이 가능합니다. MAC Time(mtime·atime·ctime)은 파일 변조 여부 판단의 핵심 지표입니다.
| 로그 파일 | 저장 내용 | 확인 명령어 | 파일 유형 |
|---|---|---|---|
| wtmp | 로그인·로그아웃·부팅·셧다운 히스토리 | last | 바이너리 |
| utmp | 현재 로그인한 사용자 정보 | who, w | 바이너리 |
| btmp | 실패한 로그인 시도 기록 | lastb | 바이너리 |
| lastlog | 각 계정의 가장 최근 성공 로그인 기록 | lastlog | 바이너리 |
| acct / pacct | 사용자가 실행한 명령어 내역 | lastcomm | 바이너리 |
| syslog | 시스템 전반 메시지 (커널·데몬) | cat /var/log/syslog | 텍스트 |
| MAC Time | 의미 | 변경 시점 |
|---|---|---|
| mtime | 수정 시간 (Modify) | 파일 내용이 변경될 때 |
| atime | 접근 시간 (Access) | 파일을 읽거나 실행할 때 |
| ctime | 변경 시간 (Change) | 파일 속성(권한·소유자 등)이 변경될 때 |
🔍 이벤트 로그 크기 계산 공식
단일 이벤트 크기 × 하루 발생량 × 보관 기간 = 필요 용량
예) 500byte × 1,000건 × 30일 = 15,000,000byte ≒ 약 15MB
윈도우 이벤트 로그 크기 설정: eventvwr.msc → 해당 로그 속성 → 최대 로그 크기
🎯 시험 출제 포인트
- wtmp = 로그인·로그아웃 히스토리 → last
- utmp = 현재 로그인 사용자 → who, w
- btmp = 실패한 로그인 → lastb
- lastlog = 최근 성공 로그인 → lastlog
- acct/pacct = 명령어 내역 → lastcomm
- MAC Time: mtime(내용수정) / atime(접근) / ctime(속성변경)
5. 윈도우 감사 정책 심화
| 감사 정책 | 기록 내용 |
|---|---|
| 로그온 이벤트 | 로컬 계정 로그온·로그오프 성공·실패 (로컬 인증) |
| 계정 로그온 이벤트 | 도메인 컨트롤러에서 도메인 계정 인증 |
| 정책 변경 | 감사 정책 자체의 변경 성공·실패 |
| 개체 액세스 | 파일·디렉터리·레지스트리·프린터 접근 성공·실패 |
| 시스템 이벤트 | 시스템 시작·종료, 보안 로그 영향 이벤트 |
| 프로세스 추적 | 프로세스 생성·종료·핸들 복제 |
| 계정 관리 | 계정 생성·삭제·변경 |
💡 로그온 이벤트 vs 계정 로그온 이벤트 구별법
로그온 이벤트 = 로컬 컴퓨터에서 직접 로그인하는 경우 (로컬 계정)
계정 로그온 이벤트 = 도메인 컨트롤러가 인증을 처리하는 경우 (도메인 계정)
시험에서 자주 혼동을 유발하는 문제입니다. 로컬 vs 도메인으로 구분하세요.
🔧 불필요한 RPC 서비스 — 차단 대상
sadmind — 원격 시스템 관리·모니터링 데몬
rstatd — CPU·메모리 사용 통계 제공 데몬
walld — 네트워크 전체 사용자에게 메시지 전송 데몬
불필요한 RPC 서비스는 공격 표면을 넓히므로 반드시 차단해야 합니다.
🎯 시험 출제 포인트
- 로그온 이벤트 = 로컬 계정 로그온 / 계정 로그온 이벤트 = 도메인 계정 인증
- 개체 액세스 = 파일·레지스트리·프린터 접근 기록
- 정책 변경 = 감사 정책 변경 자체 기록
- 이벤트 뷰어 실행: eventvwr.msc
- 세션 타임아웃 권장: 600초(10분) 이하
- root 원격 접속 차단, su 명령으로 제한적 접근만 허용
6. 악성코드 심화
🎯 악성코드 비교 — 시험 핵심 구별
- 바이러스 = 숙주 파일 필요, 사용자 실행 필요, 자가 전파 불가
- 웜 = 숙주 불필요, 네트워크로 자가 전파
- 드로퍼 = 자체 악성 행위 없음, 다른 악성코드를 설치
- 백도어 = 인증 우회, 재진입용 비밀 통로
- 제로데이 = 패치 없는 취약점 공격 → 기술적 방어 어려움
- 허니팟 = 공격자 유인·분석 목적의 가짜 시스템
7. 인증 기술 (OTP · Kerberos · MFA · 생체인증)
🔧 현직자 실무 포인트
기업 환경에서 MFA는 이제 사실상 필수입니다. OTP(TOTP/HOTP), 스마트카드, 생체인증 조합이 일반적입니다. 생체인증의 FAR/FRR/EER은 바이오메트릭 시스템 성능 지표로 조달·도입 시 요구사항에 포함됩니다.
| 인증 기술 | 설명 |
|---|---|
| OTP | One Time Password. 일회용 패스워드. 재사용 공격(리플레이 공격) 방어 |
| Kerberos | 티켓 기반 네트워크 인증 프로토콜. 제3자 신뢰기관(AS)이 티켓 발급 |
| MFA | 두 가지 이상 인증 요소 조합. 지식·소유·생체 요소 중 2개 이상 사용 |
| 생체인증 오류율 | 의미 | 관계 |
|---|---|---|
| FAR | False Acceptance Rate 타인을 본인으로 잘못 수락하는 비율 |
FAR↓ → FRR↑ FAR↑ → FRR↓ 두 값이 같아지는 지점 = EER(등오류율) |
| FRR | False Rejection Rate 본인을 타인으로 잘못 거부하는 비율 |
|
| EER | Equal Error Rate FAR = FRR이 되는 지점. 시스템 성능 지표 |
🔐 MFA 인증 요소 3가지
지식 요소 (Something you know) — 패스워드, PIN
소유 요소 (Something you have) — OTP 토큰, 스마트카드
생체 요소 (Something you are) — 지문, 홍채, 얼굴
🎯 시험 출제 포인트
- OTP = One Time Password, 리플레이 공격 방어
- Kerberos = 티켓 기반 네트워크 인증, AS가 티켓 발급
- MFA = 인증 요소 2가지 이상 조합
- FAR = 타인 수락률 / FRR = 본인 거부률 / EER = 두 값이 같아지는 지점
- EER이 낮을수록 → 더 정확한 생체인증 시스템
8. 보안 관리 개념
| 개념 | 설명 |
|---|---|
| ISMS | Information Security Management System. 정보보호 관리체계. 국내는 ISMS-P로 통합(개인정보 보호 포함) |
| 취약점 스캐너 | 자동화 도구로 취약점 탐지. 빠르지만 오탐(False Positive) 多 |
| 침투 테스트 | 사람이 직접 실제 공격 시도. 정확하지만 시간 소요 |
| 보안 관제 | 보안 장비·시스템 로그를 실시간 모니터링, 침해사고 탐지·대응. CERT·SOC에서 수행 |
| 사전 공격 | Dictionary Attack. 사전 파일의 단어 조합 이용. 브루트 포스보다 빠르지만 사전에 없는 PW 불가 |
🎯 시험 출제 포인트
- ISMS = 정보보호 관리체계 / 국내: ISMS-P (개인정보 포함)
- 취약점 스캐너 = 자동·빠름·오탐 多 / 침투 테스트 = 수동·정확·시간 多
- 보안 관제 = 실시간 모니터링 + 침해사고 탐지·대응 → CERT·SOC
- 사전 공격 = Dictionary Attack
- Clark-Wilson 모델 = 무결성 보장, 인증된 프로그램을 통해서만 데이터 변경 허용
9. 📌 1-2편 최종 시험 출제 포인트 총정리
🎯 이것만 외워도 절반은 맞는다
- strcpy 대체: strncpy/strcpy_s / gets 대체: gets_s/fgets
- 심볼릭 링크 생성: ln -s
- passwd 권한 644 / shadow 권한 400 이하
- shadow 형식: $ID$Salt$Hash
- umask 022 → 파일 644 / 디렉터리 755
- SUID=4000(s) / SGID=2000(s) / Sticky=1000(t)
- PAM 4대 모듈: auth/account/password/session
- requisite=즉시 거부 / required=마지막 거부 / sufficient=즉시 허용
- TCP Wrapper: hosts.allow → hosts.deny 순으로 확인
- wtmp→last / utmp→who,w / btmp→lastb / acct→lastcomm
- MAC Time: mtime=내용수정 / atime=접근 / ctime=속성변경
- FAR=타인 수락 / FRR=본인 거부 / EER=두 값이 같아지는 지점
- OTP = 리플레이 공격 방어 / Kerberos = 티켓 기반 인증
- 드로퍼 = 악성코드 설치 / 백도어 = 인증 우회 통로 / 제로데이 = 패치 없는 공격
- ISMS = 정보보호 관리체계 / 국내 = ISMS-P

