🇰🇷 한글 설명
newbee-mall이 솔트(salt)가 없는 MD5 해싱 알고리즘을 사용하여 사용자 비밀번호를 저장하고 검증합니다. 이 구현 방식은 사용자별 솔트나 연산 비용 제어를 포함하지 않아, 데이터베이스 유출 시 공격자가 오프라인 공격을 통해 평문 비밀번호를 빠르게 복구할 수 있습니다.
💡 쉬운 설명
비밀번호를 암호화할 때 보안 장치가 없는 아주 취약한 방식을 사용하고 있습니다. 해커가 암호화된 데이터를 훔쳐가면 아주 짧은 시간 안에 원래 비밀번호를 알아낼 수 있습니다.
🇺🇸 원문 (English)
newbee-mall stores and verifies user passwords using an unsalted MD5 hashing algorithm. The implementation does not incorporate per-user salts or computational cost controls, enabling attackers who obtain password hashes through database exposure, backup leakage, or other compromise vectors to rapidly recover plaintext credentials via offline attacks.
📍 영향받는 시스템
newbee-mall (비밀번호 저장 로직을 사용하는 모든 버전)
⚔️ 공격 벡터
데이터베이스 유출 또는 백업 파일 탈취 후 오프라인 무차별 대입 공격(Brute-force) 및 레인보우 테이블 공격
🛡️ 대응 방법
Argon2, bcrypt, scrypt와 같이 솔트(salt)와 연산 비용 제어가 포함된 강력한 해싱 알고리즘으로 교체
🔧 검증 코드
소스 코드 내 비밀번호 해싱 로직에서 'md5' 함수가 사용되고 있는지 확인합니다.
grep -r 'md5' /path/to/newbee-mall/src/auth/ | grep -E 'hash|password'