1MB 패스워드 공격, 백엔드를 멈추는 은밀한 DoS!
by DD
4개월 전
조회수 12
해싱 알고리즘의 취약점을 이용, 1MB 크기의 패스워드를 입력하여 서버 자원을 고갈시키는 DoS 공격이 발생할 수 있음.
Bcrypt는 72바이트 제한으로 비교적 안전하나, Argon2id는 입력 크기에 제한이 없어 공격에 취약하며, PBKDF2는 CPU 사용량이 높아 위험함.
최대 패스워드 길이 제한, SHA-256 사전 해싱, IP 기반 속도 제한 등 다중 방어 전략을 통해 공격을 효과적으로 방어해야 함.
해싱 알고리즘의 취약점 분석
현대적인 해싱 알고리즘은 Work Factor를 통해 무차별 대입 공격에 대한 방어를 강화한다. 구체적으로, Argon2id는 메모리 사용량까지 고려하여 보안성을 높였지만, 입력 데이터 크기에 대한 제한이 없어 대용량 입력을 처리하는 과정에서 자원 고갈을 유발할 수 있다. 따라서, 입력값 검증이 매우 중요하다.
공격 기법 및 알고리즘 비교
Bcrypt는 72바이트 제한으로 인해 1MB 공격에 비교적 안전하지만, Argon2id는 취약하다. PBKDF2는 CPU 사용량이 높아 대용량 입력 시 서버 응답 시간이 길어질 수 있다. 따라서, 최대 입력 길이 제한과 같은 방어 기법을 적용하여 DoS 공격의 위험을 줄여야 한다. 속도 제한도 필수적이다.
실질적인 방어 전략 및 구현
가장 효과적인 방어는 최대 패스워드 길이 제한을 설정하는 것이다. 구체적으로, 128~256자 이내로 제한하면 해싱 연산에 소요되는 자원을 통제할 수 있다. 따라서, Joi와 같은 유효성 검사 라이브러리를 활용하여 입력값을 검증하고, WAF를 통해 대용량 요청을 차단하는 것이 중요하다. 속도 제한도 필수적이다.