18강 / 20강
로그 — 공격은 흔적을 남긴다
로그에서 공격을 읽고, 무결성으로 변조를 잡는다
침해 사고의 통계 중 가장 무서운 것 — 침입을 발견하기까지 평균 수개월이 걸린다는 것입니다. 공격자는 조용히 들어와 오래 머물러요. 그래서 방어의 절반은 알아채는 능력입니다.
이번 강의는 로그에서 공격을 읽어 내고, 파일이 몰래 바뀌었는지 잡고, 누가 무엇을 했는지 추적하는 법을 봅니다.
로그에서 공격 패턴 읽기
공격은 로그에 특유의 모양을 남깁니다. 하나의 IP 가 짧은 시간에 여러 경로를
404 로 두드렸다면 스캔, 로그인을 반복 실패했다면 무차별 대입,
?id=1' 같은 요청은 인젝션 탐색이에요.
존재하지도 않는 경로를 훑는 건 스캐너입니다.
🖥️ 내 가상 서버
브라우저 안에서 실행 (계산용)
파일 무결성 — 몰래 바뀐 파일 잡기
공격자는 파일을 심거나 고칩니다(웹셸, 백도어, 변조된 시스템 파일). 이걸 잡는 방법이 파일 무결성 검사(AIDE)예요. 깨끗할 때 모든 파일의 해시를 '사진 찍어' 두고, 나중에 다시 찍어 달라진 것을 찾습니다.
이 순간의 모든 파일 해시를 사진 찍어 둡니다.
🖥️ 내 가상 서버
브라우저 안에서 실행 (계산용)
웹셸이 심겼거나 authorized_keys 가 바뀌면 여기 걸립니다.
🖥️ 내 가상 서버
브라우저 안에서 실행 (계산용)
감사 로그 — '누가' 했는지
로그가 '무슨 일이 있었나'라면, 감사 로그(auditd)는 '누가 했나'입니다. 중요한 파일을 감시 목록에 넣으면, 커널이 누가·언제·어떤 명령으로 건드렸는지 기록해요. 10강에서 root 직접 로그인을 막은 이유가 여기서 빛납니다 — 모두가 개별 계정으로 들어오니 '원래 누구였는지(auid)'가 남거든요.
auid 가 '원래 누구로 로그인했는지'를 알려 줍니다.
🖥️ 내 가상 서버
브라우저 안에서 실행 (계산용)
🤔 확인 문제
로그를 다른 서버로도 실시간 전송하는 이유는?
해설 공격자는 침입 후 로그를 지웁니다. 로그를 별도 서버로도 보내 두면, 침입한 서버의 로그가 지워져도 원본이 남아 사고를 재구성할 수 있어요. 무결성 확보의 기본입니다.
🤔 확인 문제
파일 무결성 검사(AIDE)의 기준선은 언제 떠야 하나요?
해설 기준선은 깨끗할 때 떠야 합니다. 이미 뚫린 뒤에 뜨면 웹셸·백도어까지 '정상'으로 기록돼 버려요. 기준선은 '이것이 정상 상태'라는 사진이므로, 정상일 때 찍어야 의미가 있습니다.