본문 바로가기
정보보안/안드로이드해킹

안드로이드 모의해킹) 취약한 암호화 실행

by _miiiiiin_zzang_ 2020. 7. 29.

암호 알고리즘에 대한 취약점

인코딩을 통해 계정 비밀번호와 같은 민감 데이터를 감추어 보내는

취약하다고 알려진 알고리즘 : RC2, RC4, RC5, MD4, MD5, SHA1, DES, 3DES

 

  1. 취약점 진단 과정
    1. loginActivity.java 파일에서 아이디는 base64 비밀번호는 aes 암호화 하는 확인 가능
    2. 코드에서 주의 깊게 봐야 클래스는 CryptoClass
        1. AES 사용된느 값을 String 변수에 그대로 넣는 방식으로 하드코딩하여 취약점 노출
        2. 코드 내부에 상수 형태로 암호화키를 노출하면 모바일에서 자바 언어 특징으로 인해 암호화키를 노출할 위험성이 커짐
        3. 값을 노출하고 싶지 않을 때는 해시 함수를 사용하는 것이 안전, 키값을 외부 디렉터리에서 불러오면 안전
        1. 초기화 벡터에 전부 0 넣어 취약점 생성
        2. 초기화 벡터 값이 같은 경우 비슷한 개의 평문을 암호화했을 앞부분의 블록들이 서로 같아지는 문제점이 노출
        3. 전부 0으로 초기화 시킬 경우 초기화백터값이 노출되어 공격자가 암호문을 유추할 있음
        4. 초기화 벡터를 설정할 때는 가능한 암호 알고리즘이 사용되기 직전에 걔산하여 사용하고 사용한 직후에는 0으로 채우는 것이 안전
        1. AES/CBC/PKCS5Padding : 초기화 벡터는 AES 알고리즘 사용, CBC 모드로 운용, PKCS5 방식으로 패딩 사용
        2. 솔트값 없이 사용할 경우 노출 위험성 증가

 

  1. 취약점 대응방안
    1. 표준화 알고리즘 사용

댓글