시큐어 코딩

중요정보 키보드 캐시

Security_Info 2020. 3. 22. 01:46

OWASP MASVS에서도 주의를 요하는 취약점인 '중요정보 키보드 캐시 저장'에 관한 이슈입니다.

 

깔끔하게 정리하자면 '키보드 복사/붙여넣기로 중요정보가 유출될 수 있다' 라는 것입니다.

 

?

클립보드를 이용해 정보를 복사하여 붙여넣기를 하는 과정은 다음과 같습니다.

1. 정보를 복사하면 해당 정보는 키보드 캐시 공간에 저장이 됩니다.

2. 저장된 정보를 붙여넣을 시 키보드 캐시에서 저장한 정보를 불러와 붙여넣기가 가능해지는 것입니다.

 

즉 클립보드와 같은 역할의 악성 코드가 스마트폰에 설치되어 있다면 중요정보가 줄줄 새나갈 수 있습니다.

클립보드 복사

 

복사된 정보

사용되는 서비스가 스마트폰에 부착된 모든 클립보드를 제거할 순 없지만

적어도 본인 서비스에서의 정보만큼은 키보드 복사가 불가능하게 만들어줘야 안전하다고 말할 수 있을 것입니다.

물론 기능의 편의상 사용자의 편리함을 위해 복사를 허용 시켜야 할 수 있을 수도 있습니다.

 

 

 

기존의 대응방안은 다음과 같습니다.

android:editable="false"로 캐시기능을 비활성화 시켰으나 현재는 권고되지 않는 방법입니다.

그외에도 pw_edit.setLongClickable(false);로 롱 푸시에 대해서 복사를 방지하였으나 이것 역시 연속으로 두번 빠르게 누르면 복사가 가능합니다.

 

따라서 다음의 방법이 가장 사용할 수 있는 적절한 방안이라고 보여집니다.

위의 방법은 1. 롱 푸시를 방지하면서 동시에 2. 복사가 불가능하다.

따라서 키보드 복사를 위한 캐시를 비활성화 시켜 민감정보가 클립보드에 저장이 되지 않도록 할 수 있습니다.