Langsung ke konten

← Kembali ke Labs

L3:vulnerability-scanning-automation · Software Wing · Pilihan

Otomasi pemindaian kerentanan

Otomasi jadwal scan, kepemilikan aset, dan laporan remediasi untuk badan siber nasional Indonesia.

Klien
BSSN
Peran
Backend Engineer (paruh waktu)
Periode
Mei 2023 hingga Jul 2023

Hasil

  • 28 PRs

    Pull request di-merge selama sekitar tiga setengah bulan, dari migrasi awal hingga ekspor terjadwal

    Dihitung dari riwayat pull request di repositori.

    Terverifikasi

Masalah

BSSN memindai kerentanan pada situs dan sistem yang dilindungi. Menjalankan scan, melacak pemilik aset, dan menyusun laporan membutuhkan banyak pekerjaan manual di konsol scanner.

Yang saya kerjakan

  • Saya merancang model data dan REST API dengan Express, Sequelize, dan Swagger untuk situs yang dilindungi, aset, platform, pemilik, scan, dan kerentanan, beserta audit log.
  • Saya mengintegrasikan Nessus API untuk memulai, menjeda, dan melanjutkan scan, dengan notifikasi email serta job terjadwal untuk memantau progres dan perkiraan waktu selesai.
  • Saya menambahkan jumlah temuan per severity, statistik tahap remediasi, dan ringkasan dashboard dengan caching Redis.
  • Saya membuat laporan kerentanan PDF per aset dari beberapa scan dan ekspor terjadwal untuk membandingkan hasil antar tanggal scan.

Arsitektur

  1. KlienAnalyst dashboardAset, scan, dan laporan
  2. LayananExpress APISequelize, Swagger
  3. LayananScan schedulerCron job dan ekspor terjadwal
  4. EksternalNessusScanner kerentanan
  5. DataMySQLAset dan temuan
  6. DataRedisCache statistik

Alur data

  • Analyst dashboard to Express API (REST)
  • Express API to Nessus (launch, pause, resume)
  • Scan scheduler sends asynchronously to Nessus (progress)
  • Express API to MySQL (SQL)
  • Scan scheduler sends asynchronously to MySQL (results)
  • Express API to Redis (stats)

Tech stack

  • Node.js
  • Express
  • Sequelize
  • MySQL
  • Redis
  • Nessus API
  • Swagger
  • AWS EC2
  • Sentry

L2 · Riwayat karier terkaitBackend Engineer (paruh waktu) · BSSN