Skip to main content

PALASIK IoT Zero Trust Event Enforcement Framework

Project description

๐Ÿงฟ PALASIK

Pengaman Layer Edge Sistem IoT Kritis
A Trust-Aware Zero Trust IoT Gateway Framework

Research IoT Zero Trust Edge Python


# PALASIK IoT Framework

**PALASIK** (Policy-Aware Lightweight Adaptive Security for IoT) adalah
framework Python untuk membangun **IoT Gateway berbasis Zero Trust** yang
modular, extensible, dan siap dikembangkan secara kolaboratif.

PALASIK dirancang untuk:
- menerima event dari berbagai sumber IoT (MQTT, HTTP, dll)
- mengevaluasi **trust**
- menerapkan **policy (allow / deny)**
- memproses event melalui **plugin system**

Framework ini cocok untuk:
- IoT Gateway
- Edge Computing
- Security-aware data pipeline
- Riset & implementasi Zero Trust pada IoT

---

## โœจ Fitur Utama

- Modular **Core Agent**
- **Plugin System** (drop-in, auto discovery)
- **Trust Engine**
- **Policy Engine**
- Adapter dunia nyata (MQTT)
- Siap dikembangkan untuk riset maupun produksi

---

## ๐Ÿ“ฆ Struktur Proyek

palasik-iot-framework/ โ”œโ”€โ”€ palasik/ # Core framework โ”œโ”€โ”€ plugins/ # Plugin ekstensi โ”œโ”€โ”€ examples/ # Contoh runnable โ”œโ”€โ”€ docs/ # Dokumentasi โ”œโ”€โ”€ tests/ # Unit & integration test โ””โ”€โ”€ README.md


---

## ๐Ÿš€ Quick Start (MQTT Gateway)

### 1. Setup Environment
```bash
python3 -m venv .venv
source .venv/bin/activate
pip install -r requirements.txt

2. Jalankan Broker MQTT

sudo apt install mosquitto mosquitto-clients
sudo systemctl start mosquitto

3. Jalankan PALASIK

python examples/mqtt_gateway.py

4. Kirim Event

mosquitto_pub -t palasik/sensor/temp -m '{"value": 42}'

๐Ÿง  Konsep Inti

  • Trust Engine โ†’ menghitung skor kepercayaan event
  • Policy Engine โ†’ memutuskan ALLOW / DENY
  • Plugin โ†’ merespons keputusan
  • Adapter โ†’ menjembatani dunia luar

๐Ÿ“š Dokumentasi Lanjutan

  • docs/ARCHITECTURE.md โ€” arsitektur & alur sistem
  • docs/CONFIG.md โ€” konfigurasi YAML / ENV
  • docs/raw/ โ€” dokumentasi riset & bahan jurnal

๐Ÿค Kontribusi

PALASIK bersifat open-source dan terbuka untuk kontribusi. Silakan lihat CONTRIBUTING.md.


๐Ÿ“„ Lisensi

MIT License


---

# 2๏ธโƒฃ docs/ARCHITECTURE.md โ€” ARSITEKTUR & ALUR

๐Ÿ‘‰ **Buat file `docs/ARCHITECTURE.md`**

```md
# PALASIK Architecture

Dokumen ini menjelaskan arsitektur internal PALASIK sebagai framework
IoT Gateway berbasis Zero Trust.

---

## ๐Ÿงฉ Komponen Utama

1. **Agent**
   - Runtime utama
   - Mengelola lifecycle

2. **Adapter**
   - Input dari dunia luar (MQTT, HTTP, dll)
   - Mengubah data menjadi event PALASIK

3. **Trust Engine**
   - Menghitung skor trust (0.0 โ€“ 1.0)

4. **Policy Engine**
   - Menentukan keputusan (ALLOW / DENY)

5. **Plugin**
   - Menangani event & keputusan

---

## ๐Ÿ” Alur Event

```mermaid
sequenceDiagram
    participant Device as IoT Device
    participant Broker as MQTT Broker
    participant Adapter as MQTT Adapter
    participant Agent as PALASIK Agent
    participant Trust as Trust Engine
    participant Policy as Policy Engine
    participant Plugin as Plugin

    Device ->> Broker: publish data
    Broker ->> Adapter: message
    Adapter ->> Agent: emit_event()
    Agent ->> Trust: evaluate(event)
    Trust ->> Agent: trust_score
    Agent ->> Policy: decide(trust_score)
    Policy ->> Agent: ALLOW / DENY
    Agent ->> Plugin: on_event(event, decision)

๐Ÿง  Prinsip Desain

  • Single Direction Flow
  • Separation of Concern
  • Policy is Explicit
  • Zero Trust by Default

๐Ÿ“Œ Catatan Penting

  • Adapter tidak tahu policy
  • Policy tidak tahu sumber event
  • Plugin tidak mengubah keputusan

Ini memastikan PALASIK tetap aman, modular, dan scalable.


---

# 3๏ธโƒฃ docs/CONFIG.md โ€” KONFIGURASI (YAML / ENV)

๐Ÿ‘‰ **Buat file `docs/CONFIG.md`**

```md
# PALASIK Configuration

PALASIK mendukung konfigurasi melalui **YAML** dan **Environment Variable**.

---

## ๐Ÿ“„ Contoh config.yaml

```yaml
palasik:
  broker:
    host: localhost
    port: 1883
    topic: palasik/sensor/#

  policy:
    type: allow_deny
    threshold: 0.7

  plugins:
    enabled:
      - logger

๐ŸŒฑ Environment Variables

PALASIK_BROKER_HOST=localhost
PALASIK_BROKER_PORT=1883
PALASIK_POLICY_THRESHOLD=0.7

๐Ÿ” Prioritas Konfigurasi

  1. ENV
  2. YAML
  3. Default code

๐Ÿง  Rencana Implementasi

  • Loader config di Agent
  • Validasi schema
  • Hot reload (opsional)

Konfigurasi akan menjadi fokus di versi berikutnya.


---

# 4๏ธโƒฃ TESTING & CI โ€” LANGKAH SELANJUTNYA (SETELAH INI)

Belum kita kerjakan sekarang, tapi **inilah roadmap teknisnya**:

### ๐Ÿงช Testing
- `tests/core/test_agent.py`
- `tests/policy/test_allow_deny.py`
- `tests/plugins/test_loader.py`
- Mock adapter

### ๐Ÿ”„ CI (GitHub Actions)
- Python 3.10โ€“3.12
- Lint (ruff / flake8)
- Unit test
- Coverage



----
## ๐Ÿ“Œ Abstrak
**PALASIK** adalah framework riset keamanan **Internet of Things (IoT)**  
berbasis **Raspberry Pi** yang menerapkan konsep  
**Zero Trust Security Architecture di level edge gateway**.

Berbeda dengan pendekatan tradisional yang hanya mengamankan cloud atau network perimeter,  
PALASIK menempatkan **mekanisme penilaian kepercayaan (trust evaluation)**  
langsung di gateway IoT untuk:

- mendeteksi perangkat mencurigakan,
- menilai perilaku komunikasi,
- dan merespons ancaman secara adaptif.

Framework ini dirancang **ringan, modular, dan reproducible**  
untuk kebutuhan **penelitian akademik, eksperimen laboratorium, dan prototipe industri kecil**.

---

## ๐ŸŽฏ Latar Belakang Masalah
Sebagian besar sistem IoT saat ini masih:

- โŒ Mempercayai semua sensor di jaringan
- โŒ Mengandalkan autentikasi statis (password / TLS saja)
- โŒ Fokus mengirim data ke cloud tanpa validasi di edge

Padahal di lapangan sering terjadi:
- Rogue device
- Spoofing identitas sensor
- Manipulasi data di gateway
- Keterlambatan respon keamanan dari cloud

๐Ÿ‘‰ **PALASIK hadir untuk menutup celah ini di level edge.**

---

## ๐Ÿง  Kontribusi Ilmiah Utama
PALASIK memberikan kontribusi riset sebagai berikut:

### 1๏ธโƒฃ Trust Engine Berbasis Edge
- Evaluasi kepercayaan perangkat secara dinamis
- Trust score berbasis:
  - identitas (IP, MAC),
  - perilaku komunikasi,
  - konteks operasional

### 2๏ธโƒฃ Policy Engine Modular
- Pengambilan keputusan berbasis kebijakan
- Aksi proporsional:
  - `ALLOW`
  - `MONITOR`
  - `RESTRICT`
  - `QUARANTINE`

### 3๏ธโƒฃ Framework Eksperimental Terbuka
- Mudah direplikasi di lingkungan kampus
- Mendukung eksperimen terkontrol
- Cocok untuk skripsi, tesis, dan publikasi

### 4๏ธโƒฃ Dokumentasi Akademik Terstruktur
- Arsitektur sistem
- Konsep trust & policy
- Roadmap penelitian
- Dataset & eksperimen

---

## ๐Ÿ—๏ธ Arsitektur Sistem (Ringkas)
  
[ IoT Device ]
โ”‚
โ–ผ
[ Trust Engine ] โ”€โ”€โ–บ [ Policy Engine ] โ”€โ”€โ–บ [ IoT Service / Backend ]
โ–ฒ
โ”‚
[ Behavior & Context Observation ]

---


PALASIK berfungsi sebagai **security decision layer**  
di antara perangkat IoT dan layanan aplikasi.

---

## ๐Ÿงช Platform & Teknologi

### Hardware
- Raspberry Pi 3B / 3B+
- IoT Device / RFID Reader (contoh: Invengo XC-RF850)

### Software
- Python
- Node-RED (opsional sebagai control plane)
- MQTT / REST API

### Konsep Keamanan
- Zero Trust Architecture (ZTA)
- Edge Computing
- Policy-based Access Control
- Trust-aware System

---

## ๐Ÿ“š Dokumentasi Lengkap
Dokumentasi pengembangan tersedia di:

๐Ÿ‘‰ **https://notedavidrinaldi.github.io/palasik/**

Struktur dokumentasi:
- Overview
- Architecture
- Trust Engine
- Policy Engine
- Installation
- Roadmap
- Contributors
- Citation

---

## ๐Ÿง‘โ€๐Ÿ”ฌ Konteks Penelitian & Use Case
PALASIK ditujukan untuk riset di bidang:

- IoT Security
- Edge Computing
- Embedded Systems
- Industrial IoT (IIoT)

Potensi implementasi:
- Smart Campus
- Smart Port & Logistics
- Smart Healthcare
- Smart Agriculture
- Industrial Monitoring

---

## ๐Ÿค Kontribusi & Kolaborasi (SANGAT DIHARAPKAN)
PALASIK adalah **open research framework**.

Kami mengundang kontribusi dari:
- ๐ŸŽ“ Mahasiswa (skripsi / tesis)
- ๐Ÿงช Peneliti
- ๐Ÿง  Praktisi IoT & Security

Contoh kontribusi yang dibutuhkan:
- Trust scoring model
- Policy rule design
- Dataset eksperimen
- Dokumentasi & studi kasus
- Evaluasi performa

๐Ÿ“„ Panduan kontribusi:
๐Ÿ‘‰ `CONTRIBUTING.md`

---

## โš–๏ธ Etika & Ruang Lingkup
PALASIK dirancang untuk:
- jaringan milik sendiri,
- laboratorium riset,
- lingkungan industri tertutup.

โŒ **Tidak ditujukan untuk offensive security atau scanning ilegal.**

---

## ๐Ÿ“„ Sitasi
Jika menggunakan PALASIK dalam publikasi ilmiah, silakan rujuk:

๐Ÿ“‘ `citation.md`

---

## ๐Ÿ“œ Lisensi
Dirilis di bawah **MIT License**  
Bebas digunakan untuk riset dan pengembangan lanjutan.

---

## ๐Ÿ‘ค Maintainer & Peneliti Utama
**David Rinaldi**  
IoT Security & Edge Computing Researcher  
๐Ÿ”— GitHub: https://github.com/notedavidrinaldi/palasik-iot-framework

---

## ๐Ÿš€ Selanjutnya?
- ๐Ÿ” Lihat **Issues** untuk ide kontribusi
- โญ Star repo ini jika tertarik
- ๐Ÿค Fork & eksperimen

---

### ๐Ÿง  Catatan
README ini disusun agar:
- layak dijadikan referensi akademik,
- mudah dipahami kontributor baru,
- dan siap mendukung publikasi ilmiah.

PALASIK bukan sekadar project,  
tetapi **platform riset terbuka** untuk keamanan IoT berbasis edge.

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

palasik-0.1.0.tar.gz (19.4 kB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

palasik-0.1.0-py3-none-any.whl (22.3 kB view details)

Uploaded Python 3

File details

Details for the file palasik-0.1.0.tar.gz.

File metadata

  • Download URL: palasik-0.1.0.tar.gz
  • Upload date:
  • Size: 19.4 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.2.0 CPython/3.12.3

File hashes

Hashes for palasik-0.1.0.tar.gz
Algorithm Hash digest
SHA256 af2cfa6ab451773a76768450ad87efbf13bf8fee9fb19d2b267c0f5ceb03380c
MD5 1775a51495c54c0991c72ea0ddb1f893
BLAKE2b-256 666ecc15baa85f80bb28e67a45e412a22b2f2c67c23dd904ff0a6c849d2bd223

See more details on using hashes here.

File details

Details for the file palasik-0.1.0-py3-none-any.whl.

File metadata

  • Download URL: palasik-0.1.0-py3-none-any.whl
  • Upload date:
  • Size: 22.3 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.2.0 CPython/3.12.3

File hashes

Hashes for palasik-0.1.0-py3-none-any.whl
Algorithm Hash digest
SHA256 15b1d437e5cb799bb113463c1e2cb3fc183115e86880504dc7d167a487f86de4
MD5 7fccb4c689c0df1305348b5eea471355
BLAKE2b-256 4998e978abf643de0fe20ea0e19675ed37d72473f923654e1f831f991cb20f79

See more details on using hashes here.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Pingdom Monitoring Sentry Error logging StatusPage Status page