Skip to content

Latest commit

 

History

26 Commits

Folders and files

NameName
Last commit message
Last commit date
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Dosya Depolama ve Yedekleme Sistemi

Bu proje, kullanıcıların dosyalarını güvenli şekilde yedeklemelerine, senkronize etmelerine ve yönetmelerine olanak sağlayan bir web uygulamasıdır. Sistem logları gerçek zamanlı izlenir, anormallikler tespit edilir ve kullanıcı davranışları analiz edilerek güvenlik ihlalleri önlenir.


Projenin Amacı

Sistemdeki dosya güvenliğini artırmak, sistem loglarını gerçek zamanlı izlemek ve kullanıcı davranışlarını analiz ederek güvenlik ihlallerini tespit etmektir.


Özellikler

Kullanıcı Yönetimi

  • Bireysel kullanıcı kaydı (eşsiz kullanıcı adı zorunluluğu)
  • Güvenli parola saklama (bcrypt ile şifreleme)
  • Kullanıcı adı değiştirme
  • Parola değiştirme talebi (Sistem Yöneticisi onayıyla)
  • Takım üyesi belirleme ve bildirim sistemi
  • Takım üyeleri arasında dosya paylaşımı ve ortak düzenleme

Sistem Yöneticisi Paneli

  • Kullanıcı profillerini yönetme
  • Depolama limitlerini belirleme ve kontrol etme
  • Parola değiştirme isteklerini onaylama / reddetme
  • Tüm kullanıcıların doküman, paylaşım, şifreli parola ve log dosyalarına erişim

Dosya Yedekleme ve Senkronizasyon Modülü

  • Belirli dizinlerdeki dosya değişikliklerini izleme (watchdog)
  • Otomatik periyodik yedekleme (APScheduler)
  • Kaynak → hedef dizin senkronizasyonu
  • Yedekleme ilerlemesinin arayüzde gösterimi (thread ile)
  • Yedekleme sonuçlarının .txt log dosyasına kaydedilmesi

Log İzleme ve Anormallik Tespiti Modülü

  • Log dosyalarını satır satır okuma (ayrı proses)
  • Anahtar kelime arama (örn. failed login)
  • Anormal durum tespiti ve arayüzde uyarı gösterimi

Tespit Edilen Anormal Durumlar:

# Anormal Durum
1 Yedekleme/senkronizasyon işleminin beklenmedik kesilmesi
2 Kısa sürede olağandışı sayıda dosya indirme/yükleme
3 Yetkisiz şekilde aynı dosyanın farklı kullanıcılarla paylaşılmaya çalışılması
4 Aynı kullanıcının kısa sürede 3'ten fazla başarısız giriş denemesi
5 Kısa sürede sürekli parola değiştirme talebi

Kullanıcı Davranışı Analizi Modülü

  • Giriş-çıkış aktivitelerini izleme (ayrı proses)
  • Anormal davranış tespitinde sistem yöneticisine ve kullanıcıya bildirim
  • Bildirim sonrası anormallik tespit modülünün otomatik tetiklenmesi
  • Anormal davranışların log dosyasına kaydedilmesi ve arayüzde gösterilmesi

Log Dosyası Yapısı

Log dosyaları .txt uzantılı olarak logs/ dizininde tutulur ve profile/yetkinliğe özgü kategorilerde oluşturulur.

Kategoriler: takım üyesi belirleme, doküman paylaşımı, parola değiştirme talebi, parola değiştirme talebi onaylama, profil girişleri, yedeklemeler, tespit edilen anormal durumlar

Her log kaydında bulunan alanlar:

Alan Açıklama
start_date İşlem başlangıç tarihi
end_date İşlem bitiş tarihi
operation_code Yapılan işlemin türünü belirten kod
status_code İşlemin son durumunu belirten kod
source_dir Kaynak dizin
backup_size Yedeklenen veri miktarı

Teknolojiler

Katman Teknoloji
Backend Flask
Veritabanı MySQL (SQLAlchemy modelleri)
Frontend Flask Templates + Bootstrap
Şifreleme Bcrypt
Log & Analiz Python logging, pandas
Zamanlama APScheduler
Dosya İzleme watchdog
Eşzamanlılık threading, multiprocessing

Mimari — Proses & Thread Yapısı

Proje, aşağıdaki bağımsız prosesler ve thread'ler üzerine inşa edilmiştir:

Bileşen Tür Görev
Dosya değişiklik izleyici Proses Yedeklenecek dizindeki değişiklikleri izler
Yedekleme & senkronizasyon Proses Değişiklik algılandığında yedekler ve senkronize eder
Dosya kopyalama Thread Yedekleme sırasında dosyaları kopyalar
İlerleme gösterici Thread Yedekleme ilerlemesini arayüzde gösterir
Log okuyucu Proses Log dosyalarını okur
Anormal durum tespiti Proses Logları analiz ederek anormal durumları tespit eder
Anormal davranış tespiti Proses Kullanıcı davranışlarını analiz eder
Giriş-çıkış aktivite toplayıcı Proses Kullanıcı giriş-çıkış bilgilerini toplar
Periyodik log analizi Zamanlayıcı (APScheduler) Log analizini belirli aralıklarla çalıştırır
Otomatik yedekleme Zamanlayıcı (APScheduler) Yedeklemeyi belirli aralıklarla başlatır

Proje Yapısı

project-root/
│
├── app.py                # Uygulamayı başlatan ana dosya
├── config.py             # Konfigürasyon ayarları
├── requirements.txt      # Python bağımlılıkları
│
├── models/               # SQLAlchemy modelleri
│   ├── User.py
│   ├── File.py
│   ├── Folder.py
│   └── TeamMember.py
│
├── routes/               # Flask rotaları
│   ├── auth.py           # Giriş, kayıt, çıkış
│   ├── dashboard.py      # Kullanıcı paneli
│   ├── admin.py          # Sistem yöneticisi paneli
│   ├── sync.py           # Yedekleme & senkronizasyon
│   └── team.py           # Takım yönetimi
│
├── templates/            # HTML şablonları
├── static/               # CSS, JS ve görseller
├── logs/                 # .txt uzantılı log dosyaları
├── islemler/             # Arka plan prosesleri (yedekleme, log analizi vb.)
└── utils/                # Yardımcı modüller

🗄 Veritabanı Yapısı

Tablo Açıklama
users Kullanıcı bilgileri (kullanıcı adı, şifreli parola, rol, depolama limiti)
files Dosya bilgileri ve yedekleme zamanları
logs İşlem kayıtları ve durumları
team_members Kullanıcılar arası takım ilişkileri
notifications Bildirimler (takım üyeliği, paylaşım, parola talepleri vb.)
password_change_requests Parola değiştirme talepleri ve onay durumları

Kurulum (Yerel)

1. Sanal ortam oluşturun ve etkinleştirin

python -m venv venv
venv\Scripts\Activate.ps1

2. Bağımlılıkları yükleyin

pip install -r requirements.txt

Gerekiyorsa watchdog'u ayrıca yükleyin:

pip install watchdog

3. Konfigürasyonu düzenleyin

config.py içindeki veritabanı bilgileri ve gizli anahtarları ayarlayın.

4. Veritabanı migrasyon/başlatma

flask db init
flask db migrate
flask db upgrade

5. Uygulamayı çalıştırın

python app.py

Tarayıcıda http://localhost:5000 adresini açın.


Kullanım Notları

  • Log dosyaları logs/ dizininde .txt formatında, profile ve yetkinliğe özgü olarak oluşturulur.
  • Yedekleme ve log analiz görevleri APScheduler ile periyodik olarak çalışır.
  • Dosya değişiklikleri watchdog ile izlenir; değişiklik algılandığında yedekleme prosesi tetiklenir.
  • Yedekleme kopyalama işlemi ayrı bir thread üzerinde çalışır; ilerleme arayüze yansıtılır.
  • 3'ten fazla başarısız giriş denemesi hem kullanıcıya hem sistem yöneticisine bildirim gönderir ve anormallik modülünü tetikler.

Hazırlayanlar

Zeynep ÖZÇELİK
Kocaeli Üniversitesi, Yazılım Mühendisliği

About

Bu proje, kullanıcıların dosyalarını güvenli şekilde yedeklemelerine, senkronize etmelerine ve yönetmelerine olanak sağlayan bir web uygulamasıdır. Sistem logları gerçek zamanlı izlenir, anormallikler tespit edilir ve kullanıcı davranışları analiz edilerek güvenlik ihlalleri önlenir.

Resources

Stars

0 stars

Watchers

1 watching

Forks

Releases

Packages

Used by

Contributors

Languages