NOTICE


 작년부터 Web Browser 및 E-mail 계정 정보를 탈취하는 악성코드가 꾸준히 유포되고 있습니다. 오늘은 해당 악성코드가 계정 정보를 탈취하는 방법에 대해서 알아보겠습니다. 타깃 Web Browser 중에서 Chrome을 대상으로 살펴보았습니다.


 Internet Explorer, 파이어폭스, 구글 크롬 등 Web Browser에서는 사용자의 편의를 위해서 웹사이트 비밀번호 저장 기능을 제공하고 있습니다. 해당 기능을 사용하면 일부 사이트의 경우 접속 시 자동으로 로그인됩니다.

 


 저장된 계정 정보는 주소 창에 ‘chrome://settings/passwords’를 입력하거나 ‘설정 → 고급 설정 표시 → 비밀번호 및 양식 → 비밀번호 관리’에서 확인할 수 있습니다.



  크롬은 해당 정보를 “%userprofile%\AppData\Local\Google\Chrome\User Data\Default” 경로에 DB 형태로 저장하고 있습니다.

 


 SQLite Database Browser를 사용하면 ‘Login Data’ 파일에 저장되어 있는 ‘logins’ 테이블 정보를 확인할 수 있습니다. ‘logins’ 테이블 정보는 Password 값을 포함하지만 암호화되어 있습니다.



 구글 크롬에서는 Password 정보를 암호화할 때 Windows에서 제공하는 Win32 API(CryptProtectData 및 CryptUnprotectData)를 사용합니다. 이 때 사용자의 로그인 자격 증명을 암호화 키의 소스로 사용하기 때문에 데이터 암호화가 매우 간단합니다. 암호화에 사용되는 CryptProtectData API와 복호화에 사용되는 CryptUnprotectData API에 대한 설명을 살펴보면 다음과 같습니다.


CryptProtectData Function

 The CryptProtectData function performs encryption on the data in a DATA_BLOB structure. Typically, only a user with the same logon credential as the user who encrypted the data can decrypt the data. In addition, the encryption and decryption usually must be done on the same computer.


CryptUnprotectData Function

 The CryptUnprotectData function decrypts and does an integrity check of the data in a DATA_BLOB structure. Usually, the only user who can decrypt the data is a user with the same logon credentials as the user who encrypted the data. In addition, the encryption and decryption must be done on the same computer.


 다음은 해당 함수 사용 예시입니다.



 이렇게 암호화된 Password는 사용자 자격 증명만 이루어진다면 언제든지 해독할 수 있습니다. 즉 동일한 사용자 로그온 세션에서는 Web Browser 뿐만 아니라 시스템에서 동작하는 모든 프로그램이 암호를 해독할 수 있는 것입니다.

 악성코드가 Web Browser 및 E-mail Password를 탈취하는 방법 또한 이와 동일합니다. 특정 Freeware Utility 사이트에서 제공하는 Password Viewer를 사용해서 감염 PC에서 정보를 수집합니다. 수집된 정보는 텍스트 파일 형태로 저장됩니다. 해당 파일을 열어보면 사용자 접속 기록 및 ID, Password 정보가 기록되어 있는 것을 알 수 있습니다.




 해당 정보는 공격자가 설정해 놓은 C&C 서버로 전송됩니다.



 이와 같이 단지 편의를 위해 비밀번호 저장 기능을 사용하는 것은 매우 위험할 수 있으므로 주의가 필요합니다.


※ 참고_파이썬으로 작성된 Chrome-Decrypter Code

https://github.com/byt3bl33d3r/chrome-decrypter/blob/master/chrome_decrypt.py


 이상으로 '[정보] Web Browser Password 탈취 원리'에 대한 포스팅을 마치겠습니다.


  1. no picture 2019.02.18 16:34

    비밀댓글입니다