rtrimana [Wed, 15 Aug 2018 20:50:14 +0000 (13:50 -0700)]
Adding more devices
Janus Varmarken [Sat, 11 Aug 2018 20:34:52 +0000 (13:34 -0700)]
Implement a generic version of the sequence alignment algorithm from Kleinberg's and Tardo's 'Algorithm Design'
rtrimana [Thu, 9 Aug 2018 16:06:15 +0000 (09:06 -0700)]
Adding a new device: Lifx light bulb.
rtrimana [Wed, 8 Aug 2018 00:27:57 +0000 (17:27 -0700)]
Adding one more entry in clicker.sh and Main.java
rtrimana [Mon, 6 Aug 2018 21:38:48 +0000 (14:38 -0700)]
Adding Kwikset doorlock.
rtrimana [Mon, 6 Aug 2018 16:55:30 +0000 (09:55 -0700)]
Updating automation clicker.sh
rtrimana [Fri, 3 Aug 2018 23:36:27 +0000 (16:36 -0700)]
Merge branch 'master' of https://github.uci.edu/rtrimana/smart_home_traffic
rtrimana [Fri, 3 Aug 2018 23:36:03 +0000 (16:36 -0700)]
Changing Main.java
Janus Varmarken [Fri, 3 Aug 2018 23:31:52 +0000 (16:31 -0700)]
Added grouping of conversations by sequence identifeir
rtrimana [Fri, 3 Aug 2018 22:23:25 +0000 (15:23 -0700)]
Adding paths etc.
Janus Varmarken [Fri, 3 Aug 2018 21:35:27 +0000 (14:35 -0700)]
TrafficLabeler.java: provide functionality for extracting labeled traffic grouped by hostname.
Main.java: add + update filepaths; add code for grouping ONs and OFFs sequence counts.
TriggerTrafficExtractor.java: change inclusion window to 20 seconds.
UserAction.java: overwrite toString() for debugging purposes.
Janus Varmarken [Thu, 2 Aug 2018 23:37:29 +0000 (16:37 -0700)]
TrafficLabeler.java: implemented support for exporting the labeled traffic in different representations (for example as reassembled TCP conversations).
Main.java: invoke TrafficLabeler to get the set of TCP conversations per user action.
TriggerTrafficExtractor.java: change inclusion interval to 10 seconds.
Janus Varmarken [Thu, 2 Aug 2018 01:12:27 +0000 (18:12 -0700)]
Main.java: add paths to Wemo data files
Janus Varmarken [Thu, 2 Aug 2018 00:31:07 +0000 (17:31 -0700)]
Main.java: add paths to TP-Link Bulb data
Janus Varmarken [Thu, 2 Aug 2018 00:05:08 +0000 (17:05 -0700)]
invoke TrafficLabeler from Main.java (ignoring results for now)
Janus Varmarken [Wed, 1 Aug 2018 21:32:27 +0000 (14:32 -0700)]
First attempt at labeling traffic with user actions
rtrimana [Wed, 1 Aug 2018 20:27:33 +0000 (13:27 -0700)]
Updating the automation script clicker.sh
rtrimana [Tue, 31 Jul 2018 23:40:51 +0000 (16:40 -0700)]
Merge branch 'master' of https://github.uci.edu/rtrimana/smart_home_traffic
Janus Varmarken [Fri, 27 Jul 2018 19:22:17 +0000 (12:22 -0700)]
TcpConversationUtils.java and Main.java: add support for counting packet pair frequencies per hostname; switch filepaths to point to D-Link files.
Janus Varmarken [Fri, 27 Jul 2018 01:17:53 +0000 (18:17 -0700)]
Main.java: change filepaths to point to TPLink july experiment.
Janus Varmarken [Fri, 27 Jul 2018 01:16:14 +0000 (18:16 -0700)]
TriggerTrafficExtractor.java: simplify packet inclusion logic (shouldIncludePacket) -- NOTE: this comes with a high cost as it is an inefficient implementation compared to the previous one -- revert to previous implementation once its correctness has been verified.
Janus Varmarken [Fri, 27 Jul 2018 01:02:41 +0000 (18:02 -0700)]
TriggerTimesFileReader.java: use try-with such that trigger times file is properly closed after use
Janus Varmarken [Thu, 26 Jul 2018 23:00:50 +0000 (16:00 -0700)]
Upate date format to match format used in timestamp files produced by experiment script
Janus Varmarken [Thu, 26 Jul 2018 22:34:36 +0000 (15:34 -0700)]
Main.java: re-add counting of statistics using TcpConversationUtils
Janus Varmarken [Thu, 26 Jul 2018 22:02:09 +0000 (15:02 -0700)]
Main.java: cleanup - leave only code for extracting traffic generated by a device within x seconds of a trigger
Janus Varmarken [Thu, 26 Jul 2018 21:50:42 +0000 (14:50 -0700)]
Main.java: cleanup - get rid of old, commented sample/debug code
Janus Varmarken [Thu, 26 Jul 2018 21:47:05 +0000 (14:47 -0700)]
Main.java: delete code that would compute statistics of conversations (now in separate class)
Janus Varmarken [Thu, 26 Jul 2018 20:43:51 +0000 (13:43 -0700)]
TcpConversationUtils.java: add some utility functions for counting frequencies (of packet lengths)
Janus Varmarken [Thu, 26 Jul 2018 00:03:30 +0000 (17:03 -0700)]
TcpConversationUtils.java: added Javadoc
rtrimana [Wed, 25 Jul 2018 23:10:52 +0000 (16:10 -0700)]
Merge branch 'master' of https://github.uci.edu/rtrimana/smart_home_traffic
rtrimana [Wed, 25 Jul 2018 23:10:30 +0000 (16:10 -0700)]
Adding coordinates for the SmartThings app button.
Janus Varmarken [Wed, 25 Jul 2018 23:10:24 +0000 (16:10 -0700)]
TcpReassembler.java: bugfix: make mTerminatedConversations a list instead of prevent older conversations from being overwritten when an ephemeral port number is reused in communication between the same two hosts
Janus Varmarken [Wed, 25 Jul 2018 22:16:21 +0000 (15:16 -0700)]
Implement grouping of conversations by hostname
Janus Varmarken [Tue, 24 Jul 2018 23:20:38 +0000 (16:20 -0700)]
Main.java: count packet length frequencies and packet sequence frequencies; use 24+h tplink pcap file
Janus Varmarken [Tue, 24 Jul 2018 21:41:16 +0000 (14:41 -0700)]
PcapHandleReader: count and print (to std.err) the number of packets that appear out of order
rtrimana [Tue, 24 Jul 2018 18:01:12 +0000 (11:01 -0700)]
Merge branch 'master' of https://github.uci.edu/rtrimana/smart_home_traffic
rtrimana [Tue, 24 Jul 2018 18:00:49 +0000 (11:00 -0700)]
Adding more formatting/information into clicker.sh script.
Janus Varmarken [Tue, 24 Jul 2018 00:41:27 +0000 (17:41 -0700)]
Added script for prepending dates to the timestamp files
Janus Varmarken [Mon, 23 Jul 2018 21:37:42 +0000 (14:37 -0700)]
Main.java: extracting pairs related to events.tplinkra.com
Janus Varmarken [Mon, 23 Jul 2018 21:10:55 +0000 (14:10 -0700)]
Make DnsMap implement PacketListener in order to allow it to be used with PcapHandleReader
Janus Varmarken [Mon, 23 Jul 2018 20:57:36 +0000 (13:57 -0700)]
Main.java: perform TCP reassembly and extract packet pairs.
Janus Varmarken [Fri, 20 Jul 2018 21:39:54 +0000 (14:39 -0700)]
Cleanup: Refactor PcapHandleReader to io package.
Janus Varmarken [Fri, 20 Jul 2018 21:20:12 +0000 (14:20 -0700)]
Correct TcpReassembler to implement PacketListener interface instead of PcapPacketConsumer interface deleted in last commit. Remove import of deleted PcapProcessingPipeline in Main.java
Janus Varmarken [Fri, 20 Jul 2018 21:18:13 +0000 (14:18 -0700)]
Delete PcapReader.java, PcapProcessingPipeline.java and PcapPacketConsumer.java
Janus Varmarken [Fri, 20 Jul 2018 20:50:59 +0000 (13:50 -0700)]
Perform trigger traffic extraction on data from Feb 13 experiment
Janus Varmarken [Fri, 20 Jul 2018 00:43:41 +0000 (17:43 -0700)]
Move trigger time file reader to separate class and convert to Java 8 time instead of deprecated java date-time api.
Janus Varmarken [Thu, 19 Jul 2018 04:35:24 +0000 (21:35 -0700)]
Javadoc for PcapHandleReader constructor.
Janus Varmarken [Thu, 19 Jul 2018 04:12:04 +0000 (21:12 -0700)]
TriggerTrafficExtractor: clean up
Janus Varmarken [Thu, 19 Jul 2018 04:09:18 +0000 (21:09 -0700)]
Some work-in-progress code for extracting trigger traffic
Janus Varmarken [Wed, 18 Jul 2018 01:57:17 +0000 (18:57 -0700)]
Sketch code for extracting packet pairs (unfinished - unsure how to apply it to reconstructed tcp conversations).
Janus Varmarken [Wed, 18 Jul 2018 01:56:07 +0000 (18:56 -0700)]
TcpReassembler: Provide method for retreiving reassembled conversations
Janus Varmarken [Wed, 18 Jul 2018 01:54:51 +0000 (18:54 -0700)]
PcapReader: provide parameter for specifying a Berkeley Packet Filter
Janus Varmarken [Wed, 18 Jul 2018 01:53:30 +0000 (18:53 -0700)]
Move PcapProcessingPipeline to different package.
Janus Varmarken [Wed, 18 Jul 2018 01:52:52 +0000 (18:52 -0700)]
Conversation: ensure packets are added to list in descending order of their timestamps.
Janus Varmarken [Fri, 13 Jul 2018 23:52:32 +0000 (16:52 -0700)]
Code for reassembling TCP streams. Not thoroughly tested, but seems to work for a simple, small pcap file
Janus Varmarken [Wed, 11 Jul 2018 22:24:46 +0000 (15:24 -0700)]
Add code for recording SYN packets in Conversation.
Janus Varmarken [Wed, 11 Jul 2018 02:30:30 +0000 (19:30 -0700)]
Bug-fix: Use seperate, direction-dependent sets of sequence numbers (used when determining if a segment is a retransmission) as client and server may (after a while) end up using a sequence number that the other party has already used for sending a packet in the opposite direction.
Janus Varmarken [Fri, 6 Jul 2018 22:19:31 +0000 (15:19 -0700)]
Experimenting with reverse engineered TP-link API
rtrimana [Fri, 6 Jul 2018 21:47:42 +0000 (14:47 -0700)]
A few more changes for capturing pairs.
rtrimana [Mon, 18 Jun 2018 21:55:19 +0000 (14:55 -0700)]
Adding timestamp checks into the packet filtering for obtaining datapoints.
rtrimana [Fri, 15 Jun 2018 18:29:37 +0000 (11:29 -0700)]
Getting pairs of packets from the client-server communications.
rtrimana [Mon, 4 Jun 2018 23:36:34 +0000 (16:36 -0700)]
Merge branch 'master' of https://github.uci.edu/rtrimana/smart_home_traffic
rtrimana [Mon, 4 Jun 2018 23:36:11 +0000 (16:36 -0700)]
Using adb to click automatically on Android app; enabling automation
Janus Varmarken [Sun, 20 May 2018 00:39:53 +0000 (17:39 -0700)]
First (rushed) implementation of pattern seach at the MAC layer. Not pretty, but seems functional.
Janus Varmarken [Sun, 20 May 2018 00:36:31 +0000 (17:36 -0700)]
correct typo
Janus Varmarken [Fri, 11 May 2018 05:12:13 +0000 (22:12 -0700)]
Added sub sequence search function, and put this into effect; seems to work just fine. Added subset pcap trace of TP_LINK_LOCAL_ON.
Janus Varmarken [Fri, 11 May 2018 04:12:05 +0000 (21:12 -0700)]
Clean up
Janus Varmarken [Fri, 11 May 2018 04:11:34 +0000 (21:11 -0700)]
Put checks for explicit termination of conversation to use in FlowPatternFinder.
Janus Varmarken [Fri, 11 May 2018 02:38:49 +0000 (19:38 -0700)]
add method for checking if a Conversation has been gracefully shut down.
Janus Varmarken [Fri, 11 May 2018 02:22:05 +0000 (19:22 -0700)]
Prepare a data structure for keeping track of FIN and their corresponding ACK packets. This is to be used for detecting when a connection is (gracefully) shut down.
Janus Varmarken [Thu, 10 May 2018 22:36:32 +0000 (15:36 -0700)]
fix typo in javadoc keyword
rtrimana [Fri, 4 May 2018 21:10:03 +0000 (14:10 -0700)]
Adding feature to hold multiple hostnames and lists of packet orders in FlowPattern, but keeping the old method of searching patterns (i.e. just one hostname and one pattern) for now---need to think more carefully so that we won't break stuff.
Janus Varmarken [Fri, 4 May 2018 08:17:16 +0000 (01:17 -0700)]
Merge branch 'master' of https://github.uci.edu/rtrimana/smart_home_traffic
# Conflicts:
# Code/Projects/SmartPlugDetector/src/main/java/edu/uci/iotproject/FlowPatternFinder.java
# Code/Projects/SmartPlugDetector/src/main/java/edu/uci/iotproject/Main.java
Janus Varmarken [Fri, 4 May 2018 08:05:27 +0000 (01:05 -0700)]
Clean up + read filename from program args; default to Rahmadi's hardcoded test file if no program args provided.
Janus Varmarken [Fri, 4 May 2018 08:00:44 +0000 (01:00 -0700)]
Major revamp of FlowPatternFinder to ensure thread safety. Added generic structure for comparison code which should allow for easy plugin of more sophisticated comparison algorithm later on.
Janus Varmarken [Fri, 4 May 2018 07:57:13 +0000 (00:57 -0700)]
Move retransmission checks to Conversation class.
rtrimana [Fri, 4 May 2018 00:02:16 +0000 (17:02 -0700)]
Adding pre-processing for training set---we take packet lengths directly from a training set pcap file for FlowPattern.
Janus Varmarken [Fri, 4 May 2018 00:02:11 +0000 (17:02 -0700)]
Add getPackets to Conversation's API.
Janus Varmarken [Thu, 3 May 2018 23:41:59 +0000 (16:41 -0700)]
Extract Conversation to separate file (i.e. it is no longer an inner class). Add List of associated packets to Conversation class. Add Javadoc. Reformat variable names to match android convetions (indicating member variables by prefixing these with 'm').
rtrimana [Wed, 2 May 2018 23:58:50 +0000 (16:58 -0700)]
Adding pcap files for remote ON and remote ON charging cases.
rtrimana [Wed, 2 May 2018 23:10:24 +0000 (16:10 -0700)]
Adding combined PCAP (local and remote) to test out the algorithm- it successfully detects the only pattern specified in the FlowPattern class.
rtrimana [Wed, 2 May 2018 23:04:43 +0000 (16:04 -0700)]
Separating pattern collection and analysis into 2 different threads.
rtrimana [Wed, 2 May 2018 00:41:59 +0000 (17:41 -0700)]
Making retransmission check O(1) using HashSet/Set.
rtrimana [Tue, 1 May 2018 23:53:21 +0000 (16:53 -0700)]
Refactoring and restructuring - Adding DnsMap class
Janus Varmarken [Sun, 29 Apr 2018 07:49:12 +0000 (00:49 -0700)]
Filter out retransmissions when reconstructing TCP flows. Now able to detect all local ON events in wlan1.local.dns.pcap.
Janus Varmarken [Sun, 29 Apr 2018 03:34:58 +0000 (20:34 -0700)]
Update pcap4j to v2.0.0-alpha to get access to packet timestamps (and possibly TCP session reassembly at a later stage). Now prints the timestamp for the occurrence of a complete match in the trace.
Janus Varmarken [Sun, 29 Apr 2018 03:01:20 +0000 (20:01 -0700)]
1) Skip zero-payload packets when reassemlbing conversations from individual packets. 2) Hardcode TP-Link Local ON pattern. 3) Rushed implementation that finds complete matches of the pattern.
Janus Varmarken [Sun, 29 Apr 2018 01:46:40 +0000 (18:46 -0700)]
First small step towards pattern search: separate packets related to packet into separate lists, one list for each conversation/session.
Janus Varmarken [Fri, 27 Apr 2018 23:56:44 +0000 (16:56 -0700)]
Converted IP to hostname map from Map<String,List<String>> to Map<String,Set<String>> to prevent multiple entries of the same hostname showing up for the same IP. Added some javadoc. Removed KataiStruct packet representations.
Janus Varmarken [Fri, 27 Apr 2018 23:37:00 +0000 (16:37 -0700)]
Add functional code that loads a pcap file and constructs the IP->hostname map/dictionary. Note that the map is actually of type Map<String, List<String>> as the trace contains cases where ONE IP maps to MULTIPLE hostnames. Bug in current implementation: the map should be changed to Map<String, Set<String>> to prevent the same hostname from showing up in the list multiple times (occurs when a set of DNS queries return the same IP).
rtrimana [Thu, 26 Apr 2018 22:31:26 +0000 (15:31 -0700)]
Kaitai parser half baked; there seems to be a problem with the parsing of DNS packets (missing type A addresses in the data structure).
rtrimana [Thu, 26 Apr 2018 17:52:01 +0000 (10:52 -0700)]
Managed to pick and parse DNS packets; but, still need to get the detailed information from inside the packet.
rtrimana [Thu, 26 Apr 2018 00:42:55 +0000 (17:42 -0700)]
Reading and parsing through packets; handling unwanted packets; ready to create a good parser to create a nice data structure.
rtrimana [Wed, 25 Apr 2018 18:55:48 +0000 (11:55 -0700)]
Skipping packets that do not have etherType, e.g. XID, EAPOL, etc.
rtrimana [Wed, 25 Apr 2018 01:00:55 +0000 (18:00 -0700)]
Fixing build flow (broken because of a missing return statement).
rtrimana [Wed, 25 Apr 2018 00:51:26 +0000 (17:51 -0700)]
Resolving merge conflict in Main.java
rtrimana [Wed, 25 Apr 2018 00:49:45 +0000 (17:49 -0700)]
Adding the Kaitai library to parse PCAP files.
Janus Varmarken [Tue, 24 Apr 2018 18:04:38 +0000 (11:04 -0700)]
add notes
Janus Varmarken [Tue, 24 Apr 2018 16:48:07 +0000 (09:48 -0700)]
apply application plugin
Janus Varmarken [Tue, 24 Apr 2018 16:30:40 +0000 (09:30 -0700)]
add project for Smart Plug detection