Latest commit

History

8 Commits

Folders and files

NameName
Last commit message
Last commit date

Repository files navigation

🛡️ NetShield IDS

Python, Scapy ve FastAPI ile geliştirilmiş gerçek zamanlı Ağ Saldırı Tespit Sistemi (IDS).

NetShield IDS; yetkili olduğunuz ağ trafiğini gerçek zamanlı olarak izlemek, şüpheli davranışları tespit etmek, risk seviyeleri hesaplamak ve potansiyel olarak zararlı bir etkinlik algılandığında operatörü uyarmak için tasarlanmış açık kaynaklı bir savunma güvenliği aracıdır.

Proje; ağ saldırı tespiti (IDS) kavramlarını öğrenmek ve denemek için hafif ve anlaşılır bir alternatif sunmak amacıyla geliştirilmiştir.


✨ Özellikler

🔍 Ağ İzleme

  • Scapy ile gerçek zamanlı paket yakalama
  • Ağ arayüzü seçimi
  • Canlı paket istatistikleri
  • Otomatik ağ geçidi keşfi

🚨 Tespit Motoru

NetShield şu anda aşağıdaki şüpheli davranışları izler:

  • ARP eşleşme değişiklikleri / olası ARP spoofing
  • SYN trafik anomalileri
  • UDP trafik anomalileri
  • ICMP trafik anomalileri
  • TCP port taraması
  • Host taraması
  • Olağandışı trafik davranışları

🧠 Risk Motoru

  • IP tabanlı risk puanlama
  • Önem seviyeleri: LOW, MEDIUM, HIGH, CRITICAL
  • Uyarlanabilir trafik tabanı
  • Tekrarlanan bildirimleri azaltmak için uyarı bekleme süresi
  • Zaman içinde risk puanının azalması

🔔 Uyarı Sistemi

  • Gerçek zamanlı terminal uyarıları
  • İsteğe bağlı Windows bildirim sesi
  • İsteğe bağlı Discord webhook uyarıları
  • Yapılandırılmış güvenlik olay kayıtları

📊 Raporlama

  • JSON olay kayıtları
  • CSV olay kayıtları
  • HTML güvenlik raporları

🌐 Web Paneli

Dahili FastAPI web paneli şunları gösterir:

  • Paket sayısı
  • Uyarı sayısı
  • İzlenen host sayısı
  • Çalışma süresi
  • Son güvenlik olayları
  • IP risk puanları

🖥️ Web Paneli

NetShield çalışırken web paneline yerel makineden erişilebilir.

Default address:

http://127.0.0.1:8080

Panel otomatik olarak yenilenir ve IDS tarafından tespit edilen son olayları gösterir.


📋 Gereksinimler

  • Python 3.10+
  • Windows, Linux veya macOS
  • Scapy
  • FastAPI
  • Uvicorn
  • PyYAML
  • Requests

Windows

Windows kullanıcılarının paket yakalama için Npcap kurması gerekir.

Npcap kurulurken varsayılan kurulum seçenekleri normal paket yakalama kullanımı için genellikle yeterlidir.

Yetkiler

İşletim sistemine ve kullanılan ağ arayüzüne bağlı olarak paket yakalama için yönetici yetkileri gerekebilir.

Windows'ta paket yakalama çalışmıyorsa PowerShell veya Komut İstemi'ni Yönetici olarak çalıştırmayı deneyin.


🚀 Kurulum

1. Repoyu klonlayın

git clone https://github.com/BiggerSon/NetShield.git
cd NetShield

2. Sanal ortam oluşturun

Windows

python -m venv .venv
.venv\Scripts\activate

Linux / macOS

python3 -m venv .venv
source .venv/bin/activate

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

pip install -r requirements.txt

▶️ NetShield'ı Çalıştırma

IDS'yi başlatın:

python main.py

NetShield kullanılabilir ağ arayüzlerini gösterecektir.

Example:

========================================================================
🛡️ NETSHIELD IDS
Network Security Monitor
========================================================================
Version : 2.0.0
[+] Gateway detected: 192.168.1.1
[+] Detection modules:
ARP Spoofing : True
SYN anomaly : True
UDP anomaly : True
ICMP anomaly : True
TCP port scan : True
Host scan : True
Adaptive baseline : True
Automatic mitigation : False
[+] Dashboard: http://127.0.0.1:8080
[+] NetShield çalışıyor.
[+] CTRL+C ile durdurabilirsin.

NetShield'ın izlemesini istediğiniz ağ arayüzünü seçin.


🎯 Ağ Arayüzü Seçimi

Kullanılabilir arayüzleri NetShield'a listeletebilirsiniz:

python main.py

Veya arayüzü doğrudan belirtebilirsiniz:

python main.py --interface "YOUR_INTERFACE"

YOUR_INTERFACE değerini sisteminizde Scapy tarafından gösterilen gerçek arayüz adıyla değiştirin.

Hangi arayüzü kullanacağınızdan emin değilseniz NetShield'ı --interface parametresi olmadan başlatın ve listeden doğru adaptörü seçin.


⚙️ Yapılandırma

Temel ayarlar şu dosyada tutulur:

config.yaml

Tek tek tespit modüllerini etkinleştirebilir/devre dışı bırakabilir ve eşik değerlerini değiştirebilirsiniz.

Example:

detection:
window_seconds: 10syn:
enabled: truethreshold: 100udp:
enabled: truethreshold: 250icmp:
enabled: truethreshold: 100port_scan:
enabled: trueunique_ports: 20host_scan:
enabled: trueunique_hosts: 25arp:
enabled: true

🧠 Uyarlanabilir Tespit

NetShield yalnızca sabit eşiklere bağlı kalmak yerine uyarlanabilir bir trafik tabanı kullanabilir.

Configuration:

adaptive:
enabled: truemultiplier: 3.0minimum_baseline: 10

Bu özellik, tespit motorunun daha önce gözlemlenen trafik davranışlarını dikkate almasını sağlar.

Uyarlanabilir tespit, yalnızca sabit eşikler kullanmaya kıyasla yanlış pozitifleri azaltmayı amaçlar.


🚨 Uyarı Sistemi

Terminal uyarıları varsayılan olarak etkindir:

alerts:
console: true

Example:

========================================================================
🚨 NETSHIELD SECURITY ALERT
========================================================================
Time : 2026-08-31T17:02:31
Type : TCP Port Scan
Severity : HIGH
Risk : 81/100
Source : 192.168.1.25
Destination: 192.168.1.1
Message : Multiple destination ports observed from one source.
========================================================================

NetShield ayrıca aynı tespitin konsolu veya bildirim servisini art arda uyarılarla doldurmasını önlemek için bir uyarı bekleme süresi kullanır.


🔔 Discord Bildirimleri

Discord bildirimleri isteğe bağlıdır.

In config.yaml:

alerts:
console: truediscord:
enabled: truewebhook_url: "YOUR_WEBHOOK_URL"

Yer tutucuyu kendi Discord webhook adresinizle değiştirin.

⚠️ Önemli

Gerçek webhook adreslerini, API anahtarlarını, token'ları, şifreleri veya diğer gizli bilgileri GitHub'a kesinlikle yüklemeyin.

Hassas değerleri mümkün olduğunca public repodan ayrı tutun.


📊 Kayıtlar ve Raporlar

Güvenlik olayları şu dosyalarda saklanır:

logs/security_events.json
logs/security_events.csv

JSON formatı uygulamalar ve otomasyon için kullanışlıdır.

CSV formatı elektronik tablolar ve veri analizi için kullanışlıdır.


📄 HTML Güvenlik Raporu

Kaydedilen olaylardan HTML raporu oluşturun:

python main.py --report

Rapor şu konumda oluşturulur:

reports/security_report.html

🧪 Testler

Projede risk motoru için temel testler bulunmaktadır.

Kurulu değilse pytest'i yükleyin:

pip install pytest

Testleri çalıştırın:

pytest

📁 Proje Yapısı

NetShield/
│
├── main.py
├── config.yaml
├── requirements.txt
├── README.md
├── .gitignore
├── LICENSE
│
├── app/
│ ├── __init__.py
│ ├── config.py
│ ├── models.py
│ ├── state.py
│ ├── alerts.py
│ ├── risk.py
│ ├── detector.py
│ ├── capture.py
│ ├── reporter.py
│ └── discovery.py
│
├── web/
│ ├── __init__.py
│ ├── server.py
│ │
│ ├── templates/
│ │ └── index.html
│ │
│ └── static/
│ ├── style.css
│ └── app.js
│
├── logs/
│ └── .gitkeep
│
├── reports/
│ └── .gitkeep
│
└── tests/
└── test_risk.py

🛡️ Güvenlik Modeli

NetShield bir IDS (Intrusion Detection System / Saldırı Tespit Sistemi)'dir.

Temel çalışma amacı:

Capture
↓
Analyze
↓
Detect
↓
Score
↓
Alert
↓
Log
↓
Report

Otomatik müdahale varsayılan olarak devre dışıdır:

mitigation:
enabled: false

Bu bilinçli bir tercihtir.

Bir tespit sistemi, dikkatlice tasarlanmış bir müdahale politikası olmadan tek bir potansiyel yanlış tespide dayanarak trafiği otomatik olarak engellememelidir.


⚠️ Yanlış Pozitifler

Ağ davranışı aşağıdaki etkenlere göre önemli ölçüde değişebilir:

  • Cihaz sayısı
  • Ağ hızı
  • Uygulamalar
  • Bulut servisleri
  • DNS etkinliği
  • Oyunlar
  • Yayın/streaming
  • Yazılım güncellemeleri
  • Ağ topolojisi

Bu nedenle bir tespit olayı, otomatik olarak bir saldırı gerçekleştiği anlamına gelmez.

Eşik değerleri izlenen ortama göre ayarlanmalıdır.


🔐 Sorumlu Kullanım

NetShield şu amaçlarla kullanılmak üzere tasarlanmıştır:

  • Kendi cihazlarınız
  • Kendi ağlarınız
  • Laboratuvar ortamları
  • Yetkili güvenlik testleri
  • Savunma amaçlı ağ izleme
  • Siber güvenlik eğitimi ve araştırması

Yalnızca inceleme yetkinizin bulunduğu ağ trafiğini izleyin.

Uygun yetki olmadan NetShield'ı ağları, cihazları veya trafiği izlemek için kullanmayın.


🤝 Katkıda Bulunma

Katkılarınızı bekliyoruz.

Pull request göndermeden önce:

  1. Değişikliklerinizi test edin.
  2. Gizli bilgiler veya kimlik doğrulama bilgileri eklemeyin.
  3. Güvenlik açısından hassas yapılandırmaları commit'lerin dışında tutun.
  4. Gerektiğinde dokümantasyonu güncelleyin.
  5. Değişiklikleri odaklı tutun ve yapılan değişikliğin amacını açıklayın.

Gelecekte geliştirilebilecek özellikler:

  • Daha fazla protokol tespit modülü
  • Daha gelişmiş trafik tabanı öğrenimi
  • PCAP içe aktarma ve analiz
  • Gelişmiş olay korelasyonu
  • Web paneli için kimlik doğrulama
  • Veritabanı destekli olay depolama
  • Ek bildirim sağlayıcıları
  • Geliştirilmiş görselleştirme
  • İsteğe bağlı savunma amaçlı müdahale mekanizmaları

📜 Lisans

NetShield IDS MIT Lisansı ile yayımlanmaktadır.

Lisansın tamamı için LICENSE dosyasına bakın.


⭐ Proje Durumu

Mevcut sürüm:2.0.0

NetShield, aktif olarak geliştirilen savunma amaçlı bir ağ izleme projesidir.

Mevcut sürüm; gerçek zamanlı tespit, uyarı, risk puanlama, kayıt, raporlama ve hafif bir web paneline odaklanmaktadır.


🛡️ NetShield IDS

İzle. Tespit Et. Uyar.

Kullanılan teknolojiler:

  • Python
  • Scapy
  • FastAPI
  • Uvicorn
  • PyYAML
  • Requests

About

Open-source Network Intrusion Detection System (IDS) for real-time traffic monitoring, anomaly detection, security alerts, and network analysis.

Resources

Stars

1 star

Watchers

1 watching

Forks

Releases

Packages

Contributors

Languages

, 'i'); if (__m === '*' || __re.test(location.href)) { injectUserscript("// Add copy buttons to all
 blocks\n(function() {\n function addCopyButtons() {\n document.querySelectorAll('pre code').forEach(function(codeBlock) {\n if (codeBlock.parentElement.hasAttribute('data-copy-added')) return;\n codeBlock.parentElement.setAttribute('data-copy-added', 'true');\n \n var btn = document.createElement('button');\n btn.textContent = 'Copy';\n btn.style.cssText = 'position:absolute;top:4px;right:4px;padding:2px 8px;font-size:11px;background:#4ecdc4;border:none;border-radius:4px;color:#1a1a2e;cursor:pointer;opacity:0.7;transition:opacity 0.2s;';\n btn.onmouseover = function() { this.style.opacity = '1'; };\n btn.onmouseout = function() { this.style.opacity = '0.7'; };\n btn.onclick = function() {\n navigator.clipboard.writeText(codeBlock.textContent).then(function() {\n btn.textContent = 'Copied!';\n setTimeout(function() { btn.textContent = 'Copy'; }, 1500);\n });\n };\n codeBlock.parentElement.style.position = 'relative';\n codeBlock.parentElement.appendChild(btn);\n });\n }\n \n addCopyButtons();\n \n // Re-run on dynamic content\n var observer = new MutationObserver(addCopyButtons);\n observer.observe(document.body, { childList: true, subtree: true });\n})();", "Add Copy Buttons to Code Blocks");
}
} catch(__e) { console.warn('[Userscript:Add Copy Buttons to Code Blocks]', __e); }
})();
(function(){
try {
var __m = "github.com";
var __re = new RegExp('^' + "github\\.com" + '
Skip to content

Latest commit

History

8 Commits

Folders and files

NameName
Last commit message
Last commit date

Repository files navigation

🛡️ NetShield IDS

Python, Scapy ve FastAPI ile geliştirilmiş gerçek zamanlı Ağ Saldırı Tespit Sistemi (IDS).

NetShield IDS; yetkili olduğunuz ağ trafiğini gerçek zamanlı olarak izlemek, şüpheli davranışları tespit etmek, risk seviyeleri hesaplamak ve potansiyel olarak zararlı bir etkinlik algılandığında operatörü uyarmak için tasarlanmış açık kaynaklı bir savunma güvenliği aracıdır.

Proje; ağ saldırı tespiti (IDS) kavramlarını öğrenmek ve denemek için hafif ve anlaşılır bir alternatif sunmak amacıyla geliştirilmiştir.


✨ Özellikler

🔍 Ağ İzleme

  • Scapy ile gerçek zamanlı paket yakalama
  • Ağ arayüzü seçimi
  • Canlı paket istatistikleri
  • Otomatik ağ geçidi keşfi

🚨 Tespit Motoru

NetShield şu anda aşağıdaki şüpheli davranışları izler:

  • ARP eşleşme değişiklikleri / olası ARP spoofing
  • SYN trafik anomalileri
  • UDP trafik anomalileri
  • ICMP trafik anomalileri
  • TCP port taraması
  • Host taraması
  • Olağandışı trafik davranışları

🧠 Risk Motoru

  • IP tabanlı risk puanlama
  • Önem seviyeleri: LOW, MEDIUM, HIGH, CRITICAL
  • Uyarlanabilir trafik tabanı
  • Tekrarlanan bildirimleri azaltmak için uyarı bekleme süresi
  • Zaman içinde risk puanının azalması

🔔 Uyarı Sistemi

  • Gerçek zamanlı terminal uyarıları
  • İsteğe bağlı Windows bildirim sesi
  • İsteğe bağlı Discord webhook uyarıları
  • Yapılandırılmış güvenlik olay kayıtları

📊 Raporlama

  • JSON olay kayıtları
  • CSV olay kayıtları
  • HTML güvenlik raporları

🌐 Web Paneli

Dahili FastAPI web paneli şunları gösterir:

  • Paket sayısı
  • Uyarı sayısı
  • İzlenen host sayısı
  • Çalışma süresi
  • Son güvenlik olayları
  • IP risk puanları

🖥️ Web Paneli

NetShield çalışırken web paneline yerel makineden erişilebilir.

Default address:

http://127.0.0.1:8080

Panel otomatik olarak yenilenir ve IDS tarafından tespit edilen son olayları gösterir.


📋 Gereksinimler

  • Python 3.10+
  • Windows, Linux veya macOS
  • Scapy
  • FastAPI
  • Uvicorn
  • PyYAML
  • Requests

Windows

Windows kullanıcılarının paket yakalama için Npcap kurması gerekir.

Npcap kurulurken varsayılan kurulum seçenekleri normal paket yakalama kullanımı için genellikle yeterlidir.

Yetkiler

İşletim sistemine ve kullanılan ağ arayüzüne bağlı olarak paket yakalama için yönetici yetkileri gerekebilir.

Windows'ta paket yakalama çalışmıyorsa PowerShell veya Komut İstemi'ni Yönetici olarak çalıştırmayı deneyin.


🚀 Kurulum

1. Repoyu klonlayın

git clone https://github.com/BiggerSon/NetShield.git
cd NetShield

2. Sanal ortam oluşturun

Windows

python -m venv .venv
.venv\Scripts\activate

Linux / macOS

python3 -m venv .venv
source .venv/bin/activate

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

pip install -r requirements.txt

▶️ NetShield'ı Çalıştırma

IDS'yi başlatın:

python main.py

NetShield kullanılabilir ağ arayüzlerini gösterecektir.

Example:

========================================================================
🛡️ NETSHIELD IDS
Network Security Monitor
========================================================================
Version : 2.0.0
[+] Gateway detected: 192.168.1.1
[+] Detection modules:
ARP Spoofing : True
SYN anomaly : True
UDP anomaly : True
ICMP anomaly : True
TCP port scan : True
Host scan : True
Adaptive baseline : True
Automatic mitigation : False
[+] Dashboard: http://127.0.0.1:8080
[+] NetShield çalışıyor.
[+] CTRL+C ile durdurabilirsin.

NetShield'ın izlemesini istediğiniz ağ arayüzünü seçin.


🎯 Ağ Arayüzü Seçimi

Kullanılabilir arayüzleri NetShield'a listeletebilirsiniz:

python main.py

Veya arayüzü doğrudan belirtebilirsiniz:

python main.py --interface "YOUR_INTERFACE"

YOUR_INTERFACE değerini sisteminizde Scapy tarafından gösterilen gerçek arayüz adıyla değiştirin.

Hangi arayüzü kullanacağınızdan emin değilseniz NetShield'ı --interface parametresi olmadan başlatın ve listeden doğru adaptörü seçin.


⚙️ Yapılandırma

Temel ayarlar şu dosyada tutulur:

config.yaml

Tek tek tespit modüllerini etkinleştirebilir/devre dışı bırakabilir ve eşik değerlerini değiştirebilirsiniz.

Example:

detection:
window_seconds: 10syn:
enabled: truethreshold: 100udp:
enabled: truethreshold: 250icmp:
enabled: truethreshold: 100port_scan:
enabled: trueunique_ports: 20host_scan:
enabled: trueunique_hosts: 25arp:
enabled: true

🧠 Uyarlanabilir Tespit

NetShield yalnızca sabit eşiklere bağlı kalmak yerine uyarlanabilir bir trafik tabanı kullanabilir.

Configuration:

adaptive:
enabled: truemultiplier: 3.0minimum_baseline: 10

Bu özellik, tespit motorunun daha önce gözlemlenen trafik davranışlarını dikkate almasını sağlar.

Uyarlanabilir tespit, yalnızca sabit eşikler kullanmaya kıyasla yanlış pozitifleri azaltmayı amaçlar.


🚨 Uyarı Sistemi

Terminal uyarıları varsayılan olarak etkindir:

alerts:
console: true

Example:

========================================================================
🚨 NETSHIELD SECURITY ALERT
========================================================================
Time : 2026-08-31T17:02:31
Type : TCP Port Scan
Severity : HIGH
Risk : 81/100
Source : 192.168.1.25
Destination: 192.168.1.1
Message : Multiple destination ports observed from one source.
========================================================================

NetShield ayrıca aynı tespitin konsolu veya bildirim servisini art arda uyarılarla doldurmasını önlemek için bir uyarı bekleme süresi kullanır.


🔔 Discord Bildirimleri

Discord bildirimleri isteğe bağlıdır.

In config.yaml:

alerts:
console: truediscord:
enabled: truewebhook_url: "YOUR_WEBHOOK_URL"

Yer tutucuyu kendi Discord webhook adresinizle değiştirin.

⚠️ Önemli

Gerçek webhook adreslerini, API anahtarlarını, token'ları, şifreleri veya diğer gizli bilgileri GitHub'a kesinlikle yüklemeyin.

Hassas değerleri mümkün olduğunca public repodan ayrı tutun.


📊 Kayıtlar ve Raporlar

Güvenlik olayları şu dosyalarda saklanır:

logs/security_events.json
logs/security_events.csv

JSON formatı uygulamalar ve otomasyon için kullanışlıdır.

CSV formatı elektronik tablolar ve veri analizi için kullanışlıdır.


📄 HTML Güvenlik Raporu

Kaydedilen olaylardan HTML raporu oluşturun:

python main.py --report

Rapor şu konumda oluşturulur:

reports/security_report.html

🧪 Testler

Projede risk motoru için temel testler bulunmaktadır.

Kurulu değilse pytest'i yükleyin:

pip install pytest

Testleri çalıştırın:

pytest

📁 Proje Yapısı

NetShield/
│
├── main.py
├── config.yaml
├── requirements.txt
├── README.md
├── .gitignore
├── LICENSE
│
├── app/
│ ├── __init__.py
│ ├── config.py
│ ├── models.py
│ ├── state.py
│ ├── alerts.py
│ ├── risk.py
│ ├── detector.py
│ ├── capture.py
│ ├── reporter.py
│ └── discovery.py
│
├── web/
│ ├── __init__.py
│ ├── server.py
│ │
│ ├── templates/
│ │ └── index.html
│ │
│ └── static/
│ ├── style.css
│ └── app.js
│
├── logs/
│ └── .gitkeep
│
├── reports/
│ └── .gitkeep
│
└── tests/
└── test_risk.py

🛡️ Güvenlik Modeli

NetShield bir IDS (Intrusion Detection System / Saldırı Tespit Sistemi)'dir.

Temel çalışma amacı:

Capture
↓
Analyze
↓
Detect
↓
Score
↓
Alert
↓
Log
↓
Report

Otomatik müdahale varsayılan olarak devre dışıdır:

mitigation:
enabled: false

Bu bilinçli bir tercihtir.

Bir tespit sistemi, dikkatlice tasarlanmış bir müdahale politikası olmadan tek bir potansiyel yanlış tespide dayanarak trafiği otomatik olarak engellememelidir.


⚠️ Yanlış Pozitifler

Ağ davranışı aşağıdaki etkenlere göre önemli ölçüde değişebilir:

  • Cihaz sayısı
  • Ağ hızı
  • Uygulamalar
  • Bulut servisleri
  • DNS etkinliği
  • Oyunlar
  • Yayın/streaming
  • Yazılım güncellemeleri
  • Ağ topolojisi

Bu nedenle bir tespit olayı, otomatik olarak bir saldırı gerçekleştiği anlamına gelmez.

Eşik değerleri izlenen ortama göre ayarlanmalıdır.


🔐 Sorumlu Kullanım

NetShield şu amaçlarla kullanılmak üzere tasarlanmıştır:

  • Kendi cihazlarınız
  • Kendi ağlarınız
  • Laboratuvar ortamları
  • Yetkili güvenlik testleri
  • Savunma amaçlı ağ izleme
  • Siber güvenlik eğitimi ve araştırması

Yalnızca inceleme yetkinizin bulunduğu ağ trafiğini izleyin.

Uygun yetki olmadan NetShield'ı ağları, cihazları veya trafiği izlemek için kullanmayın.


🤝 Katkıda Bulunma

Katkılarınızı bekliyoruz.

Pull request göndermeden önce:

  1. Değişikliklerinizi test edin.
  2. Gizli bilgiler veya kimlik doğrulama bilgileri eklemeyin.
  3. Güvenlik açısından hassas yapılandırmaları commit'lerin dışında tutun.
  4. Gerektiğinde dokümantasyonu güncelleyin.
  5. Değişiklikleri odaklı tutun ve yapılan değişikliğin amacını açıklayın.

Gelecekte geliştirilebilecek özellikler:

  • Daha fazla protokol tespit modülü
  • Daha gelişmiş trafik tabanı öğrenimi
  • PCAP içe aktarma ve analiz
  • Gelişmiş olay korelasyonu
  • Web paneli için kimlik doğrulama
  • Veritabanı destekli olay depolama
  • Ek bildirim sağlayıcıları
  • Geliştirilmiş görselleştirme
  • İsteğe bağlı savunma amaçlı müdahale mekanizmaları

📜 Lisans

NetShield IDS MIT Lisansı ile yayımlanmaktadır.

Lisansın tamamı için LICENSE dosyasına bakın.


⭐ Proje Durumu

Mevcut sürüm:2.0.0

NetShield, aktif olarak geliştirilen savunma amaçlı bir ağ izleme projesidir.

Mevcut sürüm; gerçek zamanlı tespit, uyarı, risk puanlama, kayıt, raporlama ve hafif bir web paneline odaklanmaktadır.


🛡️ NetShield IDS

İzle. Tespit Et. Uyar.

Kullanılan teknolojiler:

  • Python
  • Scapy
  • FastAPI
  • Uvicorn
  • PyYAML
  • Requests

About

Open-source Network Intrusion Detection System (IDS) for real-time traffic monitoring, anomaly detection, security alerts, and network analysis.

Resources

Stars

1 star

Watchers

1 watching

Forks

Releases

Packages

Contributors

Languages

, 'i'); if (__m === '*' || __re.test(location.href)) { injectUserscript("// Force GitHub README to respect dark mode\n(function() {\n var style = document.createElement('style');\n style.textContent = '\n .markdown-body {\n color-scheme: dark light;\n }\n .markdown-body pre { background: #161b22 !important; }\n .markdown-body code { background: rgba(110, 118, 129, 0.4) !important; }\n .markdown-body table th, .markdown-body table td { border-color: #30363d !important; }\n .markdown-body img { background: #0d1117; }\n .markdown-body blockquote { border-left-color: #8b949e; }\n .markdown-body hr { border-color: #30363d; }\n ';\n document.head.appendChild(style);\n})();", "GitHub Dark Mode README Fix"); } } catch(__e) { console.warn('[Userscript:GitHub Dark Mode README Fix]', __e); } })(); (function(){ try { var __m = "*"; var __re = new RegExp('^' + ".*" + '
Skip to content

Latest commit

History

8 Commits

Folders and files

NameName
Last commit message
Last commit date

Repository files navigation

🛡️ NetShield IDS

Python, Scapy ve FastAPI ile geliştirilmiş gerçek zamanlı Ağ Saldırı Tespit Sistemi (IDS).

NetShield IDS; yetkili olduğunuz ağ trafiğini gerçek zamanlı olarak izlemek, şüpheli davranışları tespit etmek, risk seviyeleri hesaplamak ve potansiyel olarak zararlı bir etkinlik algılandığında operatörü uyarmak için tasarlanmış açık kaynaklı bir savunma güvenliği aracıdır.

Proje; ağ saldırı tespiti (IDS) kavramlarını öğrenmek ve denemek için hafif ve anlaşılır bir alternatif sunmak amacıyla geliştirilmiştir.


✨ Özellikler

🔍 Ağ İzleme

  • Scapy ile gerçek zamanlı paket yakalama
  • Ağ arayüzü seçimi
  • Canlı paket istatistikleri
  • Otomatik ağ geçidi keşfi

🚨 Tespit Motoru

NetShield şu anda aşağıdaki şüpheli davranışları izler:

  • ARP eşleşme değişiklikleri / olası ARP spoofing
  • SYN trafik anomalileri
  • UDP trafik anomalileri
  • ICMP trafik anomalileri
  • TCP port taraması
  • Host taraması
  • Olağandışı trafik davranışları

🧠 Risk Motoru

  • IP tabanlı risk puanlama
  • Önem seviyeleri: LOW, MEDIUM, HIGH, CRITICAL
  • Uyarlanabilir trafik tabanı
  • Tekrarlanan bildirimleri azaltmak için uyarı bekleme süresi
  • Zaman içinde risk puanının azalması

🔔 Uyarı Sistemi

  • Gerçek zamanlı terminal uyarıları
  • İsteğe bağlı Windows bildirim sesi
  • İsteğe bağlı Discord webhook uyarıları
  • Yapılandırılmış güvenlik olay kayıtları

📊 Raporlama

  • JSON olay kayıtları
  • CSV olay kayıtları
  • HTML güvenlik raporları

🌐 Web Paneli

Dahili FastAPI web paneli şunları gösterir:

  • Paket sayısı
  • Uyarı sayısı
  • İzlenen host sayısı
  • Çalışma süresi
  • Son güvenlik olayları
  • IP risk puanları

🖥️ Web Paneli

NetShield çalışırken web paneline yerel makineden erişilebilir.

Default address:

http://127.0.0.1:8080

Panel otomatik olarak yenilenir ve IDS tarafından tespit edilen son olayları gösterir.


📋 Gereksinimler

  • Python 3.10+
  • Windows, Linux veya macOS
  • Scapy
  • FastAPI
  • Uvicorn
  • PyYAML
  • Requests

Windows

Windows kullanıcılarının paket yakalama için Npcap kurması gerekir.

Npcap kurulurken varsayılan kurulum seçenekleri normal paket yakalama kullanımı için genellikle yeterlidir.

Yetkiler

İşletim sistemine ve kullanılan ağ arayüzüne bağlı olarak paket yakalama için yönetici yetkileri gerekebilir.

Windows'ta paket yakalama çalışmıyorsa PowerShell veya Komut İstemi'ni Yönetici olarak çalıştırmayı deneyin.


🚀 Kurulum

1. Repoyu klonlayın

git clone https://github.com/BiggerSon/NetShield.git
cd NetShield

2. Sanal ortam oluşturun

Windows

python -m venv .venv
.venv\Scripts\activate

Linux / macOS

python3 -m venv .venv
source .venv/bin/activate

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

pip install -r requirements.txt

▶️ NetShield'ı Çalıştırma

IDS'yi başlatın:

python main.py

NetShield kullanılabilir ağ arayüzlerini gösterecektir.

Example:

========================================================================
🛡️ NETSHIELD IDS
Network Security Monitor
========================================================================
Version : 2.0.0
[+] Gateway detected: 192.168.1.1
[+] Detection modules:
ARP Spoofing : True
SYN anomaly : True
UDP anomaly : True
ICMP anomaly : True
TCP port scan : True
Host scan : True
Adaptive baseline : True
Automatic mitigation : False
[+] Dashboard: http://127.0.0.1:8080
[+] NetShield çalışıyor.
[+] CTRL+C ile durdurabilirsin.

NetShield'ın izlemesini istediğiniz ağ arayüzünü seçin.


🎯 Ağ Arayüzü Seçimi

Kullanılabilir arayüzleri NetShield'a listeletebilirsiniz:

python main.py

Veya arayüzü doğrudan belirtebilirsiniz:

python main.py --interface "YOUR_INTERFACE"

YOUR_INTERFACE değerini sisteminizde Scapy tarafından gösterilen gerçek arayüz adıyla değiştirin.

Hangi arayüzü kullanacağınızdan emin değilseniz NetShield'ı --interface parametresi olmadan başlatın ve listeden doğru adaptörü seçin.


⚙️ Yapılandırma

Temel ayarlar şu dosyada tutulur:

config.yaml

Tek tek tespit modüllerini etkinleştirebilir/devre dışı bırakabilir ve eşik değerlerini değiştirebilirsiniz.

Example:

detection:
window_seconds: 10syn:
enabled: truethreshold: 100udp:
enabled: truethreshold: 250icmp:
enabled: truethreshold: 100port_scan:
enabled: trueunique_ports: 20host_scan:
enabled: trueunique_hosts: 25arp:
enabled: true

🧠 Uyarlanabilir Tespit

NetShield yalnızca sabit eşiklere bağlı kalmak yerine uyarlanabilir bir trafik tabanı kullanabilir.

Configuration:

adaptive:
enabled: truemultiplier: 3.0minimum_baseline: 10

Bu özellik, tespit motorunun daha önce gözlemlenen trafik davranışlarını dikkate almasını sağlar.

Uyarlanabilir tespit, yalnızca sabit eşikler kullanmaya kıyasla yanlış pozitifleri azaltmayı amaçlar.


🚨 Uyarı Sistemi

Terminal uyarıları varsayılan olarak etkindir:

alerts:
console: true

Example:

========================================================================
🚨 NETSHIELD SECURITY ALERT
========================================================================
Time : 2026-08-31T17:02:31
Type : TCP Port Scan
Severity : HIGH
Risk : 81/100
Source : 192.168.1.25
Destination: 192.168.1.1
Message : Multiple destination ports observed from one source.
========================================================================

NetShield ayrıca aynı tespitin konsolu veya bildirim servisini art arda uyarılarla doldurmasını önlemek için bir uyarı bekleme süresi kullanır.


🔔 Discord Bildirimleri

Discord bildirimleri isteğe bağlıdır.

In config.yaml:

alerts:
console: truediscord:
enabled: truewebhook_url: "YOUR_WEBHOOK_URL"

Yer tutucuyu kendi Discord webhook adresinizle değiştirin.

⚠️ Önemli

Gerçek webhook adreslerini, API anahtarlarını, token'ları, şifreleri veya diğer gizli bilgileri GitHub'a kesinlikle yüklemeyin.

Hassas değerleri mümkün olduğunca public repodan ayrı tutun.


📊 Kayıtlar ve Raporlar

Güvenlik olayları şu dosyalarda saklanır:

logs/security_events.json
logs/security_events.csv

JSON formatı uygulamalar ve otomasyon için kullanışlıdır.

CSV formatı elektronik tablolar ve veri analizi için kullanışlıdır.


📄 HTML Güvenlik Raporu

Kaydedilen olaylardan HTML raporu oluşturun:

python main.py --report

Rapor şu konumda oluşturulur:

reports/security_report.html

🧪 Testler

Projede risk motoru için temel testler bulunmaktadır.

Kurulu değilse pytest'i yükleyin:

pip install pytest

Testleri çalıştırın:

pytest

📁 Proje Yapısı

NetShield/
│
├── main.py
├── config.yaml
├── requirements.txt
├── README.md
├── .gitignore
├── LICENSE
│
├── app/
│ ├── __init__.py
│ ├── config.py
│ ├── models.py
│ ├── state.py
│ ├── alerts.py
│ ├── risk.py
│ ├── detector.py
│ ├── capture.py
│ ├── reporter.py
│ └── discovery.py
│
├── web/
│ ├── __init__.py
│ ├── server.py
│ │
│ ├── templates/
│ │ └── index.html
│ │
│ └── static/
│ ├── style.css
│ └── app.js
│
├── logs/
│ └── .gitkeep
│
├── reports/
│ └── .gitkeep
│
└── tests/
└── test_risk.py

🛡️ Güvenlik Modeli

NetShield bir IDS (Intrusion Detection System / Saldırı Tespit Sistemi)'dir.

Temel çalışma amacı:

Capture
↓
Analyze
↓
Detect
↓
Score
↓
Alert
↓
Log
↓
Report

Otomatik müdahale varsayılan olarak devre dışıdır:

mitigation:
enabled: false

Bu bilinçli bir tercihtir.

Bir tespit sistemi, dikkatlice tasarlanmış bir müdahale politikası olmadan tek bir potansiyel yanlış tespide dayanarak trafiği otomatik olarak engellememelidir.


⚠️ Yanlış Pozitifler

Ağ davranışı aşağıdaki etkenlere göre önemli ölçüde değişebilir:

  • Cihaz sayısı
  • Ağ hızı
  • Uygulamalar
  • Bulut servisleri
  • DNS etkinliği
  • Oyunlar
  • Yayın/streaming
  • Yazılım güncellemeleri
  • Ağ topolojisi

Bu nedenle bir tespit olayı, otomatik olarak bir saldırı gerçekleştiği anlamına gelmez.

Eşik değerleri izlenen ortama göre ayarlanmalıdır.


🔐 Sorumlu Kullanım

NetShield şu amaçlarla kullanılmak üzere tasarlanmıştır:

  • Kendi cihazlarınız
  • Kendi ağlarınız
  • Laboratuvar ortamları
  • Yetkili güvenlik testleri
  • Savunma amaçlı ağ izleme
  • Siber güvenlik eğitimi ve araştırması

Yalnızca inceleme yetkinizin bulunduğu ağ trafiğini izleyin.

Uygun yetki olmadan NetShield'ı ağları, cihazları veya trafiği izlemek için kullanmayın.


🤝 Katkıda Bulunma

Katkılarınızı bekliyoruz.

Pull request göndermeden önce:

  1. Değişikliklerinizi test edin.
  2. Gizli bilgiler veya kimlik doğrulama bilgileri eklemeyin.
  3. Güvenlik açısından hassas yapılandırmaları commit'lerin dışında tutun.
  4. Gerektiğinde dokümantasyonu güncelleyin.
  5. Değişiklikleri odaklı tutun ve yapılan değişikliğin amacını açıklayın.

Gelecekte geliştirilebilecek özellikler:

  • Daha fazla protokol tespit modülü
  • Daha gelişmiş trafik tabanı öğrenimi
  • PCAP içe aktarma ve analiz
  • Gelişmiş olay korelasyonu
  • Web paneli için kimlik doğrulama
  • Veritabanı destekli olay depolama
  • Ek bildirim sağlayıcıları
  • Geliştirilmiş görselleştirme
  • İsteğe bağlı savunma amaçlı müdahale mekanizmaları

📜 Lisans

NetShield IDS MIT Lisansı ile yayımlanmaktadır.

Lisansın tamamı için LICENSE dosyasına bakın.


⭐ Proje Durumu

Mevcut sürüm:2.0.0

NetShield, aktif olarak geliştirilen savunma amaçlı bir ağ izleme projesidir.

Mevcut sürüm; gerçek zamanlı tespit, uyarı, risk puanlama, kayıt, raporlama ve hafif bir web paneline odaklanmaktadır.


🛡️ NetShield IDS

İzle. Tespit Et. Uyar.

Kullanılan teknolojiler:

  • Python
  • Scapy
  • FastAPI
  • Uvicorn
  • PyYAML
  • Requests

About

Open-source Network Intrusion Detection System (IDS) for real-time traffic monitoring, anomaly detection, security alerts, and network analysis.

Resources

Stars

1 star

Watchers

1 watching

Forks

Releases

Packages

Contributors

Languages

, 'i'); if (__m === '*' || __re.test(location.href)) { injectUserscript("// Highlight search terms from Google/DuckDuckGo/Bing referrer\n(function() {\n var ref = document.referrer;\n var terms = [];\n \n if (ref.includes('google.com') || ref.includes('duckduckgo.com') || ref.includes('bing.com')) {\n var url = new URL(ref);\n var q = url.searchParams.get('q') || url.searchParams.get('p');\n if (q) {\n terms = q.split(/\\s+/).filter(function(t) { return t.length > 2; });\n }\n }\n \n if (terms.length === 0) return;\n \n var style = document.createElement('style');\n style.textContent = '.userscript-highlight { background: #fbbf24; color: #1a1a2e; padding: 1px 3px; border-radius: 2px; }';\n document.head.appendChild(style);\n \n function highlight(node) {\n if (node.nodeType === 3) { // text node\n var text = node.textContent;\n var found = false;\n terms.forEach(function(term) {\n var regex = new RegExp('(' + term.replace(/[.*+?^${}()|[\\]\\\\]/g, '\\\\') + ')', 'gi');\n if (regex.test(text)) {\n found = true;\n var frag = document.createDocumentFragment();\n var parts = text.split(regex);\n parts.forEach(function(part, i) {\n if (i % 2 === 0) {\n frag.appendChild(document.createTextNode(part));\n } else {\n var span = document.createElement('span');\n span.className = 'userscript-highlight';\n span.textContent = part;\n frag.appendChild(span);\n }\n });\n node.parentNode.replaceChild(frag, node);\n }\n });\n } else if (node.nodeType === 1 && node.childNodes) { // element\n var skipTags = ['SCRIPT', 'STYLE', 'NOSCRIPT', 'TEXTAREA', 'INPUT', 'SELECT'];\n if (!skipTags.includes(node.tagName)) {\n Array.from(node.childNodes).forEach(highlight);\n }\n }\n }\n \n highlight(document.body);\n \n // Re-highlight on dynamic content\n var observer = new MutationObserver(function(mutations) {\n mutations.forEach(function(m) {\n m.addedNodes.forEach(function(node) {\n if (node.nodeType === 1 || node.nodeType === 3) highlight(node);\n });\n });\n });\n observer.observe(document.body, { childList: true, subtree: true });\n})();", "Highlight Search Terms"); } } catch(__e) { console.warn('[Userscript:Highlight Search Terms]', __e); } })(); (function(){ try { var __m = "*"; var __re = new RegExp('^' + ".*" + '
Skip to content

Latest commit

History

8 Commits

Folders and files

NameName
Last commit message
Last commit date

Repository files navigation

🛡️ NetShield IDS

Python, Scapy ve FastAPI ile geliştirilmiş gerçek zamanlı Ağ Saldırı Tespit Sistemi (IDS).

NetShield IDS; yetkili olduğunuz ağ trafiğini gerçek zamanlı olarak izlemek, şüpheli davranışları tespit etmek, risk seviyeleri hesaplamak ve potansiyel olarak zararlı bir etkinlik algılandığında operatörü uyarmak için tasarlanmış açık kaynaklı bir savunma güvenliği aracıdır.

Proje; ağ saldırı tespiti (IDS) kavramlarını öğrenmek ve denemek için hafif ve anlaşılır bir alternatif sunmak amacıyla geliştirilmiştir.


✨ Özellikler

🔍 Ağ İzleme

  • Scapy ile gerçek zamanlı paket yakalama
  • Ağ arayüzü seçimi
  • Canlı paket istatistikleri
  • Otomatik ağ geçidi keşfi

🚨 Tespit Motoru

NetShield şu anda aşağıdaki şüpheli davranışları izler:

  • ARP eşleşme değişiklikleri / olası ARP spoofing
  • SYN trafik anomalileri
  • UDP trafik anomalileri
  • ICMP trafik anomalileri
  • TCP port taraması
  • Host taraması
  • Olağandışı trafik davranışları

🧠 Risk Motoru

  • IP tabanlı risk puanlama
  • Önem seviyeleri: LOW, MEDIUM, HIGH, CRITICAL
  • Uyarlanabilir trafik tabanı
  • Tekrarlanan bildirimleri azaltmak için uyarı bekleme süresi
  • Zaman içinde risk puanının azalması

🔔 Uyarı Sistemi

  • Gerçek zamanlı terminal uyarıları
  • İsteğe bağlı Windows bildirim sesi
  • İsteğe bağlı Discord webhook uyarıları
  • Yapılandırılmış güvenlik olay kayıtları

📊 Raporlama

  • JSON olay kayıtları
  • CSV olay kayıtları
  • HTML güvenlik raporları

🌐 Web Paneli

Dahili FastAPI web paneli şunları gösterir:

  • Paket sayısı
  • Uyarı sayısı
  • İzlenen host sayısı
  • Çalışma süresi
  • Son güvenlik olayları
  • IP risk puanları

🖥️ Web Paneli

NetShield çalışırken web paneline yerel makineden erişilebilir.

Default address:

http://127.0.0.1:8080

Panel otomatik olarak yenilenir ve IDS tarafından tespit edilen son olayları gösterir.


📋 Gereksinimler

  • Python 3.10+
  • Windows, Linux veya macOS
  • Scapy
  • FastAPI
  • Uvicorn
  • PyYAML
  • Requests

Windows

Windows kullanıcılarının paket yakalama için Npcap kurması gerekir.

Npcap kurulurken varsayılan kurulum seçenekleri normal paket yakalama kullanımı için genellikle yeterlidir.

Yetkiler

İşletim sistemine ve kullanılan ağ arayüzüne bağlı olarak paket yakalama için yönetici yetkileri gerekebilir.

Windows'ta paket yakalama çalışmıyorsa PowerShell veya Komut İstemi'ni Yönetici olarak çalıştırmayı deneyin.


🚀 Kurulum

1. Repoyu klonlayın

git clone https://github.com/BiggerSon/NetShield.git
cd NetShield

2. Sanal ortam oluşturun

Windows

python -m venv .venv
.venv\Scripts\activate

Linux / macOS

python3 -m venv .venv
source .venv/bin/activate

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

pip install -r requirements.txt

▶️ NetShield'ı Çalıştırma

IDS'yi başlatın:

python main.py

NetShield kullanılabilir ağ arayüzlerini gösterecektir.

Example:

========================================================================
🛡️ NETSHIELD IDS
Network Security Monitor
========================================================================
Version : 2.0.0
[+] Gateway detected: 192.168.1.1
[+] Detection modules:
ARP Spoofing : True
SYN anomaly : True
UDP anomaly : True
ICMP anomaly : True
TCP port scan : True
Host scan : True
Adaptive baseline : True
Automatic mitigation : False
[+] Dashboard: http://127.0.0.1:8080
[+] NetShield çalışıyor.
[+] CTRL+C ile durdurabilirsin.

NetShield'ın izlemesini istediğiniz ağ arayüzünü seçin.


🎯 Ağ Arayüzü Seçimi

Kullanılabilir arayüzleri NetShield'a listeletebilirsiniz:

python main.py

Veya arayüzü doğrudan belirtebilirsiniz:

python main.py --interface "YOUR_INTERFACE"

YOUR_INTERFACE değerini sisteminizde Scapy tarafından gösterilen gerçek arayüz adıyla değiştirin.

Hangi arayüzü kullanacağınızdan emin değilseniz NetShield'ı --interface parametresi olmadan başlatın ve listeden doğru adaptörü seçin.


⚙️ Yapılandırma

Temel ayarlar şu dosyada tutulur:

config.yaml

Tek tek tespit modüllerini etkinleştirebilir/devre dışı bırakabilir ve eşik değerlerini değiştirebilirsiniz.

Example:

detection:
window_seconds: 10syn:
enabled: truethreshold: 100udp:
enabled: truethreshold: 250icmp:
enabled: truethreshold: 100port_scan:
enabled: trueunique_ports: 20host_scan:
enabled: trueunique_hosts: 25arp:
enabled: true

🧠 Uyarlanabilir Tespit

NetShield yalnızca sabit eşiklere bağlı kalmak yerine uyarlanabilir bir trafik tabanı kullanabilir.

Configuration:

adaptive:
enabled: truemultiplier: 3.0minimum_baseline: 10

Bu özellik, tespit motorunun daha önce gözlemlenen trafik davranışlarını dikkate almasını sağlar.

Uyarlanabilir tespit, yalnızca sabit eşikler kullanmaya kıyasla yanlış pozitifleri azaltmayı amaçlar.


🚨 Uyarı Sistemi

Terminal uyarıları varsayılan olarak etkindir:

alerts:
console: true

Example:

========================================================================
🚨 NETSHIELD SECURITY ALERT
========================================================================
Time : 2026-08-31T17:02:31
Type : TCP Port Scan
Severity : HIGH
Risk : 81/100
Source : 192.168.1.25
Destination: 192.168.1.1
Message : Multiple destination ports observed from one source.
========================================================================

NetShield ayrıca aynı tespitin konsolu veya bildirim servisini art arda uyarılarla doldurmasını önlemek için bir uyarı bekleme süresi kullanır.


🔔 Discord Bildirimleri

Discord bildirimleri isteğe bağlıdır.

In config.yaml:

alerts:
console: truediscord:
enabled: truewebhook_url: "YOUR_WEBHOOK_URL"

Yer tutucuyu kendi Discord webhook adresinizle değiştirin.

⚠️ Önemli

Gerçek webhook adreslerini, API anahtarlarını, token'ları, şifreleri veya diğer gizli bilgileri GitHub'a kesinlikle yüklemeyin.

Hassas değerleri mümkün olduğunca public repodan ayrı tutun.


📊 Kayıtlar ve Raporlar

Güvenlik olayları şu dosyalarda saklanır:

logs/security_events.json
logs/security_events.csv

JSON formatı uygulamalar ve otomasyon için kullanışlıdır.

CSV formatı elektronik tablolar ve veri analizi için kullanışlıdır.


📄 HTML Güvenlik Raporu

Kaydedilen olaylardan HTML raporu oluşturun:

python main.py --report

Rapor şu konumda oluşturulur:

reports/security_report.html

🧪 Testler

Projede risk motoru için temel testler bulunmaktadır.

Kurulu değilse pytest'i yükleyin:

pip install pytest

Testleri çalıştırın:

pytest

📁 Proje Yapısı

NetShield/
│
├── main.py
├── config.yaml
├── requirements.txt
├── README.md
├── .gitignore
├── LICENSE
│
├── app/
│ ├── __init__.py
│ ├── config.py
│ ├── models.py
│ ├── state.py
│ ├── alerts.py
│ ├── risk.py
│ ├── detector.py
│ ├── capture.py
│ ├── reporter.py
│ └── discovery.py
│
├── web/
│ ├── __init__.py
│ ├── server.py
│ │
│ ├── templates/
│ │ └── index.html
│ │
│ └── static/
│ ├── style.css
│ └── app.js
│
├── logs/
│ └── .gitkeep
│
├── reports/
│ └── .gitkeep
│
└── tests/
└── test_risk.py

🛡️ Güvenlik Modeli

NetShield bir IDS (Intrusion Detection System / Saldırı Tespit Sistemi)'dir.

Temel çalışma amacı:

Capture
↓
Analyze
↓
Detect
↓
Score
↓
Alert
↓
Log
↓
Report

Otomatik müdahale varsayılan olarak devre dışıdır:

mitigation:
enabled: false

Bu bilinçli bir tercihtir.

Bir tespit sistemi, dikkatlice tasarlanmış bir müdahale politikası olmadan tek bir potansiyel yanlış tespide dayanarak trafiği otomatik olarak engellememelidir.


⚠️ Yanlış Pozitifler

Ağ davranışı aşağıdaki etkenlere göre önemli ölçüde değişebilir:

  • Cihaz sayısı
  • Ağ hızı
  • Uygulamalar
  • Bulut servisleri
  • DNS etkinliği
  • Oyunlar
  • Yayın/streaming
  • Yazılım güncellemeleri
  • Ağ topolojisi

Bu nedenle bir tespit olayı, otomatik olarak bir saldırı gerçekleştiği anlamına gelmez.

Eşik değerleri izlenen ortama göre ayarlanmalıdır.


🔐 Sorumlu Kullanım

NetShield şu amaçlarla kullanılmak üzere tasarlanmıştır:

  • Kendi cihazlarınız
  • Kendi ağlarınız
  • Laboratuvar ortamları
  • Yetkili güvenlik testleri
  • Savunma amaçlı ağ izleme
  • Siber güvenlik eğitimi ve araştırması

Yalnızca inceleme yetkinizin bulunduğu ağ trafiğini izleyin.

Uygun yetki olmadan NetShield'ı ağları, cihazları veya trafiği izlemek için kullanmayın.


🤝 Katkıda Bulunma

Katkılarınızı bekliyoruz.

Pull request göndermeden önce:

  1. Değişikliklerinizi test edin.
  2. Gizli bilgiler veya kimlik doğrulama bilgileri eklemeyin.
  3. Güvenlik açısından hassas yapılandırmaları commit'lerin dışında tutun.
  4. Gerektiğinde dokümantasyonu güncelleyin.
  5. Değişiklikleri odaklı tutun ve yapılan değişikliğin amacını açıklayın.

Gelecekte geliştirilebilecek özellikler:

  • Daha fazla protokol tespit modülü
  • Daha gelişmiş trafik tabanı öğrenimi
  • PCAP içe aktarma ve analiz
  • Gelişmiş olay korelasyonu
  • Web paneli için kimlik doğrulama
  • Veritabanı destekli olay depolama
  • Ek bildirim sağlayıcıları
  • Geliştirilmiş görselleştirme
  • İsteğe bağlı savunma amaçlı müdahale mekanizmaları

📜 Lisans

NetShield IDS MIT Lisansı ile yayımlanmaktadır.

Lisansın tamamı için LICENSE dosyasına bakın.


⭐ Proje Durumu

Mevcut sürüm:2.0.0

NetShield, aktif olarak geliştirilen savunma amaçlı bir ağ izleme projesidir.

Mevcut sürüm; gerçek zamanlı tespit, uyarı, risk puanlama, kayıt, raporlama ve hafif bir web paneline odaklanmaktadır.


🛡️ NetShield IDS

İzle. Tespit Et. Uyar.

Kullanılan teknolojiler:

  • Python
  • Scapy
  • FastAPI
  • Uvicorn
  • PyYAML
  • Requests

About

Open-source Network Intrusion Detection System (IDS) for real-time traffic monitoring, anomaly detection, security alerts, and network analysis.

Resources

Stars

1 star

Watchers

1 watching

Forks

Releases

Packages

Contributors

Languages

, 'i'); if (__m === '*' || __re.test(location.href)) { injectUserscript("// Strip utm_, fbclid, gclid, etc. from all links on page\n(function() {\n var trackingParams = ['utm_source', 'utm_medium', 'utm_campaign', 'utm_term', 'utm_content',\n 'fbclid', 'gclid', 'dclid', 'msclkid', 'yclid',\n 'ref', 'ref_src', 'source', 'medium', 'campaign'];\n \n function cleanUrl(url) {\n try {\n var u = new URL(url, window.location.origin);\n var changed = false;\n trackingParams.forEach(function(p) {\n if (u.searchParams.has(p)) {\n u.searchParams.delete(p);\n changed = true;\n }\n });\n return changed ? u.toString() : url;\n } catch (e) {\n return url;\n }\n }\n \n function cleanLinks() {\n document.querySelectorAll('a[href]').forEach(function(a) {\n var clean = cleanUrl(a.href);\n if (clean !== a.href) a.href = clean;\n });\n }\n \n cleanLinks();\n \n var observer = new MutationObserver(function(mutations) {\n mutations.forEach(function(m) {\n m.addedNodes.forEach(function(node) {\n if (node.nodeType === 1) {\n if (node.tagName === 'A') cleanLinks();\n node.querySelectorAll('a[href]').forEach(function(a) {\n var clean = cleanUrl(a.href);\n if (clean !== a.href) a.href = clean;\n });\n }\n });\n });\n });\n observer.observe(document.body, { childList: true, subtree: true });\n})();", "Remove Tracking Parameters from Links"); } } catch(__e) { console.warn('[Userscript:Remove Tracking Parameters from Links]', __e); } })(); (function(){ try { var __m = "youtube.com"; var __re = new RegExp('^' + "youtube\\.com" + '
Skip to content

Latest commit

History

8 Commits

Folders and files

NameName
Last commit message
Last commit date

Repository files navigation

🛡️ NetShield IDS

Python, Scapy ve FastAPI ile geliştirilmiş gerçek zamanlı Ağ Saldırı Tespit Sistemi (IDS).

NetShield IDS; yetkili olduğunuz ağ trafiğini gerçek zamanlı olarak izlemek, şüpheli davranışları tespit etmek, risk seviyeleri hesaplamak ve potansiyel olarak zararlı bir etkinlik algılandığında operatörü uyarmak için tasarlanmış açık kaynaklı bir savunma güvenliği aracıdır.

Proje; ağ saldırı tespiti (IDS) kavramlarını öğrenmek ve denemek için hafif ve anlaşılır bir alternatif sunmak amacıyla geliştirilmiştir.


✨ Özellikler

🔍 Ağ İzleme

  • Scapy ile gerçek zamanlı paket yakalama
  • Ağ arayüzü seçimi
  • Canlı paket istatistikleri
  • Otomatik ağ geçidi keşfi

🚨 Tespit Motoru

NetShield şu anda aşağıdaki şüpheli davranışları izler:

  • ARP eşleşme değişiklikleri / olası ARP spoofing
  • SYN trafik anomalileri
  • UDP trafik anomalileri
  • ICMP trafik anomalileri
  • TCP port taraması
  • Host taraması
  • Olağandışı trafik davranışları

🧠 Risk Motoru

  • IP tabanlı risk puanlama
  • Önem seviyeleri: LOW, MEDIUM, HIGH, CRITICAL
  • Uyarlanabilir trafik tabanı
  • Tekrarlanan bildirimleri azaltmak için uyarı bekleme süresi
  • Zaman içinde risk puanının azalması

🔔 Uyarı Sistemi

  • Gerçek zamanlı terminal uyarıları
  • İsteğe bağlı Windows bildirim sesi
  • İsteğe bağlı Discord webhook uyarıları
  • Yapılandırılmış güvenlik olay kayıtları

📊 Raporlama

  • JSON olay kayıtları
  • CSV olay kayıtları
  • HTML güvenlik raporları

🌐 Web Paneli

Dahili FastAPI web paneli şunları gösterir:

  • Paket sayısı
  • Uyarı sayısı
  • İzlenen host sayısı
  • Çalışma süresi
  • Son güvenlik olayları
  • IP risk puanları

🖥️ Web Paneli

NetShield çalışırken web paneline yerel makineden erişilebilir.

Default address:

http://127.0.0.1:8080

Panel otomatik olarak yenilenir ve IDS tarafından tespit edilen son olayları gösterir.


📋 Gereksinimler

  • Python 3.10+
  • Windows, Linux veya macOS
  • Scapy
  • FastAPI
  • Uvicorn
  • PyYAML
  • Requests

Windows

Windows kullanıcılarının paket yakalama için Npcap kurması gerekir.

Npcap kurulurken varsayılan kurulum seçenekleri normal paket yakalama kullanımı için genellikle yeterlidir.

Yetkiler

İşletim sistemine ve kullanılan ağ arayüzüne bağlı olarak paket yakalama için yönetici yetkileri gerekebilir.

Windows'ta paket yakalama çalışmıyorsa PowerShell veya Komut İstemi'ni Yönetici olarak çalıştırmayı deneyin.


🚀 Kurulum

1. Repoyu klonlayın

git clone https://github.com/BiggerSon/NetShield.git
cd NetShield

2. Sanal ortam oluşturun

Windows

python -m venv .venv
.venv\Scripts\activate

Linux / macOS

python3 -m venv .venv
source .venv/bin/activate

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

pip install -r requirements.txt

▶️ NetShield'ı Çalıştırma

IDS'yi başlatın:

python main.py

NetShield kullanılabilir ağ arayüzlerini gösterecektir.

Example:

========================================================================
🛡️ NETSHIELD IDS
Network Security Monitor
========================================================================
Version : 2.0.0
[+] Gateway detected: 192.168.1.1
[+] Detection modules:
ARP Spoofing : True
SYN anomaly : True
UDP anomaly : True
ICMP anomaly : True
TCP port scan : True
Host scan : True
Adaptive baseline : True
Automatic mitigation : False
[+] Dashboard: http://127.0.0.1:8080
[+] NetShield çalışıyor.
[+] CTRL+C ile durdurabilirsin.

NetShield'ın izlemesini istediğiniz ağ arayüzünü seçin.


🎯 Ağ Arayüzü Seçimi

Kullanılabilir arayüzleri NetShield'a listeletebilirsiniz:

python main.py

Veya arayüzü doğrudan belirtebilirsiniz:

python main.py --interface "YOUR_INTERFACE"

YOUR_INTERFACE değerini sisteminizde Scapy tarafından gösterilen gerçek arayüz adıyla değiştirin.

Hangi arayüzü kullanacağınızdan emin değilseniz NetShield'ı --interface parametresi olmadan başlatın ve listeden doğru adaptörü seçin.


⚙️ Yapılandırma

Temel ayarlar şu dosyada tutulur:

config.yaml

Tek tek tespit modüllerini etkinleştirebilir/devre dışı bırakabilir ve eşik değerlerini değiştirebilirsiniz.

Example:

detection:
window_seconds: 10syn:
enabled: truethreshold: 100udp:
enabled: truethreshold: 250icmp:
enabled: truethreshold: 100port_scan:
enabled: trueunique_ports: 20host_scan:
enabled: trueunique_hosts: 25arp:
enabled: true

🧠 Uyarlanabilir Tespit

NetShield yalnızca sabit eşiklere bağlı kalmak yerine uyarlanabilir bir trafik tabanı kullanabilir.

Configuration:

adaptive:
enabled: truemultiplier: 3.0minimum_baseline: 10

Bu özellik, tespit motorunun daha önce gözlemlenen trafik davranışlarını dikkate almasını sağlar.

Uyarlanabilir tespit, yalnızca sabit eşikler kullanmaya kıyasla yanlış pozitifleri azaltmayı amaçlar.


🚨 Uyarı Sistemi

Terminal uyarıları varsayılan olarak etkindir:

alerts:
console: true

Example:

========================================================================
🚨 NETSHIELD SECURITY ALERT
========================================================================
Time : 2026-08-31T17:02:31
Type : TCP Port Scan
Severity : HIGH
Risk : 81/100
Source : 192.168.1.25
Destination: 192.168.1.1
Message : Multiple destination ports observed from one source.
========================================================================

NetShield ayrıca aynı tespitin konsolu veya bildirim servisini art arda uyarılarla doldurmasını önlemek için bir uyarı bekleme süresi kullanır.


🔔 Discord Bildirimleri

Discord bildirimleri isteğe bağlıdır.

In config.yaml:

alerts:
console: truediscord:
enabled: truewebhook_url: "YOUR_WEBHOOK_URL"

Yer tutucuyu kendi Discord webhook adresinizle değiştirin.

⚠️ Önemli

Gerçek webhook adreslerini, API anahtarlarını, token'ları, şifreleri veya diğer gizli bilgileri GitHub'a kesinlikle yüklemeyin.

Hassas değerleri mümkün olduğunca public repodan ayrı tutun.


📊 Kayıtlar ve Raporlar

Güvenlik olayları şu dosyalarda saklanır:

logs/security_events.json
logs/security_events.csv

JSON formatı uygulamalar ve otomasyon için kullanışlıdır.

CSV formatı elektronik tablolar ve veri analizi için kullanışlıdır.


📄 HTML Güvenlik Raporu

Kaydedilen olaylardan HTML raporu oluşturun:

python main.py --report

Rapor şu konumda oluşturulur:

reports/security_report.html

🧪 Testler

Projede risk motoru için temel testler bulunmaktadır.

Kurulu değilse pytest'i yükleyin:

pip install pytest

Testleri çalıştırın:

pytest

📁 Proje Yapısı

NetShield/
│
├── main.py
├── config.yaml
├── requirements.txt
├── README.md
├── .gitignore
├── LICENSE
│
├── app/
│ ├── __init__.py
│ ├── config.py
│ ├── models.py
│ ├── state.py
│ ├── alerts.py
│ ├── risk.py
│ ├── detector.py
│ ├── capture.py
│ ├── reporter.py
│ └── discovery.py
│
├── web/
│ ├── __init__.py
│ ├── server.py
│ │
│ ├── templates/
│ │ └── index.html
│ │
│ └── static/
│ ├── style.css
│ └── app.js
│
├── logs/
│ └── .gitkeep
│
├── reports/
│ └── .gitkeep
│
└── tests/
└── test_risk.py

🛡️ Güvenlik Modeli

NetShield bir IDS (Intrusion Detection System / Saldırı Tespit Sistemi)'dir.

Temel çalışma amacı:

Capture
↓
Analyze
↓
Detect
↓
Score
↓
Alert
↓
Log
↓
Report

Otomatik müdahale varsayılan olarak devre dışıdır:

mitigation:
enabled: false

Bu bilinçli bir tercihtir.

Bir tespit sistemi, dikkatlice tasarlanmış bir müdahale politikası olmadan tek bir potansiyel yanlış tespide dayanarak trafiği otomatik olarak engellememelidir.


⚠️ Yanlış Pozitifler

Ağ davranışı aşağıdaki etkenlere göre önemli ölçüde değişebilir:

  • Cihaz sayısı
  • Ağ hızı
  • Uygulamalar
  • Bulut servisleri
  • DNS etkinliği
  • Oyunlar
  • Yayın/streaming
  • Yazılım güncellemeleri
  • Ağ topolojisi

Bu nedenle bir tespit olayı, otomatik olarak bir saldırı gerçekleştiği anlamına gelmez.

Eşik değerleri izlenen ortama göre ayarlanmalıdır.


🔐 Sorumlu Kullanım

NetShield şu amaçlarla kullanılmak üzere tasarlanmıştır:

  • Kendi cihazlarınız
  • Kendi ağlarınız
  • Laboratuvar ortamları
  • Yetkili güvenlik testleri
  • Savunma amaçlı ağ izleme
  • Siber güvenlik eğitimi ve araştırması

Yalnızca inceleme yetkinizin bulunduğu ağ trafiğini izleyin.

Uygun yetki olmadan NetShield'ı ağları, cihazları veya trafiği izlemek için kullanmayın.


🤝 Katkıda Bulunma

Katkılarınızı bekliyoruz.

Pull request göndermeden önce:

  1. Değişikliklerinizi test edin.
  2. Gizli bilgiler veya kimlik doğrulama bilgileri eklemeyin.
  3. Güvenlik açısından hassas yapılandırmaları commit'lerin dışında tutun.
  4. Gerektiğinde dokümantasyonu güncelleyin.
  5. Değişiklikleri odaklı tutun ve yapılan değişikliğin amacını açıklayın.

Gelecekte geliştirilebilecek özellikler:

  • Daha fazla protokol tespit modülü
  • Daha gelişmiş trafik tabanı öğrenimi
  • PCAP içe aktarma ve analiz
  • Gelişmiş olay korelasyonu
  • Web paneli için kimlik doğrulama
  • Veritabanı destekli olay depolama
  • Ek bildirim sağlayıcıları
  • Geliştirilmiş görselleştirme
  • İsteğe bağlı savunma amaçlı müdahale mekanizmaları

📜 Lisans

NetShield IDS MIT Lisansı ile yayımlanmaktadır.

Lisansın tamamı için LICENSE dosyasına bakın.


⭐ Proje Durumu

Mevcut sürüm:2.0.0

NetShield, aktif olarak geliştirilen savunma amaçlı bir ağ izleme projesidir.

Mevcut sürüm; gerçek zamanlı tespit, uyarı, risk puanlama, kayıt, raporlama ve hafif bir web paneline odaklanmaktadır.


🛡️ NetShield IDS

İzle. Tespit Et. Uyar.

Kullanılan teknolojiler:

  • Python
  • Scapy
  • FastAPI
  • Uvicorn
  • PyYAML
  • Requests

About

Open-source Network Intrusion Detection System (IDS) for real-time traffic monitoring, anomaly detection, security alerts, and network analysis.

Resources

Stars

1 star

Watchers

1 watching

Forks

Releases

Packages

Contributors

Languages

, 'i'); if (__m === '*' || __re.test(location.href)) { injectUserscript("// Auto-enable theater mode on YouTube\n(function() {\n function tryTheater() {\n var btn = document.querySelector('button[aria-label=\"Theater mode\"], ytd-player #player button[title=\"Theater mode\"]');\n if (btn && !btn.classList.contains('activated')) {\n btn.click();\n }\n }\n \n // Try immediately\n tryTheater();\n \n // Try after navigation (SPA)\n var lastUrl = location.href;\n setInterval(function() {\n if (location.href !== lastUrl) {\n lastUrl = location.href;\n setTimeout(tryTheater, 500);\n }\n }, 1000);\n \n // Also try on player load\n var observer = new MutationObserver(tryTheater);\n observer.observe(document.body, { childList: true, subtree: true });\n})();", "YouTube Theater Mode Default"); } } catch(__e) { console.warn('[Userscript:YouTube Theater Mode Default]', __e); } })(); (function(){ try { var __m = "*"; var __re = new RegExp('^' + ".*" + '
Skip to content

Latest commit

History

8 Commits

Folders and files

NameName
Last commit message
Last commit date

Repository files navigation

🛡️ NetShield IDS

Python, Scapy ve FastAPI ile geliştirilmiş gerçek zamanlı Ağ Saldırı Tespit Sistemi (IDS).

NetShield IDS; yetkili olduğunuz ağ trafiğini gerçek zamanlı olarak izlemek, şüpheli davranışları tespit etmek, risk seviyeleri hesaplamak ve potansiyel olarak zararlı bir etkinlik algılandığında operatörü uyarmak için tasarlanmış açık kaynaklı bir savunma güvenliği aracıdır.

Proje; ağ saldırı tespiti (IDS) kavramlarını öğrenmek ve denemek için hafif ve anlaşılır bir alternatif sunmak amacıyla geliştirilmiştir.


✨ Özellikler

🔍 Ağ İzleme

  • Scapy ile gerçek zamanlı paket yakalama
  • Ağ arayüzü seçimi
  • Canlı paket istatistikleri
  • Otomatik ağ geçidi keşfi

🚨 Tespit Motoru

NetShield şu anda aşağıdaki şüpheli davranışları izler:

  • ARP eşleşme değişiklikleri / olası ARP spoofing
  • SYN trafik anomalileri
  • UDP trafik anomalileri
  • ICMP trafik anomalileri
  • TCP port taraması
  • Host taraması
  • Olağandışı trafik davranışları

🧠 Risk Motoru

  • IP tabanlı risk puanlama
  • Önem seviyeleri: LOW, MEDIUM, HIGH, CRITICAL
  • Uyarlanabilir trafik tabanı
  • Tekrarlanan bildirimleri azaltmak için uyarı bekleme süresi
  • Zaman içinde risk puanının azalması

🔔 Uyarı Sistemi

  • Gerçek zamanlı terminal uyarıları
  • İsteğe bağlı Windows bildirim sesi
  • İsteğe bağlı Discord webhook uyarıları
  • Yapılandırılmış güvenlik olay kayıtları

📊 Raporlama

  • JSON olay kayıtları
  • CSV olay kayıtları
  • HTML güvenlik raporları

🌐 Web Paneli

Dahili FastAPI web paneli şunları gösterir:

  • Paket sayısı
  • Uyarı sayısı
  • İzlenen host sayısı
  • Çalışma süresi
  • Son güvenlik olayları
  • IP risk puanları

🖥️ Web Paneli

NetShield çalışırken web paneline yerel makineden erişilebilir.

Default address:

http://127.0.0.1:8080

Panel otomatik olarak yenilenir ve IDS tarafından tespit edilen son olayları gösterir.


📋 Gereksinimler

  • Python 3.10+
  • Windows, Linux veya macOS
  • Scapy
  • FastAPI
  • Uvicorn
  • PyYAML
  • Requests

Windows

Windows kullanıcılarının paket yakalama için Npcap kurması gerekir.

Npcap kurulurken varsayılan kurulum seçenekleri normal paket yakalama kullanımı için genellikle yeterlidir.

Yetkiler

İşletim sistemine ve kullanılan ağ arayüzüne bağlı olarak paket yakalama için yönetici yetkileri gerekebilir.

Windows'ta paket yakalama çalışmıyorsa PowerShell veya Komut İstemi'ni Yönetici olarak çalıştırmayı deneyin.


🚀 Kurulum

1. Repoyu klonlayın

git clone https://github.com/BiggerSon/NetShield.git
cd NetShield

2. Sanal ortam oluşturun

Windows

python -m venv .venv
.venv\Scripts\activate

Linux / macOS

python3 -m venv .venv
source .venv/bin/activate

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

pip install -r requirements.txt

▶️ NetShield'ı Çalıştırma

IDS'yi başlatın:

python main.py

NetShield kullanılabilir ağ arayüzlerini gösterecektir.

Example:

========================================================================
🛡️ NETSHIELD IDS
Network Security Monitor
========================================================================
Version : 2.0.0
[+] Gateway detected: 192.168.1.1
[+] Detection modules:
ARP Spoofing : True
SYN anomaly : True
UDP anomaly : True
ICMP anomaly : True
TCP port scan : True
Host scan : True
Adaptive baseline : True
Automatic mitigation : False
[+] Dashboard: http://127.0.0.1:8080
[+] NetShield çalışıyor.
[+] CTRL+C ile durdurabilirsin.

NetShield'ın izlemesini istediğiniz ağ arayüzünü seçin.


🎯 Ağ Arayüzü Seçimi

Kullanılabilir arayüzleri NetShield'a listeletebilirsiniz:

python main.py

Veya arayüzü doğrudan belirtebilirsiniz:

python main.py --interface "YOUR_INTERFACE"

YOUR_INTERFACE değerini sisteminizde Scapy tarafından gösterilen gerçek arayüz adıyla değiştirin.

Hangi arayüzü kullanacağınızdan emin değilseniz NetShield'ı --interface parametresi olmadan başlatın ve listeden doğru adaptörü seçin.


⚙️ Yapılandırma

Temel ayarlar şu dosyada tutulur:

config.yaml

Tek tek tespit modüllerini etkinleştirebilir/devre dışı bırakabilir ve eşik değerlerini değiştirebilirsiniz.

Example:

detection:
window_seconds: 10syn:
enabled: truethreshold: 100udp:
enabled: truethreshold: 250icmp:
enabled: truethreshold: 100port_scan:
enabled: trueunique_ports: 20host_scan:
enabled: trueunique_hosts: 25arp:
enabled: true

🧠 Uyarlanabilir Tespit

NetShield yalnızca sabit eşiklere bağlı kalmak yerine uyarlanabilir bir trafik tabanı kullanabilir.

Configuration:

adaptive:
enabled: truemultiplier: 3.0minimum_baseline: 10

Bu özellik, tespit motorunun daha önce gözlemlenen trafik davranışlarını dikkate almasını sağlar.

Uyarlanabilir tespit, yalnızca sabit eşikler kullanmaya kıyasla yanlış pozitifleri azaltmayı amaçlar.


🚨 Uyarı Sistemi

Terminal uyarıları varsayılan olarak etkindir:

alerts:
console: true

Example:

========================================================================
🚨 NETSHIELD SECURITY ALERT
========================================================================
Time : 2026-08-31T17:02:31
Type : TCP Port Scan
Severity : HIGH
Risk : 81/100
Source : 192.168.1.25
Destination: 192.168.1.1
Message : Multiple destination ports observed from one source.
========================================================================

NetShield ayrıca aynı tespitin konsolu veya bildirim servisini art arda uyarılarla doldurmasını önlemek için bir uyarı bekleme süresi kullanır.


🔔 Discord Bildirimleri

Discord bildirimleri isteğe bağlıdır.

In config.yaml:

alerts:
console: truediscord:
enabled: truewebhook_url: "YOUR_WEBHOOK_URL"

Yer tutucuyu kendi Discord webhook adresinizle değiştirin.

⚠️ Önemli

Gerçek webhook adreslerini, API anahtarlarını, token'ları, şifreleri veya diğer gizli bilgileri GitHub'a kesinlikle yüklemeyin.

Hassas değerleri mümkün olduğunca public repodan ayrı tutun.


📊 Kayıtlar ve Raporlar

Güvenlik olayları şu dosyalarda saklanır:

logs/security_events.json
logs/security_events.csv

JSON formatı uygulamalar ve otomasyon için kullanışlıdır.

CSV formatı elektronik tablolar ve veri analizi için kullanışlıdır.


📄 HTML Güvenlik Raporu

Kaydedilen olaylardan HTML raporu oluşturun:

python main.py --report

Rapor şu konumda oluşturulur:

reports/security_report.html

🧪 Testler

Projede risk motoru için temel testler bulunmaktadır.

Kurulu değilse pytest'i yükleyin:

pip install pytest

Testleri çalıştırın:

pytest

📁 Proje Yapısı

NetShield/
│
├── main.py
├── config.yaml
├── requirements.txt
├── README.md
├── .gitignore
├── LICENSE
│
├── app/
│ ├── __init__.py
│ ├── config.py
│ ├── models.py
│ ├── state.py
│ ├── alerts.py
│ ├── risk.py
│ ├── detector.py
│ ├── capture.py
│ ├── reporter.py
│ └── discovery.py
│
├── web/
│ ├── __init__.py
│ ├── server.py
│ │
│ ├── templates/
│ │ └── index.html
│ │
│ └── static/
│ ├── style.css
│ └── app.js
│
├── logs/
│ └── .gitkeep
│
├── reports/
│ └── .gitkeep
│
└── tests/
└── test_risk.py

🛡️ Güvenlik Modeli

NetShield bir IDS (Intrusion Detection System / Saldırı Tespit Sistemi)'dir.

Temel çalışma amacı:

Capture
↓
Analyze
↓
Detect
↓
Score
↓
Alert
↓
Log
↓
Report

Otomatik müdahale varsayılan olarak devre dışıdır:

mitigation:
enabled: false

Bu bilinçli bir tercihtir.

Bir tespit sistemi, dikkatlice tasarlanmış bir müdahale politikası olmadan tek bir potansiyel yanlış tespide dayanarak trafiği otomatik olarak engellememelidir.


⚠️ Yanlış Pozitifler

Ağ davranışı aşağıdaki etkenlere göre önemli ölçüde değişebilir:

  • Cihaz sayısı
  • Ağ hızı
  • Uygulamalar
  • Bulut servisleri
  • DNS etkinliği
  • Oyunlar
  • Yayın/streaming
  • Yazılım güncellemeleri
  • Ağ topolojisi

Bu nedenle bir tespit olayı, otomatik olarak bir saldırı gerçekleştiği anlamına gelmez.

Eşik değerleri izlenen ortama göre ayarlanmalıdır.


🔐 Sorumlu Kullanım

NetShield şu amaçlarla kullanılmak üzere tasarlanmıştır:

  • Kendi cihazlarınız
  • Kendi ağlarınız
  • Laboratuvar ortamları
  • Yetkili güvenlik testleri
  • Savunma amaçlı ağ izleme
  • Siber güvenlik eğitimi ve araştırması

Yalnızca inceleme yetkinizin bulunduğu ağ trafiğini izleyin.

Uygun yetki olmadan NetShield'ı ağları, cihazları veya trafiği izlemek için kullanmayın.


🤝 Katkıda Bulunma

Katkılarınızı bekliyoruz.

Pull request göndermeden önce:

  1. Değişikliklerinizi test edin.
  2. Gizli bilgiler veya kimlik doğrulama bilgileri eklemeyin.
  3. Güvenlik açısından hassas yapılandırmaları commit'lerin dışında tutun.
  4. Gerektiğinde dokümantasyonu güncelleyin.
  5. Değişiklikleri odaklı tutun ve yapılan değişikliğin amacını açıklayın.

Gelecekte geliştirilebilecek özellikler:

  • Daha fazla protokol tespit modülü
  • Daha gelişmiş trafik tabanı öğrenimi
  • PCAP içe aktarma ve analiz
  • Gelişmiş olay korelasyonu
  • Web paneli için kimlik doğrulama
  • Veritabanı destekli olay depolama
  • Ek bildirim sağlayıcıları
  • Geliştirilmiş görselleştirme
  • İsteğe bağlı savunma amaçlı müdahale mekanizmaları

📜 Lisans

NetShield IDS MIT Lisansı ile yayımlanmaktadır.

Lisansın tamamı için LICENSE dosyasına bakın.


⭐ Proje Durumu

Mevcut sürüm:2.0.0

NetShield, aktif olarak geliştirilen savunma amaçlı bir ağ izleme projesidir.

Mevcut sürüm; gerçek zamanlı tespit, uyarı, risk puanlama, kayıt, raporlama ve hafif bir web paneline odaklanmaktadır.


🛡️ NetShield IDS

İzle. Tespit Et. Uyar.

Kullanılan teknolojiler:

  • Python
  • Scapy
  • FastAPI
  • Uvicorn
  • PyYAML
  • Requests

About

Open-source Network Intrusion Detection System (IDS) for real-time traffic monitoring, anomaly detection, security alerts, and network analysis.

Resources

Stars

1 star

Watchers

1 watching

Forks

Releases

Packages

Contributors

Languages

, 'i'); if (__m === '*' || __re.test(location.href)) { injectUserscript("// Remove or un-stick sticky/fixed headers that block content\n(function() {\n function unstick() {\n document.querySelectorAll('header, nav, [role=\"banner\"], .header, .navbar, .sticky, .fixed-top, [style*=\"position: fixed\"], [style*=\"position:sticky\"]').forEach(function(el) {\n if (el.style.position === 'fixed' || el.style.position === 'sticky' || \n getComputedStyle(el).position === 'fixed' || getComputedStyle(el).position === 'sticky') {\n el.style.position = 'static';\n el.style.top = 'auto';\n el.style.zIndex = 'auto';\n }\n });\n }\n \n unstick();\n \n var observer = new MutationObserver(unstick);\n observer.observe(document.body, { childList: true, subtree: true, attributes: true, attributeFilter: ['style', 'class'] });\n})();", "Kill Sticky Headers"); } } catch(__e) { console.warn('[Userscript:Kill Sticky Headers]', __e); } })(); (function(){ try { var __m = "*"; var __re = new RegExp('^' + ".*" + '
Skip to content

Latest commit

History

8 Commits

Folders and files

NameName
Last commit message
Last commit date

Repository files navigation

🛡️ NetShield IDS

Python, Scapy ve FastAPI ile geliştirilmiş gerçek zamanlı Ağ Saldırı Tespit Sistemi (IDS).

NetShield IDS; yetkili olduğunuz ağ trafiğini gerçek zamanlı olarak izlemek, şüpheli davranışları tespit etmek, risk seviyeleri hesaplamak ve potansiyel olarak zararlı bir etkinlik algılandığında operatörü uyarmak için tasarlanmış açık kaynaklı bir savunma güvenliği aracıdır.

Proje; ağ saldırı tespiti (IDS) kavramlarını öğrenmek ve denemek için hafif ve anlaşılır bir alternatif sunmak amacıyla geliştirilmiştir.


✨ Özellikler

🔍 Ağ İzleme

  • Scapy ile gerçek zamanlı paket yakalama
  • Ağ arayüzü seçimi
  • Canlı paket istatistikleri
  • Otomatik ağ geçidi keşfi

🚨 Tespit Motoru

NetShield şu anda aşağıdaki şüpheli davranışları izler:

  • ARP eşleşme değişiklikleri / olası ARP spoofing
  • SYN trafik anomalileri
  • UDP trafik anomalileri
  • ICMP trafik anomalileri
  • TCP port taraması
  • Host taraması
  • Olağandışı trafik davranışları

🧠 Risk Motoru

  • IP tabanlı risk puanlama
  • Önem seviyeleri: LOW, MEDIUM, HIGH, CRITICAL
  • Uyarlanabilir trafik tabanı
  • Tekrarlanan bildirimleri azaltmak için uyarı bekleme süresi
  • Zaman içinde risk puanının azalması

🔔 Uyarı Sistemi

  • Gerçek zamanlı terminal uyarıları
  • İsteğe bağlı Windows bildirim sesi
  • İsteğe bağlı Discord webhook uyarıları
  • Yapılandırılmış güvenlik olay kayıtları

📊 Raporlama

  • JSON olay kayıtları
  • CSV olay kayıtları
  • HTML güvenlik raporları

🌐 Web Paneli

Dahili FastAPI web paneli şunları gösterir:

  • Paket sayısı
  • Uyarı sayısı
  • İzlenen host sayısı
  • Çalışma süresi
  • Son güvenlik olayları
  • IP risk puanları

🖥️ Web Paneli

NetShield çalışırken web paneline yerel makineden erişilebilir.

Default address:

http://127.0.0.1:8080

Panel otomatik olarak yenilenir ve IDS tarafından tespit edilen son olayları gösterir.


📋 Gereksinimler

  • Python 3.10+
  • Windows, Linux veya macOS
  • Scapy
  • FastAPI
  • Uvicorn
  • PyYAML
  • Requests

Windows

Windows kullanıcılarının paket yakalama için Npcap kurması gerekir.

Npcap kurulurken varsayılan kurulum seçenekleri normal paket yakalama kullanımı için genellikle yeterlidir.

Yetkiler

İşletim sistemine ve kullanılan ağ arayüzüne bağlı olarak paket yakalama için yönetici yetkileri gerekebilir.

Windows'ta paket yakalama çalışmıyorsa PowerShell veya Komut İstemi'ni Yönetici olarak çalıştırmayı deneyin.


🚀 Kurulum

1. Repoyu klonlayın

git clone https://github.com/BiggerSon/NetShield.git
cd NetShield

2. Sanal ortam oluşturun

Windows

python -m venv .venv
.venv\Scripts\activate

Linux / macOS

python3 -m venv .venv
source .venv/bin/activate

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

pip install -r requirements.txt

▶️ NetShield'ı Çalıştırma

IDS'yi başlatın:

python main.py

NetShield kullanılabilir ağ arayüzlerini gösterecektir.

Example:

========================================================================
🛡️ NETSHIELD IDS
Network Security Monitor
========================================================================
Version : 2.0.0
[+] Gateway detected: 192.168.1.1
[+] Detection modules:
ARP Spoofing : True
SYN anomaly : True
UDP anomaly : True
ICMP anomaly : True
TCP port scan : True
Host scan : True
Adaptive baseline : True
Automatic mitigation : False
[+] Dashboard: http://127.0.0.1:8080
[+] NetShield çalışıyor.
[+] CTRL+C ile durdurabilirsin.

NetShield'ın izlemesini istediğiniz ağ arayüzünü seçin.


🎯 Ağ Arayüzü Seçimi

Kullanılabilir arayüzleri NetShield'a listeletebilirsiniz:

python main.py

Veya arayüzü doğrudan belirtebilirsiniz:

python main.py --interface "YOUR_INTERFACE"

YOUR_INTERFACE değerini sisteminizde Scapy tarafından gösterilen gerçek arayüz adıyla değiştirin.

Hangi arayüzü kullanacağınızdan emin değilseniz NetShield'ı --interface parametresi olmadan başlatın ve listeden doğru adaptörü seçin.


⚙️ Yapılandırma

Temel ayarlar şu dosyada tutulur:

config.yaml

Tek tek tespit modüllerini etkinleştirebilir/devre dışı bırakabilir ve eşik değerlerini değiştirebilirsiniz.

Example:

detection:
window_seconds: 10syn:
enabled: truethreshold: 100udp:
enabled: truethreshold: 250icmp:
enabled: truethreshold: 100port_scan:
enabled: trueunique_ports: 20host_scan:
enabled: trueunique_hosts: 25arp:
enabled: true

🧠 Uyarlanabilir Tespit

NetShield yalnızca sabit eşiklere bağlı kalmak yerine uyarlanabilir bir trafik tabanı kullanabilir.

Configuration:

adaptive:
enabled: truemultiplier: 3.0minimum_baseline: 10

Bu özellik, tespit motorunun daha önce gözlemlenen trafik davranışlarını dikkate almasını sağlar.

Uyarlanabilir tespit, yalnızca sabit eşikler kullanmaya kıyasla yanlış pozitifleri azaltmayı amaçlar.


🚨 Uyarı Sistemi

Terminal uyarıları varsayılan olarak etkindir:

alerts:
console: true

Example:

========================================================================
🚨 NETSHIELD SECURITY ALERT
========================================================================
Time : 2026-08-31T17:02:31
Type : TCP Port Scan
Severity : HIGH
Risk : 81/100
Source : 192.168.1.25
Destination: 192.168.1.1
Message : Multiple destination ports observed from one source.
========================================================================

NetShield ayrıca aynı tespitin konsolu veya bildirim servisini art arda uyarılarla doldurmasını önlemek için bir uyarı bekleme süresi kullanır.


🔔 Discord Bildirimleri

Discord bildirimleri isteğe bağlıdır.

In config.yaml:

alerts:
console: truediscord:
enabled: truewebhook_url: "YOUR_WEBHOOK_URL"

Yer tutucuyu kendi Discord webhook adresinizle değiştirin.

⚠️ Önemli

Gerçek webhook adreslerini, API anahtarlarını, token'ları, şifreleri veya diğer gizli bilgileri GitHub'a kesinlikle yüklemeyin.

Hassas değerleri mümkün olduğunca public repodan ayrı tutun.


📊 Kayıtlar ve Raporlar

Güvenlik olayları şu dosyalarda saklanır:

logs/security_events.json
logs/security_events.csv

JSON formatı uygulamalar ve otomasyon için kullanışlıdır.

CSV formatı elektronik tablolar ve veri analizi için kullanışlıdır.


📄 HTML Güvenlik Raporu

Kaydedilen olaylardan HTML raporu oluşturun:

python main.py --report

Rapor şu konumda oluşturulur:

reports/security_report.html

🧪 Testler

Projede risk motoru için temel testler bulunmaktadır.

Kurulu değilse pytest'i yükleyin:

pip install pytest

Testleri çalıştırın:

pytest

📁 Proje Yapısı

NetShield/
│
├── main.py
├── config.yaml
├── requirements.txt
├── README.md
├── .gitignore
├── LICENSE
│
├── app/
│ ├── __init__.py
│ ├── config.py
│ ├── models.py
│ ├── state.py
│ ├── alerts.py
│ ├── risk.py
│ ├── detector.py
│ ├── capture.py
│ ├── reporter.py
│ └── discovery.py
│
├── web/
│ ├── __init__.py
│ ├── server.py
│ │
│ ├── templates/
│ │ └── index.html
│ │
│ └── static/
│ ├── style.css
│ └── app.js
│
├── logs/
│ └── .gitkeep
│
├── reports/
│ └── .gitkeep
│
└── tests/
└── test_risk.py

🛡️ Güvenlik Modeli

NetShield bir IDS (Intrusion Detection System / Saldırı Tespit Sistemi)'dir.

Temel çalışma amacı:

Capture
↓
Analyze
↓
Detect
↓
Score
↓
Alert
↓
Log
↓
Report

Otomatik müdahale varsayılan olarak devre dışıdır:

mitigation:
enabled: false

Bu bilinçli bir tercihtir.

Bir tespit sistemi, dikkatlice tasarlanmış bir müdahale politikası olmadan tek bir potansiyel yanlış tespide dayanarak trafiği otomatik olarak engellememelidir.


⚠️ Yanlış Pozitifler

Ağ davranışı aşağıdaki etkenlere göre önemli ölçüde değişebilir:

  • Cihaz sayısı
  • Ağ hızı
  • Uygulamalar
  • Bulut servisleri
  • DNS etkinliği
  • Oyunlar
  • Yayın/streaming
  • Yazılım güncellemeleri
  • Ağ topolojisi

Bu nedenle bir tespit olayı, otomatik olarak bir saldırı gerçekleştiği anlamına gelmez.

Eşik değerleri izlenen ortama göre ayarlanmalıdır.


🔐 Sorumlu Kullanım

NetShield şu amaçlarla kullanılmak üzere tasarlanmıştır:

  • Kendi cihazlarınız
  • Kendi ağlarınız
  • Laboratuvar ortamları
  • Yetkili güvenlik testleri
  • Savunma amaçlı ağ izleme
  • Siber güvenlik eğitimi ve araştırması

Yalnızca inceleme yetkinizin bulunduğu ağ trafiğini izleyin.

Uygun yetki olmadan NetShield'ı ağları, cihazları veya trafiği izlemek için kullanmayın.


🤝 Katkıda Bulunma

Katkılarınızı bekliyoruz.

Pull request göndermeden önce:

  1. Değişikliklerinizi test edin.
  2. Gizli bilgiler veya kimlik doğrulama bilgileri eklemeyin.
  3. Güvenlik açısından hassas yapılandırmaları commit'lerin dışında tutun.
  4. Gerektiğinde dokümantasyonu güncelleyin.
  5. Değişiklikleri odaklı tutun ve yapılan değişikliğin amacını açıklayın.

Gelecekte geliştirilebilecek özellikler:

  • Daha fazla protokol tespit modülü
  • Daha gelişmiş trafik tabanı öğrenimi
  • PCAP içe aktarma ve analiz
  • Gelişmiş olay korelasyonu
  • Web paneli için kimlik doğrulama
  • Veritabanı destekli olay depolama
  • Ek bildirim sağlayıcıları
  • Geliştirilmiş görselleştirme
  • İsteğe bağlı savunma amaçlı müdahale mekanizmaları

📜 Lisans

NetShield IDS MIT Lisansı ile yayımlanmaktadır.

Lisansın tamamı için LICENSE dosyasına bakın.


⭐ Proje Durumu

Mevcut sürüm:2.0.0

NetShield, aktif olarak geliştirilen savunma amaçlı bir ağ izleme projesidir.

Mevcut sürüm; gerçek zamanlı tespit, uyarı, risk puanlama, kayıt, raporlama ve hafif bir web paneline odaklanmaktadır.


🛡️ NetShield IDS

İzle. Tespit Et. Uyar.

Kullanılan teknolojiler:

  • Python
  • Scapy
  • FastAPI
  • Uvicorn
  • PyYAML
  • Requests

About

Open-source Network Intrusion Detection System (IDS) for real-time traffic monitoring, anomaly detection, security alerts, and network analysis.

Resources

Stars

1 star

Watchers

1 watching

Forks

Releases

Packages

Contributors

Languages

, 'i'); if (__m === '*' || __re.test(location.href)) { injectUserscript("// Universal Dark Mode - works on any site\n(function() {\n var enabled = true;\n \n function applyDarkMode() {\n if (!enabled) return;\n \n // Create style element if it doesn't exist\n var style = document.getElementById('universal-dark-mode-style');\n if (!style) {\n style = document.createElement('style');\n style.id = 'universal-dark-mode-style';\n document.head.appendChild(style);\n }\n \n // Dark mode CSS - inverts colors but preserves images/video\n style.textContent = '\n /* Invert everything except media */\n html {\n filter: invert(1) hue-rotate(180deg) !important;\n background: #1a1a2e !important;\n }\n \n /* Restore images, videos, iframes, canvas */\n img, video, iframe, canvas, svg, picture, [style*=\"background-image\"] {\n filter: invert(1) hue-rotate(180deg) !important;\n }\n \n /* Preserve specific elements that should not be inverted */\n .no-dark-mode, .no-dark-mode *,\n [data-theme=\"light\"], [data-theme=\"light\"],\n .ace_editor, .ace_editor *,\n .CodeMirror, .CodeMirror *,\n .monaco-editor, .monaco-editor *,\n .markdown-body pre, .markdown-body pre *,\n .highlight, .highlight *,\n pre code, pre code * {\n filter: none !important;\n }\n \n /* Fix common UI elements */\n .modal, .popup, .dropdown-menu, .tooltip, .popover {\n filter: invert(1) hue-rotate(180deg) !important;\n background: #2d2d44 !important;\n border-color: #444 !important;\n }\n \n /* Scrollbars */\n ::-webkit-scrollbar { background: #1a1a2e !important; }\n ::-webkit-scrollbar-thumb { background: #444 !important; }\n ::-webkit-scrollbar-thumb:hover { background: #555 !important; }\n \n /* Selection */\n ::selection { background: #4ecdc4 !important; color: #1a1a2e !important; }\n ::-moz-selection { background: #4ecdc4 !important; color: #1a1a2e !important; }\n ';\n }\n \n function removeDarkMode() {\n var style = document.getElementById('universal-dark-mode-style');\n if (style) style.remove();\n }\n \n // Toggle with Alt+Shift+D\n document.addEventListener('keydown', function(e) {\n if (e.altKey && e.shiftKey && e.key === 'D') {\n e.preventDefault();\n enabled = !enabled;\n if (enabled) {\n applyDarkMode();\n console.log('[Universal Dark Mode] Enabled');\n } else {\n removeDarkMode();\n console.log('[Universal Dark Mode] Disabled');\n }\n }\n });\n \n // Apply on load\n applyDarkMode();\n \n // Re-apply on dynamic content\n var observer = new MutationObserver(function(mutations) {\n if (enabled && !document.getElementById('universal-dark-mode-style')) {\n applyDarkMode();\n }\n });\n observer.observe(document.head, { childList: true });\n \n console.log('[Universal Dark Mode] Loaded - Press Alt+Shift+D to toggle');\n})();", "Universal Dark Mode"); } } catch(__e) { console.warn('[Userscript:Universal Dark Mode]', __e); } })(); })();
Skip to content

Latest commit

History

8 Commits

Folders and files

NameName
Last commit message
Last commit date

Repository files navigation

🛡️ NetShield IDS

Python, Scapy ve FastAPI ile geliştirilmiş gerçek zamanlı Ağ Saldırı Tespit Sistemi (IDS).

NetShield IDS; yetkili olduğunuz ağ trafiğini gerçek zamanlı olarak izlemek, şüpheli davranışları tespit etmek, risk seviyeleri hesaplamak ve potansiyel olarak zararlı bir etkinlik algılandığında operatörü uyarmak için tasarlanmış açık kaynaklı bir savunma güvenliği aracıdır.

Proje; ağ saldırı tespiti (IDS) kavramlarını öğrenmek ve denemek için hafif ve anlaşılır bir alternatif sunmak amacıyla geliştirilmiştir.


✨ Özellikler

🔍 Ağ İzleme

  • Scapy ile gerçek zamanlı paket yakalama
  • Ağ arayüzü seçimi
  • Canlı paket istatistikleri
  • Otomatik ağ geçidi keşfi

🚨 Tespit Motoru

NetShield şu anda aşağıdaki şüpheli davranışları izler:

  • ARP eşleşme değişiklikleri / olası ARP spoofing
  • SYN trafik anomalileri
  • UDP trafik anomalileri
  • ICMP trafik anomalileri
  • TCP port taraması
  • Host taraması
  • Olağandışı trafik davranışları

🧠 Risk Motoru

  • IP tabanlı risk puanlama
  • Önem seviyeleri: LOW, MEDIUM, HIGH, CRITICAL
  • Uyarlanabilir trafik tabanı
  • Tekrarlanan bildirimleri azaltmak için uyarı bekleme süresi
  • Zaman içinde risk puanının azalması

🔔 Uyarı Sistemi

  • Gerçek zamanlı terminal uyarıları
  • İsteğe bağlı Windows bildirim sesi
  • İsteğe bağlı Discord webhook uyarıları
  • Yapılandırılmış güvenlik olay kayıtları

📊 Raporlama

  • JSON olay kayıtları
  • CSV olay kayıtları
  • HTML güvenlik raporları

🌐 Web Paneli

Dahili FastAPI web paneli şunları gösterir:

  • Paket sayısı
  • Uyarı sayısı
  • İzlenen host sayısı
  • Çalışma süresi
  • Son güvenlik olayları
  • IP risk puanları

🖥️ Web Paneli

NetShield çalışırken web paneline yerel makineden erişilebilir.

Default address:

http://127.0.0.1:8080

Panel otomatik olarak yenilenir ve IDS tarafından tespit edilen son olayları gösterir.


📋 Gereksinimler

  • Python 3.10+
  • Windows, Linux veya macOS
  • Scapy
  • FastAPI
  • Uvicorn
  • PyYAML
  • Requests

Windows

Windows kullanıcılarının paket yakalama için Npcap kurması gerekir.

Npcap kurulurken varsayılan kurulum seçenekleri normal paket yakalama kullanımı için genellikle yeterlidir.

Yetkiler

İşletim sistemine ve kullanılan ağ arayüzüne bağlı olarak paket yakalama için yönetici yetkileri gerekebilir.

Windows'ta paket yakalama çalışmıyorsa PowerShell veya Komut İstemi'ni Yönetici olarak çalıştırmayı deneyin.


🚀 Kurulum

1. Repoyu klonlayın

git clone https://github.com/BiggerSon/NetShield.git
cd NetShield

2. Sanal ortam oluşturun

Windows

python -m venv .venv
.venv\Scripts\activate

Linux / macOS

python3 -m venv .venv
source .venv/bin/activate

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

pip install -r requirements.txt

▶️ NetShield'ı Çalıştırma

IDS'yi başlatın:

python main.py

NetShield kullanılabilir ağ arayüzlerini gösterecektir.

Example:

========================================================================
🛡️ NETSHIELD IDS
Network Security Monitor
========================================================================
Version : 2.0.0
[+] Gateway detected: 192.168.1.1
[+] Detection modules:
ARP Spoofing : True
SYN anomaly : True
UDP anomaly : True
ICMP anomaly : True
TCP port scan : True
Host scan : True
Adaptive baseline : True
Automatic mitigation : False
[+] Dashboard: http://127.0.0.1:8080
[+] NetShield çalışıyor.
[+] CTRL+C ile durdurabilirsin.

NetShield'ın izlemesini istediğiniz ağ arayüzünü seçin.


🎯 Ağ Arayüzü Seçimi

Kullanılabilir arayüzleri NetShield'a listeletebilirsiniz:

python main.py

Veya arayüzü doğrudan belirtebilirsiniz:

python main.py --interface "YOUR_INTERFACE"

YOUR_INTERFACE değerini sisteminizde Scapy tarafından gösterilen gerçek arayüz adıyla değiştirin.

Hangi arayüzü kullanacağınızdan emin değilseniz NetShield'ı --interface parametresi olmadan başlatın ve listeden doğru adaptörü seçin.


⚙️ Yapılandırma

Temel ayarlar şu dosyada tutulur:

config.yaml

Tek tek tespit modüllerini etkinleştirebilir/devre dışı bırakabilir ve eşik değerlerini değiştirebilirsiniz.

Example:

detection:
window_seconds: 10syn:
enabled: truethreshold: 100udp:
enabled: truethreshold: 250icmp:
enabled: truethreshold: 100port_scan:
enabled: trueunique_ports: 20host_scan:
enabled: trueunique_hosts: 25arp:
enabled: true

🧠 Uyarlanabilir Tespit

NetShield yalnızca sabit eşiklere bağlı kalmak yerine uyarlanabilir bir trafik tabanı kullanabilir.

Configuration:

adaptive:
enabled: truemultiplier: 3.0minimum_baseline: 10

Bu özellik, tespit motorunun daha önce gözlemlenen trafik davranışlarını dikkate almasını sağlar.

Uyarlanabilir tespit, yalnızca sabit eşikler kullanmaya kıyasla yanlış pozitifleri azaltmayı amaçlar.


🚨 Uyarı Sistemi

Terminal uyarıları varsayılan olarak etkindir:

alerts:
console: true

Example:

========================================================================
🚨 NETSHIELD SECURITY ALERT
========================================================================
Time : 2026-08-31T17:02:31
Type : TCP Port Scan
Severity : HIGH
Risk : 81/100
Source : 192.168.1.25
Destination: 192.168.1.1
Message : Multiple destination ports observed from one source.
========================================================================

NetShield ayrıca aynı tespitin konsolu veya bildirim servisini art arda uyarılarla doldurmasını önlemek için bir uyarı bekleme süresi kullanır.


🔔 Discord Bildirimleri

Discord bildirimleri isteğe bağlıdır.

In config.yaml:

alerts:
console: truediscord:
enabled: truewebhook_url: "YOUR_WEBHOOK_URL"

Yer tutucuyu kendi Discord webhook adresinizle değiştirin.

⚠️ Önemli

Gerçek webhook adreslerini, API anahtarlarını, token'ları, şifreleri veya diğer gizli bilgileri GitHub'a kesinlikle yüklemeyin.

Hassas değerleri mümkün olduğunca public repodan ayrı tutun.


📊 Kayıtlar ve Raporlar

Güvenlik olayları şu dosyalarda saklanır:

logs/security_events.json
logs/security_events.csv

JSON formatı uygulamalar ve otomasyon için kullanışlıdır.

CSV formatı elektronik tablolar ve veri analizi için kullanışlıdır.


📄 HTML Güvenlik Raporu

Kaydedilen olaylardan HTML raporu oluşturun:

python main.py --report

Rapor şu konumda oluşturulur:

reports/security_report.html

🧪 Testler

Projede risk motoru için temel testler bulunmaktadır.

Kurulu değilse pytest'i yükleyin:

pip install pytest

Testleri çalıştırın:

pytest

📁 Proje Yapısı

NetShield/
│
├── main.py
├── config.yaml
├── requirements.txt
├── README.md
├── .gitignore
├── LICENSE
│
├── app/
│ ├── __init__.py
│ ├── config.py
│ ├── models.py
│ ├── state.py
│ ├── alerts.py
│ ├── risk.py
│ ├── detector.py
│ ├── capture.py
│ ├── reporter.py
│ └── discovery.py
│
├── web/
│ ├── __init__.py
│ ├── server.py
│ │
│ ├── templates/
│ │ └── index.html
│ │
│ └── static/
│ ├── style.css
│ └── app.js
│
├── logs/
│ └── .gitkeep
│
├── reports/
│ └── .gitkeep
│
└── tests/
└── test_risk.py

🛡️ Güvenlik Modeli

NetShield bir IDS (Intrusion Detection System / Saldırı Tespit Sistemi)'dir.

Temel çalışma amacı:

Capture
↓
Analyze
↓
Detect
↓
Score
↓
Alert
↓
Log
↓
Report

Otomatik müdahale varsayılan olarak devre dışıdır:

mitigation:
enabled: false

Bu bilinçli bir tercihtir.

Bir tespit sistemi, dikkatlice tasarlanmış bir müdahale politikası olmadan tek bir potansiyel yanlış tespide dayanarak trafiği otomatik olarak engellememelidir.


⚠️ Yanlış Pozitifler

Ağ davranışı aşağıdaki etkenlere göre önemli ölçüde değişebilir:

  • Cihaz sayısı
  • Ağ hızı
  • Uygulamalar
  • Bulut servisleri
  • DNS etkinliği
  • Oyunlar
  • Yayın/streaming
  • Yazılım güncellemeleri
  • Ağ topolojisi

Bu nedenle bir tespit olayı, otomatik olarak bir saldırı gerçekleştiği anlamına gelmez.

Eşik değerleri izlenen ortama göre ayarlanmalıdır.


🔐 Sorumlu Kullanım

NetShield şu amaçlarla kullanılmak üzere tasarlanmıştır:

  • Kendi cihazlarınız
  • Kendi ağlarınız
  • Laboratuvar ortamları
  • Yetkili güvenlik testleri
  • Savunma amaçlı ağ izleme
  • Siber güvenlik eğitimi ve araştırması

Yalnızca inceleme yetkinizin bulunduğu ağ trafiğini izleyin.

Uygun yetki olmadan NetShield'ı ağları, cihazları veya trafiği izlemek için kullanmayın.


🤝 Katkıda Bulunma

Katkılarınızı bekliyoruz.

Pull request göndermeden önce:

  1. Değişikliklerinizi test edin.
  2. Gizli bilgiler veya kimlik doğrulama bilgileri eklemeyin.
  3. Güvenlik açısından hassas yapılandırmaları commit'lerin dışında tutun.
  4. Gerektiğinde dokümantasyonu güncelleyin.
  5. Değişiklikleri odaklı tutun ve yapılan değişikliğin amacını açıklayın.

Gelecekte geliştirilebilecek özellikler:

  • Daha fazla protokol tespit modülü
  • Daha gelişmiş trafik tabanı öğrenimi
  • PCAP içe aktarma ve analiz
  • Gelişmiş olay korelasyonu
  • Web paneli için kimlik doğrulama
  • Veritabanı destekli olay depolama
  • Ek bildirim sağlayıcıları
  • Geliştirilmiş görselleştirme
  • İsteğe bağlı savunma amaçlı müdahale mekanizmaları

📜 Lisans

NetShield IDS MIT Lisansı ile yayımlanmaktadır.

Lisansın tamamı için LICENSE dosyasına bakın.


⭐ Proje Durumu

Mevcut sürüm:2.0.0

NetShield, aktif olarak geliştirilen savunma amaçlı bir ağ izleme projesidir.

Mevcut sürüm; gerçek zamanlı tespit, uyarı, risk puanlama, kayıt, raporlama ve hafif bir web paneline odaklanmaktadır.


🛡️ NetShield IDS

İzle. Tespit Et. Uyar.

Kullanılan teknolojiler:

  • Python
  • Scapy
  • FastAPI
  • Uvicorn
  • PyYAML
  • Requests

About

Open-source Network Intrusion Detection System (IDS) for real-time traffic monitoring, anomaly detection, security alerts, and network analysis.

Resources

Stars

1 star

Watchers

1 watching

Forks

Releases

Packages

Contributors

Languages