이건 밀폐 해치 반대편에 이미 들어와 있는 상황에 가까움. 임의 프로세스 메모리를 읽을 수 있다면, 해당 사용자로 가장해서 비밀번호를 그냥 덤프할 수도 있는 위치일 가능성이 큼
공격자가 터미널 서버 관리자 권한을 얻으면 로그인한 모든 사용자 프로세스의 메모리에 접근 가능하고, 관리자 권한이면 모든 Chrome 프로세스에 디버거를 붙여 비밀번호 복호화를 강제할 수도 있음
실제 차이는 콜드 부팅 공격 정도인데, 그마저도 공격을 조금 쉽게 만드는지, 아니면 원래 불가능한 공격을 가능하게 하는지는 불분명함
[1] https://devblogs.microsoft.com/oldnewthing/20060508-22/?p=31...
이 논리는 Chromium 위협 모델과 완전히 맞아떨어짐. 공격자가 관리자 권한을 얻은 순간 정의상 게임 오버임
Edge만의 문제일 가능성은 낮아 보이고, Microsoft가 상류 프로젝트보다 브라우저를 덜 안전하게 만들 이유도 없음
Chrome은 물리적으로 로컬인 공격을 위협 모델 밖으로 보는데, 사용자가 내 기기에 나로 로그인했거나 내 운영체제 사용자 권한으로 소프트웨어를 실행할 수 있으면 Chrome이나 어떤 앱도 방어할 방법이 없다고 봄
그런 공격자는 실행 파일과 DLL 수정, PATH 같은 환경 변수 변경, 설정 파일 변경, 사용자 계정 데이터 읽기와 외부 전송까지 가능하므로, Chrome이 제공할 수 있는 실질적 방어 보장은 없다는 입장임 https://chromium.googlesource.com/chromium/src/+/148.0.7778....
최근 몇 년 사이에는 일반 사용자 권한만으로도 임의 메모리 읽기가 가능했던 브라우저 취약점들이 있었고, 다만 느리거나 위치 제어가 완전하지 않은 식이었음. 사용 직후 자격 증명을 가능한 빨리 지우는 건 해자 하나를 더 파는 정도라도 꽤 합리적인 예방책으로 봄
보안은 흑백이 아님. 로그인 정보를 적은 포스트잇을 모니터에 붙여두는 건 잠기지 않은 서랍에 넣어두는 것보다 분명히 더 위험한 식으로 단계가 있음
사용자 입장에서는 비밀번호를 붙여넣으려 할 때마다 먼저 생체 인증으로 로그인해야 하는데, 아무 사용자 프로세스나 메모리에서 비밀번호를 낚아챌 수 있다는 건가?
뭘 놓치고 있는지 모르겠음
명확히 말하자면 가능한 공격 경로 중 하나는, 컴퓨터를 잠그지 않고 화장실에 5분 다녀오는 사이 악의적인 해커가 돌아오기 전에 모든 비밀번호를 덤프하는 상황임
이건 고려할 가치가 있다고 봄. 비밀번호 관리자가 10분 뒤에 마스터 비밀번호나 패스키를 다시 요구하는 데는 이유가 있음
Chrome이 암호화된 보안 영역에 의존한다고 생각했기 때문에, 루트 권한이 있어도 비밀번호를 쉽게 추출하는 건 꽤 어렵다고 여겼음
물론 컴퓨터를 방치하면 안 됨. 하지만 피할 수 없는 실수를 치명적으로 악용하기 쉽게 제품을 설계해도 된다는 뜻은 아님
비밀번호 관리자는 메모리 안의 비밀번호를 안전하게 유지하려고 꽤 많은 수고를 하는 경우가 많지만, 그런 도구들의 공격 모델이 잘 이해되지 않을 때가 많음
예를 들어 KeePass 같은 도구는 브라우저 플러그인을 등록하는 데 꽤 신경 쓰지만, 일반 사용자 권한만 있으면 브라우저에서 그 키를 뽑아내 뭐든 할 수 있음
웹 앱의 “이 브라우저 신뢰” 같은 방식도 쿠키 저장소를 쉽게 읽을 수 있다면 이상하게 느껴짐
Linux의 PAM에도 비슷한 일을 할 수 있을 듯함. gdb를 openssh나 getty 로그인 프로세스에 붙이면 됨
이 .exe의 소스 코드 링크가 있나? 어떻게 추출하는지 보고 싶음
진짜 실수는 아직도 단순 비밀번호 인증을 쓰고 있다는 점임. 챌린지-응답이나 공개키 인증을 써야 함
공평하게 말하면, 메모리에 로드한다는 것과 저장한다는 건 같은 말이 아님
제목에는 “메모리에 저장”이라고 되어 있는데, 내겐 거의 같은 말처럼 들림. 메모리에 “로드”하는 것과 “저장”하는 것의 차이를 어떻게 보는지 설명해줄 수 있나?
틀렸다면 고쳐주길 바라지만, Chrome도 Windows에서 비밀번호를 원시 텍스트로 보관하고 있었거나 적어도 예전엔 그랬음. 2021년 버전 Chrome에서 친구가 잊어버린 비밀번호를 꺼낸 적이 있음
몇 년 전 일이긴 하지만, Google 개발자들이 로컬 파일 시스템에 접근할 수 있으면 이미 끝난 거라고 말하며 논쟁하던 걸 본 기억이 있음
Hacker News 의견들
공격자가 터미널 서버 관리자 권한을 얻으면 로그인한 모든 사용자 프로세스의 메모리에 접근 가능하고, 관리자 권한이면 모든 Chrome 프로세스에 디버거를 붙여 비밀번호 복호화를 강제할 수도 있음
실제 차이는 콜드 부팅 공격 정도인데, 그마저도 공격을 조금 쉽게 만드는지, 아니면 원래 불가능한 공격을 가능하게 하는지는 불분명함
[1] https://devblogs.microsoft.com/oldnewthing/20060508-22/?p=31...
Edge만의 문제일 가능성은 낮아 보이고, Microsoft가 상류 프로젝트보다 브라우저를 덜 안전하게 만들 이유도 없음
Chrome은 물리적으로 로컬인 공격을 위협 모델 밖으로 보는데, 사용자가 내 기기에 나로 로그인했거나 내 운영체제 사용자 권한으로 소프트웨어를 실행할 수 있으면 Chrome이나 어떤 앱도 방어할 방법이 없다고 봄
그런 공격자는 실행 파일과 DLL 수정, PATH 같은 환경 변수 변경, 설정 파일 변경, 사용자 계정 데이터 읽기와 외부 전송까지 가능하므로, Chrome이 제공할 수 있는 실질적 방어 보장은 없다는 입장임
https://chromium.googlesource.com/chromium/src/+/148.0.7778....
뭘 놓치고 있는지 모르겠음
[0] https://en.wikipedia.org/wiki/Cloudbleed
이건 고려할 가치가 있다고 봄. 비밀번호 관리자가 10분 뒤에 마스터 비밀번호나 패스키를 다시 요구하는 데는 이유가 있음
Chrome이 암호화된 보안 영역에 의존한다고 생각했기 때문에, 루트 권한이 있어도 비밀번호를 쉽게 추출하는 건 꽤 어렵다고 여겼음
물론 컴퓨터를 방치하면 안 됨. 하지만 피할 수 없는 실수를 치명적으로 악용하기 쉽게 제품을 설계해도 된다는 뜻은 아님
https://support.microsoft.com/en-us/topic/export-passwords-i...
예를 들어 KeePass 같은 도구는 브라우저 플러그인을 등록하는 데 꽤 신경 쓰지만, 일반 사용자 권한만 있으면 브라우저에서 그 키를 뽑아내 뭐든 할 수 있음
웹 앱의 “이 브라우저 신뢰” 같은 방식도 쿠키 저장소를 쉽게 읽을 수 있다면 이상하게 느껴짐