300x250

해당 앱 > 출시 > App Bundle 탐색기 > 해당 Version 우측 상단 " Artifact  #.abb" 클릭 > 삭제

 

 

 

+ 2021. 04. 19


트랙( 프로덕션, 테스트 공개, 비공개, 내부 등 전부 포함 ) 을 통해 출시된 apk, aab는 삭제할 수 없음.


반응형
300x250


구글로 부터 전달받은 메일 내용 본문 중 일부




요약 


- 취약점 노출 : 앱 코드에 AWS 자격인증 정보 존재, 개선 권고



대응 


1. 하드코드 AWS 자격인증 정보 제거 


2. Amazon Cognito 자격증명 생성
 ( * Amazon Cognito : 사용자 풀 및 자격 증명 풀 Pool 제공 )

- " Amazon Cognito "  새 자격증명 생성 :
** 인증되지 않은 자격 증명에 대한 액세스 활성화 


3. IAM 정책 연결  

- " IAM " 관리 콘솔에서 위 생성한 자격증명에 허용할 정책( 권한 ) 연결 :
권한 Example ) Amazon Rekognition Full Access


4. 안드로이드 프로젝트 적용

- App 수준 Gradle Dependency 추가 
2020-11-16기준

implementation 'com.amazonaws:aws-android-sdk-core:2.16.8'

implementation 'com.amazonaws:aws-android-sdk-cognito:2.16.8'


- Cognito Credential 생성하여 AmazonXXXClient 객체에  주입

CognitoCachingCredentialsProvider(CONTEXT, IDENTITY_POOL_ID,  REGION )


5. 배포



궁금한 점


cognito 말고 proguard로 대응되는지??? 

디컴파일해서 하드코드된 credential 정보가 난독화 되있는지??

반응형
300x250

자세한 내용


안드로이드 공식 홈페이지

https://developer.android.com/studio/build/shrink-code?hl=ko

목적 


 - 코드 난독화 -> 디컴파일 등 코드 노출 or 앱 해킹에 대한 방어책 중 하나

이외 리소스 용량 절감 등 


적용 예 ( release에만 적용 ) 


App수준 Gradle ( build.gradle : Module )

> android { 

...

buildTypes{

...

release {

minifyEnabled true //code 축소
shrinkResources true //resource 축소
proguardFiles getDefaultProguardFile('proguard-android-optimize.txt'),
'proguard-rules.pro', 'gson.pro', 'glide.pro','aws.pro','retrofit2.pro' // ㅇ

// 추가 규칙 : 예외 적용 -> retrofit2, glide등 라이브러리에 대한 예외처리 필수

}

}

}


주의사항


두 모드 ( release와 debug) 에 대한 옵션을 상이하게 적용한 경우,

동작 확인 필수

예) debug 모드에서 정상적으로 동작, 

스토어에 release 모드로 배포된 앱 런타임중에 예외 발생 가능성 굉장히 높음.



추가사항 


2020-11-17

1. Firebase Crashlytics 읽을 수 있는 오류 보고서 

- Firebase Crashlytics를 사용할 경우, 읽을 수 있는 오류 보고서가 업로드 되려면 꼭 아래 옵션 적용

관련 링크 :
https://firebase.google.com/docs/crashlytics/get-deobfuscated-reports?platform=android


-keepattributes SourceFile,LineNumberTable        # Keep file names and line numbers.
-keep public class * extends java.lang.Exception  # Optional: Keep custom exceptions.


- debug 버전엔 위 옵션을 적용안해도 판단된다면 아래 구문 삽입.
이 또한 위 링크에 자세히 설명되어있다.

buildTypes {
    debug
{
     ....

      firebaseCrashlytics
{
        mappingFileUploadEnabled
false
      }

    }
 
}



확인 필요 사항 


실제로 Proguard를 적용한 앱을 디컴파일 했을 때, 

보안키와 같은 중요한 정보 난독화 여부



반응형

+ Recent posts