From bfabb0ddf4000ffb82fb594ac549e4d2083bd0a7 Mon Sep 17 00:00:00 2001 From: Zied Aouini Date: Mon, 16 Nov 2020 21:19:38 +0100 Subject: Add Virtual Asssitant (Alexa, Siri) support. (#1057) * Add AmazonAlexa protocol. * Add AmazonAlexa test file and result. * Include pcapng as file format. * Rename Category to VirtualAssistant. * Add AppleSiri virtual assistant. * Fix pcapng test files format support. Co-authored-by: Luca Deri --- src/include/ndpi_protocol_ids.h | 3 ++- src/include/ndpi_typedefs.h | 4 ++++ src/lib/ndpi_content_match.c.inc | 26 ++++++++++++++++++++++++++ src/lib/ndpi_main.c | 12 ++++++++---- 4 files changed, 40 insertions(+), 5 deletions(-) (limited to 'src') diff --git a/src/include/ndpi_protocol_ids.h b/src/include/ndpi_protocol_ids.h index dfacfa13f..6f12a6507 100644 --- a/src/include/ndpi_protocol_ids.h +++ b/src/include/ndpi_protocol_ids.h @@ -139,7 +139,7 @@ typedef enum { NDPI_PROTOCOL_FIESTA = 107, NDPI_PROTOCOL_FLORENSIA = 108, NDPI_PROTOCOL_GUILDWARS = 109, - NDPI_PROTOCOL_FREE110 = 110, /* Free */ + NDPI_PROTOCOL_AMAZON_ALEXA = 110, /* Zied Aouini */ NDPI_PROTOCOL_KERBEROS = 111, NDPI_PROTOCOL_LDAP = 112, NDPI_PROTOCOL_MAPLESTORY = 113, @@ -283,6 +283,7 @@ typedef enum { NDPI_PROTOCOL_WEBSOCKET = 251, /* Leonn Paiva */ NDPI_PROTOCOL_ANYDESK = 252, /* Toni Uhlig */ NDPI_PROTOCOL_SOAP = 253, /* Toni Uhlig */ + NDPI_PROTOCOL_APPLE_SIRI = 254, /* Zied Aouini */ #ifdef CUSTOM_NDPI_PROTOCOLS diff --git a/src/include/ndpi_typedefs.h b/src/include/ndpi_typedefs.h index 9cea5116c..4a871eee0 100644 --- a/src/include/ndpi_typedefs.h +++ b/src/include/ndpi_typedefs.h @@ -932,6 +932,10 @@ typedef enum { */ NDPI_PROTOCOL_CATEGORY_CONNECTIVITY_CHECK, NDPI_PROTOCOL_CATEGORY_IOT_SCADA, + /* + The category below is used for vocal assistance services. + */ + NDPI_PROTOCOL_CATEGORY_VIRTUAL_ASSISTANT, /* Some custom categories */ CUSTOM_CATEGORY_MINING = 99, diff --git a/src/lib/ndpi_content_match.c.inc b/src/lib/ndpi_content_match.c.inc index c2e257644..f375949a6 100644 --- a/src/lib/ndpi_content_match.c.inc +++ b/src/lib/ndpi_content_match.c.inc @@ -8616,6 +8616,7 @@ static ndpi_protocol_match host_match[] = { "itunes-apple.com", "AppleStore", NDPI_PROTOCOL_APPLESTORE, NDPI_PROTOCOL_CATEGORY_SW_UPDATE, NDPI_PROTOCOL_SAFE }, { "itunes.apple.com", "AppleiTunes", NDPI_PROTOCOL_APPLE_ITUNES, NDPI_PROTOCOL_CATEGORY_STREAMING, NDPI_PROTOCOL_FUN }, { "tlnk.io", "AppleiTunes", NDPI_PROTOCOL_APPLE_ITUNES, NDPI_PROTOCOL_CATEGORY_STREAMING, NDPI_PROTOCOL_FUN }, + { "guzzoni.apple.", "AppleSiri", NDPI_PROTOCOL_APPLE_SIRI, NDPI_PROTOCOL_CATEGORY_VIRTUAL_ASSISTANT, NDPI_PROTOCOL_ACCEPTABLE }, { ".wbagora.com", "Playstation", NDPI_PROTOCOL_PLAYSTATION, NDPI_PROTOCOL_CATEGORY_GAME, NDPI_PROTOCOL_UNRATED }, { ".wbplay.com", "Playstation", NDPI_PROTOCOL_PLAYSTATION, NDPI_PROTOCOL_CATEGORY_GAME, NDPI_PROTOCOL_UNRATED }, { ".xbox.com", "Xbox", NDPI_PROTOCOL_XBOX, NDPI_PROTOCOL_CATEGORY_GAME, NDPI_PROTOCOL_FUN }, @@ -9150,6 +9151,31 @@ static ndpi_protocol_match host_match[] = { "discord.gg", "Discord", NDPI_PROTOCOL_DISCORD, NDPI_PROTOCOL_CATEGORY_COLLABORATIVE, NDPI_PROTOCOL_ACCEPTABLE }, { "discord.media", "Discord", NDPI_PROTOCOL_DISCORD, NDPI_PROTOCOL_CATEGORY_COLLABORATIVE, NDPI_PROTOCOL_ACCEPTABLE }, + /* + Amazon Alexa services + */ + { "alexa.amazon.com", "AmazonAlexa", NDPI_PROTOCOL_AMAZON_ALEXA, NDPI_PROTOCOL_CATEGORY_VIRTUAL_ASSISTANT, NDPI_PROTOCOL_ACCEPTABLE }, + { "amazonalexa.com", "AmazonAlexa", NDPI_PROTOCOL_AMAZON_ALEXA, NDPI_PROTOCOL_CATEGORY_VIRTUAL_ASSISTANT, NDPI_PROTOCOL_ACCEPTABLE }, + { "avs-alexa-1-na.amazon.com", "AmazonAlexa", NDPI_PROTOCOL_AMAZON_ALEXA, NDPI_PROTOCOL_CATEGORY_VIRTUAL_ASSISTANT, NDPI_PROTOCOL_ACCEPTABLE }, + { "avs-alexa-2-na.amazon.com", "AmazonAlexa", NDPI_PROTOCOL_AMAZON_ALEXA, NDPI_PROTOCOL_CATEGORY_VIRTUAL_ASSISTANT, NDPI_PROTOCOL_ACCEPTABLE }, + { "avs-alexa-3-na.amazon.com", "AmazonAlexa", NDPI_PROTOCOL_AMAZON_ALEXA, NDPI_PROTOCOL_CATEGORY_VIRTUAL_ASSISTANT, NDPI_PROTOCOL_ACCEPTABLE }, + { "avs-alexa-4-na.amazon.com", "AmazonAlexa", NDPI_PROTOCOL_AMAZON_ALEXA, NDPI_PROTOCOL_CATEGORY_VIRTUAL_ASSISTANT, NDPI_PROTOCOL_ACCEPTABLE }, + { "avs-alexa-5-na.amazon.com", "AmazonAlexa", NDPI_PROTOCOL_AMAZON_ALEXA, NDPI_PROTOCOL_CATEGORY_VIRTUAL_ASSISTANT, NDPI_PROTOCOL_ACCEPTABLE }, + { "avs-alexa-6-na.amazon.com", "AmazonAlexa", NDPI_PROTOCOL_AMAZON_ALEXA, NDPI_PROTOCOL_CATEGORY_VIRTUAL_ASSISTANT, NDPI_PROTOCOL_ACCEPTABLE }, + { "avs-alexa-7-na.amazon.com", "AmazonAlexa", NDPI_PROTOCOL_AMAZON_ALEXA, NDPI_PROTOCOL_CATEGORY_VIRTUAL_ASSISTANT, NDPI_PROTOCOL_ACCEPTABLE }, + { "avs-alexa-8-na.amazon.com", "AmazonAlexa", NDPI_PROTOCOL_AMAZON_ALEXA, NDPI_PROTOCOL_CATEGORY_VIRTUAL_ASSISTANT, NDPI_PROTOCOL_ACCEPTABLE }, + { "avs-alexa-9-na.amazon.com", "AmazonAlexa", NDPI_PROTOCOL_AMAZON_ALEXA, NDPI_PROTOCOL_CATEGORY_VIRTUAL_ASSISTANT, NDPI_PROTOCOL_ACCEPTABLE }, + { "avs-alexa-10-na.amazon.com", "AmazonAlexa", NDPI_PROTOCOL_AMAZON_ALEXA, NDPI_PROTOCOL_CATEGORY_VIRTUAL_ASSISTANT, NDPI_PROTOCOL_ACCEPTABLE }, + { "avs-alexa-11-na.amazon.com", "AmazonAlexa", NDPI_PROTOCOL_AMAZON_ALEXA, NDPI_PROTOCOL_CATEGORY_VIRTUAL_ASSISTANT, NDPI_PROTOCOL_ACCEPTABLE }, + { "avs-alexa-12-na.amazon.com", "AmazonAlexa", NDPI_PROTOCOL_AMAZON_ALEXA, NDPI_PROTOCOL_CATEGORY_VIRTUAL_ASSISTANT, NDPI_PROTOCOL_ACCEPTABLE }, + { "avs-alexa-13-na.amazon.com", "AmazonAlexa", NDPI_PROTOCOL_AMAZON_ALEXA, NDPI_PROTOCOL_CATEGORY_VIRTUAL_ASSISTANT, NDPI_PROTOCOL_ACCEPTABLE }, + { "avs-alexa-14-na.amazon.com", "AmazonAlexa", NDPI_PROTOCOL_AMAZON_ALEXA, NDPI_PROTOCOL_CATEGORY_VIRTUAL_ASSISTANT, NDPI_PROTOCOL_ACCEPTABLE }, + { "avs-alexa-15-na.amazon.com", "AmazonAlexa", NDPI_PROTOCOL_AMAZON_ALEXA, NDPI_PROTOCOL_CATEGORY_VIRTUAL_ASSISTANT, NDPI_PROTOCOL_ACCEPTABLE }, + { "avs-alexa-16-na.amazon.com", "AmazonAlexa", NDPI_PROTOCOL_AMAZON_ALEXA, NDPI_PROTOCOL_CATEGORY_VIRTUAL_ASSISTANT, NDPI_PROTOCOL_ACCEPTABLE }, + { "avs-alexa-17-na.amazon.com", "AmazonAlexa", NDPI_PROTOCOL_AMAZON_ALEXA, NDPI_PROTOCOL_CATEGORY_VIRTUAL_ASSISTANT, NDPI_PROTOCOL_ACCEPTABLE }, + { "avs-alexa-18-na.amazon.com", "AmazonAlexa", NDPI_PROTOCOL_AMAZON_ALEXA, NDPI_PROTOCOL_CATEGORY_VIRTUAL_ASSISTANT, NDPI_PROTOCOL_ACCEPTABLE }, + { "avs-alexa-19-na.amazon.com", "AmazonAlexa", NDPI_PROTOCOL_AMAZON_ALEXA, NDPI_PROTOCOL_CATEGORY_VIRTUAL_ASSISTANT, NDPI_PROTOCOL_ACCEPTABLE }, + /* Tumblr social network service */ diff --git a/src/lib/ndpi_main.c b/src/lib/ndpi_main.c index a82b51a27..b77086313 100644 --- a/src/lib/ndpi_main.c +++ b/src/lib/ndpi_main.c @@ -1141,9 +1141,9 @@ static void ndpi_init_protocol_defaults(struct ndpi_detection_module_struct *ndp no_master, no_master, "Guildwars", NDPI_PROTOCOL_CATEGORY_GAME, ndpi_build_default_ports(ports_a, 0, 0, 0, 0, 0) /* TCP */, ndpi_build_default_ports(ports_b, 0, 0, 0, 0, 0) /* UDP */); - ndpi_set_proto_defaults(ndpi_str, NDPI_PROTOCOL_ACCEPTABLE, NDPI_PROTOCOL_FREE110, - 1 /* can_have_a_subprotocol */, no_master, no_master, "FREE110", - NDPI_PROTOCOL_CATEGORY_CLOUD, ndpi_build_default_ports(ports_a, 0, 0, 0, 0, 0) /* TCP */, + ndpi_set_proto_defaults(ndpi_str, NDPI_PROTOCOL_ACCEPTABLE, NDPI_PROTOCOL_AMAZON_ALEXA, + 1 /* can_have_a_subprotocol */, no_master, no_master, "AmazonAlexa", + NDPI_PROTOCOL_CATEGORY_VIRTUAL_ASSISTANT, ndpi_build_default_ports(ports_a, 0, 0, 0, 0, 0) /* TCP */, ndpi_build_default_ports(ports_b, 0, 0, 0, 0, 0) /* UDP */); ndpi_set_proto_defaults(ndpi_str, NDPI_PROTOCOL_ACCEPTABLE, NDPI_PROTOCOL_KERBEROS, 0 /* can_have_a_subprotocol */, no_master, no_master, "Kerberos", NDPI_PROTOCOL_CATEGORY_NETWORK, @@ -1510,6 +1510,10 @@ static void ndpi_init_protocol_defaults(struct ndpi_detection_module_struct *ndp no_master, no_master, "MongoDB", NDPI_PROTOCOL_CATEGORY_DATABASE, ndpi_build_default_ports(ports_a, 27017, 0, 0, 0, 0) /* TCP */, ndpi_build_default_ports(ports_b, 0, 0, 0, 0, 0) /* UDP */); + ndpi_set_proto_defaults(ndpi_str, NDPI_PROTOCOL_ACCEPTABLE, NDPI_PROTOCOL_APPLE_SIRI, + 1 /* can_have_a_subprotocol */, no_master, no_master, "AppleSiri", + NDPI_PROTOCOL_CATEGORY_VIRTUAL_ASSISTANT, ndpi_build_default_ports(ports_a, 0, 0, 0, 0, 0) /* TCP */, + ndpi_build_default_ports(ports_b, 0, 0, 0, 0, 0) /* UDP */); #ifdef CUSTOM_NDPI_PROTOCOLS #include "../../../nDPI-custom/custom_ndpi_main.c" @@ -1894,7 +1898,7 @@ static const char *categories[] = { "FileSharing", "ConnectivityCheck", "IoT-Scada", - "", + "VirtualAssistant", "", "", "", -- cgit v1.2.3