음.txt
3.65 KB · text/plain · 업로드 2026-07-13 17:41
A09: Security Logging and Monitoring Failures
보안 로깅 및 모니터링 실패
: 누군가 서버를 해킹하기 위해 수백 번의 에러를 발생시켜도, 이를 기록(로그)으로 남기지 않아 해킹 당한 사실조차 모르게 되는 심각한 관리적 결함
핵심 보안 용어 가이드
감사 로그 (Audit Log): 누가, 언제, 어디서, 무엇을 했는지 시스템에 일어난 모든 중요 사건을 꼼꼼하게 기록해 둔 블랙박스입니다.
SIEM: 흩어져 있는 수많은 시스템의 로그를 한곳에 모아서 인공지능으로 실시간 해킹 징후를 찾아내는 보안 관제 시스템입니다.
CWE-117: Improper Output Neutralization for Logs
CWE-223: Omission of Security-relevant Information
function login($userName,$password){
if(authenticate($userName,$password)){
return True;
}
else{
incrementLoginAttempts($userName);
if(recentLoginAttempts($userName) > 5){
writeLog("Failed login attempt by User: " . $userName . " at " + date('r') );
}
}
}
CWE-778: Insufficient Logging
보안상 중요한 이벤트가 발생했을 때, 제품은 해당 이벤트를 기록하지 않거나, 기록 시 이벤트에 대한 중요한 세부 정보를 누락합니다.
로그인 시도 실패와 같은 보안에 중요한 이벤트가 제대로 기록되지 않으면 악의적인 행위를 탐지하기가 더 어려워지고 공격 성공 후 포렌식 분석이 어려워질 수 있습니다.
조직에서 클라우드 스토리지 리소스를 도입함에 따라, 상세 로깅에는 추가 비용이 발생할 수 있으므로 상세 로깅 정보를 활성화하기 위해 구성 변경이 필요한 경우가 많습니다. 이로 인해 중요한 감사 로그에 원격 측정 데이터가 누락될 수 있습니다. 예를 들어 Azure에서는 로깅의 기본값이 비활성화되어 있습니다.
<시스템.서비스모델>
<행동>
<서비스 동작>
<행동 이름="NewBehavior">
<serviceSecurityAudit auditLogLocation="Default"
suppressAuditFailure="false"
serviceAuthorizationAuditLevel="None"
messageAuthenticationAuditLevel="None" />
...
</system.serviceModel>
--> 특정 문제에 대한 값은 있으나 분류의 기준(예:IP)를 남기지 않음
LoginUser()인 경우
// 로그인 성공
RunProgram();
} 또 다른 {
// 로그인 실패
LoginRetry();
}
==> 개선 : 로그인 실패 시 로그를 기록
LoginUser()인 경우
// 로그인 성공
log.warn("사용자 로그인 성공.");
RunProgram();
} 또 다른 {
// 로그인 실패
log.warn("사용자의 로그인 시도가 실패했습니다. 다시 시도합니다.");
LoginRetry();
}
distribute-list
분배 리스트
특정 IP 대역의 광고를 차단한다.
conf t
router rip
passive-interface s1/0 (s1/0 (특정 인터페이스)의 라우팅 테이블 업데이트를 차단하겠다.)
passive-interface default (기본적으로 모든 인터페이스를 차단한다.)
no passive-interface s1/0 (rip 정보를 보내는데 있어서 s1/0 인터페이스를 허용한다)
R1(config)#access-list 1 deny 1.1.2.0 0.0.0.255
R1(config)#access-list 1 permit any
offset-list
오프셋 리스트
특정 네트워크의 metric을 증가시킨다.
R1(config)#access-list 2 permit 1.1.3.0 0.0.0.255
R1(config)#router rip
R1(config-router)#offset-list 2 out 5 s1/0
redistribute
재분배 리스트
서로 다른 프로토콜의 정보를 변환해서 전달한다.
R2 <-- 기본적으로 서로 다른 프로토콜 모두를 알고 있어야 한다.
번역의 개념
R2(config)#router rip
R2(config-router)#redistribute connected metric 3