
🔗 Легкое мобильное приложение-оркестратор безопасности для проверки URI, предоставляющее единый мультидвижковый интерфейс для агрегации и проверки безопасности ссылок в реальном времени.
Современное Android-приложение для всестороннего анализа безопасности URL-адресов, объединяющее несколько 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
# Отредактируйте secrets.properties, вставив свои ключи API
Соберите и запустите
./gradlew assembleDebug
./gradlew installDebug
olyx/
├── app/
│ ├── src/main/
│ │ ├── java/com/olyx/
│ │ │ ├── data/
│ │ │ │ ├── Models.kt # ApiResult, HistoryEntry
│ │ │ │ ├── HistoryManager.kt # Логика сохранения
│ │ │ │ └── SpoofingDetector.kt # Движок анализа доменов
│ │ │ ├── network/
│ │ │ │ └── ApiService.kt # Интеграции с API
│ │ │ ├── ui/
│ │ │ │ ├── components/
│ │ │ │ │ ├── ApiScoreCard.kt # Результаты отдельных API
│ │ │ │ │ └── GlobalScoreCard.kt # Отображение совокупной оценки
│ │ │ │ ├── screens/
│ │ │ │ │ ├── HomeScreen.kt # Ввод URL
│ │ │ │ │ ├── AnalysisScreen.kt # Отображение результатов
│ │ │ │ │ ├── HistoryScreen.kt # История поиска
│ │ │ │ │ └── AboutScreen.kt # Информация о приложении
│ │ │ │ ├── theme/
│ │ │ │ │ ├── Color.kt # Палитра тёмной темы
│ │ │ │ │ ├── Theme.kt # Настройка Material3
│ │ │ │ │ └── Type.kt # Типографика
│ │ │ │ └── utils/
│ │ │ │ └── ScoreUtils.kt # Алгоритмы оценки
│ │ │ ├── utils/
│ │ │ │ └── Constants.kt # Константы приложения
│ │ │ └── MainActivity.kt # Точка входа
│ │ └── res/
│ │ ├── raw/
│ │ │ └── legitimate_domains.txt # Список защищённых доменов
│ │ └── font/
│ │ ├── gemunulibre_regular.ttf
│ │ └── redhatdisplay_regular.ttf
├── screens/ # Скриншоты
├── build.gradle.kts
└── secrets.properties # Ключи API (не в репозитории)
Отредактируйте 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 // Очень похоже → Высокий риск
if (distance == 2) return 70 // Отчасти похоже → Средний риск
if (distance == 3) return 50 // Менее похоже → Низкий-средний риск
}
Обновите влияние спуфинга в ScoreUtils.kt:
val penalty = (spoofingResult.suspicionLevel * 0.5).toInt() // 50% от уровня подозрения
# Запуск модульных тестов
./gradlew test
# Запуск инструментальных тестов
./gradlew connectedAndroidTest
# Генерация отчёта о покрытии
./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.