
🔗 URI 검증을 위한 경량 보안 오케스트레이터 모바일 애플리케이션으로, 링크 안전성을 실시간으로 집계하고 검증하는 통합 다중 엔진 인터페이스를 제공합니다.
포괄적인 URL 보안 분석을 위한 최신 Android 애플리케이션으로, 여러 위협 탐지 API와 고급 도메인 스푸핑 탐지를 결합하여 사용자를 악성 웹사이트로부터 보호합니다.
루트 디렉터리에 secrets.properties 파일을 생성하세요:
ABUSEIPDB_API_KEY=your_abuseipdb_key
VIRUSTOTAL_API_KEY=your_virustotal_key
URLSCAN_API_KEY=your_urlscan_key
중요: 이 애플리케이션을 사용함으로써 각 API 제공업체의 서비스 약관을 준수해야 합니다:
저장소 클론
git clone <repository-url>
cd olyx
API 키 구성
cp secrets.properties.example secrets.properties
# Edit secrets.properties with your API keys
빌드 및 실행
./gradlew assembleDebug
./gradlew installDebug
olyx/
├── app/
│ ├── src/main/
│ │ ├── java/com/olyx/
│ │ │ ├── data/
│ │ │ │ ├── Models.kt # ApiResult, HistoryEntry
│ │ │ │ ├── HistoryManager.kt # Persistence logic
│ │ │ │ └── SpoofingDetector.kt # Domain analysis engine
│ │ │ ├── network/
│ │ │ │ └── ApiService.kt # API integrations
│ │ │ ├── ui/
│ │ │ │ ├── components/
│ │ │ │ │ ├── ApiScoreCard.kt # Individual API results
│ │ │ │ │ └── GlobalScoreCard.kt # Aggregate score display
│ │ │ │ ├── screens/
│ │ │ │ │ ├── HomeScreen.kt # URL input
│ │ │ │ │ ├── AnalysisScreen.kt # Results display
│ │ │ │ │ ├── HistoryScreen.kt # Search history
│ │ │ │ │ └── AboutScreen.kt # App information
│ │ │ │ ├── theme/
│ │ │ │ │ ├── Color.kt # Dark theme palette
│ │ │ │ │ ├── Theme.kt # Material3 setup
│ │ │ │ │ └── Type.kt # Typography
│ │ │ │ └── utils/
│ │ │ │ └── ScoreUtils.kt # Scoring algorithms
│ │ │ ├── utils/
│ │ │ │ └── Constants.kt # App constants
│ │ │ └── MainActivity.kt # Entry point
│ │ └── res/
│ │ ├── raw/
│ │ │ └── legitimate_domains.txt # Protected domains list
│ │ └── font/
│ │ ├── gemunulibre_regular.ttf
│ │ └── redhatdisplay_regular.ttf
├── screens/ # Screenshots
├── build.gradle.kts
└── secrets.properties # API keys (not in repo)
app/src/main/res/raw/legitimate_domains.txt 파일을 편집하세요:
yourbank.com
yourbank.fr
yourbusiness.com
SpoofingDetector.kt의 임계값을 수정하세요:
private fun calculateSuspicion(...): Int {
if (distance == 1) return 90 // Very similar → High risk
if (distance == 2) return 70 // Somewhat similar → Medium risk
if (distance == 3) return 50 // Less similar → Low-Medium risk
}
ScoreUtils.kt에서 스푸핑 영향을 업데이트하세요:
val penalty = (spoofingResult.suspicionLevel * 0.5).toInt() // 50% of suspicion level
# Run unit tests
./gradlew test
# Run instrumented tests
./gradlew connectedAndroidTest
# Generate coverage report
./gradlew jacocoTestReport
통계적 편차 분석 사용:
Base Score = Average(API Scores)
Penalty = Suspicion Level × 0.5
Final Score = max(0, Base Score - Penalty)
문자열 간 최소 편집 연산(삽입/삭제/대체)을 계산하여 타이포스쿼팅을 탐지합니다.
이 프로젝트는 GNU Affero General Public License v3.0에 따라 라이선스가 부여됩니다. 자세한 내용은 LICENSE를 참조하세요.