Sensory Perception: A DIY Approach to Building a Sensor Network

Embed Size (px)

Citation preview

1. Sensory Perception: A DIY Approach to Building a Sensor Network 2. rbx@rbx:~# whoami Tim Fowler Prinicpal IT Security Consultant Mountainsec, LLC @roobixx 3. rbx@rbx:~# info Christian Member of WNCInfoSec & Proverbs Hackers OSWP Open Source Advocate Lover/Hater of all things Wifi Triathlete* * A Work in Progress 4. Where it all started... 5. Background CreepyDOL Snoopy & Snoopy- NG 6. From that came this... 7. ...and now comes this... 8. Harbinger Sensor Network harbinger / hrb nj r/ noun a person or thing that announces or signals the approach of another. 9. HSNP: Objectives Create a distributed sensor network for data collection and traffic flow / migratory pathway analysis Create analytics engine for data processing and visualization rendering 10. Why? 11. Because I can! 12. Why reinvent the wheel? 13. Harbinger Sensor Network Project Harbinger is a wireless sensor network project for historical trend and predictive analysis Unlike other sensor projects, Harbinger is completely passive on the airwaves, making it virtually undetectable. Harbinger is an open source project that is licensed under the GPL v3 14. HSNP: Requirements Must be open source Must be as hardware agnostic as possible to keep cost down and allow for the use of whatever platform is available. Keep dependencies & requirements to a minimum Must scale 15. HSNP: Project Breakdown The HSNP has three primary components which breakdown into stages of development Stage 1: Sensor Node(s) Stage 2: Centralized Data Management Stage 3: Analytics and Data Visualizations 16. Stage 1: Sensor Node(s) This is where we are at today! 17. Stage 1: Node Requirements Must be able to run python (2.7) SQLite3 A wireless interface that supports Monitor mode That's it! 18. Stage 1: Hardware Suggestions Hardware Platforms: Raspberry Pi A/B/B+/2 Beaglebone Black TP-Link MR3040* Wireless Adapters: Alfa Network AWUS036h TP-Link tl-wn722n* 19. HSNP: Data Requirements Clients Probe Requests Date which client appeared in the network Last seen in the network Access Points Probe Responses Time of Responses 20. HSNP: Data Schema 21. Where to get started? 22. Git the code! 23. https://github.com/roobixx/harbinger 24. HSNP: Sensor Code # git clone https://github.com/roobixx/harbinger.git # cd harbinger/ # ./harbinger.sh 25. HSNP: sensor.py 26. HSNP: db.py 27. HSNP: node.db 28. You have node(s) now what? 29. HSNP: Designing the Grid Do you need 100% coverage? 30. HSNP: Designing the Grid Questions to consider when deploying sensors Where are the choke points? Can a device in the grid be seen by multiple nodes? What happens if a node(s) goes down?? 31. HSNP: Deploying the Nodes Depending on how expansive your coverage area is will dictate how many nodes are required for your grid. 32. HSNP: Deploying the Nodes Start my surveying the landscape! Use Wigle or Kismet to map all Access Points within your desired coverage area You will use this data to fine tune your node placements 33. HSNP: Node Placement Determine the exact area you desire to cover Estimate where the choke points in your grid are at that require coverage. Test a sensor at each point looking for the Access Points that are within rang of the sensor Cross-reference the Wigle scan to determine your sensors effective range at current placement. 34. HSNP: Effective Range of Detection ERD will vary from sensor to sensor even if they are all the same hardware configuration 35. HSNP: Deploying the Nodes 36. ERD is highly variable and will change frequently. Constant calibration is require to maintain accurate data within the grid 37. Stage 2: Centralized Data Management Not a lot to say on this at this point but obviously being able to gather all of the sensor data into a single location for processing is necessary. 38. Stage 3: Analytics & Data Visualization Coming soon...? 39. Comments or Questions?