Kang IT
Teler - Deteksi Intrusi HTTP Real-time
teler
adalah deteksi intrusi waktu nyata dan peringatan ancaman berdasarkan log web yang berjalan di terminal dengan sumber daya yang kami kumpulkan dan sediakan oleh komunitas.
fitur
Waktu nyata : Analisis log dan identifikasi aktivitas yang mencurigakan secara waktu nyata.
Peringatan : teler memberikan peringatan ketika ancaman terdeteksi, pemberitahuan push termasuk Slack, Telegram dan Discord.
Pemantauan : Kami memiliki metrik kami sendiri jika Anda ingin memantau ancaman dengan mudah, dan kami menggunakan Prometheus untuk itu.
Sumber daya terbaru : Koleksi selalu diperbarui.
Konfigurasi minimal : Anda bisa menjalankannya pada file log Anda, menulis format log dan biarkan teler menganalisis log dan menunjukkan peringatan!
Format log fleksibel : teler memungkinkan string format log kustom! Itu semua tergantung pada bagaimana Anda menulis format log di file konfigurasi.
Pemrosesan log tambahan : Butuh persistensi data daripada aliran buffer ? teler memiliki kemampuan untuk memproses log secara bertahap melalui opsi persistensi di disk.
Mengapa teler?
teler dirancang untuk menjadi penganalisis ancaman berbasis terminal yang cepat. Ide intinya adalah menganalisis dan berburu ancaman dengan cepat dalam waktu nyata!
Instalasi
dari Binary
Pemasangannya mudah. Anda dapat mengunduh biner prebuilt dari halaman rilis , buka kemasan, dan jalankan! atau jalankan dengan:
▶ curl -sSfL 'https://ktbs.dev/get-teler.sh' | sh -s -- -b /usr/local/bin
menggunakan Docker
Tarik gambar Docker dengan menjalankan:
▶ docker pull kitabisa/teler
dari Sumber
Jika Anda memiliki kompiler go1.14 + yang diinstal dan dikonfigurasi:
▶ GO111MODULE=on go get -v -u ktbs.dev/teler/cmd/teler
Untuk memperbarui alat, Anda dapat menggunakan -u
bendera dengan go get
perintah.
dari GitHub
▶ git clone https://github.com/kitabisa/teler
▶ cd teler
▶ make build
▶ mv ./bin/teler /usr/local/bin
Pemakaian
Sederhananya, teler dapat dijalankan dengan:
▶ [buffers] | teler -c /path/to/config/teler.yaml
# or
▶ teler -i /path/to/access.log -c /path/to/config/teler.yaml
Jika Anda telah membangun teler dengan image Docker:
▶ [buffers] | docker run -i --rm -e TELER_CONFIG=/path/to/config/teler.yaml teler
# or
▶ docker run -i --rm -e TELER_CONFIG=/path/to/config/teler.yaml teler --input /path/to/access.log
Bendera
▶ teler -h
Ini akan menampilkan bantuan untuk alat tersebut.
Berikut semua sakelar yang didukungnya.
Bendera | Deskripsi | Contoh |
---|---|---|
-c, --config | file konfigurasi teler | kubectl logs nginx | teler -c /path/to/config/teler.yaml |
-i, --input | Analisis log dari persistensi data daripada aliran buffer | teler -i /var/log/nginx/access.log |
-x, --concurrent | Setel tingkat konkurensi untuk menganalisis log (default: 20) | tail -f /var/log/nginx/access.log | teler -x 50 |
-o, --output | Simpan ancaman yang terdeteksi ke file | teler -i /var/log/nginx/access.log -o /tmp/threats.log |
--json | Tampilkan ancaman di terminal sebagai format JSON | teler -i /var/log/nginx/access.log --json |
--rm-cache | Hapus semua sumber daya yang disimpan dalam cache | teler --rm-cache |
-v, --version | Tampilkan versi teler saat ini | teler -v |
Config
The -c
bendera adalah untuk menentukan teler file konfigurasi.
▶ tail -f /var/log/nginx/access.log | teler -c /path/to/config/teler.yaml
Ini diperlukan , tetapi jika Anda telah mendefinisikan TELER_CONFIG
lingkungan Anda tidak perlu menggunakan tanda ini, misalnya:
▶ export TELER_CONFIG="/path/to/config/teler.yaml"
▶ tail -f /var/log/nginx/access.log | teler
# or
▶ tail -f /var/log/nginx/access.log | TELER_CONFIG="/path/to/config/teler.yaml" teler
Memasukkan
Perlu analisis log secara bertahap? Ini -i
bendera berguna untuk itu.
▶ teler -i /var/log/nginx/access.log
Konkurensi
Concurrency adalah jumlah log yang dianalisis pada waktu yang sama. Nilai default yang disediakan teler adalah 20, Anda dapat mengubahnya dengan menggunakan -x
flag.
▶ teler -i /var/log/nginx/access.log -x 50
Keluaran
Anda juga dapat menyimpan ancaman yang terdeteksi ke dalam file dengan -o
bendera.
▶ teler -i /var/log/nginx/access.log -o threats.log
Format JSON
Jika Anda ingin menampilkan ancaman yang terdeteksi sebagai format JSON, ganti dengan --json
flag.
▶ teler -i /var/log/nginx/access.log --json
Harap dicatat ini juga akan berlaku jika Anda menyimpannya ke file dengan -o
bendera.
Hapus Cache
Ini akan menghapus semua sumber daya yang disimpan di direktori cache tingkat pengguna, lihat cache .
▶ teler --rm-cache
Konfigurasi
teler
memerlukan konfigurasi minimum untuk memproses dan / atau analisis log, dan menjalankan ancaman dan / atau peringatan. Lihat teler.example.yaml sebagai contoh.
Format Log
Karena kami menggunakan gonx
paket untuk mengurai log, Anda dapat menulis format log apa pun. Sebagai contoh:
Apache
log_format: |
$remote_addr - $remote_user [$time_local] "$request_method $request_uri $request_protocol" $status $body_bytes_sent
Nginx
log_format: |
$remote_addr $remote_user - [$time_local] "$request_method $request_uri $request_protocol"
$status $body_bytes_sent "$http_referer" "$http_user_agent"
Nginx Ingress
log_format: |
$remote_addr - [$remote_addr] $remote_user - [$time_local]
"$request_method $request_uri $request_protocol" $status $body_bytes_sent
"$http_referer" "$http_user_agent" $request_length $request_time
[$proxy_upstream_name] $upstream_addr $upstream_response_length $upstream_response_time $upstream_status $req_id
Amazon S3
log_format: |
$bucket_owner $bucket [$time_local] $remote_addr $requester $req_id $operationration $key
"$request_method $request_uri $request_protocol" $status $error_code $body_bytes_sent -
$total_time - "$http_referer" "$http_user_agent" $version_id $host_id
$signature_version $cipher_suite $http_auth_type $http_host_header $tls_version
LB elastis
log_format: |
$time_local $elb_name $remote_addr $upstream_addr $request_processing_time
$upstream_processing_time $response_processing_time $status $upstream_status $body_received_bytes $body_bytes_sent
"$request_method $request_uri $request_protocol" "$http_user_agent" $cipher_suite $tls_version
CloudFront
log_format: |
$date $time $edge_location $body_bytes_sent $remote_addr
$request_method $http_host_header $requst_uri $status
$http_referer $http_user_agent $request_query $http_cookie $edge_type $req_id
$http_host_header $ssl_protocol $body_bytes_sent $response_processing_time $http_host_forwarded
$tls_version $cipher_suite $edge_result_type $request_protocol $fle_status $fle_encrypted_fields
$http_port $time_first_byte $edge_detail_result_type
$http_content_type $request_length $request_length_start $request_length_end
Ancaman menguasai
Cache
Secara default, teler
akan mengambil sumber daya eksternal setiap kali Anda menjalankannya, tetapi Anda dapat mengalihkan sumber daya eksternal untuk disimpan dalam cache atau tidak.
rules:
cache: true
Jika Anda memilih untuk menyimpan sumber daya, itu disimpan di bawah direktori cache tingkat pengguna lintas platform dan akan diperbarui setiap hari, lihat sumber daya .
Tidak termasuk
Kami menyertakan sumber daya untuk ancaman yang telah ditentukan sebelumnya, termasuk:
- Serangan Web Umum
- Alamat IP Buruk
- Perujuk Buruk
- Crawler yang buruk
- Direktori Bruteforce
Anda dapat menonaktifkan semua jenis ancaman dalam excludes
konfigurasi (peka huruf besar-kecil) .
rules:
threat:
excludes:
- "Bad IP Address"
Format di atas mendeteksi ancaman yang tidak termasuk sebagai alamat IP buruk, dan tidak akan menganalisis log / mengirim peringatan untuk jenis itu.
Daftar putih
Anda juga dapat menambahkan daftar putih ke konfigurasi teler.
rules:
threat:
whitelists:
- "(curl|Go-http-client|okhttp)/*"
- "^/wp-login\\.php"
Ini mencakup seluruh permintaan HTTP dan diproses sebagai regExp , harap tulis dengan hati-hati!
Pemberitahuan
Kami menyediakan opsi pemberitahuan peringatan:
- Kendur,
- Telegram
- Perselisihan
Konfigurasikan peringatan pemberitahuan yang diperlukan pada:
notifications:
slack:
token: "xoxb-..."
color: "#ffd21a"
channel: "G30SPKI"
telegram:
token: "123456:ABC-DEF1234...-..."
chat_id: "-111000"
discord:
token: "NkWkawkawkawkawka.X0xo.n-kmZwA8aWAA"
color: "16312092"
channel: "700000000000000..."
Anda juga dapat memilih untuk menonaktifkan tanda atau ingin dikirim ke mana tanda itu berada.
alert:
active: true
provider: "slack"
Metrik
teler
juga mendukung metrik menggunakan Prometheus.
Prometheus
Anda dapat mengkonfigurasi host, port, dan endpoint untuk menggunakan metrik Prometheus di file konfigurasi.
prometheus:
active: true
host: "localhost"
port: 9099
endpoint: "/metrics"
Berikut adalah semua metrik yang kami kumpulkan & kategorikan.
Metrik | Deskripsi |
---|---|
teler_threats_count_total | Jumlah total ancaman yang terdeteksi |
teler_cwa | Dapatkan daftar Serangan Web Umum |
teler_badcrawler | Dapatkan daftar permintaan Bad Crawler |
teler_dir_bruteforce | Dapatkan daftar Direktori Bruteforced |
teler_bad_referrer | Dapatkan daftar permintaan Perujuk Buruk |
teler_badip_count | Jumlah Total Alamat IP Buruk |
Sumber daya
Semua sumber daya eksternal yang digunakan di teler ini TIDAK disediakan oleh kami. Lihat semua orang yang terlibat dalam sumber daya ini di Teler Resource Collections .
Regards
Kang IT
No comments:
Post a Comment