This project is a note-taking app built with modern Android development practices (MVI, Clean Architecture, Dagger Hilt, Jetpack Compose) but intentionally includes security vulnerabilities for demonstration and testing with SAST tools like MobSF/mobsfscan.
- MVI Architecture: State-driven UI updates.
- Clean Architecture: Separation of concerns between Data, Domain, and Presentation layers.
- Dagger Hilt: Dependency injection.
- Room Database: Local storage for notes.
- Jetpack Compose: Modern UI toolkit.
The following issues are baked into this version of the app:
- Hardcoded Secrets: A fake API key is stored in
app/build.gradle.ktsunder the debug build type. - Insecure Logging: Sensitive note content is printed to Logcat in
NotesViewModel.ktduring deletion. - Naive WebView Configuration: The Settings screen contains a WebView with JavaScript enabled and file access allowed, which are common entry points for attacks.
- Plaintext Storage: Notes are saved in a standard SQLite database (via Room) without encryption.
- Version 1: Insecure baseline (Current).
- Version 2: Pipeline integrated, failing on critical findings.
- Version 3: Issues fixed (Encrypted Room, Proguard/R8 rules, secure WebView, removed logs), merge allowed.
- Sync project with Gradle.
- Run the
appmodule on an emulator or physical device. - Use MobSF or mobsfscan to analyze the source code or the generated APK.