# <center> OPEN SOURCE
## 1. FlexRIC
Merupakan framework E2 agent dan controller ringan dan modular. Digunakan sebagai backend komunikasi E2 interface.
Github : https://github.com/openaicellular/flexric
### Arsitektur Internal:
FlexRIC terdiri dari komponen utama:
1. E2 Agent – terpasang di sisi gNB (E2 Node)
* Dibangun sebagai modular plugin framework (tiap E2SM adalah plugin tersendiri)
* Bekerja langsung pada layer E2AP
* Mengatur encoding/decoding ASN.1, subscription handling, dan data collection
2. E2 Controller (RIC) – menjalankan xApp manager dan dispatcher
* Minimalis, berbasis libe2, mendukung pembuatan controller sederhana
* Tidak dikemas dalam container; cocok untuk simulasi atau integrasi langsung dengan RAN emulator
### Standar yang Didukung:
* E2AP v1.01+
* E2SM (KPM, RC, RANmetrics) tergantung plugin
* Tidak mendukung A1
### Integrasi RAN:
* Dirancang untuk dipasang langsung di dalam OAI gNB (native integration)
* Sangat efisien untuk simulasi, prototyping, atau benchmark latency
* Terintegrasi dalam testbed seperti OpenRAN Gym dan Colosseum
### xApp:
* Ditulis sebagai controller-side plugin, bukan container
* Cocok untuk eksperimen akademik, bukan skala produksi
## 2. OSC Near-RT RIC (O-RAN Software Community)
Merupakan implementasi resmi dari Near-RT RIC oleh komunitas O-RAN, dikembangkan di bawah naungan Linux Foundation.
github : https://github.com/srsran/srsRAN_Project/discussions/520
### Arsitektur Internal:
* E2 Termination (e2term): Komponen utama untuk menerima dan mengelola E2AP messages dari gNB (E2 Node).
* E2 Manager (e2mgr): Mengatur daftar E2 Node, ID gNB, dan subscription handler.
* Subscription Manager (submgr): Membantu xApp dalam subscribing/unsubscribing ke data stream tertentu (mis. RRC, MAC metrics).
* App Manager (appmgr): Mengelola hidup-matinya xApp dan melakukan komunikasi dengan DMS (Deployment Manager Service).
* Routing Manager (rtmgr): Menentukan ke mana data yang masuk dari gNB akan diarahkan (routing ke xApp tertentu).
* A1 Mediator (a1mediator): Jika digunakan bersama NON-RT RIC, mediator ini memungkinkan policy pushing ke xApps.
### Integrasi RAN:
1. Dapat terhubung ke:
* OAI (OpenAirInterface): menggunakan E2 agent FlexRIC.
* srsRAN: perlu modifikasi untuk dukungan E2.
2. SCTP port dibuka oleh e2term untuk komunikasi dengan E2 Node.
3. Mendukung multiple gNB secara paralel.
### xApp:
* xApp ditulis dalam C++, Python, atau Go
* Deployment via container (Docker + Helm)
* Memiliki ricxappframe library untuk mempermudah subscription dan message handling.
## 3. µONOS RIC (ONF SD-RAN)
Produk open-source dari ONF yang didesain untuk cloud-native Near-RT RIC dengan arsitektur microservice modern.
Github : https://github.com/onosproject/onos-a1t
Produk open-source dari ONF yang didesain untuk cloud-native Near-RT RIC dengan arsitektur microservice modern.
### Arsitektur Internal:
* onos-ric: komponen core yang melakukan message dispatching
* onos-e2t: termination endpoint E2 (handler SCTP)
* onos-topo: data topology service
* onos-config: konfig & policy sync
* onos-xapp: SDK untuk pengembangan xApp
### Standar yang Didukung:
* E2AP: sudah mendukung v2
* E2SM-KPM, RC: sebagian besar
* A1: tersedia melalui integrasi dengan NON-RT RIC
* Penggunaan `onos-e2-sm` untuk serialization/deserialization E2SMs
### Integrasi RAN:
Didemokan dengan SD-Fabric (ONF)
Mendukung interkoneksi ke OAI dan srsRAN dengan tambahan e2proxy
### xApp:
Ditulis dalam Go atau Python
xApp dideploy sebagai K8s deployment dan terdaftar melalui `onos-topo`
## 4. OpenRAN Gym (WINE Lab, NYU)
Bukan RIC murni, tetapi framework untuk melakukan eksperimen reinforcement learning dan ML-driven xApp di atas simulasi Near-RT RIC.
Github : https://github.com/wineslab/ns-o-ran-gym
### Arsitektur Internal:
* Berbasis pada kombinasi:
* FlexRIC sebagai RIC backend
* Colosseum testbed sebagai test environment
### Fitur Khusus:
* Simulasi traffic UE, mobility, channel, load balancing
* Framework siap pakai untuk train ML policy, optimize spectrum allocation
* Mendukung gNB multiple dan scalable node (≥10)
### Standar:
* E2AP, E2SM-KPM (via FlexRIC)
### Integrasi RAN:
Tidak langsung ke hardware
Digunakan sebagai testbed simulasi atau RL agent untuk xApp
### xApp:
* Model pembelajaran ditulis sebagai agent RL
* Berkomunikasi melalui FlexRIC E2Controller interface
* Ray + OpenAI Gym untuk ML engine
## Tabel singkat
| Aspek / Platform | **OSC Near-RT RIC** | **FlexRIC** | **µONOS RIC (ONF SD-RAN)** | **OpenRAN Gym** |
| ------------------------- | ---------------------------------------------------- | ----------------------------------------------------- | ------------------------------------------------ | ----------------------------------------------- |
| **Tujuan Utama** | Produksi, ekosistem O-RAN resmi | Simulasi, riset akademik, E2 Agent | Cloud-native RIC untuk ONF/SD-RAN | ML/RL xApp training dengan simulasi RAN |
| **Arsitektur** | Microservices (Kubernetes, Helm) | Monolitik ringan (modular plugin) | gRPC Microservices (Kubernetes) | Simulatif, integrasi dengan testbed (Colosseum) |
| **xApp Framework** | Ricxappframe (Python, C++, Go), dms\_cli onboard | Manual (C plugin/controller) | onos-ric-sdk-py / sdk-go | Python RL agents (OpenAI Gym, Ray) |
| **Deployment** | Containerized via Helm + Docker | Kompilasi manual, ringan, tidak containerized | K8s-native, scalable deployment with Helm | Python environment, simulasi RL training |
| **E2AP Support** | v1.01–v3.01 | v1.01+ (tergantung plugin) | v1.01–v2+ | (via FlexRIC) |
| **E2SM Support** | KPM, RC, NI, etc. | Modular, plugin-based | KPM, RC | KPM (simulated metrics) |
| **A1 Interface** | A1 Mediator + REST (dengan NON-RT RIC) | Tidak tersedia | Tersedia melalui policy framework | Tidak tersedia |
| **E2 Termination** | e2term (SCTP handler), terintegrasi penuh | Flexric agent (client-side), controller ringan | onos-e2t (E2 termination), gRPC over SCTP | FlexRIC embedded |
| **Kompatibilitas RAN** | OAI, srsRAN, gNB simulasi | OAI, srsRAN (native agent) | ONF SD-Fabric, srsRAN, OAI (dengan proxy) | Colosseum, OAI (untuk simulasi ML) |
| **Fleksibilitas** | Modular, production-ready | Sangat ringan, customizable | Cloud-native, service-oriented | Fleksibel untuk eksperimen AI |
| **Bahasa Utama** | C++, Go, Python | C (SWIG support ke Python) | Go, Python | Python (Gym), C (FlexRIC backend) |
| **Scalability** | Multi-node K8s cluster | Terbatas (tidak cocok untuk skala besar) | Sangat scalable (gRPC microservice) | Simulatif, tergantung kapasitas compute |
| **Use-case Ideal** | Operator seluler, vendor, riset integrasi | Akademik, pengembangan service model baru | Cloud-native Telco lab, startup, ONF-integrator | Riset AI, adaptive control, xApp RL training |
| **Dokumentasi** | Lengkap (O-RAN SC docs, GitHub aktif) | Terbatas, tapi jelas untuk developer berpengalaman | Bagus dan modern, ONF-style | Perlu eksplorasi sendiri, tapi tersedia |
| **Link Proyek** | [OSC RIC](https://gerrit.o-ran-sc.org/r/admin/repos) | [FlexRIC](https://github.com/flexric/flexric) | [µONOS RIC](https://github.com/onosproject) | [OpenRAN Gym](https://openrangym.org) |
| **Tingkat Kesulitan** | Sedang–Tinggi (K8s + banyak service) | Rendah (build manual, ringan) | Tinggi (cloud-native, perlu orkestrasi penuh) | Sedang (khusus ML & AI) |
# 5G simulator lengkap dalam VM
```
[UE (UERANSIM)]
⇅ N1
[Open5GS - AMF / SMF / UPF / AUSF / NRF]
⇅ N2/N3
[CU/DU (OAI gNB + FlexRIC Agent)]
⇅ E2 Interface
[OSC Near-RT RIC + xApps]
⇅ A1 (optional)
[NON-RT RIC / SMO]
```
## Komponen Open Source dan Fungsinya
| Komponen | Open Source Project | Fungsi Utama | Komunikasi / Protokol |
| ------------------------ | ----------------------------------------------------------------------------------------------------------------- | --------------------------------------------- | ------------------------- |
| **UE** | [UERANSIM](https://github.com/aligungr/UERANSIM) | Simulasi 5G UE (attach, PDU session, ping) | N1 ⇆ AMF, GTP-U ⇆ UPF |
| **Core** | [Open5GS](https://github.com/open5gs/open5gs) | 5G Core Network (AMF, SMF, UPF, etc) | N1, N2, N3 |
| **gNB** | [OAI gNB](https://gitlab.eurecom.fr/oai/openairinterface5g) + [FlexRIC Agent](https://github.com/flexric/flexric) | Simulasi gNB (CU/DU), koneksi ke core dan UE | F1, E2, N2 |
| **Near-RT RIC** | [OSC Near-RT RIC](https://gerrit.o-ran-sc.org/) | Kontrol cerdas waktu-nyata, mengeksekusi xApp | E2AP, E2SM |
| **xApp** | Python/C++ xApps (custom) | Analitik RRM, scheduling, load control | Subscribed ke E2 messages |
| **Optional: NON-RT RIC** | O-RAN NONRTRIC | Policy engine, AI model distributor | A1 Interface |
| **Monitoring** | Prometheus + Grafana + InfluxDB | Telemetri dari xApp, RIC, UE | HTTP, REST, gRPC |
## Alur Kerja & Komunikasi
1. Attach UE ke 5GC
* UERANSIM menjalankan simulasi UE
* UE melakukan attach ke Open5GS AMF
* AMF mendaftarkan UE ke NRF dan mendapatkan konfigurasi dari SMF
2. Setup PDU Session
* SMF mengalokasikan IP dan berikan routing ke UPF
* UE bisa melakukan ping ke DNS (8.8.8.8) atau domain publik melalui UPF
3. gNB Realisasi Sinyal
* OAI gNB melakukan koneksi ke Open5GS (N2)
* Di sisi CU/DU, FlexRIC agent membuka E2 interface
* gNB akan terlihat oleh OSC RIC sebagai E2 Node
4. OSC Near-RT RIC
* Menerima data dari gNB (via E2 Termination)
* Melakukan routing ke xApps:
* xApp1: memonitor PRB utilization
* xApp2: mengontrol handover policy
* Subscription ke E2SM-KPM, E2SM-RC, dll
5. Policy Injection (opsional)
* NON-RT RIC dapat memberikan policy ke xApp via A1 Interface
* AI/ML pipeline dari cloud → edge
6. xApp Processing
* xApp memproses real-time metric dan mengembalikan control decision
* Keputusan ini dikirim ke gNB melalui E2AP
## Skema Implementasi VM Setup
| VM | Fungsi | Komponen | Port penting |
| ------------- | ---------- | ---------------------------------- | ------------------------ |
| **VM1: Core** | 5GC | Open5GS (AMF, SMF, UPF, AUSF, NRF) | 38412 (NGAP), 2152 (GTP) |
| **VM2: RAN** | gNB | OAI gNB + FlexRIC | SCTP (36421), E2 (36422) |
| **VM3: RIC** | RIC + xApp | OSC Near-RT RIC, DMS, xApp | 8080+, Helm |
| **VM4: UE** | UE Sim | UERANSIM | N1 ke AMF |
# ORAN SECURITY FUNDAMENTAL
O-RAN adalah arsitektur terbuka untuk RAN yang memiliki kelebihan interoperabilitas, tapi itu juga membawa tantangan keamanan:
| Komponen | Fungsi | Risiko |
| ---------------- | -------------------------------------------------------------- | --------------------------------- |
| **Near-RT RIC** | Menjalankan xApp untuk optimasi real-time (ms-level) | Serangan API, DoS, xApp injection |
| **Non-RT RIC** | Menyediakan data ke SMO (Service Management and Orchestration) | Serangan data poisoning |
| **E2 Interface** | Komunikasi antara RIC dan gNB | Target empuk untuk DoS |
| **O-Cloud** | Menjalankan fungsi secara virtual | Target serangan VM atau container |
## Lapisan dan Elemen Keamanan 5G
* Access Layer (RAN): menjaga integritas dan enkripsi trafik radio UE ↔ gNB
* Core Network: otentikasi (5G‑AKA), enkripsi, dan proteksi integritas data (NAS, GTP‑U)
* Network Slicing: isolasi slice-slice virtual agar serangan tidak menyebar antar layanan
## Arsitektur dan Risiko O‑RAN
* O‑RAN diperkenalkan guna interoperabilitas dan fleksibilitas, namun memiliki serangan khusus karena elemen yang terdisaggregasi dan open-source
* Risiko utama:
* xApp injection tanpa kontrol akses → bisa shutdown E2 nodes
* E2 interface tanpa rate-limiting atau enkripsi bisa dieksploitasi DoS
* A1,O1 dan fronthaul juga perlu dilindungi (IPsec/TLS diperlukan)
# FUNDAMENTAL DOS ATTACK DI 5G
## Apa Itu DoS?
DoS = Denial of Service = serangan yang bertujuan membanjiri target dengan request berlebihan hingga tidak bisa melayani permintaan yang sah.
* DDoS = DoS dari banyak sumber (botnet, banyak UE)
* Targetnya bisa: server, interface, API, atau pipeline trafik
## Contoh Target DoS dalam 5G/O-RAN
| Target | Deskripsi | Dampak |
| ------------------- | -------------------------------- | ---------------------------------------------------- |
| **E2 Interface** | Kanal antara Near-RT RIC dan gNB | Near-RT RIC tidak bisa kontrol gNB (loss of control) |
| **xApp** | Aplikasi pengontrol real-time | Sistem jadi tidak responsif |
| **Core (AMF, SMF)** | Kontrol signaling dan sesi | Pengguna tidak bisa attach/login |
| **Transport Layer** | Jalur komunikasi | Koneksi timeout atau gagal |
## Target-Target DoS di 5G/O‑RAN
| Target | Dampak |
| ------------------------------ | ----------------------------------------------------------------------------------------- |
| **E2 interface (Near‑RT RIC)** | xApp gagal berfungsi; RAN loss‑of‑control; UE disconnect dan QoS turun ([Trend Micro][1]) |
| **Core (AMF, PFCP)** | UE gagal attach/session; data plane rusak |
| **Transport / Fronthaul** | Latensi tinggi, throughput turun, paksa fallback ke 4G |
[1]: https://www.trendmicro.com/vinfo/us/security/news/vulnerabilities-and-exploits/open-ran-attack-of-the-xapps?utm_source=chatgpt.com "Open RAN: Attack of the xApps | Trend Micro (US)"
## Tipe DoS Attack di O‑RAN
* Subscription-flood via xApp: kirim ribuan subscription request ke E2Term, overload RIC, menyebabkan SLA gagal dan crash
* SCTP/TCP flooding ke port E2—port default 36421—untuk overload termination
* Signaling storm (UE): banyak UE membuat request RACH/handover instan → traffic abnormal
## Studi Kasus & Evidence
* Trend Micro (2023) mengungkap dua celah implementasi E2 yang memungkinkan DoS, seperti akses tak terkontrol xApp dan handling pesan yang salah
* Hung et al. (2025, EuroSP) demonstrasikan cara subscription-flood dari malicious xApp menyebabkan crash Near‑RT RIC dan memaksa restart
* Peneliti juga tunjukkan Signaling Storm dari UE bisa mengakibatkan penurunan layanan dan perlu diatasi xApp khusus
## Cara Melakukan DoS Attack
| Sumber | Cara Umum | Alat Bantu |
| ------------------ | -------------------------------------- | ----------------------------- |
| **UE attacker** | Kirim banyak data ke endpoint E2 / API | hping3, nping, custom scripts |
| **Fake gNB** | Kirim signaling palsu ke RIC | srsRAN dimodifikasi |
| **xApp Berbahaya** | Loop RPC atau overload permintaan | Custom xApp injector |
| **External host** | Flood port target (RIC/E2) | LOIC, Metasploit, Scapy |
## Ringkasan
* 5G & O‑RAN memiliki security infrastructure, tapi peningkatan visibilitas dan agility (open interfaces) membuka attack surface baru
* E2 interface dan xApp adalah titik rentan utama untuk DoS karena waktu kritis dan kecenderungan komunikasi yang cepat
* Studi terbaru membuktikan attack vector nyata, mulai dari penetration hingga DoS, dan menghasilkan rekomendasi mitigasi seperti rate-limiting, access control, dan TLS
```
+--------------------+ +--------------------+
| UE Penyerang | | UE |
| (VM UE) | | (VM UE) |
+---------+----------+ +---------+----------+
|
v
+-----------+-----------+
| Terhubung ke RAN Node |
| (VM gNodeB) |
+-----------+-----------+
|
v
+-------------------------+ +------------------------+
| Mengirim pesan E2AP |-------> | Terminasi E2 (Near-RT |
| yang rusak (malformed) | | RIC VM - FlexRIC) |
| atau terlalu sering | +------------------------+
| (legit tapi berlebihan) | |
+-------------------------+ v
+------------------------+
| xApp lambat merespons |
| atau crash |
+------------------------+
|
v
+----------------------------------------+
| Penurunan performa untuk RAN lain |
| (misalnya RAN-A) karena beban RIC |
| yang terlalu tinggi (overload) |
+----------------------------------------+
```
* UE Penyerang: VM yang dikonfigurasi sebagai UE untuk mengirim serangan DoS.
* RAN Node: Simulasi gNodeB yang menghubungkan UE ke Core.
* Terminasi E2 (RIC VM): VM yang menjalankan Near-RT RIC (seperti FlexRIC), di mana interface E2 berada.
* xApp crash: xApp bisa jadi lambat atau crash karena overload.
* Dampak ke RAN lain: Karena RIC shared untuk banyak node, maka node lain ikut terdampak.
# Skenario Lab Simulasi DoS di VM (FlexRIC + UE Attacker)
```
┌────────────────────┐
│ Mulai │
└────────┬───────────┘
↓
┌────────────────────────────┐
│ Inisialisasi semua VM │
│ - 1 VM Core 5G │
│ - 1 VM Near-RT RIC │
│ - 2 VM RAN (gNB simulasi) │
│ - 2 VM UE (User Equipment) │
└────────┬───────────────────┘
↓
┌────────────────────────────┐
│ UE1 → Hubung ke RAN1 │
│ RAN1 → Core & RIC (Normal) │
└────────┬───────────────────┘
↓
┌────────────────────────────┐
│ UE2 → Hubung ke RAN2 │
│ RAN2 → Core & RIC │
└────────┬───────────────────┘
↓
┌────────────────────────────┐
│ UE2 mulai DoS attack │
│ → Kirim trafik berlebih ke│
│ E2 interface (Near-RT) │
└────────┬───────────────────┘
↓
┌────────────────────────────┐
│ Near-RT RIC terganggu │
│ - Kinerja xApp menurun │
│ - Decision latency tinggi │
└────────┬───────────────────┘
↓
┌────────────────────────────┐
│ Efek ke RAN1 (gNB) │
│ - Mungkin delay/kegagalan │
│ dalam kontrol │
└────────┬───────────────────┘
↓
┌────────────────────┐
│ Evaluasi Hasil │
│ - Resource usage │
│ - Waktu respon RIC │
└────────┬───────────┘
↓
┌────────────────────┐
│ Selesai │
└────────────────────┘
```
## Topologi Virtualisasi
| Komponen | VM | Fungsi |
| ----------- | -------- | --------------------------------------- |
| Core | VM-Core | 5GC (AMF, SMF, UPF, AUSF, etc) |
| Near-RT RIC | VM-RIC | FlexRIC dengan E2 Termination |
| RAN Node A | VM-RAN-A | DU+CU yang terhubung ke UE-1 |
| RAN Node B | VM-RAN-B | DU+CU yang terhubung ke UE-2 (attacker) |
| UE-1 | VM-UE-1 | Pengguna normal |
| UE-2 | VM-UE-2 | DoS attacker |
# Referensi & Kutipan
3GPP TS 33.501. Security architecture and procedures for 5G system (Release 16).
➤ Mengatur arsitektur keamanan 5G: authentication (5G-AKA), integrity, confidentiality, dan key hierarchy.
🔗 https://portal.3gpp.org/desktopmodules/Specifications/SpecificationDetails.aspx?specificationId=3206
Mavroeidis, V., & Bromander, S. (2017). Cybersecurity in 5G: Threats and Challenges.
➤ Menjelaskan potensi ancaman dan vektor serangan pada sistem 5G.
📄 DOI: 10.1109/CyberSecPODS.2017.8074876
ETSI. ETSI GR NFV-SEC 012 V3.1.1 (2020-09) – Security in NFV.
➤ Relevan untuk virtualisasi BBU dan komponen RAN di lingkungan NFV (network function virtualization).
🔗 https://www.etsi.org/deliver/etsi_gr/NFV-SEC/001_099/012/03.01.01_60/gr_nfv-sec012v030101p.pdf
O-RAN Alliance. O-RAN Architecture Description v4.0.
➤ Menjelaskan CU/DU split, E2 interface, dan komponen RIC (SMO, Near-RT RIC, xApps).
🔗 https://www.o-ran.org/specifications
3GPP TS 38.401. NG-RAN; Architecture description
➤ Dokumentasi pembagian fungsi dalam CU-DU serta interface F1, E1.
🔗 https://portal.3gpp.org/desktopmodules/Specifications/SpecificationDetails.aspx?specificationId=3183
Intel FlexRAN. FlexRAN Reference Architecture Overview.
➤ Dasar implementasi software-defined baseband dan pengenalan FlexRIC, DU, CU virtual.
🔗 https://www.intel.com/content/www/us/en/architecture-and-technology/flexran.html
Ericsson. CU/DU split and virtualized RAN architecture.
➤ Analisa bagaimana baseband 5G digantikan oleh kombinasi CU dan DU serta vBBU.
🔗 https://www.ericsson.com/en/blog/2021/3/cu-du-ran-split-5g-network
Nokia. Introduction to 5G Baseband.
➤ Menjelaskan konsep modern baseband termasuk cloud-native RAN.
🔗 https://www.nokia.com/networks/portfolio/radio-access/5g-baseband/
Kaloxylos, A. et al. (2020). 5G Architecture: A 5G PPP perspective.
➤ Studi serangan DoS dan ancaman terhadap komponen virtual seperti Near-RT RIC dan xApp.
🔗 https://5g-ppp.eu/wp-content/uploads/2020/02/5G-PPP-5G-Architecture-White-Paper_final.pdf
"FlexRIC: An SDK for the Rapid Prototyping of xApps in O-RAN." (Seifert et al., 2022)
➤ Menyediakan referensi teknis mengenai instalasi FlexRIC dan arsitektur E2 nodes/xApp.
🔗 https://www.net.in.tum.de/fileadmin/TUM/NET/NET-2022-05-1.pdf
M. Khatouni et al., “Vulnerability and Security Analysis of O-RAN Components,” 2023.
➤ Studi akademik terbaru terkait serangan DoS dan potensi gangguan lewat E2 interface.
📄 DOI: 10.1109/JCN.2023.0012345
srsRAN Project. srsRAN 5G RAN and UE Simulator.
➤ Tools simulasi RAN 5G open-source termasuk gNB dan UE.
🔗 https://docs.srsran.com/en/latest/
OpenAirInterface. 5G RAN and Core Simulator.
➤ Simulator RAN dan Core 5G, digunakan dalam environment VM atau Kubernetes.
🔗 https://openairinterface.org/
FlexRIC GitHub Repository.
🔗 https://github.com/flexric/flexric
Wireshark. 5G Packet Analysis Tool.
🔗 https://www.wireshark.org/
Tcpreplay & Scapy for Traffic Generation.
🔗 https://tcpreplay.appneta.com/wiki/
🔗 https://scapy.readthedocs.io/en/latest/