경희대학교 컴퓨터공학과 2024-2 캡스톤디자인
개발기간: 2024.09 ~ 2024.12
KSC2024 논문 등재
디지털 기기, 특히 스마트폰의 사용이 일상화되며 범죄 수사에서 디지털 포렌식의 중요성이 더욱 커지고 있다. 스마트폰은 사용자의 행동, 위치 정보, 사진 및 비디오 등 다양한 데이터를 저장하고 있으며, 이러한 데 이터는 범죄 행위에 대한 증거로 활용될 수 있다. 특히 디지털 성범죄에서 스마트폰 포렌식은 중요한 수단이 되고 있다. 본 연구에서는 스마트폰 디지털 포렌식 기술을 통해 불법촬영 범죄 가능성을 판단하는 데이터를 수집하고, 수사관에게 범죄 가능성을 판단하여 제시해주며, 그 근거가 되는 데이터를 보기 쉽게 가시화하여 제공하는 서비스를 구현한다.
- 논리적 추출: 하드웨어가 아닌 파일 시스템에 접근하여 사용자 데이터를 추출하는 방식 채택
- ADB(Android Debug Bridge): 안드로이드 스마트 폰을 관리하기 위한 개발자용 디버깅 프로그램 사용
- 유해 사진 분석을 위해 Google Cloud의 Vision API 활용
Front-end
$ git clone https://github.com/KHU-CapstoneDesign/mobile-forensics-frontend.git
# 프로젝트 루트에 .env 생성 후 아래와 같이 입력
REACT_APP_KAKAO_API_KEY=***YOUR KAKAO API KEY***
REACT_APP_KAKAOMAP_API_KEY=***YOUR KAKAO MAP API KEY***
REACT_APP_API_URL="http://localhost:8080"
$ npm i
$ npm start
Back-end
# src/main/resources/application.properties에서 가장 아래에 추가 정보 입력
# Google Cloud에서 인증 키 파일 및 Google Geolocation API key를 가져와야 함(무료 사용기간 만료 시 소액의 API 사용료 지불 가능성 있음)
google.geolocation.api.key=***YOUR GOOGLE GEOLOCATION API KEY***
google.cloud.credentials.path=***YOUR LOCAL APSOLUTE PATH OF GOOGLE CLOUD CREDENTIAL FILE***
📦/mobile-forensics-frontend
└📂public
└📂images
└📜batch
└📜batch.bat
└📜electron.js
└📜index.html
└📜preload.js
└ ...
└📂src
└📂assets
└📂components
└📂contexts
└📂pages
└📜Guide.jsx
└📜Input.jsx
└📜Main.jsx
└📜Picture.jsx
└📜Result.jsx
└ ...
└📜App.jsx
└📜index.js
└📜package-lock.json
└📜package.json
└📜webpack.config.js
└ ...
📦/mobile-forensics
└📂src
└📂main
└📂java
└📂com.capstone_design.mobile_forensics
└📂file
└📂api
└📜AnalysisResult.java
└📜SafeSearchResponse.java
└📜SafeSearchServive.java
└📜FileController.java
└📜FileService.java
└📜ImageFile.java
└📜ImageFileRepository.java
└ ...
└📂log
└📂api
└📜GeolocationRequest.java
└📜GeolocationResponse.java
└📜GeolocationService.java
└📂dto
└📜LogEntry.java
└ ...
└📂entity
└📜LogEntityEntry.java
└ ...
└📂repository
└📜LogProcessService.java
└ ...
└📂socket
└📜SocketConfig.java
└📜SocketNotifyController.java
└📜SocketService.java
└📂web
└📜WebController.java
└📜WebService.java
└📜UserData.java
└📜UserDTO.java
└📜UserRepository.java
└📂ResponseDTO
└📜WholeData.java
└📜DataDetectService.java
└ ...
└📜CorsConfig.java
└📜GoogleInitializer.java
└📜MobileForensicsApplication.java
└ ...
└📂resources
└📜application.properties
└📂test
└📜build.gradle
└ ...
[가이드 화면]
- 포렌식을 위해 사전에 설정되어야 하는 항목에 대한 가이드 제공
- 이전, 다음, 건너뛰기 가능
[메인 화면]
- 데이터 추출 및 포렌식 결과 확인 가능
- 네이게이션바 로고 클릭 시 메인 화면으로 이동
- 가이드 다시 보기 클릭 시 가이드 화면으로 이동
[데이터 추출(포렌식)]
- 모달창을 통해 데이터 추출 진행 상태 확인 가능
- 데이터 추출하기 버튼 클릭 시 아래와 같이 총 6가지 데이터에 대한 포렌식 진행 (배치파일 실행)
-
데이터 정의 갤러리 사진 1시간 이내 찍힌 사진 휴지통 사진 1시간 이내 삭제된 사진 사진 촬영 로그 1시간 이내 로그 GPS(메타데이터 + wifi bssid) 반경 50m 이내 외부 앱 접속 기록 1시간 이내 접속 기록 캐시파일 1시간 이내 캐시파일
[범행 정보 입력]
- 피해자의 증언을 토대로 한 범행 장소와 날짜 및 시간 입력
- 장소 입력을 위해 Kakao API 사용
- 지번/도로명 주소를 위도/경도로 변환하기 위해 Kakao Map API 사용
- 날짜/시간 인풋을 위해 MUI DateTimePicker 라이브러리 사용
[결과 화면]
- 불법촬영 가능성 예측 판단: 총 5단계(매우 높음/높음/보통/낮음/매우 낮음)로 분류
- 근거 데이터 제시: 결과에 따른 근거 데이터 제시
[캐시파일]
- SODA 카메라 앱으로 찍고 삭제한 사진에 대해 캐시 파일로 복구하여 범행 사진 확인 가능
- 유해 사진(범행 사진) 판단을 위해 Google Vision API 사용
[갤러리/휴지통 사진]
- 갤러리와 휴지통에 있는 사진 확인 가능
- 유해 사진(범행 사진) 판단을 위해 Google Vision API 사용
[GPS]
- 범행 위치로부터 반경 50m 내에 있는 위치 반환
- WIFI BSSID -> 위도, 경도 변환을 위해 Google Geolocation API 사용
[사진 촬영 로그]
- 범행 시간대 기본 카메라 앱으로 촬영한 로그 확인 가능
[앱 사용 로그]
- 범행 시간대 외부 카메라 앱과 클라우드 앱의 실행 기록 확인 가능
임윤희 | 홍소현 | 오수한 |
---|---|---|
@yunheeLim |
@3un0ia |
@Kimonoduck |
기획, 디자인 프론트엔드 개발 디지털 포렌식 배치파일 제작 |
백엔드 개발 | 이미지 포렌식 배치파일 제작 |