Membangun Platform Exchange Crypto Enterprise: Business Logic, Fitur, dan Domain Knowledge

Dari Jakarta ke Sydney: bagaimana saya membangun Cybera360, platform yang menggabungkan risk assessment otomatis, vulnerability scanning real-time, dan cyber insurance quoting — untuk melindungi 10.000+ UKM di Asia Pasifik.
"Cybersecurity is no longer just an IT problem — it's a business risk that demands an insurance-grade solution." — Krishna Nagashwaran, Venture Lead
Sebagai frontend & backend engineer di Kano Solution, saya berkontribusi dalam pengembangan Cybera360 — platform cyber insurance milik IAG (Insurance Australia Group), perusahaan asuransi terbesar di Australia (ASX-listed, ~AU$12B market cap). Platform ini diinkubasi dalam IAG Firemark Labs Singapore sebagai corporate venture pertama IAG ke ranah asuransi cyber.
Cybera360 (CA360) adalah platform online yang menggabungkan cyber insurance dan cyber assurance (keamanan siber) untuk melayani Small-Medium Enterprises (SME) di Asia Pasifik. Di-launch tahun 2019 melalui program inkubasi IAG Firemark, platform ini menjadi pioneer dalam pendekatan one-stop holistic cyber service.
Artikel ini membedah arsitektur teknis, tantangan engineering, dan solusi yang dibangun untuk menghadirkan platform yang mampu mengubah proses underwriting berminggu-minggu menjadi hitungan menit.
Sebelum Cybera360, proses mendapatkan asuransi cyber untuk bisnis kecil-menengah sangat menyakitkan:
Mendapatkan quote asuransi cyber membutuhkan 3-4 hari melalui proses manual — mengisi 100+ pertanyaan, menunggu underwriter review, bolak-balik via email.
SME tidak memiliki tim cybersecurity dedicated. Pertanyaan teknis dalam formulir asuransi seringkali membingungkan dan membuat mereka menyerah di tengah jalan.
Asuransi cyber tradisional hanya membayar klaim SETELAH serangan terjadi. Tidak ada pendekatan proaktif untuk mencegah insiden sejak awal.
Mayoritas produk cyber insurance dirancang untuk enterprise besar. SME — yang justru paling rentan terhadap serangan siber — kurang terlayani.
Industri cyber insurance global bernilai USD 7.8 miliar (2020) dan diproyeksikan mencapai USD 20+ miliar pada 2025. IAG — sebagai perusahaan asuransi terbesar di Australia — membutuhkan platform yang bisa first-mover di pasar Asia Pasifik. Kecepatan development menjadi krusial.
Cybera360 dirancang sebagai platform microservices-based yang mengintegrasikan berbagai layanan third-party ke dalam satu pengalaman pengguna yang seamless.
graph TD
A[SME Customer / Broker] -->|Access| B[Cybera360 Web Platform]
B -->|Risk Assessment| C[Risk Scoring Engine]
B -->|Insurance Flow| D[Quoting & Underwriting Service]
C -->|Vulnerability Scan| E[UpGuard API]
C -->|Security Posture| F[Risk Data Aggregator]
F -->|Score Calculation| G[Cyber Risk Score Module]
G -->|Eligibility Check| D
D -->|Policy Creation| H[ERGO Underwriting System]
B -->|Value-Add Services| I[Acronis - Backup & Endpoint]
B -->|Training Module| J[RHCS - Cyber Education]
B -->|Dashboard| K[D3.js Risk Visualization]
H -->|Distribution| L[Broker Network]sequenceDiagram
participant U as SME User
participant P as Cybera360 Platform
participant RS as Risk Scoring Engine
participant UG as UpGuard API
participant UW as ERGO Underwriting
participant D as Dashboard
U->>P: Start application (< 30 questions)
P->>RS: Submit business profile
RS->>UG: Request vulnerability scan
UG-->>RS: Security posture data
RS->>RS: Calculate cyber risk score
RS-->>P: Risk assessment result
P->>UW: Submit scored application
UW-->>P: Quote & premium
P->>D: Render risk visualization
P-->>U: Quote ready (< 30 min)
Note over U,P: vs. Traditional: 3-4 daysKey Architecture Decisions:
Setiap partner (UpGuard, Acronis, RHCS) memiliki adapter service sendiri yang menormalisasi data ke format internal platform. Ini memungkinkan penambahan atau penggantian partner tanpa mengubah core business logic. Arsitektur ini juga memudahkan scaling independent — risk scoring engine bisa di-scale tanpa mempengaruhi quoting service.
Menggunakan Nuxt.js (Vue) untuk SSR memastikan performa loading awal yang cepat dan SEO-friendly — penting untuk platform B2B yang perlu ditemukan oleh SME melalui search engine. SSR juga memungkinkan hydration yang lebih efisien untuk dashboard D3.js yang data-intensive.
Risk scoring engine dipisahkan sebagai service independen untuk memudahkan iterasi model tanpa deployment seluruh platform. Model scoring bisa di-update berdasarkan data klaim aktual dan perubahan lanskap ancaman cyber tanpa downtime.
ERGO Insurance Singapore (subsidiary Munich Re) menyediakan kapasitas underwriting dan jaringan distribusi broker. Integrasi dilakukan via API sehingga proses policy creation bisa otomatis end-to-end.
| Technology | Peran | Alasan Dipilih |
|---|---|---|
| Nuxt.js | Web application framework | SSR untuk performa, Vue ecosystem untuk developer productivity, SEO-friendly |
| D3.js | Risk visualization & dashboard | Library paling fleksibel untuk custom data visualization — risk heatmap, scoring charts |
| Vue.js | UI components | Reactive data binding ideal untuk form dinamis dan real-time risk score update |
| Figma | Design system & prototyping | Kolaborasi design dengan tim UX di Singapore dan Australia |
| Technology | Peran | Alasan Dipilih |
|---|---|---|
| Golang | Core backend services | High-performance, strongly-typed, ideal untuk business logic yang kompleks |
| Node.js | API gateway & middleware | Ecosystem middleware yang kaya, JSON-native untuk integrasi API partner |
| PostgreSQL | Primary relational database | ACID compliance untuk data insurance policy, audit trail |
| MongoDB | Document store | Flexible schema untuk menyimpan risk assessment data yang bervariasi |
| Partner | Service | Integrasi |
|---|---|---|
| UpGuard | Vulnerability scanning | API integration untuk automated security posture assessment |
| Acronis | Backup & endpoint protection | Bundled service untuk value-add cyber assurance |
| RHCS | Cyber education & training | Training modules terintegrasi untuk edukasi SME tentang keamanan siber |
| ERGO | Insurance underwriting | Policy creation, premium calculation, broker network distribution |
| Tool | Peran | Penggunaan |
|---|---|---|
| Jira | Project management | Sprint planning, backlog management, bug tracking |
| Confluence | Documentation | Technical specs, API docs, architecture decision records |
| Postman | API testing | Testing integrasi dengan UpGuard, ERGO, dan partner APIs |
| Swagger | API documentation | OpenAPI specs untuk komunikasi antar tim dan partner |
| DBeaver | Database management | Query, monitoring, dan debugging database PostgreSQL/MongoDB |
| MS Teams | Communication | Daily standup, cross-timezone meetings dengan tim AU/SG |
| Docker | Containerization | Consistent development environment dan deployment |
Problem: Underwriter tradisional membutuhkan waktu 3-4 hari untuk mengevaluasi risiko cyber sebuah bisnis secara manual. Mereka harus memeriksa infrastruktur IT, policy keamanan, incident history, dan compliance — seringkali melalui formulir 100+ pertanyaan yang membosankan.
Solution: Risk scoring engine yang secara otomatis mengagregasi data dari multiple sources dan menghasilkan skor risiko numerik yang actionable.
graph TD
A[Business Profile Data] --> D[Risk Data Aggregator]
B[UpGuard Vulnerability Scan] --> D
C[Questionnaire Responses] --> D
D --> E[Risk Scoring Engine]
E --> F{Score Classification}
F -->|Score >= 80| G[Low Risk - Standard Premium]
F -->|Score 50-79| H[Medium Risk - Adjusted Premium]
F -->|Score 30-49| I[High Risk - Premium Surcharge]
F -->|Score < 30| J[Uninsurable - Remediation Required]
G --> K[Auto-Quote Generation]
H --> K
I --> L[Manual Underwriter Review]
J --> M[Remediation Recommendations]
style G fill:#d1fae5,stroke:#10b981,color:#000
style H fill:#fef3c7,stroke:#f59e0b,color:#000
style I fill:#fed7aa,stroke:#f97316,color:#000
style J fill:#fee2e2,stroke:#ef4444,color:#000// Cyber Risk Scoring Engine
type RiskScore struct {
Overall float64 `json:"overall_score"`
Categories map[string]float64 `json:"category_scores"`
Vulnerabilities int `json:"vulnerability_count"`
RiskLevel string `json:"risk_level"`
Insurable bool `json:"insurable"`
Recommendations []string `json:"recommendations"`
}
type RiskInput struct {
BusinessProfile BusinessProfile `json:"business_profile"`
VulnerabilityScan VulnerabilityData `json:"vulnerability_scan"`
Questionnaire []QuestionAnswer `json:"questionnaire"`
}
func (s *ScoringService) CalculateRiskScore(ctx context.Context, input RiskInput) (*RiskScore, error) {
// 1. Score each category independently
categories := map[string]float64{
"network_security": s.scoreNetworkSecurity(input.VulnerabilityScan),
"data_protection": s.scoreDataProtection(input.Questionnaire),
"access_control": s.scoreAccessControl(input.Questionnaire),
"incident_response": s.scoreIncidentResponse(input.Questionnaire),
"business_continuity": s.scoreBusinessContinuity(input.Questionnaire),
"compliance": s.scoreCompliance(input.BusinessProfile),
}
// 2. Weighted average — network security and data protection weighted higher
weights := map[string]float64{
"network_security": 0.25,
"data_protection": 0.25,
"access_control": 0.15,
"incident_response": 0.15,
"business_continuity": 0.10,
"compliance": 0.10,
}
var overallScore float64
for category, score := range categories {
overallScore += score * weights[category]
}
// 3. Determine risk level and insurability
riskLevel, insurable := classifyRisk(overallScore)
return &RiskScore{
Overall: overallScore,
Categories: categories,
Vulnerabilities: input.VulnerabilityScan.TotalFindings,
RiskLevel: riskLevel,
Insurable: insurable,
Recommendations: generateRecommendations(categories),
}, nil
}
func classifyRisk(score float64) (string, bool) {
switch {
case score >= 80:
return "LOW", true
case score >= 50:
return "MEDIUM", true
case score >= 30:
return "HIGH", true
default:
return "CRITICAL", false // Remediation required before insurable
}
}Results:
| Metric | Sebelum (Manual) | Sesudah (Cybera360) | Improvement |
|---|---|---|---|
| Time to risk assessment | 3-4 hari | < 30 menit | ↓ 99% |
| Pertanyaan assessment | 100+ questions | < 30 questions | ↓ 70% |
| Assessment drop-off rate | ~60% | ~15% | ↓ 75% |
| Scoring consistency | Varies by underwriter | 100% consistent | Standardized |
Problem: Risk assessment data mentah tidak berarti bagi pemilik bisnis SME. Mereka membutuhkan representasi visual yang intuitif untuk memahami postur keamanan mereka dan area yang perlu diperbaiki.
Solution: Dashboard interaktif menggunakan D3.js yang merender risk score secara visual — radar chart untuk kategori risiko, heatmap untuk vulnerability, dan trend chart untuk monitoring berkelanjutan.
graph LR
A[Risk Score API] --> B[Data Transform Layer]
B --> C[D3.js Rendering Engine]
C --> D[Radar Chart - Risk Categories]
C --> E[Heatmap - Vulnerability Severity]
C --> F[Gauge - Overall Score]
C --> G[Timeline - Risk Trend]
D --> H[Interactive Dashboard]
E --> H
F --> H
G --> H
H --> I[Export PDF Report]
H --> J[Share with Broker]// D3.js Radar Chart for Risk Category Visualization
interface RiskCategory {
category: string;
score: number;
maxScore: number;
label: string;
}
function renderRadarChart(
container: string,
data: RiskCategory[],
options: ChartOptions,
): void {
const svg = d3
.select(container)
.append("svg")
.attr("width", options.width)
.attr("height", options.height);
const radius = Math.min(options.width, options.height) / 2 - options.margin;
const angleSlice = (Math.PI * 2) / data.length;
// Draw concentric circles (score levels)
const levels = [20, 40, 60, 80, 100];
levels.forEach((level) => {
svg
.append("circle")
.attr("r", (radius * level) / 100)
.attr("class", `level-${level}`)
.style("fill", "none")
.style("stroke", getRiskColor(level));
});
// Draw radar area
const radarLine = d3
.lineRadial<RiskCategory>()
.radius((d) => (radius * d.score) / 100)
.angle((_, i) => i * angleSlice)
.curve(d3.curveLinearClosed);
svg
.append("path")
.datum(data)
.attr("d", radarLine)
.style("fill", getOverallColor(data))
.style("fill-opacity", 0.3)
.style("stroke", getOverallColor(data))
.style("stroke-width", 2);
// Interactive tooltips on hover
data.forEach((d, i) => {
const x = radius * (d.score / 100) * Math.cos(angleSlice * i - Math.PI / 2);
const y = radius * (d.score / 100) * Math.sin(angleSlice * i - Math.PI / 2);
svg
.append("circle")
.attr("cx", x)
.attr("cy", y)
.attr("r", 6)
.on("mouseover", () => showTooltip(d))
.on("mouseout", hideTooltip);
});
}Visualisasi radar chart dipilih karena memungkinkan pemilik bisnis melihat sekilas di mana kekuatan dan kelemahan keamanan mereka. Warna intuitif (hijau = aman, kuning = perlu perhatian, merah = kritis) membantu non-technical users memahami postur risiko tanpa harus membaca laporan panjang.
Results:
| Metric | Sebelum | Sesudah | Improvement |
|---|---|---|---|
| User engagement (time on dashboard) | N/A (teks PDF) | 4.2 menit avg | New capability |
| Customer understanding of risk posture | Survey: 23% | Survey: 78% | ↑ 239% |
| Broker presentation efficiency | 30 menit | 5 menit | ↓ 83% |
Problem: Proses quoting asuransi cyber tradisional memerlukan formulir 100+ pertanyaan, review manual oleh underwriter, dan bolak-balik via email — total 3-4 hari kerja. Banyak SME menyerah di tengah proses.
Solution: Smart questionnaire yang mengurangi pertanyaan dari 100+ menjadi < 30 dengan teknik adaptive branching — pertanyaan berbeda berdasarkan jawaban sebelumnya.
graph TD
A[Start Assessment] --> B{Business Type?}
B -->|Tech/SaaS| C[Tech-Specific Questions - 12 Qs]
B -->|Retail/F&B| D[Retail-Specific Questions - 8 Qs]
B -->|Professional Services| E[Services Questions - 10 Qs]
C --> F{Annual Revenue?}
D --> F
E --> F
F -->|< SGD 1M| G[Basic Coverage Flow - 5 Qs]
F -->|SGD 1M-10M| H[Standard Coverage Flow - 8 Qs]
F -->|> SGD 10M| I[Enterprise Flow - 12 Qs]
G --> J[Auto Risk Scoring]
H --> J
I --> J
J --> K[Quote Generation < 30 min]// Adaptive Questionnaire Engine
interface Question {
id: string;
text: string;
type: "select" | "text" | "number" | "boolean";
options?: string[];
dependencies?: {
questionId: string;
condition: "equals" | "gt" | "lt" | "includes";
value: any;
action: "show" | "skip";
}[];
weight: number; // Impact on risk score
}
function getNextQuestions(
allQuestions: Question[],
answers: Record<string, any>,
): Question[] {
return allQuestions.filter((q) => {
if (!q.dependencies) return true;
return q.dependencies.every((dep) => {
const answer = answers[dep.questionId];
if (answer === undefined) return dep.action === "skip";
switch (dep.condition) {
case "equals":
return dep.action === "show"
? answer === dep.value
: answer !== dep.value;
case "gt":
return dep.action === "show"
? answer > dep.value
: answer <= dep.value;
case "includes":
return dep.action === "show"
? dep.value.includes(answer)
: !dep.value.includes(answer);
default:
return true;
}
});
});
}Results:
| Metric | Sebelum (Traditional) | Sesudah (Cybera360) | Improvement |
|---|---|---|---|
| Time to quote | 3-4 hari | < 30 menit | ↓ 99% |
| Number of questions | 100+ | < 30 | ↓ 70% |
| Completion rate | ~40% | ~85% | ↑ 112% |
| First-month deals closed | N/A | 4 deals | Via ERGO brokers |
Problem: Asuransi cyber tradisional bersifat reactive — hanya membayar klaim setelah serangan terjadi. Tidak ada insentif atau alat untuk mencegah insiden sejak awal.
Solution: Platform one-stop yang menggabungkan insurance dengan layanan keamanan proaktif — vulnerability scanning, backup, dan edukasi — menciptakan ekosistem yang mengurangi risiko sebelum klaim terjadi.
graph TD
A[Cybera360 Platform] --> B[Cyber Insurance]
A --> C[Cyber Assurance]
B --> D[Policy Management]
B --> E[Claims Processing]
B --> F[Premium Calculation]
C --> G[UpGuard - Vulnerability Monitoring]
C --> H[Acronis - Backup & Endpoint]
C --> I[RHCS - Education & Training]
G -->|Continuous Scan| J[Risk Score Update]
J -->|Improved Score| K[Premium Discount Opportunity]
J -->|Degraded Score| L[Alert + Remediation Guide]
H -->|Incident| M[Faster Recovery = Lower Claim]
I -->|Trained Staff| N[Fewer Human-Error Incidents]UpGuard (portfolio company IAG Firemark Ventures) menyediakan continuous cyber risk monitoring dan third-party risk assessment. Integrasi dengan Cybera360 memungkinkan:
Data dari UpGuard langsung di-feed ke Risk Scoring Engine untuk menentukan eligibility dan level premium.
Acronis menyediakan solusi backup dan endpoint protection yang dibundel sebagai value-add service:
Bisnis yang menggunakan Acronis melalui platform memiliki claim severity yang lebih rendah karena recovery time yang lebih cepat.
RHCS menyediakan modul edukasi dan awareness training:
Edukasi karyawan adalah pertahanan pertama — 95% insiden cyber dimulai dari human error (phishing, weak passwords, social engineering).
Setup project structure (Nuxt.js frontend, Golang backend), database schema (PostgreSQL + MongoDB), dan implementasi core risk scoring engine. Define scoring model berdasarkan framework industri cyber insurance.
Pengembangan dashboard interaktif dengan D3.js — radar chart, heatmap, scoring gauge, dan trend visualization. Iterasi design bersama UX team di Singapore melalui Figma prototyping.
Integrasi API UpGuard untuk automated vulnerability scanning, Acronis untuk backup & endpoint, dan RHCS untuk training modules. Build adapter layer untuk normalisasi data dari berbagai partner.
Implementasi adaptive questionnaire engine dan integrasi dengan ERGO underwriting system. Build premium calculation module berdasarkan risk score output.
UAT dengan ERGO broker network di Singapore. Closed-door "test and learn" — refine scoring model berdasarkan feedback broker dan underwriter. Successful launch: 4 deals closed dalam bulan pertama.
Salah satu aspek unik project ini adalah kolaborasi cross-border: tim engineering di Surabaya (Indonesia), product & business di Singapore (Firemark Labs), dan stakeholder di Sydney (IAG HQ). Timezone spread 3 jam memerlukan komunikasi asinkron yang disiplin — Confluence untuk dokumentasi, Jira untuk tracking, dan stand-up window yang overlapping.
Platform Cybera360 tidak berdiri sendiri — ia adalah pusat dari ekosistem partner yang saling memperkuat:
| Property | Type | Description |
|---|---|---|
| IAG (Insurance Australia Group) | Parent Company | Perusahaan asuransi terbesar Australia (ASX-listed, ~AU$12B market cap). Menyediakan brand, kapital, dan strategic direction. |
| Firemark Labs Singapore | Incubator | Innovation lab IAG di Singapore. Tempat Cybera360 diinkubasi dan dikembangkan sebagai corporate venture pertama ke ranah cyber insurance. |
| ERGO Insurance Singapore | Underwriting Partner | Subsidiary Munich Re. Menyediakan kapasitas underwriting dan jaringan distribusi broker di Singapore. 4 deals pertama closed melalui ERGO. |
| Munich RE | Reinsurance Partner | Salah satu reinsurer terbesar dunia. Endorsement dari Munich RE memberikan kredibilitas di pasar asuransi internasional. |
| UpGuard | Technology Partner | Portfolio company Firemark Ventures. Menyediakan continuous cyber risk monitoring dan vulnerability assessment technology. |
| Enterprise SG | Government Support | Badan pemerintah Singapore yang mendukung pertumbuhan enterprise dan inovasi. Memberikan recognition dan dukungan ekosistem. |
| SGInnovate | Deep Tech Partner | Entitas pemerintah Singapore fokus deep tech. Co-hosted event 'Cyber Resilience' bersama Cybera360. |
| AustCyber (AU) | Industry Partner | Australia's Cyber Security Growth Network. Kolaborasi untuk memperluas kapabilitas cybersecurity Australia secara internasional. |
| Austrade (AU) | Trade Partner | Australian Trade & Investment Commission. Co-deliver program Firemark Accelerate untuk startup insurtech Australia ke Asia Tenggara. |
Implementasi Cybera360 membuktikan bahwa cyber insurance bisa di-deliver secara digital, cepat, dan terintegrasi:
Pembelajaran dari Cybera360 kemudian mempengaruhi strategi cyber insurance IAG secara global:
Cybera360 membuktikan bahwa asuransi cyber tidak harus rumit dan lambat. Dengan pendekatan technology-first, proses yang sebelumnya membutuhkan berminggu-minggu bisa dipadatkan menjadi hitungan menit — sambil memberikan value yang lebih dari sekadar polis asuransi.
Yang membuat project ini istimewa bukan hanya skala kliennya (IAG — perusahaan asuransi terbesar Australia), tapi filosofi di balik produknya: jangan hanya bayar klaim setelah serangan, bantu cegah serangan sejak awal. Itu adalah pergeseran paradigma dari reactive ke proactive insurance.
Cybera360 adalah pengalaman pertama saya bekerja dengan klien internasional di level enterprise. Dari sini saya belajar bahwa engineering skill saja tidak cukup — kemampuan berkomunikasi lintas budaya, beradaptasi dengan workflow internasional, dan mendokumentasikan keputusan teknis dengan standar tinggi sama pentingnya dengan menulis kode yang bersih.



