SlideShare uma empresa Scribd logo
1 de 49
Oto Brglez ft. Andraž Sraka
December 2020
Building a modern, distributed real-time Wi-Fi spying system
The General Problem - xkcd #974
Source: A Case Study of WiFi Sniffing Performance Evaluation; Li, Sun, Barthélemy, Perez, 2020
Capture the data => Visualise the results
“In the field of security engineering, an oracle attack is
an attack that exploits the availability of a weakness in
a system that can be used as an "oracle" to give a
simple go/no go indication to tell an attacker whether he
or she has reached, or is nearing, their goal.
The attacker can then combine the oracle with
systematic search of the problem space to complete
their attack.”
- Wikipedia on “The Oracle Attack”
1. Build the device
2. Capture the data
3. Process the data
4. Visualise the results
V2
1. Build the devices
2. Capture all the data real-time
3. Process the data anywhere
4. Visualise the results in real-time
+Don’t loose ANY DATA
+Modernise!
+Have fun!!!
Device mk1: WiFi Pineapple NANO / hak5
• Pluses +
• Easy to setup and
experiment
• Good existing support,
tooling and docs
• Low-power consumption
• System-on-a-chip SoC
• OpenWRT
• Good results!
• Minuses -
• Embedded device
• MIPS architecture
• Not enough space
on the device*
• OpenWRT
• Limited antena
• Outdated tooling
• WiFi Pineapple NANO
• Raspberry pi 3B+
• USB Power-hub
• 4 “custom made” devices
• 2x Raspberry Pi 3B+
• 1x Raspberry Pi 4
• 1x Intel NUC
• Ability to add N-devices
• 3 Architectures - ARMv7,
ARM and x86_64
• 2 Physical locations
• 2 Different OS-es
(Ubuntu and Raspberry
Pi OS)
• Event streaming
• Devices emit events
• State is evil* and hard to
scale
• All components in the stack
are resilient
• Network can be down
• H/W and S/W can and will
fail 💥
• Rapid 🐇💨
• Deployment 🚀
• Development
“Your database stores the current state of your data. But the
current state is always caused by some actions that took
place in the past. The actions are the events. Your inventory
table is the state that results from the purchase and sale
events that have been made, bank balances are the result of
credits and debits, and the latency graph for your web server
is an aggregation of the stream of HTTP request times.”
- Confluent Blog
• Events are immutable
• Easy to reason about
• Easy to distribute => easy to scale easy to partition
• State can always be rebuild
• Change* is just another event
• Written in Akka Streams with Scala
• Packaged as Docker Container
(x86_64 and arm32v7)
• Experimentally compiled to native
image with GraalVM*
• Deployed w/ Ansible* 🐍
Kafka Connect, an open source component of Apache
Kafka®, is a framework for connecting Kafka with external
systems such as databases, key-value stores, search
indexes, and file systems.
<=== 🦄 🌈 🚀
“An event streaming database is a particular kind of
database that helps you build stream processing apps.
It consolidates the many components found in virtually
every event streaming architecture.
Almost all streaming architectures today are piecemeal
solutions cobbled together from different projects.
At a minimum, you need a subsystem to acquire events
from existing data sources, another to store them,
another to process them, and another to serve queries
against aggregated materializations. Integrating each
subsystem can be difficult. Each has its own mental
model. And it’s easy to wonder, given all this
complexity: Is this all worth it?”
• Event streaming is incredibly powerful ⚡️
• Kafka should be the modern backbone! 🦄
• Consider putting it into the “core” of your system
• Kafka Connectors are easy to setup!
• Scala can be used for IoT agents ✅ 🚀
• Wi-Fi has some “problems”* 😅
• Privacy Ideas 💡
• MAC address randomisation
• Encrypted management packets (new standards)
• Don’t use “public” Wi-Fis
• Andraž Sraka
• Jožko Škrablin
• My family!
• Friends @ Geekatrons!
bit.ly/oracle-peak
@otobrglez / otobrglez@gmail.com
December 2020

Mais conteúdo relacionado

Mais procurados

Managing Big Data projects in a constantly changing environment - Rafał Zalew...
Managing Big Data projects in a constantly changing environment - Rafał Zalew...Managing Big Data projects in a constantly changing environment - Rafał Zalew...
Managing Big Data projects in a constantly changing environment - Rafał Zalew...
GetInData
 

Mais procurados (20)

Large enterprise SIEM: get ready for oversize
Large enterprise SIEM: get ready for oversizeLarge enterprise SIEM: get ready for oversize
Large enterprise SIEM: get ready for oversize
 
Zentral macaduk conf 2016
Zentral macaduk conf 2016Zentral macaduk conf 2016
Zentral macaduk conf 2016
 
Leveraging DNS to Surface Attacker Activity
Leveraging DNS to Surface Attacker ActivityLeveraging DNS to Surface Attacker Activity
Leveraging DNS to Surface Attacker Activity
 
How to Streamline Incident Response with InfluxDB, PagerDuty and Rundeck
How to Streamline Incident Response with InfluxDB, PagerDuty and RundeckHow to Streamline Incident Response with InfluxDB, PagerDuty and Rundeck
How to Streamline Incident Response with InfluxDB, PagerDuty and Rundeck
 
Nagios Conference 2014 - Konstantin Benz - Monitoring Openstack The Relations...
Nagios Conference 2014 - Konstantin Benz - Monitoring Openstack The Relations...Nagios Conference 2014 - Konstantin Benz - Monitoring Openstack The Relations...
Nagios Conference 2014 - Konstantin Benz - Monitoring Openstack The Relations...
 
Turning Evidence into Insights: How NCIS Leverages Elastic
Turning Evidence into Insights: How NCIS Leverages Elastic Turning Evidence into Insights: How NCIS Leverages Elastic
Turning Evidence into Insights: How NCIS Leverages Elastic
 
David Henthorn [Rose-Hulman Institute of Technology] | Illuminating the Dark ...
David Henthorn [Rose-Hulman Institute of Technology] | Illuminating the Dark ...David Henthorn [Rose-Hulman Institute of Technology] | Illuminating the Dark ...
David Henthorn [Rose-Hulman Institute of Technology] | Illuminating the Dark ...
 
Running Apache Spark on Kubernetes
Running Apache Spark on KubernetesRunning Apache Spark on Kubernetes
Running Apache Spark on Kubernetes
 
Elephants in the cloud or how to become cloud ready
Elephants in the cloud or how to become cloud readyElephants in the cloud or how to become cloud ready
Elephants in the cloud or how to become cloud ready
 
Internet-wide Scanning
Internet-wide ScanningInternet-wide Scanning
Internet-wide Scanning
 
Nagios Conference 2014 - Scott Wilkerson - Getting Started with Nagios Networ...
Nagios Conference 2014 - Scott Wilkerson - Getting Started with Nagios Networ...Nagios Conference 2014 - Scott Wilkerson - Getting Started with Nagios Networ...
Nagios Conference 2014 - Scott Wilkerson - Getting Started with Nagios Networ...
 
Getting Started: Intro to Telegraf - July 2021
Getting Started: Intro to Telegraf - July 2021Getting Started: Intro to Telegraf - July 2021
Getting Started: Intro to Telegraf - July 2021
 
Architecting Azure IoT Solutions
Architecting Azure IoT SolutionsArchitecting Azure IoT Solutions
Architecting Azure IoT Solutions
 
Microservices and Devs in Charge: Why Monitoring is an Analytics Problem
Microservices and Devs in Charge: Why Monitoring is an Analytics ProblemMicroservices and Devs in Charge: Why Monitoring is an Analytics Problem
Microservices and Devs in Charge: Why Monitoring is an Analytics Problem
 
Managing Big Data projects in a constantly changing environment - Rafał Zalew...
Managing Big Data projects in a constantly changing environment - Rafał Zalew...Managing Big Data projects in a constantly changing environment - Rafał Zalew...
Managing Big Data projects in a constantly changing environment - Rafał Zalew...
 
Streaming Sensor Data with Grafana and InfluxDB | Ryan Mckinley | Grafana
Streaming Sensor Data with Grafana and InfluxDB | Ryan Mckinley | GrafanaStreaming Sensor Data with Grafana and InfluxDB | Ryan Mckinley | Grafana
Streaming Sensor Data with Grafana and InfluxDB | Ryan Mckinley | Grafana
 
Druid meetup @ Netflix (11/14/2018 )
Druid meetup @ Netflix  (11/14/2018 )Druid meetup @ Netflix  (11/14/2018 )
Druid meetup @ Netflix (11/14/2018 )
 
Event Processing Using Semantic Web Technologies
Event Processing Using Semantic Web TechnologiesEvent Processing Using Semantic Web Technologies
Event Processing Using Semantic Web Technologies
 
The future of Data on Kubernetes
The future of Data on KubernetesThe future of Data on Kubernetes
The future of Data on Kubernetes
 
Redis for Fast Data Ingest
Redis for Fast Data IngestRedis for Fast Data Ingest
Redis for Fast Data Ingest
 

Semelhante a How to over-engineer things and have fun? Building a modern, distributed real-time Wi-Fi spying system.

Appsec 2013-krehel-ondrej-forensic-investigations-of-web-exploitations
Appsec 2013-krehel-ondrej-forensic-investigations-of-web-exploitationsAppsec 2013-krehel-ondrej-forensic-investigations-of-web-exploitations
Appsec 2013-krehel-ondrej-forensic-investigations-of-web-exploitations
drewz lin
 
Splunk as a_big_data_platform_for_developers_spring_one2gx
Splunk as a_big_data_platform_for_developers_spring_one2gxSplunk as a_big_data_platform_for_developers_spring_one2gx
Splunk as a_big_data_platform_for_developers_spring_one2gx
Damien Dallimore
 
Tech Spark Presentation
Tech Spark PresentationTech Spark Presentation
Tech Spark Presentation
Stephen Borg
 

Semelhante a How to over-engineer things and have fun? Building a modern, distributed real-time Wi-Fi spying system. (20)

How to over-engineer things and have fun? | Oto Brglez, OPALAB
How to over-engineer things and have fun? | Oto Brglez, OPALABHow to over-engineer things and have fun? | Oto Brglez, OPALAB
How to over-engineer things and have fun? | Oto Brglez, OPALAB
 
Anomaly Detection at Scale
Anomaly Detection at ScaleAnomaly Detection at Scale
Anomaly Detection at Scale
 
Appsec 2013-krehel-ondrej-forensic-investigations-of-web-exploitations
Appsec 2013-krehel-ondrej-forensic-investigations-of-web-exploitationsAppsec 2013-krehel-ondrej-forensic-investigations-of-web-exploitations
Appsec 2013-krehel-ondrej-forensic-investigations-of-web-exploitations
 
2012-03-15 What's New at Red Hat
2012-03-15 What's New at Red Hat2012-03-15 What's New at Red Hat
2012-03-15 What's New at Red Hat
 
Open Security Operations Center - OpenSOC
Open Security Operations Center - OpenSOCOpen Security Operations Center - OpenSOC
Open Security Operations Center - OpenSOC
 
Apache Kafka® and the Data Mesh
Apache Kafka® and the Data MeshApache Kafka® and the Data Mesh
Apache Kafka® and the Data Mesh
 
Using R for the internet of things
Using R for the internet of thingsUsing R for the internet of things
Using R for the internet of things
 
Building Event-Driven Systems with Apache Kafka
Building Event-Driven Systems with Apache KafkaBuilding Event-Driven Systems with Apache Kafka
Building Event-Driven Systems with Apache Kafka
 
Splunk as a_big_data_platform_for_developers_spring_one2gx
Splunk as a_big_data_platform_for_developers_spring_one2gxSplunk as a_big_data_platform_for_developers_spring_one2gx
Splunk as a_big_data_platform_for_developers_spring_one2gx
 
Needlesand haystacks i360-dublin
Needlesand haystacks i360-dublinNeedlesand haystacks i360-dublin
Needlesand haystacks i360-dublin
 
HP Protects Massive, Global Network with StealthWatch
HP Protects Massive, Global Network with StealthWatchHP Protects Massive, Global Network with StealthWatch
HP Protects Massive, Global Network with StealthWatch
 
Building SuperComputers @ Home
Building SuperComputers @ HomeBuilding SuperComputers @ Home
Building SuperComputers @ Home
 
Distributed dataintelligence
Distributed dataintelligenceDistributed dataintelligence
Distributed dataintelligence
 
ITWeb Conference June06 Open Source for Local Government
ITWeb Conference June06 Open Source for Local GovernmentITWeb Conference June06 Open Source for Local Government
ITWeb Conference June06 Open Source for Local Government
 
Tech Spark Presentation
Tech Spark PresentationTech Spark Presentation
Tech Spark Presentation
 
Build Low Latency, Windowless Event Processing Pipelines with Quine and ScyllaDB
Build Low Latency, Windowless Event Processing Pipelines with Quine and ScyllaDBBuild Low Latency, Windowless Event Processing Pipelines with Quine and ScyllaDB
Build Low Latency, Windowless Event Processing Pipelines with Quine and ScyllaDB
 
Securing Rails
Securing RailsSecuring Rails
Securing Rails
 
Extreme Apache Spark: how in 3 months we created a pipeline that can process ...
Extreme Apache Spark: how in 3 months we created a pipeline that can process ...Extreme Apache Spark: how in 3 months we created a pipeline that can process ...
Extreme Apache Spark: how in 3 months we created a pipeline that can process ...
 
Data Streaming Technology Overview
Data Streaming Technology OverviewData Streaming Technology Overview
Data Streaming Technology Overview
 
Cloud: From Unmanned Data Center to Algorithmic Economy using Openstack
Cloud: From Unmanned Data Center to Algorithmic Economy using OpenstackCloud: From Unmanned Data Center to Algorithmic Economy using Openstack
Cloud: From Unmanned Data Center to Algorithmic Economy using Openstack
 

Mais de Oto Brglez

Ruby in prijatelji
Ruby in prijateljiRuby in prijatelji
Ruby in prijatelji
Oto Brglez
 

Mais de Oto Brglez (15)

The Compression Puzzle Challenge
The Compression Puzzle ChallengeThe Compression Puzzle Challenge
The Compression Puzzle Challenge
 
Becoming S/W Engineer
Becoming S/W EngineerBecoming S/W Engineer
Becoming S/W Engineer
 
Akka with Scala
Akka with ScalaAkka with Scala
Akka with Scala
 
Oto Brglez - Tips for better tests
Oto Brglez - Tips for better testsOto Brglez - Tips for better tests
Oto Brglez - Tips for better tests
 
Elasticsearch
ElasticsearchElasticsearch
Elasticsearch
 
Kdaj lahko uporabimo piškotke?
Kdaj lahko uporabimo piškotke?Kdaj lahko uporabimo piškotke?
Kdaj lahko uporabimo piškotke?
 
Continuous integration (CI) v praksi
Continuous integration (CI) v praksiContinuous integration (CI) v praksi
Continuous integration (CI) v praksi
 
nanob
nanobnanob
nanob
 
Ruby in prijatelji
Ruby in prijateljiRuby in prijatelji
Ruby in prijatelji
 
Ruby in ogrodje Rails
Ruby in ogrodje RailsRuby in ogrodje Rails
Ruby in ogrodje Rails
 
Subversion in Redmine implementacija
Subversion in Redmine implementacijaSubversion in Redmine implementacija
Subversion in Redmine implementacija
 
mojakoda.si - predstavitev
mojakoda.si - predstavitevmojakoda.si - predstavitev
mojakoda.si - predstavitev
 
Šolski Spletni Informacijski Sistem
Šolski Spletni Informacijski SistemŠolski Spletni Informacijski Sistem
Šolski Spletni Informacijski Sistem
 
PHP: Hypertext Preprocessor Introduction
PHP: Hypertext Preprocessor IntroductionPHP: Hypertext Preprocessor Introduction
PHP: Hypertext Preprocessor Introduction
 
Java Servlet in JSP
Java Servlet in JSPJava Servlet in JSP
Java Servlet in JSP
 

Último

Cara Menggugurkan Sperma Yang Masuk Rahim Biyar Tidak Hamil
Cara Menggugurkan Sperma Yang Masuk Rahim Biyar Tidak HamilCara Menggugurkan Sperma Yang Masuk Rahim Biyar Tidak Hamil
Cara Menggugurkan Sperma Yang Masuk Rahim Biyar Tidak Hamil
Cara Menggugurkan Kandungan 087776558899
 
Top Rated Call Girls In chittoor 📱 {7001035870} VIP Escorts chittoor
Top Rated Call Girls In chittoor 📱 {7001035870} VIP Escorts chittoorTop Rated Call Girls In chittoor 📱 {7001035870} VIP Escorts chittoor
Top Rated Call Girls In chittoor 📱 {7001035870} VIP Escorts chittoor
dharasingh5698
 
notes on Evolution Of Analytic Scalability.ppt
notes on Evolution Of Analytic Scalability.pptnotes on Evolution Of Analytic Scalability.ppt
notes on Evolution Of Analytic Scalability.ppt
MsecMca
 
VIP Call Girls Ankleshwar 7001035870 Whatsapp Number, 24/07 Booking
VIP Call Girls Ankleshwar 7001035870 Whatsapp Number, 24/07 BookingVIP Call Girls Ankleshwar 7001035870 Whatsapp Number, 24/07 Booking
VIP Call Girls Ankleshwar 7001035870 Whatsapp Number, 24/07 Booking
dharasingh5698
 
Integrated Test Rig For HTFE-25 - Neometrix
Integrated Test Rig For HTFE-25 - NeometrixIntegrated Test Rig For HTFE-25 - Neometrix
Integrated Test Rig For HTFE-25 - Neometrix
Neometrix_Engineering_Pvt_Ltd
 
VIP Call Girls Palanpur 7001035870 Whatsapp Number, 24/07 Booking
VIP Call Girls Palanpur 7001035870 Whatsapp Number, 24/07 BookingVIP Call Girls Palanpur 7001035870 Whatsapp Number, 24/07 Booking
VIP Call Girls Palanpur 7001035870 Whatsapp Number, 24/07 Booking
dharasingh5698
 

Último (20)

Unit 2- Effective stress & Permeability.pdf
Unit 2- Effective stress & Permeability.pdfUnit 2- Effective stress & Permeability.pdf
Unit 2- Effective stress & Permeability.pdf
 
University management System project report..pdf
University management System project report..pdfUniversity management System project report..pdf
University management System project report..pdf
 
Cara Menggugurkan Sperma Yang Masuk Rahim Biyar Tidak Hamil
Cara Menggugurkan Sperma Yang Masuk Rahim Biyar Tidak HamilCara Menggugurkan Sperma Yang Masuk Rahim Biyar Tidak Hamil
Cara Menggugurkan Sperma Yang Masuk Rahim Biyar Tidak Hamil
 
Top Rated Call Girls In chittoor 📱 {7001035870} VIP Escorts chittoor
Top Rated Call Girls In chittoor 📱 {7001035870} VIP Escorts chittoorTop Rated Call Girls In chittoor 📱 {7001035870} VIP Escorts chittoor
Top Rated Call Girls In chittoor 📱 {7001035870} VIP Escorts chittoor
 
Thermal Engineering Unit - I & II . ppt
Thermal Engineering  Unit - I & II . pptThermal Engineering  Unit - I & II . ppt
Thermal Engineering Unit - I & II . ppt
 
Unleashing the Power of the SORA AI lastest leap
Unleashing the Power of the SORA AI lastest leapUnleashing the Power of the SORA AI lastest leap
Unleashing the Power of the SORA AI lastest leap
 
notes on Evolution Of Analytic Scalability.ppt
notes on Evolution Of Analytic Scalability.pptnotes on Evolution Of Analytic Scalability.ppt
notes on Evolution Of Analytic Scalability.ppt
 
VIP Call Girls Ankleshwar 7001035870 Whatsapp Number, 24/07 Booking
VIP Call Girls Ankleshwar 7001035870 Whatsapp Number, 24/07 BookingVIP Call Girls Ankleshwar 7001035870 Whatsapp Number, 24/07 Booking
VIP Call Girls Ankleshwar 7001035870 Whatsapp Number, 24/07 Booking
 
Integrated Test Rig For HTFE-25 - Neometrix
Integrated Test Rig For HTFE-25 - NeometrixIntegrated Test Rig For HTFE-25 - Neometrix
Integrated Test Rig For HTFE-25 - Neometrix
 
2016EF22_0 solar project report rooftop projects
2016EF22_0 solar project report rooftop projects2016EF22_0 solar project report rooftop projects
2016EF22_0 solar project report rooftop projects
 
Thermal Engineering -unit - III & IV.ppt
Thermal Engineering -unit - III & IV.pptThermal Engineering -unit - III & IV.ppt
Thermal Engineering -unit - III & IV.ppt
 
Hazard Identification (HAZID) vs. Hazard and Operability (HAZOP): A Comparati...
Hazard Identification (HAZID) vs. Hazard and Operability (HAZOP): A Comparati...Hazard Identification (HAZID) vs. Hazard and Operability (HAZOP): A Comparati...
Hazard Identification (HAZID) vs. Hazard and Operability (HAZOP): A Comparati...
 
Call Girls Pimpri Chinchwad Call Me 7737669865 Budget Friendly No Advance Boo...
Call Girls Pimpri Chinchwad Call Me 7737669865 Budget Friendly No Advance Boo...Call Girls Pimpri Chinchwad Call Me 7737669865 Budget Friendly No Advance Boo...
Call Girls Pimpri Chinchwad Call Me 7737669865 Budget Friendly No Advance Boo...
 
ONLINE FOOD ORDER SYSTEM PROJECT REPORT.pdf
ONLINE FOOD ORDER SYSTEM PROJECT REPORT.pdfONLINE FOOD ORDER SYSTEM PROJECT REPORT.pdf
ONLINE FOOD ORDER SYSTEM PROJECT REPORT.pdf
 
Bhosari ( Call Girls ) Pune 6297143586 Hot Model With Sexy Bhabi Ready For ...
Bhosari ( Call Girls ) Pune  6297143586  Hot Model With Sexy Bhabi Ready For ...Bhosari ( Call Girls ) Pune  6297143586  Hot Model With Sexy Bhabi Ready For ...
Bhosari ( Call Girls ) Pune 6297143586 Hot Model With Sexy Bhabi Ready For ...
 
VIP Call Girls Palanpur 7001035870 Whatsapp Number, 24/07 Booking
VIP Call Girls Palanpur 7001035870 Whatsapp Number, 24/07 BookingVIP Call Girls Palanpur 7001035870 Whatsapp Number, 24/07 Booking
VIP Call Girls Palanpur 7001035870 Whatsapp Number, 24/07 Booking
 
(INDIRA) Call Girl Bhosari Call Now 8617697112 Bhosari Escorts 24x7
(INDIRA) Call Girl Bhosari Call Now 8617697112 Bhosari Escorts 24x7(INDIRA) Call Girl Bhosari Call Now 8617697112 Bhosari Escorts 24x7
(INDIRA) Call Girl Bhosari Call Now 8617697112 Bhosari Escorts 24x7
 
(INDIRA) Call Girl Aurangabad Call Now 8617697112 Aurangabad Escorts 24x7
(INDIRA) Call Girl Aurangabad Call Now 8617697112 Aurangabad Escorts 24x7(INDIRA) Call Girl Aurangabad Call Now 8617697112 Aurangabad Escorts 24x7
(INDIRA) Call Girl Aurangabad Call Now 8617697112 Aurangabad Escorts 24x7
 
Thermal Engineering-R & A / C - unit - V
Thermal Engineering-R & A / C - unit - VThermal Engineering-R & A / C - unit - V
Thermal Engineering-R & A / C - unit - V
 
Minimum and Maximum Modes of microprocessor 8086
Minimum and Maximum Modes of microprocessor 8086Minimum and Maximum Modes of microprocessor 8086
Minimum and Maximum Modes of microprocessor 8086
 

How to over-engineer things and have fun? Building a modern, distributed real-time Wi-Fi spying system.

  • 1. Oto Brglez ft. Andraž Sraka December 2020 Building a modern, distributed real-time Wi-Fi spying system
  • 2. The General Problem - xkcd #974
  • 3.
  • 4.
  • 5. Source: A Case Study of WiFi Sniffing Performance Evaluation; Li, Sun, Barthélemy, Perez, 2020
  • 6. Capture the data => Visualise the results
  • 7. “In the field of security engineering, an oracle attack is an attack that exploits the availability of a weakness in a system that can be used as an "oracle" to give a simple go/no go indication to tell an attacker whether he or she has reached, or is nearing, their goal. The attacker can then combine the oracle with systematic search of the problem space to complete their attack.” - Wikipedia on “The Oracle Attack”
  • 8. 1. Build the device 2. Capture the data 3. Process the data 4. Visualise the results
  • 9.
  • 10. V2 1. Build the devices 2. Capture all the data real-time 3. Process the data anywhere 4. Visualise the results in real-time +Don’t loose ANY DATA +Modernise! +Have fun!!!
  • 11.
  • 12. Device mk1: WiFi Pineapple NANO / hak5
  • 13. • Pluses + • Easy to setup and experiment • Good existing support, tooling and docs • Low-power consumption • System-on-a-chip SoC • OpenWRT • Good results! • Minuses - • Embedded device • MIPS architecture • Not enough space on the device* • OpenWRT • Limited antena • Outdated tooling
  • 14. • WiFi Pineapple NANO • Raspberry pi 3B+ • USB Power-hub
  • 15.
  • 16.
  • 17.
  • 18.
  • 19. • 4 “custom made” devices • 2x Raspberry Pi 3B+ • 1x Raspberry Pi 4 • 1x Intel NUC • Ability to add N-devices • 3 Architectures - ARMv7, ARM and x86_64 • 2 Physical locations • 2 Different OS-es (Ubuntu and Raspberry Pi OS)
  • 20.
  • 21. • Event streaming • Devices emit events • State is evil* and hard to scale • All components in the stack are resilient • Network can be down • H/W and S/W can and will fail 💥 • Rapid 🐇💨 • Deployment 🚀 • Development
  • 22. “Your database stores the current state of your data. But the current state is always caused by some actions that took place in the past. The actions are the events. Your inventory table is the state that results from the purchase and sale events that have been made, bank balances are the result of credits and debits, and the latency graph for your web server is an aggregation of the stream of HTTP request times.” - Confluent Blog
  • 23.
  • 24. • Events are immutable • Easy to reason about • Easy to distribute => easy to scale easy to partition • State can always be rebuild • Change* is just another event
  • 25.
  • 26. • Written in Akka Streams with Scala • Packaged as Docker Container (x86_64 and arm32v7) • Experimentally compiled to native image with GraalVM* • Deployed w/ Ansible* 🐍
  • 27.
  • 28.
  • 29.
  • 30.
  • 31.
  • 32.
  • 33. Kafka Connect, an open source component of Apache Kafka®, is a framework for connecting Kafka with external systems such as databases, key-value stores, search indexes, and file systems.
  • 35.
  • 36.
  • 37. “An event streaming database is a particular kind of database that helps you build stream processing apps. It consolidates the many components found in virtually every event streaming architecture. Almost all streaming architectures today are piecemeal solutions cobbled together from different projects. At a minimum, you need a subsystem to acquire events from existing data sources, another to store them, another to process them, and another to serve queries against aggregated materializations. Integrating each subsystem can be difficult. Each has its own mental model. And it’s easy to wonder, given all this complexity: Is this all worth it?”
  • 38.
  • 39.
  • 40.
  • 41.
  • 42.
  • 43.
  • 44.
  • 45.
  • 46. • Event streaming is incredibly powerful ⚡️ • Kafka should be the modern backbone! 🦄 • Consider putting it into the “core” of your system • Kafka Connectors are easy to setup! • Scala can be used for IoT agents ✅ 🚀 • Wi-Fi has some “problems”* 😅 • Privacy Ideas 💡 • MAC address randomisation • Encrypted management packets (new standards) • Don’t use “public” Wi-Fis
  • 47.
  • 48. • Andraž Sraka • Jožko Škrablin • My family! • Friends @ Geekatrons!

Notas do Editor

  1. What is over-engineering? Overengineering (or over-kill) is the act of designing a product to be more robust or have more features than often necessary for its intended use, or for a process to be unnecessarily complex or inefficient. Overengineering is often done to increase a factor of safety, add functionality, or overcome perceived design flaws that most users would accept. Overengineering can be desirable when safety or performance is critical (e.g. in aerospace vehicles and luxury road vehicles), or when extremely broad functionality is required (e.g. diagnostic and medical tools, power users of products), but it is generally criticized in terms of value engineering as wasteful of resources such as materials, time and money.
  2. The story About “The Problem” at Geekatrons Wi-Fi is emitting Probes We should capture them and visualise them Do it!
  3. Basics of Wi-Fi Source: https://www.researchgate.net/figure/MAC-layer-handoff-process_fig3_342860871
  4. You ask your friend what’s in his garage You look into your garage
  5. Then you upgrade
  6. Agent
  7. Apache Kafka is a community distributed event streaming platform capable of handling trillions of events a day. Initially conceived as a messaging queue, Kafka is based on an abstraction of a distributed commit log. Since being created and open sourced by LinkedIn in 2011, Kafka has quickly evolved from messaging queue to a full-fledged event streaming platform.
  8. Kafka Connect
  9. Kafka Connect