2014-02-20 4 views
0

우리는 우리 앱 중 하나에 대한 보안 감사를 받았으며 이상한 항목이 있습니다. 일부 파일의 파일 사용 권한에는 전역 읽기 사용 권한 집합이 있습니다. 구체적으로는 :Android 침투 테스트 - 파일 권한?

# find . -perm -0004 

./lib 
./lib/libcrypto.so 

개념적으로 안드로이드는 리눅스이고 결과적으로 파일 권한이 있기 때문에 이것을 이해합니다. 내가 모르는 것은, APK 파일 내용에 대한 파일 사용 권한을 설정하여 사용자가 파일을 읽을 수 있도록하는 방법입니다. 리눅스와 동등한은 다음과 같습니다

chmod 500 ./lib/libcrypto.so 

하지만 빌드 기계, 또는 무엇인가의 파일 시스템에 아마도 내가 매니페스트에서이 작업을 수행 할 필요가 있다고 가정, 또는?

+0

앱이 비정상적으로 작동하고 있다는 증거를 보안 감사인에게 제공하도록 요청하십시오. 반대로, 모든 NDK 앱의 '.so' 파일이 세계에서 읽을 수 있도록 설정되어있는 경우, 아마도 여기에는 이유가있을 것이므로 걱정하지 않아도됩니다. – CommonsWare

+0

@CommonsWare 감사. 부모 디렉토리는 읽을 수 없지만 감사를 통해 계약을 보호해야합니다. 구체적인 우려 사항은 "장치의 가짜 응용 프로그램이이 취약점을 악용하여 응용 프로그램에 저장된 중요한 데이터를 읽을 수 있습니다." 사용 권한을 변경하지 않으려한다면 사용하지 않는 이유에 대한 정당성이 필요합니다. –

+0

그들은 selinux 컨텍스트를 고려하고 있습니까? 파일들은 그것들에 의해서도 격리 될 수 있습니다. – Jon

답변

2

사용자가 파일을 읽을 수 있도록 APK 파일의 내용에 대한 파일 사용 권한을 설정하려면 어떻게해야합니까?

그렇지 않습니다. APK의 일부인 파일에 대한 사용 권한은 설치시 운영 체제에 의해 설정되며 해당 동작을 직접 제어 할 수는 없습니다. 또한, 적어도 내가는 /data 파티션 .so 파일의 권한 비트가 당신에 의해 수정 한 수 때문에 (적어도 에뮬레이터)를 소유하고 있지 않습니다했던 하나 개의 테스트에 :

[email protected]_x86:/data # ls -al app-lib/com.commonsware.android.passwordbox-1/ 
-rwxr-xr-x system system 1757156 2014-03-15 13:28 libdatabase_sqlcipher.so 
-rwxr-xr-x system system 3491452 2014-03-15 13:28 libsqlcipher_android.so 
-rwxr-xr-x system system  526052 2014-03-15 12:28 libstlport_shared.so 

당신 ' 루팅 된 장치가 있으면 에뮬레이터와 다르게 작동하는지 확인하기 위해이 장치에 대한 자체 분석을 수행 할 수 있습니다. 필자는 그들이 수행 한 위치에 .so 파일을 찾지 못했을 가능성이 높습니다. 테스트를 위해 OS 레벨의 차이 때문일 수 있습니다 (4.3.x 에뮬레이터를 사용해 보았습니다).

하지만 Manifest 나 빌드 시스템의 파일 시스템 등에서이 작업을 수행해야한다고 가정합니다.

아니요, 기기에있는 .so 파일의 권한 비트와 관련이있는 것은 없습니다.

주석에서 언급했듯이 보안 감사인은 앱의 동작이 어떻게 든 비정상임을 입증해야합니다. 감사원은이를 수행 할 수 있어야하며, NDK를 사용하는 경우 이외에 이 아닌이 비정상임을 인정할 수 있어야합니다.

디바이스에서 악성 어플리케이션이

은 일반적으로 애플리케이션에 의해 저장된 민감한 데이터를 판독이 취약점을 활용할 수있다,이 경우는 없을 것이다. 세계에서 읽을 수있는 .so은 마술처럼 응용 프로그램의 "민감한 데이터"를 읽을 수 없게 만듭니다. 이는 여전히 데이터 자체에 대한 파일 권한에 의해 제어됩니다.