정보보안기사 실기시험 중에 이 개념을 마주친 적이 있다.. 인증서 고정(Certificate Pinning)은 앱이 서버가 보내온 인증서를 직접 확인해서 미리 알고 있는 값과 다르면 통신을 아예 끊어버리는 안전장치이다. if (앱이 Pinning 하고 있다면) : if (프록시가 준 인증서 == 앱이 알고 있는 핀값) 통과 else 연결 거부 (TLS 핸드셰이크 중단) 우회 방법에는 대표적으로- APK를 디컴파일해서 network_security_config나 핀 코드 자체를 제거하는 방법- 런타임에서 후킹 해서 검증 함수를 통과시키는 방법등이 있다.첫 번째 방법은 영구적이지만 번거로우며, 재빌드가 필요하다.나는 두 번째 방법을 선택했다.. 이 앱은 Kotlin으로 만들었고, 예전에 Kotlin..
자바 개발자 관점에서 보면 개념은 익숙한 것들이 많지만Frida의 JavaScript, 후킹 문법 특유의 규칙이 조금 어색했다..코드 블록을 참조해가며 각 블록의 목적과 동작 원리를 이해해보자.. Java.perform(function () { // ...후킹 코드들...}); Java.perform(function () { ... })Frida가 Android의 Java VM에 안전하게 접근할 수 있을 때 내부 콜백을 실행한다는 뜻모든 Java.use, overload, implementation 같은 Java 관련 API 호출은 반드시 이 블록 안에서 해야 안정적으로 동작함!즉, Java VM이 준비되기 전이라면 이 블록 안에서 기다려서 실행하게 됨. var A = Java.use("sg.van..
실습에 사용한 앱은 OWASP Mobile Security Testing Guide(UnCrackable Level 1) APK이다. 1. Jadx로 클래스/메서드 확인Frida로 후킹을 하기 위해서는 정확한 클래스명과 메서드명을 알아야 한다.APK 디컴파일 및 MainActivity 확인 암호화 관련 클래스 확인 a(String str) → 문자열 검증b(String str) → 문자열 → 바이트 배열 변환내부 AES 처리: sg.vantagepoint.a.a.a(byte[], byte[])2. Frida attach 및 환경 준비앱 분석을 위해 Frida를 사용하기 전, 먼저 환경을 준비했다.A. 프로세스 목록 확인앱이 실행 중인지, Frida에서 접근 가능한지 확인하기 위해 프로세스 목록을 가져..
이전부터 윈도우 실행 프로그램(EXE 파일)에 대한 리버스 엔지니어링 경험이 있던 나는모바일 앱에도 관심이 생겨 실습을 진행해 봤다.원리는 비슷하지만, 환경과 접근 방식에서 조금 다른 점이 있었다.윈도우 환경에서는 OllyDbg를 주로 사용했다.어셈블리어를 한 줄씩 트래킹 하며 각 레지스터와 스택의 값을 분석하고,함수 호출과 분기 로직을 이해하는 것이 핵심이었다.모바일 환경에서는 Frida를 사용했다.Frida는 단순히 디버깅만 하는 것이 아니라,앱의 메서드를 실시간으로 후킹하고 소스코드 수준에서 값을 변조할 수 있다.정말 매력적이면서도 흥미로웠다.개발환경 구성- 호스트 OS: Windows 10- Android Studio + AVD: Pixel 9 (Google APIs 버전)- ADB: And..
로컬 LLM 취약점을 점검하는 과정에서 Ollama의 API Endpoint를 통해 파이썬에서 프롬프트를 요청하고 응답받을 수 있는 사실을 확인했습니다. 이를 활용하면, 취약점을 진단하는 사람이 매번 수동으로 프롬프트를 보내고 결과를 확인하는 번거로움을 줄일 수 있을 것이라는 생각이 들었고, 자동화 도구를 개발하게 되었습니다. 작동 방식은 간단합니다.프로그램 실행 시 1~10 기준으로 점검 항목별 자동화 테스트 수행예: 프롬프트 인젝션 점검 -> 1 입력사전에 정의된 공격용 프롬프트를 Ollama LLM에 요청LLM의 응답을 분석하여 취약/양호 여부 판단추가적으로 1~10 전체 항목에 대해 점검, 마지막에 취약한 항목만 요약하여 출력할 수 있게 확장하였습니다. 하지만 현재 공격 프롬프트, 검증 프롬프트,..
이번에는 동일한 LLM 보안 진단 항목을 ChatGPT에 적용하여 점검한 결과를 정리했습니다.모델에 따라 결과가 다를 수 있지만, 이번 진단에서는 전반적으로 취약점이 발견되지 않거나 해당 없는 항목이 많았습니다. - 테스트 항목 대부분에서 양호 판정을 받았으며, 취약점이 식별되지 않았습니다.- ChatGPT 환경에서 제공되지 않는 기능(예: OS 명령어 직접 실행, 파일 업로드 기능 등)은 평가에서 제외되었습니다.- 같은 진단 항목이라도, 모델 구조·배포 환경·기능 제한 정책에 따라 결과가 달라질 수 있습니다. 이번 점검에서 ChatGPT는 기본적인 보안 측면에서 안정적인 결과를 보였지만,LLM 보안 점검은 단일 모델이 아닌 다양한 환경에서 반복 수행할 필요가 있습니다.