Mebus/cupp는 Common User Passwords Profiler라는 설명을 가진 Python 프로젝트다. 이번 GitHub 트렌드에서 Python rank 7, stars 18 today라는 신호를 받았지만, 이 repo를 흥미롭게 만드는 건 숫자 자체보다 문제를 바라보는 방향이다. 비밀번호를 순수한 암호학 문제가 아니라, 사람이 기억하기 위해 선택하는 패턴의 문제로 본다.
많은 보안 논의는 더 긴 비밀번호, 더 복잡한 문자 조합, 더 강한 인증 수단으로 이동한다. 물론 모두 중요하다. 하지만 현실의 사용자는 완전히 무작위인 문자열보다 이름, 날짜, 별명, 연도, 관심사처럼 기억 가능한 조각을 선호한다. cupp의 ‘Profiler’라는 단어는 바로 그 지점을 겨냥한다. 무작정 많은 후보를 만드는 대신, 특정 사용자에게 그럴듯한 후보를 구성하는 접근에 가깝다.
이런 도구가 주는 교훈은 공격 성능보다 방어 설계에 있다. 조직의 비밀번호 정책이 길이와 특수문자만 요구한다면, 사용자는 예측 가능한 변형으로 규칙을 통과할 수 있다. 예를 들어 단어 뒤에 연도를 붙이거나, 이름과 날짜를 조합하거나, 익숙한 문구에 느낌표를 더하는 식이다. 규칙을 만족하는 것과 추측하기 어려운 것은 같은 말이 아니다.
그래서 cupp는 보안 교육과 내부 감사의 좋은 출발점이 될 수 있다. 사용자가 왜 비슷한 비밀번호를 반복해서 만드는지, 개인정보 기반 조합이 왜 위험한지, MFA가 있어도 기본 위생을 방치하면 어떤 문제가 남는지 설명하기 쉽다. 동시에 이런 도구는 허가된 테스트와 학습 맥락 안에서만 다뤄야 한다. 실제 계정 대상의 무단 시도는 기술적 호기심이 아니라 명백한 오용이다.
결국 cupp가 보여주는 건 오래된 사실이다. 비밀번호의 약점은 종종 알고리즘보다 사람의 기억법에서 시작된다. 최신 보안 스택을 갖추더라도 사용자가 예측 가능한 방식으로 비밀번호를 만들고 있다면, 방어는 이미 낮은 곳에서 흔들리고 있을 수 있다. 이 repo를 보는 실전적인 이유도 거기에 있다. 더 큰 사전을 만들기 위해서가 아니라, 우리 쪽 정책과 교육이 어떤 인간적 습관을 놓치고 있는지 확인하기 위해서다.