OWASP MASVS에서도 주의를 요하는 취약점인 '중요정보 키보드 캐시 저장'에 관한 이슈입니다.
깔끔하게 정리하자면 '키보드 복사/붙여넣기로 중요정보가 유출될 수 있다' 라는 것입니다.
?
클립보드를 이용해 정보를 복사하여 붙여넣기를 하는 과정은 다음과 같습니다.
1. 정보를 복사하면 해당 정보는 키보드 캐시 공간에 저장이 됩니다.
2. 저장된 정보를 붙여넣을 시 키보드 캐시에서 저장한 정보를 불러와 붙여넣기가 가능해지는 것입니다.
즉 클립보드와 같은 역할의 악성 코드가 스마트폰에 설치되어 있다면 중요정보가 줄줄 새나갈 수 있습니다.
사용되는 서비스가 스마트폰에 부착된 모든 클립보드를 제거할 순 없지만
적어도 본인 서비스에서의 정보만큼은 키보드 복사가 불가능하게 만들어줘야 안전하다고 말할 수 있을 것입니다.
물론 기능의 편의상 사용자의 편리함을 위해 복사를 허용 시켜야 할 수 있을 수도 있습니다.
기존의 대응방안은 다음과 같습니다.
android:editable="false"로 캐시기능을 비활성화 시켰으나 현재는 권고되지 않는 방법입니다.
그외에도 pw_edit.setLongClickable(false);로 롱 푸시에 대해서 복사를 방지하였으나 이것 역시 연속으로 두번 빠르게 누르면 복사가 가능합니다.
따라서 다음의 방법이 가장 사용할 수 있는 적절한 방안이라고 보여집니다.
위의 방법은 1. 롱 푸시를 방지하면서 동시에 2. 복사가 불가능하다.
따라서 키보드 복사를 위한 캐시를 비활성화 시켜 민감정보가 클립보드에 저장이 되지 않도록 할 수 있습니다.
'시큐어 코딩' 카테고리의 다른 글
불안정한 약한 암호 알고리즘 사용 (0) | 2020.03.27 |
---|---|
public 메소드를 통한 private array 접근 (0) | 2020.03.24 |
내부저장소를 활용한 민감정보 저장 (0) | 2020.03.13 |
JAVA 메모리 취약성 제거 (0) | 2020.03.11 |
Android 개발 시 보안을 위한 KeyStore (5) | 2020.02.10 |