안드로이드에서 System.loadLibrary와 System.load 사이의 보안 관련 문제에 대해 궁금합니다.Android에서 네이티브 라이브러리를 안전하게로드하는 방법은 무엇입니까?
static {
System.loadLibrary("mylib");
}
호출 시스템에 의존하는 응용 프로그램에 의해로드되는 것은 아니다 된 파일을 제공하는 시스템으로 이어질 수 있습니다 (System.loadLibrary를 방법을 통해) 일을 찾을 수 있도록합니다. 침입자가 검색 대상 위치에 파일을 배치 할 수있는 경우 공격자는 임의의 코드를 응용 프로그램에 삽입하여 실행할 수 있습니다. 우리가 그런에서 NDK 라이브러리에 대한 전체 경로를 지정하는 방법 : 당신이 정확한 경로를 지정하는 경우
, 당신은
질문은 등 파일 권한 같은 것들을 통해로드 된 파일을 보호 할 수있는 능력을 가지고 이 경로는 모든 Android 버전/기기에서 유효합니다.
이 경로가 모든 Android 버전/장치에 유효하도록 NDK 라이브러리의 전체 경로를 지정하려면 어떻게해야합니까? –
자세한 내용은 내 대답을 편집했습니다. – mbrenon
정확히는 아닙니다 - 나는 System.loadLibrary()가 app의 lib 폴더 외에도 일부 시스템 디렉토리를 검색 할 것이라고 생각합니다. 그러나 이들을 공격 할 수있는 사람은 아마도 lib 폴더도 공격 할 수 있습니다. 그렇지 않으면 쓰기 가능한 시스템 디렉토리가있는 심각한 장치가 깨져서 실행됩니다. 자신의 앱의 lib 폴더보다 안전한 위치를 찾지 못할 것입니다. 특히 해당 폴더가 앱에서 쓸 수 없기 때문에 다른 곳에 넣을 수도 있습니다. –