부적절한 인증
Improper Authentication
설명
부적절한 인증은 사용하는 시스템에서 사용자의 신원을 확인하거나 증명하지 않거나, 불충분하게 증명함으로써 발생하는 취약점입니다. 이를 통해 공격자는 권한이 없는 데이터에 접근하거나 작업을 수행할 수 있습니다.
잠재적 영향
애플리케이션 데이터 읽기 (데이터 유출): 공격자가 인증 없이 애플리케이션 데이터를 접근할 수 있습니다.
권한 상승 혹은 신원 도용 (권한 오용): 권한이 없는 사용자가 더 높은 권한을 가지거나 다른 사용자의 신원을 도용할 수 있습니다.
승인되지 않은 코드 실행 또는 명령 실행 (무단 실행): 인증되지 않은 사용자가 시스템에서 권한 없이 코드를 실행할 수 있습니다.
해결 방법
강력한 인증 메커니즘을 사용하여 사용자 또는 시스템의 신원을 증명
Multi-Factor Authentication(다중 요소 인증)을 적용
모든 인증 관련 데이터를 안전하게 저장하고 전송(예: HTTPS 사용)
취약한 코드 및 안전한 코드 예시
취약한 코드
@PostMapping("/login")
public String login(String username, String password, HttpSession session) {
if (username.equals("admin") && password.equals("admin")) {
session.setAttribute("user", "admin");
return "dashboard";
}
return "login";
}안전한 코드
설명:
취약한 코드: 이 코드는 사용자 인증 시 고정된 사용자명과 비밀번호를 사용하고 있습니다. 이를 통해 공격자가 인증 절차를 우회할 수 있습니다.
안전한 코드: 이 코드는 별도의 사용자 인증 서비스(Log-in Service)에 사용자 이름과 비밀번호를 전달하여 확인합니다. 이를 통해 강력한 인증 절차가 보장됩니다.
관련 CVE
참조
Last updated