Skip to content

Latest commit

 

History

History
323 lines (234 loc) · 10.5 KB

README.md

File metadata and controls

323 lines (234 loc) · 10.5 KB

Forensics

스마트폰 디지털 포렌식을 이용한 불법촬영 판단 서비스

데모 영상

경희대학교 컴퓨터공학과 2024-2 캡스톤디자인
개발기간: 2024.09 ~ 2024.12
KSC2024 논문 등재

프로젝트 소개

디지털 기기, 특히 스마트폰의 사용이 일상화되며 범죄 수사에서 디지털 포렌식의 중요성이 더욱 커지고 있다. 스마트폰은 사용자의 행동, 위치 정보, 사진 및 비디오 등 다양한 데이터를 저장하고 있으며, 이러한 데 이터는 범죄 행위에 대한 증거로 활용될 수 있다. 특히 디지털 성범죄에서 스마트폰 포렌식은 중요한 수단이 되고 있다. 본 연구에서는 스마트폰 디지털 포렌식 기술을 통해 불법촬영 범죄 가능성을 판단하는 데이터를 수집하고, 수사관에게 범죄 가능성을 판단하여 제시해주며, 그 근거가 되는 데이터를 보기 쉽게 가시화하여 제공하는 서비스를 구현한다.

시나리오

적용된 기술

1. 디지털 포렌식

  • 논리적 추출: 하드웨어가 아닌 파일 시스템에 접근하여 사용자 데이터를 추출하는 방식 채택
  • ADB(Android Debug Bridge): 안드로이드 스마트 폰을 관리하기 위한 개발자용 디버깅 프로그램 사용

2. 컴퓨터 비전

  • 유해 사진 분석을 위해 Google Cloud의 Vision API 활용

기술 스택

Front-end

JavaScript React Electron.js Styled Components MUI

Back-end

Java Spring MySQL

Batch

Bash Script

서비스 아키텍쳐

시작 가이드

요구사항

설치 및 실행

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***

프로젝트 구조

Front-end

 📦/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
     └ ...

Back-end

 📦/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
기획, 디자인
프론트엔드 개발
디지털 포렌식
배치파일 제작
백엔드 개발 이미지 포렌식
배치파일 제작