Wróć

Co potrafi AccessIntel?

Wrzucasz access log z LiteSpeed lub Apache. Po kilku sekundach dostajesz pełny obraz: kto, skąd, czym i jakie ścieżki testował. Bez kont, bez bazy danych, bez śladu po analizie.

Jak to działa

  1. 01Upload plikuDrag&drop pliku .log, .txt lub .gz (max 500 MB). Plik trafia do tymczasowego storage z UUID jako nazwą — nigdy nie używamy nazwy z formularza.
  2. 02Strumieniowa analizaParser czyta plik linia po linii (bufor 4 MB) — nie ładujemy całego pliku do RAM. .gz jest dekompresowane w locie. Każde IP wzbogacamy przez MaxMind GeoLite2 (kraj + ASN).
  3. 03Klasyfikacja i scoringKlasyfikujemy User-Agenty (AI / SEO / search / scanner / CLI / browser), wykrywamy skanowanie podatności, liczymy risk score 0-100 dla każdego IP.
  4. 04Raport i regułyDashboard z mapą, tabelami i wykresami. Generator gotowych blokad .htaccess / Cloudflare WAF / nginx. Eksport HTML lub PDF.
  5. 05CleanupSurowy log usuwamy natychmiast po analizie. Wynik i raport znikają po 30 minutach. Nic nie zostaje.

Funkcje

Geolokalizacja

Każde IP rozwijamy do kraju + ASN/ISP przez MaxMind GeoLite2. Top kraje, mapa świata z choropleth.

Klasyfikacja botów

Rozpoznajemy Googlebot, bingbot, AhrefsBot, SemrushBot, GPTBot, ClaudeBot, Perplexity, sqlmap, nikto, curl, python-requests i wiele innych.

Wykrywanie skanowania

/.env, /.git/, /wp-config.php, /xmlrpc.php, /wp-login.php brute-force, /vendor/phpunit, próby /phpmyadmin, próby pobierania backupów.

Risk score 0-100

Per-IP scoring: scanner +25, wrażliwe ścieżki +30, CLI +15, wysoki 4xx +20, wolumen +20, AI/SEO +10. Buckets: Low/Medium/High/Critical.

Mapa świata

Choropleth z liczbą zapytań na kraj. Skala logarytmiczna — widać i 5 requestów i 50 000.

Generator reguł

Gotowe blokady do skopiowania: .htaccess (Apache/LiteSpeed), Cloudflare WAF expressions, nginx map+deny. Domyślnie preselekcjonuje krytyczne IP i scannery.

Filtrowanie i kopiowanie

Wszystkie tabele sortowalne, filtrowalne i z paginacją. Klik na IP / ścieżkę = kopiuj do schowka. Tooltip pokazuje pełne wartości.

Eksport HTML/PDF

Pełny raport w polskiej wersji jako HTML lub PDF (headless Chrome). 10 sekcji w jednym dokumencie do wysłania klientowi.

Co oznaczają metryki?

Krótki słowniczek pojęć z raportu. Każda nazwa pojawia się w dashboardzie i w eksporcie.

Ruch human
Zapytania z User-Agentów rozpoznanych jako prawdziwe przeglądarki (Chrome, Firefox, Safari, Edge…). Nie obejmuje botów ani skryptów.
Ruch botów
Wszystkie zapytania niebędące przeglądarką ani pustym UA: search engine bots, AI crawlery, SEO crawlery, monitoring, scannery, CLI tools.
Podejrzane
Zapytania do ścieżek typowo szukanych przez automaty: /.env, /.git/, /wp-config.php, /xmlrpc.php, /wp-login.php, /vendor/phpunit i pokrewne.
Unikalne IP / kraje / UA / ścieżki
Liczba różnych wartości w pliku — daje obraz różnorodności ruchu. Jedno aktywne IP czy bot rozproszony to dwie różne sytuacje.
Risk score
Liczba 0-100 dla każdego IP. Składniki: typ UA (scanner/CLI), wrażliwe ścieżki, udział błędów 4xx, wolumen requestów, brute-force /wp-login lub /xmlrpc. Im wyższy, tym większa szansa, że IP jest złośliwy.
Top ścieżki (bez query)
/foo?bar=1 i /foo?bar=2 liczymy razem jako /foo — query string nie wlicza się do agregacji żeby paginowane strony nie dzieliły zliczeń.
Kraj XL Private/Local
Bucketowanie dla adresów RFC1918, loopback, link-local, CGNAT. Nigdy nie próbujemy ich geolokalizować.
Kraj ZZ Unknown
Adresy publiczne, których MaxMind nie zna lub baza GeoLite2-Country nie jest zainstalowana. Funkcjonalność działa, tylko nie wiemy skąd są.

Prywatność

Surowy log → kasujemy

Plik znika natychmiast po zakończeniu analizy. Także przy błędzie. Nie jest replikowany ani backupowany.

Brak bazy danych

Cała aplikacja żyje w pamięci procesu. Wyłączenie serwera = wyzerowanie wszystkiego. Nie ma trwałego storage.

TTL 30 minut

Wynik analizy i raporty PDF/HTML są usuwane po 30 minutach. Background cleaner sprząta co 5 minut.

Obsługiwane formaty

Apache Combined Log Format — domyślny dla LiteSpeed Web Server i Apache HTTPD.

192.168.1.10 - - [20/May/2026:14:23:34 +0200] "GET /wp-login.php HTTP/1.1" 200 5321 "https://example.com/" "Mozilla/5.0 ..."
.logPlain text access log — domyślny format LiteSpeed/Apache.
.txtTekstowy zrzut logu — działa identycznie jak .log.
.gzSkompresowany gzip — dekompresujemy strumieniowo. Idealne dla starszych archiwów.

Pytania

  • Czy moje logi są gdzieś zapisywane?

    Tylko tymczasowo, na czas analizy. Surowy plik kasujemy natychmiast po przetworzeniu. Wynik JSON i raport PDF wygasają po 30 minutach. Nie ma żadnej bazy danych ani historii.

  • Jak duży plik mogę wgrać?

    Domyślny limit to 500 MB. Parser działa strumieniowo, więc nawet duże pliki nie wysycają RAM. Jeśli plik jest większy, skompresuj go do .gz przed uploadem (zwykle 10x redukcja).

  • Co jeśli nie mam baz MaxMind?

    Aplikacja działa dalej — kraje pokażą się jako 'Unknown / ZZ', ASN będzie pusty. Reszta funkcji (UA, paths, risk) nie wymaga GeoIP.

  • Czy reguły blokad można wkleić od razu w produkcji?

    Tak, ale zalecamy najpierw uruchomienie ich w trybie testowym (np. Cloudflare 'Log' action zamiast 'Block'). Domyślny preselect obejmuje IP z risk score ≥ 61 i scannery — to konserwatywny dobór.

  • Czy w PDF będą te same dane co w dashboardzie?

    Tak — PDF to renderowany przez headless Chrome ten sam HTML, który widzisz w przeglądarce, dostosowany do druku A4. Pierwszy PDF zajmuje 3-5 sekund (Chrome cold start), kolejne są szybsze.

  • Czy aplikacja loguje moje requesty?

    Tylko request line + status do stdout serwera (standardowy access log Chi). Nie logujemy zawartości plików ani wyników analizy. Production deployment powinien przekierować stdout do systemd journal albo Docker logs.

Gotowy żeby przeanalizować swój log?

Wgraj plik