06 — 시스템 공격·악성코드·취약점 분석·하드닝

전체 요약 목차

A. 메모리 손상과 완화

버퍼 경계 밖 읽기는 정보 노출, 경계 밖 쓰기는 데이터·제어 정보 손상으로 이어질 수 있다. 두 경우 모두 오류·종료가 발생할 수 있으며, 코드 실행·권한 침해의 성립은 제어 가능한 메모리·프로세스 권한·ABI·방어 설정에 따른다. 포맷 문자열 취약점은 외부 입력을 출력 형식 명령으로 해석하는 데서 발생한다. CWE119, CWE134

방어중심 역할적용 조건·추가 관리
경계·길이 검증, 메모리 안전 구현잘못된 메모리 접근 원인길이 계산·네이티브 경계 등 구현 검토 필요
NX/DEP실행 불가로 표시된 메모리에서 코드 실행쓰기 권한·취약 코드 수정은 별도 관리
ASLR주소 예측의 신뢰성주소 유출·지원 여부·배치 엔트로피에 영향
스택 canary보호되는 스택 영역의 특정 덮어쓰기 탐지보호 대상 스택 덮어쓰기에 적용; 탐지 후 종료의 가용성 영향 관리
제어 흐름 보호허용하지 않은 간접 제어 이전적용 범위·빌드·런타임 조건 필요

방어기법 조합과 취약 코드 수정은 보완 관계다. 코드 재사용 공격은 이미 실행 가능한 코드 조각을 이용해 동작을 구성한다. Microsoft Exploit protection, CWE119의 심층방어 설명. TCP 상태·ARP 공격은 C07, 웹 인젝션은 C09에서 해당 원인과 방어를 연결한다.

B. 악성코드는 역할과 유입 축으로 구분한다

바이러스는 숙주에 붙어 복제하는 축, 웜은 자기복제·전파, 트로이목마는 정상처럼 위장해 유입되는 축이다. 트로이목마는 내려받기·백도어 등 여러 기능을 수행할 수 있고, 웜의 전파 경로와 악용 취약점은 구현에 따라 달라진다. CIA 피해는 실제 수행 행위로 판단한다. Microsoft 악성 소프트웨어 설명, Trojan, Worm

백도어는 정상 통제를 우회하는 접근 경로, 루트킷은 은닉, 프로세스 주입은 다른 실행 중 프로세스의 주소공간에서 코드를 실행하는 방식이다. 한 악성코드는 백도어·은닉·주입 기능을 함께 가질 수 있다. 사용자 수준·커널 수준 등 은닉 지점이 달라 관찰 도구의 신뢰 범위도 다르다. 프로세스의 정상 여부는 이름과 함께 경로·서명·실행 관계·행위를 확인한다. Microsoft Rootkit, MITRE 주입

bind/reverse의 비교는 누가 연결을 시작하는지의 구별이다. 외부에서 들어오는 연결을 제한해도 내부에서 시작하는 통신은 별도 정책·관찰 대상이다. reverse 연결의 성립은 외부 송신 정책과 중간 장비·목적지 조건에 달린다. 연결 시작 주체와 허용 경로를 중심으로 읽는다.

익스플로잇은 취약점 악용 수단이고 그 뒤의 악성 행위와 구분한다. drive-by는 웹 방문 과정에서의 침해 유입, watering hole은 표적이 방문하는 곳을 이용하는 표적화 방식이다. 침해 성립에는 취약한 클라이언트·실행 경로·사용자 행위 등의 조건이 관여한다. 대응은 웹 통신 정책과 클라이언트 패치·실행 통제를 함께 적용한다. Microsoft Exploit, MITRE Drive-by

랜섬웨어의 접근 방해·암호화와 유출 자료 공개 협박을 분리한다. 갈취에는 암호화와 자료 공개 협박 등 여러 방식이 있다. 백업은 가용성 복구를 지원하고 유출 대응은 기밀성 피해를 별도로 다룬다. CISA StopRansomware

파일은 대칭키로 암호화하고 그 키를 공격자 공개키로 보호하는 하이브리드 구조가 가능하다. 대칭키는 파일 처리, 공개키는 그 대칭키의 보호라는 역할을 맡는다. Microsoft의 2017-06-27 Petya 분석은 AES 키를 RSA 공개키로 보호하는 사례와 권한에 따라 다른 부팅 영역 동작을 설명한다. 이는 해당 일자·변종의 동작 사례이며, 다른 변종은 별도의 분석 결과에 따라 판단한다. 해당 일자 Microsoft 분석

APT는 자원·전문성을 바탕으로 장기간 목표를 추구하고 대응에 적응하는 위협의 관점이다. 목표 달성을 위해 피싱·취약점 악용 등 여러 기술을 조합할 수 있다. NIST APT 정의

C. 자격증명 공격

전수 탐색은 정한 후보 공간을 탐색, 사전 공격은 예상 후보 목록, 레인보우 테이블은 사전 계산을 재사용하는 시간·저장공간 절충으로 구별한다. 솔트는 같은 비밀번호의 저장값을 다르게 하고 사전 계산 재사용을 어렵게 하며 느린 비밀번호 해싱은 후보 검증 비용을 높인다. 자세한 저장 원리는 02장에서 설명한다.

credential stuffing은 다른 곳에서 유출된 계정·비밀번호 쌍 재사용, password spraying은 소수의 흔한 비밀번호를 여러 계정에 시도하는 방식이다. 온라인 시도에는 속도 제한·MFA·이상 징후 관찰을 적용한다. 오프라인 추측에는 솔트와 비용이 큰 비밀번호 해싱으로 후보 검증 비용을 높인다. IP 차단·CAPTCHA는 해당 공격 경로를 제한하는 보조 통제로 결합한다. OWASP Credential Stuffing

덤프는 저장소·메모리에서 자격증명 관련 자료를 추출, 크래킹은 후보 검증, 초기화는 인증 비밀 변경이라는 차이다. pwdump류는 자격증명 관련 검증 자료를 추출하는 도구로 이해하고, 비밀번호 원문 추측과 인증 우회는 각각의 성립 조건을 확인한다. MITRE OS Credential Dumping

D. 취약점·무결성 점검

Nmap은 호스트·포트·서비스 등을 관찰하는 도구이고 스캔 응답의 해석은 07장 A에 모았다. Kali Linux는 보안 감사·침투시험·분석 도구를 제공하는 Debian 기반 배포판이다. 필요한 도구·권한·허가 범위를 먼저 정하고 결과를 재확인한다. Kali 공식 소개

관리적 위협은 과다권한·불필요 노출·패치 누락·내부자 오용과 연결한다. 설정·패치·계정 회수는 05장, 조직 통제는 12장에서 설명한다. 백신·EDR·HIDS·무결성 검사·샌드박스는 관찰 대상과 기능을 기준으로 역할을 나눈다. 도입 시 검사 범위·권한·격리/차단 정책·업무 영향·오탐 처리와 운영 후 재점검을 연결한다. 비교는 11장 G/H에 모았다.

취약점 스캐너는 검사 범위·권한·규칙·시점에 따라 후보를 찾는다. 열린 포트는 대기 서비스를 식별하는 단서이며, 침해 여부는 탐지 범위와 서비스·행위 증거를 함께 분석해 판단한다. 휴리스틱·루트킷 탐지 결과는 다른 관찰과 확인해야 한다. 감염된 OS는 은닉 기능으로 출력을 왜곡할 수 있으므로 신뢰 가능한 수집 경로와 다른 관찰 결과를 교차 확인한다. 서명·정상 경로·행위·프로세스 관계·네트워크 맥락을 함께 본다.

신뢰할 수 있는 시점·출처로 기준선을 만들고 파일·설정의 변화를 비교한다. 변경은 승인 이력과 비교해 정상 업데이트와 조사 대상을 분류한다. 기준선의 신뢰성을 먼저 확보하는 것이 비교의 전제다. Tripwire류는 파일·설정의 무결성을 점검하는 역할로 이해한다. RPM 검증은 설치 파일과 RPM DB의 패키지 메타데이터를 비교하며 크기·다이제스트·권한·유형·소유자·그룹 등의 차이를 표시한다. 정상 설정 변경도 차이일 수 있고 DB가 신뢰 가능한지 또한 중요하다. 결과 표시와 사용 다이제스트는 RPM 판본의 명세에서 확인한다. RPM4.20 매뉴얼

find의 -perm은 파일 모드 비트를 검사한다. 실제 사용자의 접근 가능성은 사용자 신원·ACL 등 실효 권한 조건도 함께 확인한다. GNU Findutils Mode Bits

탐지 결과는 조사 입력, 격리 환경은 분석 중 영향을 제한하는 수단이다. 시스템 결함은 약점으로, 공격·자연재해 등은 위협 사건으로 읽고 C01의 위험관리 흐름에 연결한다.

E. 경쟁조건과 TOCTOU

경쟁조건은 공유 상태의 접근 순서와 동기화가 결과를 바꾸는 문제다. TOCTOU는 검사 이후 사용 전 상태가 바뀌어 검사 결과가 무효가 되는 경우다. root SUID 프로그램·임시 파일·심볼릭 링크는 해당 경쟁조건을 설명하는 사례 조건이다.

핵심 방어는 같은 객체에 대한 검사와 사용의 일관성을 유지하고 필요한 원자적 연산·적절한 잠금·최소권한을 적용하는 것이다. 시간 간격의 축소보다 검사·사용 대상의 일관성과 필요한 연산의 원자성을 확보하는 데 초점을 둔다. 삭제 통제·사후 검사는 각각 객체 보호와 사후 확인에 사용한다. 인젝션은 데이터가 파서의 명령으로 해석되는 문제로 따로 둔다(C09). CWE367

F. 호스트 자원 고갈

CPU·메모리·프로세스/스레드·파일 기술자·디스크 등 한정 자원의 할당·회수가 통제되지 않으면 서비스를 방해할 수 있다. 단순 데이터 손상과 구분하고, 외부 요청만으로 유발되는지 로컬 실행·쓰기 권한이 필요한지를 함께 본다. 자원별 할당량·동시성·요청 크기/시간 제한·불필요 자원 회수·관찰을 연결한다. 과도한 제한은 정상 사용자도 막을 수 있다. 대응은 고갈되는 자원과 할당·회수 경로를 중심으로 설계한다. CWE400

핵심 연결

  • 메모리 손상은 접근 위치·방식·권한에 따라 영향을 분석하고 안전한 구현과 실행 완화를 결합한다.
  • 악성코드는 유입·전파·은닉·실행·갈취 등 실제 역할로 분류한다.
  • 온라인 인증 공격은 시도 통제로, 오프라인 추측은 저장값의 추측 비용으로 대응한다.
  • 무결성 점검은 신뢰할 기준선과 현재 상태를 비교하고 승인 이력과 함께 해석한다.
  • TOCTOU는 검사와 사용의 대상 일관성·원자성으로 다룬다.
  • 자원 고갈은 할당량·동시성·시간 제한과 회수·관찰로 관리한다.

출처와 범위

2026-09-09까지 대조한 채택 핵심을 유지한다. 2026-09-10에는 출처 연결과 문서 구성을 정리했으며 기술·법령의 최신성 재검증은 수행하지 않았다. 제품·규격은 명시된 버전과 조건을 기준으로 읽는다.