- Genel Bakış
- Özellikler
- Teknolojiler
- Kurulum
- API Entegrasyonları
- Machine Learning Modelleri
- İki Faktörlü Doğrulama
- Ekran Görüntüleri
- Kullanım
- Katkıda Bulunma
- Lisans
Virus Detect, siber güvenlik uzmanları ve geliştiriciler için tasarlanmış kapsamlı bir güvenlik analiz platformudur. Sistem, dosya analizi, IP adresi tehdit istihbaratı, URL analizi ve email spam tespiti gibi çoklu güvenlik hizmetlerini tek bir platformda birleştirir.
- 🔍 Dosya Analizi: VirusTotal ve OTX API'leri ile dosya güvenlik analizi
- 🌐 IP Tehdit İstihbaratı: IP adresleri için detaylı güvenlik analizi
- 🔗 URL Analizi: Şüpheli URL'lerin güvenlik kontrolü
- 📧 Email Spam Tespiti: 10 farklı ML modeli ile email spam tespiti
- 🔐 İki Faktörlü Doğrulama: Admin paneli için güvenli giriş
- İki Faktörlü Doğrulama (2FA): Admin paneli için TOTP tabanlı 2FA desteği
- Güvenli Kimlik Doğrulama: Django'nun güvenli authentication sistemi
- CSRF Koruması: Tüm formlar için CSRF token koruması
- API Key Yönetimi: Hassas bilgiler için environment variable desteği
- Çoklu Motor Analizi: VirusTotal'ın 70+ antivirüs motoru ile dosya analizi
- Tehdit İstihbaratı: OTX AlienVault ile entegre tehdit veritabanı
- Detaylı Raporlama: Kapsamlı analiz sonuçları ve görselleştirme
- Gerçek Zamanlı Analiz: Asenkron analiz işleme ve sonuç takibi
- 10 Farklı ML Modeli: Ensemble learning ile yüksek doğruluk oranı
- TF-IDF Vectorization: Gelişmiş metin özellik çıkarımı
- Yüzdelik Tahmin: Model konsensüsü ile spam olasılık hesaplama
- Django 3.2.16: Web framework
- Python 3.8+: Programlama dili
- SQLite/PostgreSQL: Veritabanı
- Django REST Framework: API geliştirme (opsiyonel)
- HTML5/CSS3: Modern web standartları
- JavaScript (ES6+): İnteraktif kullanıcı arayüzü
- jQuery: DOM manipülasyonu ve AJAX işlemleri
- Bootstrap: Responsive tasarım framework'ü
- DataTables: Gelişmiş tablo görselleştirme
- Font Awesome: İkon kütüphanesi
- scikit-learn: ML model eğitimi ve tahmin
- joblib: Model serialization
- TF-IDF: Metin vektörleştirme
- NumPy/Pandas: Veri işleme
- VirusTotal API v3: Dosya ve IP analizi
- OTX AlienVault API: Tehdit istihbaratı
- django-environ: Environment variable yönetimi
- django-two-factor-auth: 2FA implementasyonu
- jquery-confirm: Modal dialog'lar
- Python 3.8 veya üzeri
- pip (Python paket yöneticisi)
- Git
git clone https://github.com/yourusername/virus-detect.git
cd virus-detect/virustotalpython -m venv venv
# Windows
venv\Scripts\activate
# Linux/Mac
source venv/bin/activatepip install -r requirements.txt.env dosyası oluşturun ve aşağıdaki değişkenleri ekleyin:
SECRET_KEY=your-secret-key-here
DEBUG=True
OTX_API_KEY=your-otx-api-key
VT_API_KEY=your-virustotal-api-key
GEMINI_API_KEY=your-gemini-api-keyAPI Key'leri Nasıl Alınır?
- VirusTotal: https://www.virustotal.com/gui/join-us
- OTX AlienVault: https://otx.alienvault.com/api
- Google Gemini: https://makersuite.google.com/app/apikey
python manage.py migratepython create_superuser.py <username> <email> <password>veya
python manage.py createsuperuserpython manage.py collectstatic --noinputpython manage.py runserverTarayıcınızda http://127.0.0.1:8000 adresine gidin.
VirusTotal API, dosya ve IP adresi analizi için kullanılır. Sistem şu özellikleri sağlar:
- Dosya Yükleme ve Analiz: Dosyaları VirusTotal'a yükler ve 70+ antivirüs motoru ile analiz eder
- IP Adresi Analizi: IP adreslerinin güvenlik geçmişini kontrol eder
- Detaylı Raporlama: Analiz sonuçlarını kategorize eder (malicious, suspicious, clean, undetected)
Kullanım Örneği:
# Dosya analizi
vt_upload_url = 'https://www.virustotal.com/api/v3/files'
vt_headers = {'x-apikey': settings.VT_API_KEY}
response = requests.post(vt_upload_url, headers=vt_headers, files=files)OTX (Open Threat Exchange) API, tehdit istihbaratı için kullanılır:
- IP Tehdit Bilgileri: IP adresleri için pulse bilgileri
- Dosya Hash Analizi: Dosya hash'leri için tehdit veritabanı sorgusu
- URL Analizi: Şüpheli URL'lerin kontrolü
Kullanım Örneği:
otx_url = f"https://otx.alienvault.com/api/v1/indicators/IPv4/{ip_address}/general"
otx_headers = {'X-OTX-API-KEY': settings.OTX_API_KEY}
response = requests.get(otx_url, headers=otx_headers)Google Gemini API, AI chatbot özelliği için kullanılır:
- Doğal Dil İşleme: Kullanıcı sorularını anlama ve yanıtlama
- Güvenlik Danışmanlığı: Güvenlik konularında yardımcı bilgi sağlama
Kullanım Örneği:
gemini_url = f'https://generativelanguage.googleapis.com/v1/models/gemini-pro:generateContent?key={API_KEY}'
response = requests.post(gemini_url, json={'contents': [{'parts': [{'text': message}]}]})Sistem, email spam tespiti için 10 farklı makine öğrenmesi modeli kullanır. Her model bağımsız olarak tahmin yapar ve sonuçlar birleştirilerek nihai karar verilir.
- SVC (Support Vector Classifier): Yüksek doğruluk oranı
- KNN (K-Nearest Neighbors): Benzerlik tabanlı sınıflandırma
- NB (Naive Bayes): Olasılık tabanlı sınıflandırma
- DT (Decision Tree): Kural tabanlı karar ağacı
- LR (Logistic Regression): İstatistiksel sınıflandırma
- RF (Random Forest): Ensemble learning
- Adaboost: Adaptive boosting
- Bgc (Bagging Classifier): Bootstrap aggregating
- ETC (Extra Trees Classifier): Extremely randomized trees
- GBDT (Gradient Boosting Decision Tree): Gradient boosting
- XGBoost: Extreme gradient boosting
Modeller, TF-IDF (Term Frequency-Inverse Document Frequency) vektörleştirme tekniği kullanılarak eğitilmiştir. Email metinleri önce vektörlere dönüştürülür, sonra her model tarafından analiz edilir.
# Email vektörleştirme
email_vector = vectorizer.transform([email_text])
# Her model için tahmin
predictions = {}
for name, model in models.items():
prediction = model.predict(email_vector)[0]
predictions[name] = 'spam' if prediction == 1 else 'ham'
# Konsensüs hesaplama
spam_count = sum(1 for p in predictions.values() if p == 'spam')
spam_percentage = (spam_count / total_models * 100)Sistem, tüm modellerin tahminlerini birleştirerek daha güvenilir sonuçlar üretir. Eğer modellerin %70'i spam olarak işaretlerse, email spam olarak kabul edilir.
Sistem, admin paneli için TOTP (Time-based One-Time Password) tabanlı iki faktörlü doğrulama desteği sunar.
- QR Kod ile Aktivasyon: Google Authenticator veya benzeri uygulamalarla kolay kurulum
- Backup Kodlar: Acil durumlar için yedek kodlar
- Güvenli Giriş: Kullanıcı adı/şifre + 6 haneli kod ile çift katmanlı güvenlik
- Admin paneline giriş yapın
- Profil ayarlarından "Two-Factor Authentication" seçeneğini açın
- QR kodu telefonunuzdaki authenticator uygulamasına tarayın
- Doğrulama kodunu girin
Giriş yaparken:
- Kullanıcı adı ve şifrenizi girin
- Authenticator uygulamanızdan 6 haneli kodu girin
- Başarıyla giriş yapın
- Ana sayfada "Dosya Yükle" butonuna tıklayın
- Analiz etmek istediğiniz dosyayı seçin
- Sistem dosyayı VirusTotal'a yükler ve analiz eder
- Analiz sonuçları detaylı bir şekilde gösterilir
- Ana sayfada IP adresini girin
- "Ara" butonuna tıklayın
- Sistem IP adresi hakkında detaylı bilgi sağlar:
- Tehdit istihbaratı
- WHOIS bilgileri
- Coğrafi konum
- Güvenlik skorları
- Email analiz sayfasına gidin
- Email metnini yapıştırın
- "Analiz Et" butonuna tıklayın
- 10 farklı ML modelinin tahminlerini görüntüleyin
- Spam olasılık yüzdesini kontrol edin
virustotal/
├── apps/
│ ├── authentication/ # Kullanıcı kimlik doğrulama
│ ├── home/ # Ana sayfa ve analiz view'ları
│ ├── predictor/ # ML model yönetimi
│ ├── admin_two_factor/ # 2FA implementasyonu
│ ├── models/ # Eğitilmiş ML modelleri
│ ├── static/ # CSS, JS, resimler
│ └── templates/ # HTML şablonları
├── core/ # Django ayarları
├── manage.py # Django yönetim scripti
├── requirements.txt # Python bağımlılıkları
└── README.md # Bu dosya
python manage.py test- Model dosyasını
apps/models/klasörüne ekleyin apps/predictor/utils.pydosyasına model adını ekleyin- Modeli yüklemek için
load_models_and_vectorizer()fonksiyonunu güncelleyin
apps/home/views.pydosyasına yeni view ekleyinapps/home/urls.pydosyasına URL pattern ekleyin- Gerekli template'i oluşturun
Katkılarınızı bekliyoruz! Lütfen şu adımları izleyin:
- Projeyi fork edin
- Feature branch oluşturun (
git checkout -b feature/AmazingFeature) - Değişikliklerinizi commit edin (
git commit -m 'Add some AmazingFeature') - Branch'inizi push edin (
git push origin feature/AmazingFeature) - Pull Request oluşturun
Bu proje MIT lisansı altında lisanslanmıştır. Detaylar için LICENSE dosyasına bakın.
Virus Detect Development Team
- GitHub: @mervebagislar
- Email: mervebagislar07@gmail.com
- VirusTotal - Dosya ve IP analizi API'si
- OTX AlienVault - Tehdit istihbaratı platformu
- Django - Web framework
- scikit-learn - Machine learning kütüphanesi
Sorularınız veya önerileriniz için:
⭐ Bu projeyi beğendiyseniz yıldız vermeyi unutmayın! ⭐
Made with ❤️ by Merve Bağışlar

















