Android 4.3의 보안 향상 기능

모든 Android 버전에는 사용자를 보호하기 위한 수십 가지 보안 향상 기능이 포함되어 있습니다. 다음은 Android 4.4에서 사용할 수 있는 보안 향상 기능 중 일부입니다.

  • SELinux로 강화된 Android 샌드박스. 이 버전에서는 Linux 커널의 Mandatory Access Control(MAC) 시스템인 SELinux를 사용하여 Android 샌드박스가 강화됩니다. SELinux 강화는 사용자와 개발자에게는 보이지 않으며 기존 애플리케이션과의 호환성을 유지하면서 기존 Android 보안 모델을 더욱 견고하게 만듭니다. 호환성을 유지하기 위해 이 버전에서는 SELinux를 허용 모드로 사용할 수 있습니다. 이 모드는 모든 정책 위반을 기록하지만 애플리케이션을 중단하거나 시스템 동작에 영향을 미치지 않습니다.
  • setuid/setgid 프로그램 없음. Android 시스템 파일에 파일 시스템 기능에 대한 지원을 추가하고 모든 setuid/setguid 프로그램을 삭제했습니다.  따라서 루트 공격 표면과 잠재적인 보안 취약점의 가능성이 줄어듭니다.
  • ADB 인증. Android 4.2.2 이후 ADB에 대한 연결은 RSA 키 쌍으로 인증됩니다. 이렇게 하면 공격자가 기기에 실제로 액세스할 수 있는 ADB의 무단 사용을 방지합니다.
  • Android 앱에서 Setuid 제한. 이제 zygote로 생성된 프로세스에 대해 /system 파티션이 마운트되어(nosuid) Android 애플리케이션이 setuid 프로그램을 실행하지 못하게 합니다. 따라서 루트 공격 표면과 잠재적인 보안 취약점의 가능성이 줄어듭니다.
  • 기능 바운딩. 이제 Android zygote와 ADB는 prctl(PR_CAPBSET_DROP)을 사용하여 애플리케이션을 실행하기 전에 불필요한 기능을 삭제합니다. 이렇게 하면 Android 애플리케이션과 셸에서 실행된 애플리케이션에서 권한이 있는 기능을 얻지 못합니다.
  • AndroidKeyStore 공급자. 이제 Android에는 애플리케이션이 독점 사용 키를 만들도록 허용하는 키 저장소 공급자가 있습니다. 다른 애플리케이션에서는 사용할 수 없는 비공개 키를 만들거나 저장하기 위해 API를 사용하는 애플리케이션을 제공합니다.
  • KeyChain isBoundKeyAlgorithm. KeyChain API는 이제 애플리케이션이 기기에서 신뢰하는 하드웨어 루트에 시스템 전체 키가 바인딩되어 있는지 확인할 수 있는 메서드(isBoundKeyType)를 제공합니다. 이는 루트 손상이 발생한 경우에도 기기에서 내보낼 수 없는 개인 키를 만들거나 저장할 장소를 제공합니다.
  • NO_NEW_PRIVS. 이제 Android zygote는 prctl(PR_SET_NO_NEW_PRIVS)을 사용하여 애플리케이션 코드를 실행하기 전에 새로운 권한이 추가되지 않도록 합니다. 이렇게 하면 Android 애플리케이션에서 execve를 통해 권한을 강화할 수 있는 작업을 수행할 수 없게 됩니다. (여기에는 Linux 커널 버전 3.5 이상이 필요합니다.)
  • FORTIFY_SOURCE 보정. Android x86 및 MIPS에서 FORTIFY_SOURCE를 사용하고 strchr(), strrchr(), strlen() 및 umask() 호출을 강화했습니다. 이는 잠재적인 메모리 손상 취약점 또는 종료되지 않은 문자열 상수를 감지할 수 있습니다.
  • 재배치 보호 조치. 정적으로 연결된 실행 파일의 읽기 전용 재배치(relro)를 사용하고 Android 코드의 모든 텍스트 재배치를 삭제했습니다. 이를 통해 잠재적인 메모리 손상 취약점을 방지할 수 있습니다.
  • EntropyMixer 기능 향상. 이제 EntropyMixer는 주기적으로 혼합하는 것 외에도 종료/재부팅 시 엔트로피를 기록합니다. 이를 통해 기기의 전원이 켜져 있을 때 생성되는 모든 엔트로피 유지가 가능하며 특히 프로비저닝 직후에 재부팅되는 기기에 유용합니다.
  • 보안 수정사항. Android 4.3에는 Android 관련 취약점에 대한 수정사항도 포함되어 있습니다. 이러한 취약점 관련 정보는 Open Handset Alliance 멤버에게 제공되었으며, Android 오픈소스 프로젝트에서 수정사항을 사용할 수 있습니다. 보안을 개선하기 위해 이전 버전의 Android가 설치된 일부 기기에도 이러한 수정사항이 포함될 수 있습니다.