안드로이드 스튜디오

안드로이드 개발 일지 (21.11.01) - 1

hojung 2021. 11. 2.
728x90
반응형

저번 주 금요일 미션을 받았다.... 근로 인생 통틀어서 가장 어려운 미션이었던 거 같은데 

보안 진단을 맡겼는데 자그마치 안드로이드 어플리케이션에 보안 문제가 3개나 나왔다는 것이다. 

 

1. 역분석 방지 

코드를 디컴파일링 하면 소스 코드의 원본이 보여 안 좋은 의도를 가진 사람들이 쉽게 공격을 할 수 있다는 것이다. 

역 분석을 하면 소스코드 난독화가 되어 있지 않아 분석이 용이하다. 이는 앱의 구조와 사용 함수 등을 쉽게 알 수 있어 공격자가 취약점을 쉽게 찾을 수 있다는 단점이 있다. 

하지만 이 경우는 쉽게 해결 할 수 있었는데 안드로이드 스튜디오에서 기본적으로 제공하는 proguard라는 툴을 설정하는 것으로 해결할 수 있었다. 

먼저 현재 사용하고 있는 ADT를 최신 버전(8.0.1 이 후 버전)을 설치한다. 기존에 설치된 ADT 가 있으면 최신 버전으로 업데이트 하면 된다. ADT를 업데이트 하는 것과, 어플리케이션 타겟 플랫폼을 결정하는 것은 별다른 상관이 없으니 호환성에 대하여 큰 걱정하지 않고 과감하게 업데이트 하셔도 관계없다.

 

ADT 업데이트를 마친 후에, 새로운 안드로이드 프로젝트를 만들면, 프로젝트 루트 폴더에 기존과 다른 proguard.cfg 라는 파일이 생성되는 것을 확인하실 수 있다. 프로가드 환경 설정 파일이라고 생각하면 된다. 하지만 build.gradle(module) 파일에 buildType을 debug와 realease로 나눈 후 proguard 설정을 해주면 된다. 

 buildTypes {
        release {
            minifyEnabled true
            shrinkResources true
            //proguardFiles getDefaultProguardFile('proguard-android-optimize.txt')
            proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.pro'
            //proguardFiles 'proguard-rules.pro'
            proguardFiles 'gson-proguard-rules.pro'
        }
        debug {
            minifyEnabled true //2021.11.01
            shrinkResources false
            proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.pro'
            //proguardFiles 'proguard-rules.pro'
            proguardFile 'proguard-debug.pro'
            proguardFiles 'gson-proguard-rules.pro'

        }
    }

먼저 buildTypes를 debug와 realease로 나눈 후 minifyEnabled를 모두 true로 바꿔줘야 proguard를 사용하겠다는 뜻이다. 

그 후 proguardFiles함수를 통해 여러 파일 들을 한 번에 등록해줘도 되고 proguardFile함수를 써서 한 파일 씩 여러번 등록해주어도 된다. 

위 과정을 마치면 proguard설정이 완료되어 역분석 방지를 할 수 있다. 

 

728x90
반응형

댓글