Skip to content

tanzz1337/LogScanner

Folders and files

NameName
Last commit message
Last commit date

Latest commit

Β 

History

5 Commits
Β 
Β 
Β 
Β 

Repository files navigation

image

πŸ” LogScan β€” Web Server Log Analyzer

Version Format OWASP License

Dashboard analisa log web server berbasis browser β€” tidak perlu instalasi, tidak perlu server, tidak perlu koneksi internet. Cukup buka file HTML dan upload log kamu.


πŸ“‹ Deskripsi

LogScan adalah tools analisa log web server yang berjalan sepenuhnya di browser (client-side). Didesain untuk developer dan sysadmin yang ingin dengan cepat menganalisa log Apache/Nginx, memfilter request berdasarkan berbagai kriteria, serta mendeteksi pola serangan berdasarkan OWASP Top 10 2021 tanpa perlu menginstall tools tambahan atau mengirim data ke server manapun.


✨ Fitur Utama

πŸ“‚ Multi-Format Support dengan Auto-Detect

Upload satu file, format otomatis terdeteksi. Mendukung 5 format sekaligus:

Format Contoh Baris
Apache Access Log 127.0.0.1 - - [10/Jun/2025:06:08:16 +0700] "GET /index.php HTTP/1.1" 200 512 "-" "Mozilla/5.0"
Apache Error Log [Tue Jun 10 06:08:16.944880 2025] [php:error] [pid 1344:tid 404] [client 127.0.0.1:7286] PHP Fatal error: ...
Nginx Access Log 127.0.0.1 - - [10/Jun/2025:06:08:16 +0700] "POST /login HTTP/1.1" 200 128 "-" "curl/7.88"
Nginx Error Log 2025/06/10 06:08:16 [error] 1234#1234: *1 connect() failed...
Custom Format Format log PHP kustom dengan blok --- separator

Format XAMPP (Apache dengan pid:tid) juga didukung penuh.


πŸ” OWASP Top 10 Threat Detection

Deteksi dilakukan hanya pada body request (URL, GET params, POST params, Body) β€” bukan pada headers β€” untuk meminimalisir false positive.

ID Nama Severity Scope Scan
A03:2021 SQL Injection πŸ”΄ Critical URL + Body
A03:2021 Cross-Site Scripting (XSS) πŸ”΄ Critical URL + Body
A01:2021 Path / Directory Traversal πŸ”΄ Critical URL + Body
A03:2021 Command Injection πŸ”΄ Critical URL + Body
A05:2021 XXE Injection πŸ”΄ Critical URL + Body
A10:2021 Server-Side Request Forgery (SSRF) πŸ”΄ Critical URL + Body
A03:2021 Server-Side Template Injection (SSTI) πŸ”΄ Critical URL + Body
A03:2021 NoSQL Injection πŸ”΄ Critical URL + Body
A06:2021 Security Scanner / Recon 🟑 Medium User-Agent only
A05:2021 Sensitive File Access 🟑 Medium URL only
A07:2021 Brute Force / Auth Endpoint 🟑 Medium URL + POST combo

πŸŽ›οΈ Filtering & Pencarian

  • Filter Method: ALL / GET / POST / PUT / DELETE
  • Filter Status: ALL / 2xx / 3xx / 4xx / 5xx
  • Filter Threat: ALL / Critical / Medium
  • Search Real-time: cari berdasarkan URL, IP, User-Agent, atau konten body
  • Filter otomatis berubah untuk error log (menjadi Error/Crit, Warn/Notice, Info/Debug)

πŸ“Š Dashboard Stats

Menampilkan ringkasan setelah file diupload:

  • Total request / entri
  • Breakdown per method (GET, POST) atau per level error
  • Jumlah response 2xx vs 4xx/5xx
  • Total ancaman terdeteksi
  • Badge format yang terdeteksi

πŸš€ Cara Penggunaan

1. Buka File

Cukup buka file index.html di browser manapun
(Chrome, Firefox, Edge, Safari)

2. Upload Log

Klik area upload atau tombol "Pilih File .log", lalu pilih file log kamu. Bisa juga dengan drag & drop langsung ke area upload.

3. Analisa

  • Dashboard langsung menampilkan stats dan semua entri
  • Badge format terdeteksi muncul di header
  • Klik entri untuk expand detail lengkap
  • Gunakan filter dan search untuk menyaring data

4. Investigasi Ancaman

Entri yang terdeteksi ancaman ditandai dengan border berwarna:

  • πŸ”΄ Border merah = ancaman Critical
  • 🟑 Border kuning = ancaman Medium

Klik entri untuk melihat detail ancaman: nama OWASP, deskripsi, dan string yang di-match.


πŸ“ Struktur File

logscan/
└── log-analyzer.html    ← satu file, semua sudah di dalamnya

Tidak ada dependency eksternal selain Google Fonts (opsional, hanya untuk tampilan).


πŸ–₯️ Kompatibilitas

Browser Status
Chrome 90+ βœ… Full support
Firefox 88+ βœ… Full support
Edge 90+ βœ… Full support
Safari 14+ βœ… Full support
IE 11 ❌ Tidak didukung

OS: Windows, Linux, macOS β€” tidak ada perbedaan karena berbasis browser.


βœ… Keunggulan

πŸ”’ Privacy β€” Data Tidak Keluar dari Browser

Semua proses parsing dan analisa terjadi sepenuhnya di browser (client-side JavaScript). File log tidak pernah dikirim ke server manapun. Cocok untuk log yang bersifat sensitif atau internal.

⚑ Zero Install

Tidak perlu npm install, tidak perlu Python, tidak perlu Docker. Buka file HTML di browser, langsung jalan.

🌐 Offline Ready

Setelah file didownload, tidak butuh koneksi internet sama sekali untuk menganalisa log. (Hanya Google Fonts yang membutuhkan internet, itupun hanya untuk tampilan font saja.)

🎯 Minim False Positive

Deteksi OWASP dirancang dengan scope yang ketat β€” headers HTTP tidak discan karena banyak mengandung karakter seperti ;, *, / yang bisa memicu false positive. Setiap pattern punya scope spesifik (body only, URL only, UA only, atau kombinasi).

πŸ“‹ Multi-Format dalam Satu Tool

Lima format log berbeda ditangani oleh satu file yang sama, dengan parser dan UI yang menyesuaikan otomatis.

πŸ” Detail Lengkap Per Entri

Setiap entri bisa di-expand untuk melihat semua field: IP, UA, headers, payload, performance (untuk custom format), raw message error, dan breakdown ancaman yang detail.


⚠️ Keterbatasan

πŸ“¦ Performa pada File Besar

Karena semua diproses di memori browser dengan vanilla JavaScript, file log yang sangat besar (lebih dari ~50MB atau lebih dari ~500.000 baris) bisa memperlambat browser atau menyebabkan tab tidak responsif. Disarankan memotong log terlebih dahulu untuk file berukuran besar.

πŸ”Ž Regex-Based Detection (Bukan AI/ML)

Deteksi ancaman menggunakan regex statis, bukan analisa perilaku atau machine learning. Artinya:

  • Serangan yang sangat ter-obfuscate mungkin tidak terdeteksi
  • Pola baru yang belum ada di database tidak akan terdeteksi
  • Bukan pengganti WAF (Web Application Firewall) atau SIEM yang proper

πŸ“„ Tidak Ada Export

Saat ini tidak ada fitur export hasil analisa ke PDF, CSV, atau format lainnya. Hasil hanya bisa dilihat di browser.

πŸ”„ Tidak Ada Parsing Real-time

Log harus diupload secara manual β€” tidak ada fitur tail/watch untuk memantau log secara live seperti tail -f.

🌐 Format Non-Standard

Jika web server menggunakan format log kustom yang sangat berbeda dari Combined Log Format standar, parser mungkin tidak dapat membacanya dengan benar dan perlu modifikasi regex manual di source code.

πŸ” Deteksi Terbatas untuk Error Log

Untuk Apache/Nginx Error Log, deteksi OWASP kurang efektif karena error log umumnya tidak mengandung payload request secara langsung. Lebih berguna untuk analisa error dan debugging daripada deteksi serangan.


πŸ› οΈ Pengembangan Lanjutan (Roadmap Ideas)

Beberapa fitur yang bisa ditambahkan di versi mendatang:

  • Export hasil ke CSV / PDF
  • Pagination untuk file log besar
  • Chart / visualisasi distribusi request per jam
  • Web Worker untuk parsing background (tidak membekukan UI)
  • Dukungan file .gz (log terkompresi)
  • Custom regex pattern oleh user
  • Simpan hasil analisa ke localStorage

πŸ“ Catatan Teknis

Mengapa PHP tidak digunakan?

Dashboard ini diputuskan menggunakan pure HTML + JavaScript karena:

  • Parsing log dilakukan di client-side sehingga tidak perlu server
  • File log tidak perlu dikirim ke manapun (privacy)
  • Lebih portable β€” cukup satu file .html

PHP akan relevan jika ada kebutuhan seperti parsing di server, penyimpanan hasil ke database, atau notifikasi email otomatis saat ancaman terdeteksi.

Arsitektur Deteksi OWASP

File Log Diupload
       ↓
  detectFormat()        ← identifikasi format dari 2000 karakter pertama
       ↓
  parser spesifik()     ← parseAccess / parseApacheError / parseNginxError / parseCustom
       ↓
  finalizeEntry()
       ↓
  detectThreats()       ← scan HANYA: URL + GET + POST + Body (bukan headers)
       ↓
  renderLogs()          ← tampilkan di UI dengan filter aktif

πŸ“„ Lisensi

MIT License β€” bebas digunakan, dimodifikasi, dan didistribusikan.


Dibuat untuk kebutuhan analisa log lokal yang cepat, aman, dan tanpa ketergantungan eksternal.

About

Simple tools for analysis .log from apache / nginx web server

Topics

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

 
 
 

Contributors

Languages