1. KeePass [1]

- 오픈소스로 작성된 비밀번호 관리 프로그램

 

2. 취약점

[사진 1] https://nvd.nist.gov/vuln/detail/CVE-2023-32784 [2]

- KeePass 메모리 덤프를 이용해 마스터 비밀번호를 탈취할 수 있는 취약점

- 공격자가 메모리 덤프에 접근하게 되었다는 것은 이미 PC가 일정부분 공격자에게 탈취되었다는 의미

영향받는 버전: KeePass 2.54 이전 2.x 버전

 

2.1 실습

- KeePass 다운로드 후 File > New를 선택해 데이터베이스 생성

> Windows용 2.53.1 버전 사용

[사진 2] 데이터베이스 생성

 

- 데이터베이스를 여는데 사용할 마스터 비밀번호 설정

> 마스터 비밀번호는 데이터베이스에 접속하기 위한 비밀번호로, [사진 4]와 같이 데이터베이스 접속 시 입력해야하는 값

> 해당 마스터 비밀번호 하나로 모든 비밀번호를 관리

[사진 3] 마스터 비밀번호 설정

 

[사진 4] 데이터베이스 접속

 

- KeePass 프로세스 메모리 덤프 수행

> 작업관리자를 통해 메모리 덤프 진행

[사진 5] 메모리 덤프 수행

 

- 공개된 PoC를 [4] 사용한 결과 마스터 비밀번호를 추출됨

> 완전한 형태의 마스터 비밀번호는 아니지만 출력 결과를 통해 누락된 문자를 유추할 수 있음

> 마스터 비밀번호를 탈취한 공격자는 저장된 모든 자격 증명에 엑세스가 가능해짐

[사진 6] 마스터 비밀번호 추출

3. 대응방안

① 벤더사에서 제공하는 업데이트 적용

- 23.06 ~ 23.07 해당 취약점이 패치된 2.54 버전 발포 예정

> 현재 포럼을 통해 취약점이 해결된 테스트 버전을 배포 [5]

> 공개된 테스트 버전에 대해서는 PoC가 적용되지 않음을 확인

> 또한, 마스터 비밀번호가 메모리에 남아있을 수도 있으므로 시스템 변경, 데이터 덮어쓰기 등을 권고

수정내역
1. 텍스트 상자의 텍스트를 가져오거나 설정하기 위한 직접 API 호출을 실행하여 비밀이 누출될 수 있는 관리 대상 스트링 생성을 피합니다.
2. 프로세스 메모리에 무작위 문자가 포함된 더미 플래그먼트를 만듭니다.이 더미 플래그먼트는 사용자의 마스터 암호와 거의 같은 길이가 되며 실제 키를 난독화합니다.

 

- 업데이트 적용이 불가한 경우 다른 비밀번호 관리 프로그램 사용

> KeePassXC, Strongbox, KeePass 1.X의 경우 해당 취약점에 영향을 받지 않음

 

4. 참고

[1] https://keepass.info/index.html 
[2] https://nvd.nist.gov/vuln/detail/CVE-2023-32784
[3] https://github.com/vdohney/keepass-password-dumper
[4] https://github.com/CMEPW/keepass-dump-masterkey
[5] https://sourceforge.net/p/keepass/discussion/329220/thread/f3438e6283/
[6] https://www.bleepingcomputer.com/news/security/keepass-exploit-helps-retrieve-cleartext-master-password-fix-coming-soon/
[7] https://www.boannews.com/media/view.asp?idx=118268&page=3&kind=1
[8] https://skogkatt.tistory.com/entry/%ED%8C%A8%EC%8A%A4%EC%9B%8C%EB%93%9C-%EA%B4%80%EB%A6%AC-%ED%94%84%EB%A1%9C%EA%B7%B8%EB%9E%A8-keepass-%EC%84%A4%EC%B9%98-%EB%B0%8F-%EA%B8%B0%EB%B3%B8-%EC%82%AC%EC%9A%A9%EB%B0%A9%EB%B2%95

+ Recent posts