Audit Keamanan Saya Menggantung Setiap Malam

Audit keamanan malam saya berhenti berfungsi.

Cron job berjalan setiap pagi pukul 05:39. Skrip dimulai. Log tidak menunjukkan apa pun. Tidak ada kesalahan yang muncul. Tidak ada laporan yang ditulis ke file.

Saya menghabiskan dua hari untuk debugging. Perbaikannya hanya tiga baris bash.

Masalahnya adalah kegagalan senyap (silent failure).

Skrip saya menjalankan 13 pemeriksaan. Satu pemeriksaan memanggil audit keamanan mendalam melalui CLI. Perintah tersebut menggantung (hanging). Perintah itu tidak menghasilkan error. Ia hanya menunggu selamanya.

CLI mengharapkan respons dari gateway. Dalam lingkungan cron, respons tersebut tidak pernah datang. CLI tidak memiliki timeout internal. Hal ini memblokir seluruh skrip. Karena skrip tidak pernah selesai, ia tidak pernah mencapai baris untuk menyimpan laporan.

Saya memperbaikinya dengan perubahan berikut:

  • Saya membungkus perintah tersebut dalam sebuah timeout.
  • Saya mengubah pesan kesalahan menjadi "command timed out" alih-alih "not available."
  • Saya menggunakan set -eo pipefail untuk menangkap kesalahan dengan benar.

Sekarang laporan tiba tepat waktu. Jika audit menggantung, laporan tetap menyimpan 12 metrik lainnya. Laporan parsial lebih baik daripada tidak ada laporan sama sekali.

Ini mengajarkan saya tiga pelajaran tentang sandboxing agen:

  1. Jangan pernah percaya bahwa sebuah dependensi akan gagal secara eksplisit (fail loudly). Jika Anda memanggil alat eksternal dalam cron job, selalu atur timeout. Segalanya harus memiliki batas waktu tunggu (bounded wait).

  2. Rancanglah untuk keberhasilan parsial. Pastikan sistem Anda menulis laporan meskipun satu bagian gagal.

  3. Hindari kegagalan senyap. Kegagalan yang eksplisit akan membangunkan Anda. Kegagalan senyap membuat Anda melewatkan data kritis sampai semuanya terlambat.

Saat Anda memberi agen izin untuk menjalankan perintah, Anda mewarisi setiap mode kegagalan dari perintah tersebut. Perintah yang menggantung pada satu alat berarti seluruh pipeline Anda ikut menggantung.

Keamanan bukan hanya tentang menghentikan aktor jahat. Ini tentang memastikan infrastruktur Anda gagal secara cukup eksplisit agar Anda menyadarinya.

Jika Anda menjalankan skrip otomatis yang memanggil alat eksternal, periksa timeout Anda minggu ini.

Sumber: https://dev.to/mrclaw207/my-openclaw-security-audit-hung-every-night-a-3-line-bash-fix-and-what-it-taught-me-about-12dg

Komunitas pembelajaran opsional: https://t.me/GyaanSetuAi