ABOUT ME

-

Today
-
Yesterday
-
Total
-
  • 메모리 덤프 분석 (feat. fridump)
    iOS 2023. 9. 14. 10:11

    안녕하세요. 그린입니다 🍏

    이번 포스팅에서는 fridump를 이용해서 메모리 덤프 분석을 해볼까해요!

     

    사실 보안팀에서는 각 앱의 보안을 진단하기 위해서 memory dump를 보고 분석하는 업무도 하고 있습니다.

    즉, 사용자의 민감한 휴대폰정보 / 비밀번호 / 이메일 등 개인정보들이 실제 memory에서 사용 후 해제되지 않고 남아있는지, 그것으로 어떠한 탈취가 가능한 루트가 있는지 등을 파악하기 위해서는 앱의 메모리 덤프를 가지고 분석해보는것이 첫번째 단계일것 같아요 🙋🏻

     

    근데 우리는 보안팀이 아니지만! 그래도 우리도 민감정보들이 메모리에 남아있지 않게 설계하고 구현했다 하더라도 검증은 해보는것이 좋겠죠?

     

    그렇기에 이번 포스팅에서 메모리 덤프를 확인하는 과정까지 소개해볼까해요!

     

    가장 우선되는건 fridump라는 메모리 덤프 분석 툴을 설치하고 이용하는 방법실제 사용하면 어떻게 나오는지 정도입니다.

    아직 제가 다뤄본것이 얼마 안되어서 고정도까지인듯..?!

     

    그럼 일단 바로 fridump에 대해 알아볼까요?


    fridump

    메모리 덤프를 분석하는 툴은 더 있겠지만 제가 사용하는건 fridump라서 fridump로 해봅니다 😉

     

    fridump는 주로 침투 테스터와 개발자를 대상으로 하는 오픈 소스 메모리 덤핑 툴이에요.

    fridump는 Frida 프레임워크를 사용해 모든 플랫폼에서 액세스 가능한 메모리 주소를 덤프합니다.

    Winodw, Linux, macOS 시스템에서 iOS, Android, Window 앱의 메모리를 덤프하는데 사용할 수 있어요!

     

    즉, 우리 iOS 앱 메모리 덤프할 수 있다는것이 중요하겠죠?

     

    근데 이 fridump에도 두가지가 있어요.

     

    본인의 환경이 python3 이전이 설치되어 있다면 아래 fridump를 사용해야 합니다.

     

    GitHub - Nightbringer21/fridump: A universal memory dumper using Frida

    A universal memory dumper using Frida. Contribute to Nightbringer21/fridump development by creating an account on GitHub.

    github.com

    python3가 설치된 환경을 사용하고 계신다면 fridump3를 사용하면 됩니다.

     

    GitHub - rootbsd/fridump3: A universal memory dumper using Frida for Python 3

    A universal memory dumper using Frida for Python 3 - GitHub - rootbsd/fridump3: A universal memory dumper using Frida for Python 3

    github.com

     

    자 그럼 fridump가 무엇인지 어디서 설치하는지 확인해봤어요!
    그럼 설치해볼까요?


    fridump 설치하기

    1️⃣ python3 설치

    일단 mac에서 python의 설치가 되어 있지 않을 경우 진행합니다!

    brew install python3

     

    2️⃣ frida 설치

    pip3 install frida-tools

     

    3️⃣ fridump3 설치

     

    GitHub - rootbsd/fridump3: A universal memory dumper using Frida for Python 3

    A universal memory dumper using Frida for Python 3 - GitHub - rootbsd/fridump3: A universal memory dumper using Frida for Python 3

    github.com

    해당 레포를 클론 받습니다.

     

    그리고 하나 수정해줘야할것은 한글 앱 메모리 덤프를 지원할 수 있도록 fridump3.py 파일을 수정해줘야 합니다.

    # Start a new Session
    session = None
    try:
        if USB:
         🙋 session = frida.get_usb_device().attach(int(APP_NAME)) 🙋
        elif NETWORK:
            session = frida.get_device_manager().add_remote_device(IP).attach(APP_NAME)
        else:
            session = frida.attach(APP_NAME)
    except Exception as e:
        print(str(e))
        sys.exit()

    int(APP_NAME)으로 해당 코드를 변경해줍니다.

     

    자 이렇게되면 사실 설치와 기반 환경 준비가 모두 끝났습니다!

     

    이제 그럼 한번 실행해볼까요?


    fridump3 실행하여 메모리 덤프 분석하기

    우선 두가지 방법으로 우리 iOS 앱의 메모리 덤프를 분석 떠볼 수 있어요.

     

    1️⃣ 아이폰을 통해 앱 실행하여 분석하기

    해당 방법은 탈옥된 아이폰이 필요합니다 🥲

    그렇기에 해당 포스팅에서 다뤄보진 않을거에요.

    추후 필요하다면 별도 포스팅에서 추가되는 부분을 다뤄보겠습니다.

     

     2️⃣ macOS에서 시뮬레이터로 앱 실행하여 분석하기

    요 방법을 주로 사용하게 될것 같은데요.

     

    👉🏻 메모리 덤프를 뜨고 싶은 앱을 시뮬레이터로 실행

    👉🏻 해당 fridump3 경로에서 터미널 오픈

    👉🏻 아래 프로세스 ID를 찾는 명령어를 통해 해당 앱의 PID 탐색

    frida-ps

    위 명령을 입력하면 해당 앱이 시뮬레이터에서 실행되어 있단 가정하에 이렇게 찾을 수 있습니다.

     

     

    요렇게 PID와 해당 앱 이름이 나오죠!

    그럼 원하는 앱의 PID를 찾을 수 있습니다.

     

    👉🏻 아래 메모리 덤프 정보 얻기 위한 명령어 실행

    python3 fridump3.py -v -r -s "프로세스ID"

    위 frida-ps에서 얻은 해당 앱의 PID를 넣어서 돌려줍니다.

     

    그럼 이렇게 쭈욱 메모리 덤프 분석을 진행하죠!

     

     

    이렇게 메모리 덤프 분석이 끝났다고 한다면!?

     

    그럼 해당 fridump 폴더를 보면 dump에 이렇게 데이터와 strings 텍스트 파일이 생성됩니다.

    여기서 우리는 strings 텍스트 파일을 보면 됩니다.

     

    여기서 저는 텍스트필드로 휴대폰 번호를 입력해봤어요.

     

    그럼 이렇게 메모리 덤프에 나타나게 됩니다.

     

    이것이 사실 보안상 많은 문제를 초래할 수 있어요!

    해커가 기기를 탈취해서 앱을 실행하고 덤프를 뜯어보면 민감한 개인정보들을 언제든 알아낼 수 있겠죠..?

     

    자 이렇게 우리는 메모리 덤프를 분석하는것으로 fridump를 통해 그 사용을 알아봤습니다!

     

    이제는 필요한건 저 개인정보들을 어떻게 메모리에 남지 않게 하는지 등은 보완해나가야겠죠?

    상황에 따라 다르겠지만 토스의 안정원님이 발표하신 메모리에 남지 않는 문자열을 이용해볼 수도 있겠고 실제 초기화를 시키는 방법등 다양하게 도전해볼 수 있을것 같아요.

     

    주로 텍스트 필드 등 사용자 인풋을 입력받을때 저렇게 남는것 같긴합니다 🥲

     

    일단 이번 주제는 메모리 덤프 활용해보기였으니 여기까지 🕺🏻


    마무리

    메모리 덤프 분석을 하는 방법을 알아봤는데, 이건 시작에 불과하고 이걸 통해서 유의미한 대응을 해야겠죠?

    그 대응은 또 다음시간에 ☺️

    'iOS' 카테고리의 다른 글

    Event Capturing  (38) 2023.10.26
    Event Bubbling  (44) 2023.10.23
    앱 출시 - 숏스(SHORT NEWS) (feat. Mash-Up)  (30) 2023.07.24
    특정 버전에 대한 분기 처리하기 (systemVersion)  (10) 2023.07.13
    오픈소스 라이센스 표시  (8) 2023.06.19
Designed by Tistory.