Skip to content

SecureMarshmallow/SecureMarshmallow_iOS_V3

Repository files navigation

사용자의 개인정보를 안전하게 : SecureMarshmallow🔓

iOS Badge Xcode Badge

팀 소개

박준하 도원준 양지은
@jjunhaa0211 @one3147 @wldms615
PM, iOS, Web Web Sec, Dev iOS Sec

주요 기능

안전한 메모 및 사진 저장

  • 일상 속에 꼭 기억해야 하는 일들, 또는 일정들을 메모로 기록해 관리하세요. 🖌️
  • 일반적인 메모와 다르게 암호화되는 패스워드를 통해 관리됩니다. 🔐
  • 보관해야하는 사진들도 SecureMarshmallow를 통해 안전하게 관리하세요. 🔍
  • 패스워드와 같은 인증 절차를 통해 사생활을 보호할 수 있습니다. 🔑

디바이스의 보안 관리

  • 디바이스의 상태를 안전하게 관리하세요. 📱
  • URL의 안전성을 검증하세요. ⚠️
  • 네트워크, 디바이스 배터리, 저장 공간 등에 대한 정보를 편하게 확인하세요. ✅

침입 탐지 및 추적

  • 내 기기에 침입한 기록을 확인하세요. 💡
  • 내 기기를 대상으로 스크린샷을 시도되었는 지 확인하세요! 🔥

동작화면

메인 메모리스트 사진추가
메인 화면 메모 화면 사진 화면
설정 앱열기추적 보안설명
설정 화면 열림 추적 적용 기술
배터리 저장공간 메모내부작성
배터리 확인 저장공간 확인 메모 내용

기술 스택

🔨SnapKit

  • 간결한 layout을 하기 위해서 사용

🔧Then

  • 코드를 간결하게 보기 위해서 사용

🔐IOSSecuritySuite

  • 기능

  • 탈옥 탐지 모듈

    • 기기가 탈옥이 되어있는지 아닌지 확인
  • 연결된 디버거 감지기 모듈

  • 앱이 에뮬레이터에서 실행됐는지 아닌지 확인

  • 리버스 엔지니어링 도구 감지

탈옥 감지 모듈

  • True/False 반환
if IOSSecuritySuite.amIJailbroken() {
	print(“This device is jailbroken)
} else {
	print(“This device is not jailbroken”)
}
  • 어떤 경로로 탈옥 되었는지 알고싶을 때 사용
  • 파일 경로 확인 가능
let jailbreakStatus = IOSSecuritySuite.amIJailbrokenWithFailMessage()
if jailbreakStatus.jailbroken {
print(“This device is jailbroken)
print(“Because: (jailbreakStatus.failMessage))
} else {
print(“This device is not jailbroken”)
}
  • 과거에 탈옥 했었고, 지금도 탈옥이 되어있는 경우
let jailbreakStatus = IOSSecuritySuite.amIJailbrokenWithFailedChecks()
if jailbreakStatus.jailbroken {
if (jailbreakStatus.failedChecks.contains { $0.check == 
.existenceOfSuspiciousFiles }) && (jailbreakStatus.failedChecks.contains 
{ $0.check == .suspiciousFilesCanBeOpened }) {
print(“This is real jailbroken device”)
}
}

디버거 탐지기

  • 디버거 탐지기 모듈
let amIDebugged: Bool = IOSSecuritySuite.amIDebugged()
  • 모든 디버거를 거부
IOSSecuritySuite.denyDebugger()
  • 에뮬레이터(가상머신) 탐지 모듈
let runInEmulator: Bool = IOSSecuritySuite.amIRunInEmulator()
  • 리버스 엔지니어링 도구 검출기 모듈
var amIReverseEngineered = Securing.IOSSecuritySuite.AmIReverseEngineered() ? true : false;

📀RealmSwift

  1. SQLite와 CoreData보다 작업 속도가 빠르고
  2. Cross Platform을 지원해서 안드로이드 OS와 DB 파일을 공유할 수 있고
  3. Realm Studio를 통해서 DB 상태를 편하게 확인할 수 있고
  4. 직관적인 코드로 작업할 수 있고
  5. Rx를 지원하는 RxRealm이 존재

⚠️LLDB

  • LLVM이 컴파일한 애플리케이션을 디버깅할 때 쓰는 툴
  • 프로젝트의 컴포넌트 중 디버깅과 관련된 LLVM의 서브 프로젝트
  • LLDB 보고서

동작 화면

Simulator.Screen.Recording.-.iPhone.15.Pro.Max.-.2023-10-04.at.23.48.14.mp4

About

🔒Local Marshmallow 🔑

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

 
 
 

Contributors

Languages