Memeriksa VM untuk mengetahui tanda-tanda modifikasi memori kernel

Halaman ini menjelaskan tugas yang dapat Anda lakukan untuk mengonfirmasi validitas temuan rootkit mode kernel dari Virtual Machine Threat Detection. Temuan rootkit mode kernel menunjukkan bahwa memori kernel VM berpotensi telah dimodifikasi oleh malware.

Saat Anda menerima temuan rootkit mode kernel dari Deteksi Ancaman VM, sebaiknya jalankan perintah Linux ini di instance Compute Engine yang terpengaruh untuk menyelidiki titik data di sistem Anda yang mungkin menunjukkan anomali, seperti panggilan sistem yang dibajak atau modul kernel tersembunyi.

Atau, Anda dapat menjalankan skrip pengumpulan data yang disediakan di VM yang terpengaruh. Skrip ini mengeksekusi perintah yang dijelaskan di halaman ini.

Kecuali jika dinyatakan lain, setiap tugas inspeksi di halaman ini relevan dengan semua temuan rootkit mode kernel.

Dokumen ini mengasumsikan hal berikut:

  • Anda akan melakukan tugas-tugas dalam dokumen ini setelah menerima temuan rootkit mode kernel dari Deteksi Ancaman VM. Untuk mengetahui daftar kategori penemuan yang relevan, lihat Penemuan ancaman rootkit mode kernel.

  • Anda memiliki pemahaman tentang alat command line Linux dan kernel Linux.

Tentang Virtual Machine Threat Detection

Virtual Machine Threat Detection adalah layanan bawaan Security Command Center yang tersedia di paket Enterprise dan Premium. Layanan ini memindai instance Compute Engine untuk mendeteksi aplikasi yang berpotensi berbahaya, seperti software penambangan cryptocurrency, rootkit mode kernel, dan malware yang berjalan di lingkungan cloud yang disusupi.

Deteksi Ancaman VM adalah bagian dari suite deteksi ancaman Security Command Center dan dirancang untuk melengkapi kemampuan yang ada dari Event Threat Detection dan Container Threat Detection.

Untuk informasi tentang Deteksi Ancaman VM, lihat ringkasan Virtual Machine Threat Detection. Untuk mempelajari cara melihat detail temuan Deteksi Ancaman VM, lihat Meninjau temuan di konsol Google Cloud.

Sebelum memulai

Untuk mendapatkan izin yang Anda perlukan guna melihat semua resource dan temuan di Security Command Center serta mengelola instance Compute Engine yang terpengaruh, minta administrator Anda untuk memberi Anda peran IAM berikut:

Untuk mengetahui informasi selengkapnya tentang cara memberikan peran, lihat Mengelola akses ke project, folder, dan organisasi.

Anda mungkin juga bisa mendapatkan izin yang diperlukan melalui peran khusus atau peran bawaan lainnya.

Mengidentifikasi VM yang terpengaruh

  1. Lihat detail temuan.
  2. Di bagian Resource affected, di kolom Resource full name, klik link. Tampilan detail instance Compute Engine yang terpengaruh akan terbuka di tab baru.
  3. Hubungkan ke instance. Untuk mengetahui informasi selengkapnya, lihat Menghubungkan ke VM Linux dalam dokumentasi Compute Engine.

Menemukan modul kernel yang tidak terduga

Kehadiran modul yang tidak terduga di VM dapat menunjukkan bahwa memori kernel VM berpotensi disusupi.

Untuk menemukan modul kernel yang tidak terduga, ikuti langkah-langkah berikut:

  1. Cantumkan semua modul kernel yang dimuat di VM:

    lsmod
    cat /proc/modules
    
  2. Cantumkan entri sysfs untuk modul yang dimuat dan dimuat ulang:

    ls -l /sys/module/
    
  3. Bandingkan hasil daftar ini dengan daftar dari VM lain dalam project. Cari modul yang muncul di VM yang terpengaruh, tetapi tidak di VM lain.

Menelusuri syslog untuk modul di luar hierarki

Tanda bahwa modul out-of-tree telah dimuat di VM dapat menunjukkan bahwa modul kernel yang tidak biasa telah dimuat. Anda dapat menelusuri buffering log kernel dan pesan syslog untuk menentukan apakah modul di luar hierarki telah dimuat. Dalam entri log, modul out-of-tree ditandai sebagai pemuatan yang tercemar.

Di buffer log kernel dan pesan syslog, telusuri entri log yang menyerupai berikut:

MODULE_NAME: loading out-of-tree module taints kernel.
  • Telusuri buffer log kernel untuk menemukan entri log yang menunjukkan adanya modul di luar hierarki:

    sudo dmesg | grep out-of-tree
    
  • Telusuri semua pesan syslog untuk menemukan entri log yang menunjukkan adanya modul di luar hierarki:

    grep "out-of-tree" /var/log/syslog*
    

Memeriksa livepatching

Livepatching di VM dapat mengganggu deteksi Deteksi Ancaman VM dan dapat memicu temuan positif palsu.

Untuk memeriksa livepatching, ikuti langkah-langkah berikut:

  1. Periksa syslog untuk penginstalan dan logging modul livepatching. Patching langsung biasanya mengubah kode kernel dengan menginstal titik ftrace kernel.

    sudo grep livepatch /var/log/syslog*
    
  2. Telusuri modul kernel baru yang diinstal untuk livepatching (biasanya diawali dengan livepatch):

    sudo lsmod | grep livepatch
    
  3. Menelusuri file patch:

    sudo ls -l /sys/kernel/livepatch
    

Untuk informasi tentang livepatching, lihat Livepatch dalam dokumentasi Kernel Linux.

Periksa aktivitas lain yang berpotensi berbahaya yang terdeteksi di VM

  1. Di Security Command Center, lihat detail temuan Deteksi Ancaman VM yang Anda selidiki.
  2. Di bagian Resource affected, di kolom Resource full name, klik panah drop-down, lalu klik Show all findings with this resource full name. Kueri temuan diperbarui untuk hanya menampilkan temuan untuk VM ini.
  3. Periksa temuan yang mengarah ke potensi aktivitas cryptomining, malware, pemberian IAM yang tidak biasa, dan ancaman keamanan lainnya.

Memeriksa apakah software antivirus menyebabkan temuan positif palsu

Software antivirus dapat mengganggu deteksi Deteksi Ancaman VM dan dapat memicu temuan positif palsu.

Memeriksa semua proses yang berjalan di sistem

Kehadiran proses yang tidak terduga dapat menunjukkan bahwa temuan VM Threat Detection valid dan VM telah disusupi.

  1. Cantumkan semua proses yang berjalan di VM:

    ps -eAf
    
  2. Cari proses debugger—seperti gdb, strace, dan pstack—yang biasanya tidak Anda jalankan di VM ini. Proses debugger dapat memata-matai proses lain.

  3. Cari proses mencurigakan lainnya di VM.

Memeriksa kernel yang di-booting

Periksa kernel yang di-booting untuk mengidentifikasi kernel Linux Anda:

cat /proc/version

Jika nilai yang ditampilkan bukan versi kernel yang Anda harapkan, hal ini dapat menunjukkan serangan pembajakan yang dilakukan dengan mengeksploitasi alat kexec di kernel. Alat kexec dapat melakukan softboot pada sistem untuk menggunakan kernel yang berbeda.

Tugas tambahan untuk temuan Unexpected kernel code modification

Tugas di bagian ini khusus untuk kategori temuan Defense Evasion: Unexpected kernel code modification. Lakukan tugas di bagian berikut untuk memverifikasi validitas temuan dalam kategori ini.

Bagian ini membantu Anda menentukan apakah VM Anda menggunakan API debugger. API debugger dapat memicu temuan positif palsu, karena dapat mengubah wilayah kode kernel yang sedang berjalan.

Secara umum, Deteksi Ancaman VM tidak menghasilkan temuan jika mendeteksi penggunaan API debugger. Namun, jika VM Anda menggunakan API debugger yang tidak diketahui VM Threat Detection, Anda masih bisa mendapatkan temuan positif palsu.

Memeriksa pelacak debug yang diaktifkan

Pelacak—kecuali pelacak nop—dapat menyebabkan perubahan kode kernel. Hal ini dapat mengganggu deteksi Deteksi Ancaman VM dan dapat memicu temuan positif palsu. Secara umum, jika mendeteksi kehadiran pelacak, Deteksi Ancaman VM tidak akan mengirim temuan Defense Evasion: Unexpected kernel code modification.

Untuk memeriksa pelacak debug yang diaktifkan, ikuti langkah-langkah berikut:

  1. Periksa pelacak yang tersedia:

    cat /sys/kernel/debug/tracing/available_tracers
    

    Outputnya akan terlihat seperti berikut:

    hwlat blk mmiotrace function_graph wakeup_dl wakeup_rt wakeup function nop
    
  2. Periksa pelacak saat ini:

    cat /sys/kernel/debug/tracing/current_tracer
    

    Hasilnya adalah salah satu pelacak yang tersedia yang ditampilkan dalam perintah sebelumnya.

  3. Pastikan pelacakan diaktifkan di sistem:

    cat /sys/kernel/debug/tracing/tracing_on
    

    Nilai 1 menunjukkan bahwa pelacakan diaktifkan di sistem.

  4. Cantumkan CPU tempat pelacakan diaktifkan:

    cat /sys/kernel/debug/tracing/tracing_cpumask
    
  5. Lihat detail pelacakan:

    cat /sys/kernel/debug/tracing/trace_stat/function*
    

    Outputnya akan terlihat seperti berikut:

    Function       Hit    Time            Avg             s^2
    

Memeriksa peristiwa pelacak debug

Pemantauan peristiwa di kernel dapat menyebabkan perubahan kode kernel dan dapat menghasilkan temuan Virtual Machine Threat Detection positif palsu. Banyak alat proses debug dan pemantauan performa yang dapat otomatis mengaktifkan pemantauan peristiwa.

Untuk memeriksa apakah pemantauan peristiwa diaktifkan, jalankan perintah berikut:

cat /sys/kernel/debug/tracing/events/enable
cat /sys/kernel/debug/tracing/events/*/enable

Output 0 berarti pemantauan peristiwa dinonaktifkan. Output 1 berarti pemantauan peristiwa diaktifkan.

Pertimbangkan untuk menonaktifkan pemantauan peristiwa guna memeriksa apakah Threat Detection VM menghasilkan temuan yang sama. Jika temuan berkurang, hal itu dapat menunjukkan bahwa beberapa temuan awal adalah temuan positif palsu.

Memeriksa kprobe, aturan eBPF, dan netfilter

Netfilter, kprobe, dan aturan eBPF dapat memicu perubahan kode karena memicu transfer panggilan ke callback kustom. Pendeteksian Ancaman VM mendeteksi keberadaan probe ini dan memetakan probe tersebut ke halaman kode yang dimodifikasi, tanpa memperhitungkan probe mana yang dapat memicu positif palsu.

Untuk memeriksa kprobe, aturan eBPF, dan netfilter, jalankan perintah berikut:

iptable -L
cat /sys/kernel/debug/kprobes/enabled
cat /sys/kernel/debug/kprobes/list
cat /sys/kernel/debug/kprobes/blacklist
cat /sys/kernel/debug/tracing/enabled_functions
sudo apt-get update && sudo apt-get install bpftrace
bpftrace -l
sudo apt install linux-tools-`uname -r`
bpftool prog

Memeriksa pelacak debug awal

Kehadiran pelacak debug awal yang diaktifkan pada waktu booting dapat mengganggu deteksi Deteksi Ancaman VM dan dapat memicu temuan positif palsu.

Untuk memeriksa pelacak debug awal, jalankan perintah berikut:

cat /proc/cmdline

Untuk daftar kemungkinan pelacak debug awal, lihat Pelacakan waktu booting dalam dokumentasi Kernel Linux.

Tugas tambahan untuk Unexpected system call handler

Lakukan tugas ini jika Anda mendapatkan temuan Defense Evasion: Unexpected system call handler.

Audit panggilan sistem dan cari anomali dalam penggunaan dan pemanggilnya. Log audit memberikan informasi tentang proses pemanggilan dan argumen untuk panggilan sistem. Anda juga dapat melakukan tugas verifikasi untuk memeriksa perilaku yang diharapkan dari panggilan sistem umum. Untuk mengetahui informasi selengkapnya, lihat Contoh pemeriksaan dengan rootkit Diamorphine di halaman ini.

Tugas tambahan untuk Unexpected interrupt handler

Lakukan tugas ini jika Anda mendapatkan temuan Defense Evasion: Unexpected interrupt handler.

Cantumkan pengendali interupsi live di sistem dan bandingkan hasilnya dengan informasi dari VM serupa lainnya dalam project. Handler interupsi yang tidak terduga dapat menunjukkan bahwa VM disusupi.

Untuk mencantumkan pengendali interupsi langsung, jalankan perintah berikut:

cat /proc/interrupts

Outputnya akan terlihat seperti berikut:

           CPU0       CPU1
  0:         44          0   IO-APIC   0-edge      timer
  1:          9          0   IO-APIC   1-edge      i8042
  4:      17493          0   IO-APIC   4-edge      ttyS0
  8:          0          0   IO-APIC   8-edge      rtc0
  9:          0          0   IO-APIC   9-fasteoi   acpi
 12:          0        152   IO-APIC  12-edge      i8042
 24:         16          0   PCI-MSI 81920-edge      virtio2-config
 25:          0      40194   PCI-MSI 81921-edge      virtio2-inflate
 26:      58528          0   PCI-MSI 81922-edge      virtio2-deflate
 27:          0     966356   PCI-MSI 81923-edge      virtio2-stats
 28:          0          0   PCI-MSI 49152-edge      virtio0-config
 29:          0          0   PCI-MSI 49153-edge      virtio0-control
 30:          0          0   PCI-MSI 49154-edge      virtio0-event
 31:          0     555807   PCI-MSI 49155-edge      virtio0-request
 32:          0          0   PCI-MSI 98304-edge      virtio3-config
 33:        184          0   PCI-MSI 98305-edge      virtio3-input
 34:          0          0   PCI-MSI 65536-edge      virtio1-config
 35:     556203          0   PCI-MSI 65537-edge      virtio1-input.0
 36:     552746          1   PCI-MSI 65538-edge      virtio1-output.0
 37:          1     426036   PCI-MSI 65539-edge      virtio1-input.1
 38:          0     408475   PCI-MSI 65540-edge      virtio1-output.1

Tugas tambahan untuk Unexpected processes in runqueue

Lakukan langkah-langkah ini jika Anda mendapatkan temuan Defense Evasion: Unexpected processes in runqueue. Bagian ini membantu Anda mengumpulkan titik data tambahan untuk menyelidiki temuan Anda. Titik data ini mungkin tidak secara langsung menunjukkan masalah malware.

Dalam tugas ini, Anda akan meninjau antrean penjadwal per CPU. Meskipun beberapa proses mungkin berumur pendek, Anda masih dapat mengevaluasi perilaku antrean penjadwal dengan proses yang berjalan per CPU untuk mencari perilaku yang tidak normal.

  1. Menampilkan detail tentang jumlah waktu yang dihabiskan setiap proses yang berjalan per CPU. Hal ini membantu Anda melihat apakah CPU tertentu sangat sibuk. Anda dapat mengaitkan hasil ke interupsi yang disematkan ke CPU dari /proc/interrupts.

    cat /proc/schedstat
    

    Untuk mengetahui informasi selengkapnya tentang perintah ini, lihat Statistik Penjadwal dalam dokumentasi Kernel Linux.

  2. Mencantumkan semua tugas yang dapat dijalankan saat ini dan detail tentang pengalihan konteks untuk setiap CPU.

    cat /proc/sched_debug
    

    Outputnya akan terlihat seperti berikut:

    Sched Debug Version: v0.11, 5.4.0-1081-gke #87-Ubuntu
    ktime                                   : 976187427.733850
    sched_clk                               : 976101974.761097
    cpu_clk                                 : 976101973.335113
    jiffies                                 : 4538939132
    sched_clock_stable()                    : 1
    
    sysctl_sched
      .sysctl_sched_latency                    : 12.000000
      .sysctl_sched_min_granularity            : 1.500000
      .sysctl_sched_wakeup_granularity         : 2.000000
      .sysctl_sched_child_runs_first           : 0
      .sysctl_sched_features                   : 2059067
      .sysctl_sched_tunable_scaling            : 1 (logarithmic)
    
    cpu#0, 2199.998 MHz
      .nr_running                    : 0
      .nr_switches                   : 16250401
      .nr_load_updates               : 0
      .nr_uninterruptible            : 12692
      .next_balance                  : 4538.939133
      .curr->pid                     : 0
      .clock                         : 976101971.732857
      .clock_task                    : 976101971.732857
      .avg_idle                      : 880408
      .max_idle_balance_cost         : 500000
    
    runnable tasks:
     S           task   PID         tree-key  switches  prio     wait-time             sum-exec        sum-sleep
    -----------------------------------------------------------------------------------------------------------
     S        systemd     1     51740.602172    326778   120         0.000000    165741.786097         0.000000 0 0 /init.scope
     S       kthreadd     2   1482297.917240      1361   120         0.000000       112.028205         0.000000 0 0 /
     I      rcu_sched    11   1482642.606136   1090339   120         0.000000     17958.156471         0.000000 0 0 /
     S        cpuhp/1    15       537.058588         8   120         0.000000         2.275927         0.000000 0 0 /
     S  idle_inject/1    16        -2.994953         3    49         0.000000         0.012780         0.000000 0 0 /
     S    migration/1    17         0.000000    245774     0         0.000000      5566.508869         0.000000 0 0 /
     S    ksoftirqd/1    18   1482595.656315     47766   120         0.000000      1235.099147         0.000000 0 0 /
     I   kworker/1:0H    20       536.961474         5   100         0.000000         0.043908         0.000000 0 0 /
     S      kdevtmpfs    21     11301.343465       177   120         0.000000         3.195291         0.000000 0 0 /
     I          netns    22         6.983329         2   100         0.000000         0.021870         0.000000 0 0 /
     Srcu_tasks_kthre    23        10.993528         2   120         0.000000         0.010200         0.000000 0 0 /
     S        kauditd    24   1482525.828948       319   120         0.000000        14.489652         0.000000 0 0 /
    
  3. Cari hal berikut:

    • Nama proses yang berjalan.
    • Jumlah pengalihan konteks per CPU. Lihat apakah proses mengalami terlalu sedikit atau terlalu banyak pengalihan di CPU.
    • Waktu CPU yang dihabiskan (waktu tidak tidak ada aktivitas).

Contoh inspeksi dengan rootkit Diamorphine

Bagian ini menunjukkan pemeriksaan VM yang telah menginstal rootkit Diamorphine. Diamorphine adalah modul kernel yang dapat dimuat (LKM) yang populer. Rootkit ini memicu kategori temuan berikut:

  • Defense Evasion: Unexpected system call handler
  • Defense Evasion: Unexpected kernel modules
  • Defense Evasion: Unexpected kernel read-only data modification

Untuk informasi selengkapnya tentang kategori temuan ini, lihat Temuan ancaman rootkit mode kernel.

Langkah-langkah pemeriksaan yang dilakukan dan gejala yang diamati di VM adalah sebagai berikut:

  1. Telusuri syslog untuk semua modul kernel out-of-tree yang dimuat.

    1. Telusuri buffer log kernel:

      sudo dmesg | grep out-of-tree
      

      Output:

      diamorphine: loading out-of-tree module taints kernel.
      
    2. Telusuri pesan syslog:

      grep "out-of-tree" /var/log/syslog*
      

      Output:

      /var/log/syslog: diamorphine: loading out-of-tree module taints kernel.
      
  2. Telusuri syslog untuk menemukan kegagalan verifikasi modul (tidak tersedia di semua distribusi Linux).

    1. Telusuri buffer log kernel:

      sudo dmesg | grep "module verification failed"
      

      Output:

      diamorphine: module verification failed: signature and/or required key missing - tainting kernel
      
    2. Telusuri pesan syslog:

      sudo grep "module verification failed" /var/log/syslog*
      

      Output:

      /var/log/syslog: diamorphine: module verification failed: signature and/or required key missing - tainting kernel
      
  3. Pastikan modul disembunyikan dari perintah /proc/modules dan lsmod.

    sudo grep diamorphine /proc/modules
    sudo lsmod | grep diamorphine
    

    Tidak ada hasil yang ditampilkan.

  4. Pastikan modul memiliki entri di sysfs.

    sudo cat /sys/module/diamorphine/coresize
    

    Output:

    16384
    
  5. Dapatkan tabel panggilan sistem untuk arsitektur:

    sudo ausyscall --dump
    

    Output:

    Using x86_64 syscall table:
    0       read
    1       write
    2       open
    3       close
    

    Lakukan audit untuk menemukan anomali dalam panggilan sistem—seperti kill dan getdents—yang biasanya dimodifikasi oleh rootkit.

  6. Untuk memeriksa modifikasi tidak sah pengendali panggilan sistem, audit panggilan sistem dan periksa perilaku yang tidak wajar. Perilaku ini bervariasi untuk setiap panggilan sistem.

    Panggilan sistem yang biasanya diretas adalah panggilan kill. Anda dapat memeriksa apakah panggilan sistem kill telah dilewati. Pada contoh berikut, panggilan sistem kill diaudit.

    1. Instal auditd dan amati perilaku VM tanpa rootkit Diamorphine:

      $ sudo apt-get update && sudo apt-get install auditd
      $ # Add audit rules for specific system calls
      $ sudo echo "-a exit,always -F arch=b64 -S kill -k audit_kill" >> /etc/audit/rules.d/audit.rules
      $  sudo /etc/init.d/auditd restart
      Restarting auditd (via systemctl): auditd.service.
      
      $ # Behavior observed without rootkit
      $ sleep 600 &
      [1] 1119
      $ sudo kill -9 1119
      $ sudo ausearch -k audit_kill | grep -A 3 "pid=1119"
      type=OBJ_PID msg=audit(1677517839.523:198): opid=1119 oauid=1001 ouid=0 oses=1 obj=unconfined ocomm="sleep"
      type=SYSCALL msg=audit(1677517839.523:198): arch=c000003e syscall=62 success=yes exit=0 a0=45f a1=9 a2=0 a3=7f61c64b2ac0 items=0 ppid=1034 pid=1035 auid=1001 uid=0 gid=0 euid=0 suid=0 fsuid=0 egid=0 sgid=0 fsgid=0
      tty=pts0 ses=1 comm="bash" exe="/usr/bin/bash" subj=unconfined key="audit_kill"
      $ sleep 600 &
      [1] 1087
      $ sudo kill -31 1087
      $ sudo ausearch -k audit_kill | grep -A 3 "pid=1087"
      type=OBJ_PID msg=audit(1677517760.844:168): opid=1087 oauid=1001 ouid=0 oses=1 obj=unconfined ocomm="sleep"
      type=SYSCALL msg=audit(1677517760.844:168): arch=c000003e syscall=62 success=yes exit=0 a0=43f a1=1f a2=0 a3=7f61c64b2ac0 items=0 ppid=1034 pid=1035 auid=1001 uid=0 gid=0 euid=0 suid=0 fsuid=0 egid=0 sgid=0 fsgid=0 tty=pts0        ses=1 comm="bash" exe="/usr/bin/bash" subj=unconfined key="audit_kill"
      

      Pada tahap ini dalam pemeriksaan, rootkit Diamorphine diinstal. Langkah berikutnya menunjukkan perilaku VM setelah penginstalan rootkit.

    2. Pastikan entri log audit untuk sinyal kini tidak ada setelah rootkit Diamorphine diinstal:

      $ sudo ausearch -k audit_kill | grep -A 3 "pid=1158"
      $ sleep 600 &
      [2] 1167
      
    3. Periksa detail di entri log audit untuk sinyal tersebut. Dalam contoh ini, meskipun sinyal khusus ini tidak sepenuhnya dibajak oleh rootkit, informasi tentang proses pemanggil tersedia.

      $ sudo kill -9 1167
      $ sudo ausearch -k audit_kill | grep -A 3 "pid=1167"
      type=OBJ_PID msg=audit(1677518008.586:237): opid=1167 oauid=1001 ouid=0 oses=1 obj=unconfined ocomm="sleep"
      type=SYSCALL msg=audit(1677518008.586:237): arch=c000003e syscall=62 success=yes exit=0 a0=48f a1=9 a2=0 a3=7f61c64b2ac0 items=0 ppid=1034 pid=1035 auid=1001 uid=0 gid=0 euid=0 suid=0 fsuid=0 egid=0 sgid=0 fsgid=0
      tty=pts0 ses=1 comm="bash" exe="/usr/bin/bash" subj=unconfined key="audit_kill"
      

Men-debug skrip pengumpulan data

Skrip berikut melakukan banyak tugas proses debug yang dijelaskan di halaman ini. Anda dapat menjalankan skrip ini dalam mode sudo atau root. Skrip hanya membaca informasi debug dari sistem.

$ cat kprot.sh
#!/bin/bash

echo "Boot command line"
cat /proc/cmdline
echo "=================================================="
echo "Loaded modules"
cat /proc/modules
echo "=================================================="
echo "Current tracer"
cat /sys/kernel/debug/tracing/current_tracer
echo "=================================================="
echo "Tracing event enable"
cat /sys/kernel/debug/tracing/events/enable
echo "=================================================="
echo "Tracing sub events enable"
for en in `find /sys/kernel/debug/tracing/events/*/enable`; do printf "\b$en\n"; cat $en; done
echo "=================================================="
echo "IP table rules"
iptables -L
echo "=================================================="
echo "Ftrace list"
cat /sys/kernel/debug/tracing/enabled_functions
echo "=================================================="
echo "Kprobes enabled"
cat /sys/kernel/debug/kprobes/enabled
echo "=================================================="
echo "Kprobes list"
cat /sys/kernel/debug/kprobes/list
echo "=================================================="
echo "Kprobes blocklist"
cat /sys/kernel/debug/kprobes/blacklist
echo "=================================================="
echo "BPF trace"
sudo apt update && sudo apt-get update && sudo apt-get install bpftrace
bpftrace -l
echo "=================================================="
echo "BPF prog list"
sudo apt update && sudo apt install linux-tools-`uname -r`
bpftool prog
echo "=================================================="

Langkah selanjutnya