Wendelin Exanalytics
Security & Safety Design
Wendelin Exanalytics
Security & Safety Design
2014-07-07 – Shanghai
www.wendelin.io
Agenda
- Architecture Overview
- Design Goals
- Security
- Safety
Wendelin Core 100% open source
NEO
SlapOS
Numpy / OpenCV-Python / Scikit-learn / etc.
ERP5
Multicloud Deployment
Elastic PaaS
Distributed Storage
Data Analytics
Multi Data Center
100% Python
Data Center Overview
Bay2Bay Hypercube
Management Network
Bay LAN
SlapOS Master Overview
SLAP Protocol
Data Center 1
Data Center 2
SlapOS Master
- Deployment
- Orchestration
- Accounting
- Disaster Recovery
SlapOS Nodes
SlapOS Nodes
SlapOS Nodes
Data Center 3
SlapOS Node Overview
Data Center
SlapOS Node
Kylin Linux
SLAPGrid
Buildout
supervisord
Wendelin 1.0
Wendelin 1.1
SlapOS Kernel
Software Release
Software Instance
100+ software
instances per server
ERP5 PaaS Overview
Rule Based Access
Pluggable Authentication
Data Set 1
Python Code Editor
Data Item
Data Item
Data Item
Data Item
Data Item
Data Set 2
Data Item
Data Item
Data Item
Data Item
Data Item
JIO
Input / Output
IDE
DAVS
Scalability
Data Management
Distributed Activities
Distributed Index
Security
HTTPS
NEO Overview
neoctl
Sate access
Command control
Master
OID & TID allocation
Synchronisation
Load balancing
Storage
Object data
Transaction data
Partition table
Application
ZODB
neo.client
Data
Control
Admin
State archival
Command proxy
Numpy Overview
neo.ndarray
1
2
3
4
5
6
7
8
9
10
11
12
5
9
6
10
7
11
1
2
3
4
8
12
5
9
1
6
10
2
7
11
3
4
8
12
Agenda
- Architecture Overview
- Design Goals
- Security
- Safety
Security & Safety
- Security
- Data Encryption
- Data Access Rule
- User Authentication
- Computer Authentication
- Software Authentication
- Service Authentication
- Zero Knowledge
- Intrusion protection
- Public Key Infrastructure
- Safety
- Availability
- Consistency
- Scalability
- Persistence
- Disaster Recovery
Agenda
- Architecture Overview
- Design Goals
- Security
- Safety
Data Encryption Storage
Encrypted data
inside storage
Original data in
processing node
Data Encryption I/O
JIO
DAVS
HTTPS
TLS encryption with
self-signed X509
Data Access Rules Data Item
Rule Based Access
Data Item
Access a single data item
based on rules such as
“all officers assigned to
same district as where data
Item was captured earlier
than one month ago can
view data item”
A Data Item is the smallest
block of data. It is usually
collected from a sensor,
a camera or a databas
for limited period of time
and limited geographic area
Data Access Rules Data Set
Rule Based Access
Data Set 1
Data Item
Data Item
Data Item
Data Item
Data Item
Access all data items in a
data set based on rules
such as:
“all officers assigned to
same district as where
data set was captured and
who have access right A1
can view any data item
of the data set”
Data Set defines a
group of related
data items (ex. per
camera, per sensor,
per case, per project,
per organisation, etc.)
User Authentication X509
Pluggable Authentication
User authentication
can be extended
through plugins.
Self-signed X509
certificate stored in
Web Browser or
hardware key
Is recommended.
Computer Authentication X509
Each computer has
its own X509 certificate
to authenticate to
SlapOS Master for
secure deployment
Software Authentication X509
Each deployed software
is signed with X509
certificate of authorized
system administrator
Wendelin 1.0
Service Authentication X509
Each service has
its own X509 certificate
to authenticate to
SlapOS Master for
secure orchestration
Zero Knowledge zero root
Kylin Linux
Each service runs
with non privileged user
SLAPGrid
Kylin Linux runs
without sshd and without
remote root access
slapgrid runs
with non privileged user
Zero Knowledge zero password
No password or credential
to access running services
is kept in SlapOS Master
Credentials to access a
a service are kept as
a hash in the computer
that runs the service
Intrusion Protection
Kylin Linux
SLAPGrid
Kylin Linux source
code has been
audited by Chinese
Ministry of Defense
slapgrid collects
resource usage logs
to detect abnormal
behaviour of running
processes
Kylin Linux runs
without sshd and without
remote root access
Public Key Infrastructure (PKI)
SlapOS Master acts
as PKI and generates
X509 certificates for
users, computers,
software and services
Agenda
- Architecture Overview
- Design Goals
- Security
- Safety
Availability SlapOS
System remains available
in case of unavailability
of SlapOS master
System remains available
in case of unavailability
of SlapOS node
Availability NEO
System remains available
in case of unavailability
of storage node
System remains available
in case of unavailability
of compute node
System remains
Available in case
of unavailability
master node
System remains
Available in case
of unavailability
control node
Availability LAN
Nodes remain connected even if
switch becomes unavailable thanks to
redundant routing through hypercube
Nodes remain connected even if
hypercube edge becomes unavailable thanks to
redundant routing through other hypercube edge
Consistency NEO
All storage nodes remain
consistent thanks to
transaction ID generated
by master node and stored
with each object or block
Scalability NEO
All storage nodes remain
consistent thanks to
transaction ID generated
by master node and stored
with each object or block
Add more computer nodes
for more computation
Persistence SlapOS
Each service on SlapOS node
has a minimum persistence
ttime parameter to prevent
unexpected data destruction as
potential consequence of
human error or intrusion on
SlapOS master
Disaster Recovery Storage
5
9
1
5
9
1
In case of loss of a storage node
a new node is added and
data is recovered
Disaster Recovery Datacenter
Data Center 1
Data Center 2
In case of loss of a data center node
another data center that
has a real time copy of data
and application configuration
kept in sync automatically and
tested daily is used instead