18강 / 20강

로그 — 공격은 흔적을 남긴다

로그에서 공격을 읽고, 무결성으로 변조를 잡는다

로그 — 공격은 흔적을 남긴다
뚫렸는지조차 모르는 것이 최악입니다. 로그는 서버가 남기는 일기입니다.

침해 사고의 통계 중 가장 무서운 것 — 침입을 발견하기까지 평균 수개월이 걸린다는 것입니다. 공격자는 조용히 들어와 오래 머물러요. 그래서 방어의 절반은 알아채는 능력입니다.

이번 강의는 로그에서 공격을 읽어 내고, 파일이 몰래 바뀌었는지 잡고, 누가 무엇을 했는지 추적하는 법을 봅니다.

로그에서 공격 패턴 읽기

공격은 로그에 특유의 모양을 남깁니다. 하나의 IP 가 짧은 시간에 여러 경로를 404 로 두드렸다면 스캔, 로그인을 반복 실패했다면 무차별 대입, ?id=1' 같은 요청은 인젝션 탐색이에요.

로그 분석 실습실 — 로그 한 뭉치에서 공격 IP 와 그 수법을 찾아낸다
불러오는 중…
존재하지도 않는 경로를 훑는 건 스캐너입니다.
🖥️ 내 가상 서버 브라우저 안에서 실행 (계산용)

파일 무결성 — 몰래 바뀐 파일 잡기

공격자는 파일을 심거나 고칩니다(웹셸, 백도어, 변조된 시스템 파일). 이걸 잡는 방법이 파일 무결성 검사(AIDE)예요. 깨끗할 때 모든 파일의 해시를 '사진 찍어' 두고, 나중에 다시 찍어 달라진 것을 찾습니다.

이 순간의 모든 파일 해시를 사진 찍어 둡니다.
🖥️ 내 가상 서버 브라우저 안에서 실행 (계산용)
웹셸이 심겼거나 authorized_keys 가 바뀌면 여기 걸립니다.
🖥️ 내 가상 서버 브라우저 안에서 실행 (계산용)

감사 로그 — '누가' 했는지

로그가 '무슨 일이 있었나'라면, 감사 로그(auditd)는 '누가 했나'입니다. 중요한 파일을 감시 목록에 넣으면, 커널이 누가·언제·어떤 명령으로 건드렸는지 기록해요. 10강에서 root 직접 로그인을 막은 이유가 여기서 빛납니다 — 모두가 개별 계정으로 들어오니 '원래 누구였는지(auid)'가 남거든요.

auid 가 '원래 누구로 로그인했는지'를 알려 줍니다.
🖥️ 내 가상 서버 브라우저 안에서 실행 (계산용)
무결성·감사 실습실 — 기준선을 뜨고, 변조를 심고, 탐지해 본다
불러오는 중…
🤔 확인 문제
로그를 다른 서버로도 실시간 전송하는 이유는?
🤔 확인 문제
파일 무결성 검사(AIDE)의 기준선은 언제 떠야 하나요?