ragdo11 2025. 5. 20. 18:29

주요정보통신기반 웹 취약 분석 평가 방법 14번째 항목인 취약한 패스워드 복구(vulnerable Password Recovery/PR)이다.

음.. 주통기반 상세가이드 중 제일 별로인? 영양가 없는 섹션인 듯.

취약한 패스워드 복구 로직으로 인해 공격자가 불법적으로 다른 사용자의 비밀번호를 획득·변경할 수 있다고 한다.

 

요새 비밀번호를 잊어버렸을때! 비밀번호 찾기 기능을 이용하면 예전에는 내가 사용하던 비밀번호를 찾아줬었다. 그런데 요새는 막 이상한 비밀번호로 바꾸고 그 비밀번호를 이메일 기능이 있는 내 연결된 다른 계정에 보내준다.

이제는 비밀번호를 저장할 때 예전처럼 복호화가 가능한 암호화 방법을 사용하여 저장하지 않는다. 일방향성 함수인 해시를 이용하여 암호화하기 때문에 복호화가 이론상 불가능하여 원래 비밀번호를 찾아주려고 해도 할 수가 없는 것이다. 비밀번호는 인증을 위한 수단일 뿐, 그 원래 평문이 중요하지가 않기 때문에 복호화가 불가능하게 저장하는 것이 훨씬 안전하다.

그렇기 때문에 복잡한 난수로 다시 비밀번호를 초기화해주고 그 사용자에게 전달하여 재설정하게 하는 것이다.

 

근데 이게 PR 취약점이랑 무슨 상관이냐고? 별로 없음. 이 취약점만 다루면 글이 너무 짧을 것 같아 TMI로 던진거다.

그래서 이제 PR 취약점은 주통기반에서 어떠할 때 취약하다고 설명되고 있나? 패스워드 재설정 시 일정 패턴으로 재설정되고 웹 사이트 화면에 바로 출력 시 취약하다! 라고 한다.

 

아니 패스워드를 재설정하는데 왜 사용자의 연락처, 주소, 메일 주소, 일정 패턴을 패스워드로 이용하고 있는지 확인을 하라는데..  모르겠다. 난수를 발생시키는게 어려운게 절대 아니니까; 오히려 더 쉬운데

그리고 패스워드 재설정을 하면 화면에 띄우는 곳을 본 게 아마 내가 응애 쪽쪽이 물고 있었을 때 같은데 지금은 그런 곳을 본 기억이 없다. 사실 화면에 띄우는 장면도 이제 기억 잘 안남.

 

보안설정방법

  • 사용자의 개인정보(연락처, 주소, 메일 주소 등)로 패스워드를 생성하지 말아야 하며, 난수를 이용한 불규칙적이고 최소 길이(6자 이상 권고) 이상의 패턴이 없는 패스워드를 발급하여야 함

흠... 최소 길이 6자 이상? 흠,,,,, 진짜 최소한 10자는 해야되는데.

  • 사용자 패스워드를 발급해주거나 확인해줄 때 웹 사이트 화면에 바로 출력해주는 것이 아니라 인증된 사용자 메일이나 SMS로 전송해주어야 함
  • 패스워드 재발급 검증 실패에 대한 임계값을 설정하여 일정 횟수 이상 실패한 경우 다른 방식으로 패스워드 찾기 기능을 제공하여야 한다. 검증 후 기존의 패스워드가 아닌 임시패스워드를 발급하도록 설계해야 하며, 사용자가 임시패스워드를 발급받은 즉시 새로운 패스워드로 재설정하도록 구현하여야 함