과목 01 · 필기 20문항

시스템 보안

핵심 질문: 누가, 어떤 권한으로, 무엇을 실행·접근하는가? OS가 그 경계를 만드는 원리를 이해하면 명령·윈도우·메모리 문항이 한줄기로 연결됩니다.

범위 체크: 정보시스템 구성 · OS 구조/프로세스/메모리/파일시스템 · 계정/인증/권한/로그 · Linux/Windows · 악성코드/취약점/패치/백업 · 웹/DB/메일/DNS 서버 · 가상화/컨테이너/클라우드 · 사고대응/포렌식

1. 한눈에 흐름

자원(계정·파일·메모리·프로세스) │ ▼ OS가 권한·격리로 경계를 만듦 │ ┌────┴────┐ │ │ 리눅스 실무 윈도우 구성 (명령·권한) (SAM/LSA/SRM) │ ▼ 공격: 경계를 넘으려 함 (오버플로·권한상승) 방어: NX/ASLR/카나리/패치/최소권한 │ ▼ 가상화·컨테이너 = 격리 단위가 달라짐
원리: 보안은 “절대 안전”이 아니라 경계다. 프로세스마다 주소 공간을 나누고, 파일마다 권한을 두고, 계정마다 할 수 있는 일을 제한한다. 시험 문항은 그 경계가 어디인지, 무엇을 넘으면 위험한지를 묻는다.

2. OS가 하는 일 (기반)

프로세스와 권한

프로그램(파일)이 실행되면 프로세스가 됩니다. 각 프로세스는 보통 자신만의 가상 주소 공간을 갖고, 다른 프로세스 메모리를 마음대로 못 봅니다.

아파트 호실 = 프로세스. 내 방에만 열쇠가 있다. 커널(관리실)만 전체 건물에 들어갈 수 있다.
원리: 일반 실행은 “실행자 권한”. SUID는 예외로 “파일 주인 권한”. 시험은 이 예외를 헷갈리게 한다.

커널 · 프로세스 · 메모리 · 파일시스템

축핵심 구조보안 관점
커널/사용자 모드특권 명령과 하드웨어 접근은 커널이 중재시스템 호출 경계와 최소 특권
프로세스생성→준비→실행→대기→종료, 스케줄러가 CPU 배분권한·PID·부모자식·열린 자원 추적
가상메모리페이지 단위 주소 변환, 스왑·페이지 교체프로세스 격리, W^X/NX, 민감정보 잔존
파일시스템디렉터리·inode/MFT·권한·저널소유권, ACL, 무결성, 삭제 후 열린 파일
I/O장치 드라이버·버퍼·인터럽트드라이버 취약점은 높은 권한으로 이어질 수 있음

교착상태 조건은 상호배제·점유대기·비선점·환형대기입니다. 하나를 깨면 예방할 수 있습니다. 메모리의 내부 단편화는 할당 블록 안의 낭비, 외부 단편화는 빈 공간이 흩어진 상태입니다.

파일 권한 · ACL · sudo

rwx 세 자리(소유자·그룹·기타)는 기본 문. ACL은 “특정 사람만 더 열어 주기” 같은 세분 권한입니다. mask는 그 세분 권한의 상한이지, 보통 파일 소유자(user::)까지 깎지 않습니다.

sudo는 root 전체를 주기보다 필요한 명령만 위임하고 기록을 남기는 도구입니다. NOPASSWD는 편하지만 계정 탈취 시 바로 악용되므로 범위를 좁혀야 합니다.

3. 리눅스 실무 명령 — “무엇을 보려는가”

명령 문항의 함정은 이름 비슷한 도구를 섞는 것입니다. 보고 싶은 대상으로 고르면 됩니다.

보고 싶은 것도구한 줄 원리
프로세스·부하top / ps누가 CPU·메모리를 쓰는지
디스크 용량df파일시스템(파티션) 여유
디렉터리 용량du폴더별 합산
디스크 I/Oiostat장치 읽기/쓰기 통계
열린 파일·포트lsof프로세스 ↔ 파일/소켓 연결
포트·연결ss / netstat누가 어떤 포트를 듣는지
자원 통계vmstatCPU·메모리·스왑 — 포트 매핑 아님
원리: lsof -i :80은 “80번을 연 프로세스”를 찾는 것. df/vmstat/chmod는 각각 용량·통계·권한이라 포트 점유자와 무관하다.

4. 윈도우 — SAM · LSA · SRM

세 이름은 “같은 파일”이 아니라 역할이 다른 구성 요소입니다.

구성풀네임하는 일
SAMSecurity Accounts Manager로컬 계정·암호 해시 등 저장
LSALocal Security Authority로그온·보안 정책 등 인증·정책 처리
SRMSecurity Reference Monitor토큰 vs 보안설명자로 접근 허용/거부
도서관: SAM=회원명부, LSA=출입 데스크, SRM=열람실 문이 “이 카드로 이 책 되나?” 검사.

EFS는 파일 단위 암호화(사용자 키). 디스크를 떼어 가도 키가 없으면 자동 복호화되지 않습니다. BitLocker는 볼륨(디스크) 전체 쪽에 가깝습니다.

도메인 환경의 계정·인증 중심은 AD(Active Directory) 쪽입니다. 로컬 SAM과 역할을 섞지 마세요.

5. 메모리 공격과 방어 (심층 방어)

버퍼 오버플로의 고전 흐름: 입력이 스택을 덮어 → 반환 주소를 바꿔 → 공격자 코드로 점프.

방어막는 단계한계
NX/DEP데이터 영역에서 코드 실행 금지기존 코드 재사용(ROP)은 남음
ASLR주소 배치를 매번 바꿈주소가 새면 우회 쉬워짐
PIE실행 파일도 재배치 → ASLR이 코드까지스택 변조 “탐지”는 안 함
카나리반환주소 앞 값 변조 탐지다른 경로 공격은 별개
RELROGOT 등 덮어쓰기 어렵게힙 버그 전부 차단은 아님
원리: NX는 “새 코드 주입”을 막는다. ROP / return-to-libc는 이미 실행 가능한 조각을 이어 쓰므로 NX만으로 “원천 불가”가 아니다. 그래서 ASLR·카나리 등과 같이 쓴다.

6. 가상화 · 컨테이너

VM은 게스트 OS(커널)까지 갖는 두꺼운 격리. 컨테이너는 보통 호스트 커널을 공유하는 가벼운 격리입니다.

원리: privileged + 호스트 루트 마운트는 컨테이너 탈출 시 호스트 장악으로 이어지기 쉽다. “컨테이너라서 안전”이 아니다.
구성핵심 위험기본 통제
하이퍼바이저/VMVM escape, 관리면 탈취, 이미지 오염관리망 분리, 패치, 템플릿 무결성, 스냅샷 접근통제
컨테이너공유 커널, 과도한 capability, 취약 이미지rootless, 최소 capability, 서명 이미지, 런타임 정책
클라우드공개 저장소, 과도한 IAM, 메타데이터·키 노출공유책임 확인, 최소권한, 구성 점검, 키·로그 중앙관리

7. 계정 · 인증 · 감사 운영

Linux 점검 연결: last/lastb(로그인), journalctl(systemd 로그), find(권한·파일), getfacl/setfacl(ACL), systemctl(서비스), rpm -V·패키지 서명(무결성).

Windows는 보안 로그·감사정책, UAC, 로컬/도메인 정책, 레지스트리, 서비스 계정, NTFS 권한을 함께 봅니다. 공유 권한과 NTFS 권한이 함께 적용될 때 실효 권한은 더 제한적인 결과가 됩니다.

8. 위협 · 취약점 · 패치 · 백업

위협특징대응 초점
바이러스/웜/트로이목마숙주 필요 / 자기 전파 / 정상 위장실행통제·패치·메일/웹 방어·격리
루트킷커널·도구를 변조해 흔적 은닉신뢰 가능한 외부 기준선·메모리/디스크 교차분석
랜섬웨어데이터 암호화·유출 협박최소권한, 망분리, 불변/오프라인 백업, 복구시험
취약점 악용미패치·오구성·약한 자격증명자산목록→우선순위→시험→패치→재점검
원리: 취약점 점수만 보지 말고 인터넷 노출·악용 여부·자산 중요도·보상통제를 함께 봅니다. 백업은 “있다”가 아니라 분리 보관과 실제 복구 성공으로 검증합니다.

9. 서버 보안 · 사고대응

서버주요 점검
웹불필요 메서드/디렉터리 목록 제거, 실행 권한·업로드 경로 분리, TLS, WAF/로그
DB업무별 계정·최소권한, 원격관리 제한, 중요정보 암호화, 쿼리·권한 변경 감사
메일오픈 릴레이 차단, 계정·첨부·스팸 통제, SPF/DKIM/DMARC, 전송 로그
DNS재귀 질의와 권한 서버 분리, zone transfer 제한, 캐시·응답률 보호, DNSSEC 검토

사고 대응은 준비 → 탐지/분석 → 격리 → 제거 → 복구 → 사후 개선입니다. 휘발성 증거(프로세스·연결·메모리)를 먼저 고려하고, 원본 보존·해시·인수인계 기록으로 증거 연속성을 지킵니다.

10. 헷갈림 짝

AB차이
좀비고아좀비=종료 미회수 / 고아=부모 없는 살아 있는 자식
SUIDSGID소유자 권한 vs 그룹 권한·상속
SAMAD로컬 계정 DB vs 도메인 디렉터리
NXROP주입 차단 vs 기존 코드 재사용
EFSBitLocker파일(사용자 키) vs 볼륨 암호에 가깝
lsofvmstat열린 객체 매핑 vs 자원 통계
패치하드닝알려진 결함 수정 vs 불필요 기능·권한 축소
스냅샷분리 백업빠른 복구 지점 vs 원 시스템 장애·랜섬에서 독립된 사본

11. 자가 체크

펼쳐서 답 확인
  1. 좀비에 kill -9가 안 통하는 이유는? → 이미 종료라 죽일 실행 주체가 없음. 부모 wait 필요.
  2. SUID의 핵심 한 줄? → 실행 시 파일 소유자 권한으로 동작.
  3. NX만으로 ROP가 불가능한가? → 아니오. 기존 코드 재사용.
  4. SAM과 LSA 차이는? → 저장소 vs 인증·정책 처리.
  5. 포트 80 점유 프로세스? → lsof -i :80 또는 ss.
  6. 컨테이너가 VM보다 위험한 공유 자원은? → 호스트 커널.
  7. 취약점 조치 우선순위의 네 축은? → 악용 가능성·노출·자산 영향·현재 통제.
  8. 백업 존재만으로 충분한가? → 아니오. 분리·불변성·복구시험 필요.