From c0286bca3f4c1a2f09e9973243bf9bebcf5095ee Mon Sep 17 00:00:00 2001 From: v-rusraut Date: Mon, 4 Sep 2023 11:19:28 +0530 Subject: [PATCH 1/5] Repackaging - vArmour Application Controller(MMA to AMA Migration) --- .../Connector_vArmour_AppController_CEF.json | 2 +- ...onnector_vArmour_AppController_CEFAMA.json | 141 ++++++++++++++++++ .../Data/Solution_vArmour.json | 7 +- 3 files changed, 146 insertions(+), 4 deletions(-) create mode 100644 Solutions/vArmour Application Controller/Data Connectors/template_Connector_vArmour_AppController_CEFAMA.json diff --git a/Solutions/vArmour Application Controller/Data Connectors/Connector_vArmour_AppController_CEF.json b/Solutions/vArmour Application Controller/Data Connectors/Connector_vArmour_AppController_CEF.json index 9ea48ac6534..db144ddf21b 100644 --- a/Solutions/vArmour Application Controller/Data Connectors/Connector_vArmour_AppController_CEF.json +++ b/Solutions/vArmour Application Controller/Data Connectors/Connector_vArmour_AppController_CEF.json @@ -1,6 +1,6 @@ { "id": "vArmourAC", - "title": " vArmour Application Controller", + "title": "[Deprecated] vArmour Application Controller via Legacy Agent", "publisher": "vArmour", "descriptionMarkdown": "vArmour reduces operational risk and increases cyber resiliency by visualizing and controlling application relationships across the enterprise. This vArmour connector enables streaming of Application Controller Violation Alerts into Microsoft Sentinel, so you can take advantage of search & correlation, alerting, & threat intelligence enrichment for each log.", "graphQueries": [ diff --git a/Solutions/vArmour Application Controller/Data Connectors/template_Connector_vArmour_AppController_CEFAMA.json b/Solutions/vArmour Application Controller/Data Connectors/template_Connector_vArmour_AppController_CEFAMA.json new file mode 100644 index 00000000000..c2b7cfd2c96 --- /dev/null +++ b/Solutions/vArmour Application Controller/Data Connectors/template_Connector_vArmour_AppController_CEFAMA.json @@ -0,0 +1,141 @@ +{ + "id": "vArmourAC", + "title":"[Recommended] vArmour Application Controller via AMA", + "publisher": "vArmour", + "descriptionMarkdown": "vArmour reduces operational risk and increases cyber resiliency by visualizing and controlling application relationships across the enterprise. This vArmour connector enables streaming of Application Controller Violation Alerts into Microsoft Sentinel, so you can take advantage of search & correlation, alerting, & threat intelligence enrichment for each log.", + "graphQueries": [ + { + "metricName": "Total data received", + "legend": "vArmour", + "baseQuery": "CommonSecurityLog\n |where DeviceVendor =~ 'vArmour'\n |where DeviceProduct =~ 'AC'\n |extend sent_by_ama = column_ifexists('CollectorHostName','')\n |where isnotempty(sent_by_ama)" + } + ], + "sampleQueries": [ + { + "description" : "Top 10 App to App violations", + "query": "CommonSecurityLog\n| where DeviceVendor == \"vArmour\"\n| where DeviceProduct == \"AC\"\n| where Activity == \"POLICY_VIOLATION\"\n| extend AppNameSrcDstPair = extract_all(\"AppName=;(\\\\w+)\", AdditionalExtensions)\n| summarize count() by tostring(AppNameSrcDstPair)\n| top 10 by count_\n" + }, + { + "description" : "Top 10 Policy names matching violations", + "query": "CommonSecurityLog\n| where DeviceVendor == \"vArmour\"\n| where DeviceProduct == \"AC\"\n| where Activity == \"POLICY_VIOLATION\"\n| summarize count() by DeviceCustomString1\n| top 10 by count_ desc\n" + }, + { + "description" : "Top 10 Source IPs generating violations", + "query": "CommonSecurityLog\n| where DeviceVendor == \"vArmour\"\n| where DeviceProduct == \"AC\"\n| where Activity == \"POLICY_VIOLATION\"\n| summarize count() by SourceIP\n| top 10 by count_\n" + }, + { + "description" : "Top 10 Destination IPs generating violations", + "query": "CommonSecurityLog\n| where DeviceVendor == \"vArmour\"\n| where DeviceProduct == \"AC\"\n| where Activity == \"POLICY_VIOLATION\"\n| summarize count() by DestinationIP\n| top 10 by count_\n" + }, + { + "description" : "Top 10 Application Protocols matching violations", + "query": "CommonSecurityLog\n| where DeviceVendor == \"vArmour\"\n| where DeviceProduct == \"AC\"\n| where Activity == \"POLICY_VIOLATION\"\n| summarize count() by ApplicationProtocol\n| top 10 by count_\n" + } + + ], + "dataTypes": [ + { + "name": "CommonSecurityLog (vArmour)", + "lastDataReceivedQuery": "CommonSecurityLog\n |where DeviceVendor =~ 'vArmour'\n |where DeviceProduct =~ 'AC'\n |extend sent_by_ama = column_ifexists('CollectorHostName','')\n |where isnotempty(sent_by_ama)\n | summarize Time = max(TimeGenerated)\n | where isnotempty(Time)" + } + ], + "connectivityCriterias": [ + { + "type": "IsConnectedQuery", + "value": [ + "CommonSecurityLog\n |where DeviceVendor =~ 'vArmour'\n |where DeviceProduct =~ 'AC'\n |extend sent_by_ama = column_ifexists('CollectorHostName','')\n |where isnotempty(sent_by_ama)\n | summarize LastLogReceived = max(TimeGenerated)\n | project IsConnected = LastLogReceived > ago(30d)" + ] + } + ], + "availability": { + "status": 1, + "isPreview": false + }, + "permissions": { + "resourceProvider": [ + { + "provider": "Microsoft.OperationalInsights/workspaces", + "permissionsDisplayText": "read and write permissions are required.", + "providerDisplayName": "Workspace", + "scope": "Workspace", + "requiredPermissions": { + "read": true, + "write": true, + "delete": true + } + }, + { + "provider": "Microsoft.OperationalInsights/workspaces/sharedKeys", + "permissionsDisplayText": "read permissions to shared keys for the workspace are required. [See the documentation to learn more about workspace keys](https://docs.microsoft.com/azure/azure-monitor/platform/agent-windows#obtain-workspace-id-and-key).", + "providerDisplayName": "Keys", + "scope": "Workspace", + "requiredPermissions": { + "action": true + } + } + ], + "customs": [ + { + "description": "To collect data from non-Azure VMs, they must have Azure Arc installed and enabled. [Learn more](https://docs.microsoft.com/azure/azure-monitor/agents/azure-monitor-agent-install?tabs=ARMAgentPowerShell,PowerShellWindows,PowerShellWindowsArc,CLIWindows,CLIWindowsArc)" + }, + { + "description": "Common Event Format (CEF) via AMA and Syslog via AMA data connectors must be installed [Learn more](https://learn.microsoft.com/azure/sentinel/connect-cef-ama#open-the-connector-page-and-create-the-dcr)" + } + ] + }, + "instructionSteps": [ + { + "title": "", + "description": "Install and configure the Linux agent to collect your Common Event Format (CEF) Syslog messages and forward them to Microsoft Sentinel.\n\n> Notice that the data from all regions will be stored in the selected workspace", + "instructions": [ + { + "parameters": { + "title": "1. Kindly follow the steps to configure the data connector", + "instructionSteps": [ + { + "title": "Step A. Configure the Common Event Format (CEF) via AMA data connector", + "description": "_Note:- CEF logs are collected only from Linux Agents_\n\n1. Navigate to Microsoft Sentinel workspace ---> configuration ---> Data connector blade .\n\n2. Search for 'Common Event Format (CEF) via AMA' data connector and open it.\n\n3. Check If there is no existing DCR configured to collect required facility of logs, Create a new DCR (Data Collection Rule)\n\n\t_Note:- It is recommended to install minimum 1.27 version of AMA agent [Learn more](https://learn.microsoft.com/azure/azure-monitor/agents/azure-monitor-agent-manage?tabs=azure-portal ) and ensure there is no duplicate DCR as it can cause log duplicacy_\n\n4. Run the command provided in the CEF via AMA data connector page to configure the CEF collector on the machine", + "instructions": [ + ] + }, + { + "title": "Step B. Configure the vArmour Application Controller to forward Common Event Format (CEF) logs to the Syslog agent", + "description": "Send Syslog messages in CEF format to the proxy machine. Make sure you to send the logs to port 514 TCP on the machine's IP address.", + "innerSteps": [ + { + "title": "1 Download the vArmour Application Controller user guide", + "description": "Download the user guide from https://support.varmour.com/hc/en-us/articles/360057444831-vArmour-Application-Controller-6-0-User-Guide." + }, + { + "title": "2 Configure the Application Controller to Send Policy Violations", + "description": "In the user guide - refer to \"Configuring Syslog for Monitoring and Violations\" and follow steps 1 to 3." + } + ] + }, + { + "title": "Step C. Validate connection", + "description": "Follow the instructions to validate your connectivity:\n\nOpen Log Analytics to check if the logs are received using the CommonSecurityLog schema.\n\nIt may take about 20 minutes until the connection streams data to your workspace.\n\nIf the logs are not received, run the following connectivity validation script:\n\n 1. Make sure that you have Python on your machine using the following command: python -version\n\n2. You must have elevated permissions (sudo) on your machine", + "instructions": [ + { + "parameters": { + "label": "Run the following command to validate your connectivity:", + "value": "sudo wget -O Sentinel_AMA_troubleshoot.py https://raw.githubusercontent.com/Azure/Azure-Sentinel/master/DataConnectors/Syslog/Sentinel_AMA_troubleshoot.py&&sudo python Sentinel_AMA_troubleshoot.py --cef" + }, + "type": "CopyableLabel" + } + ] + } + ] + }, + "type": "InstructionStepsGroup" + } + ] + }, + + + { + "title": "2. Secure your machine ", + "description": "Make sure to configure the machine's security according to your organization's security policy\n\n\n[Learn more >](https://aka.ms/SecureCEF)" + } + ] +} diff --git a/Solutions/vArmour Application Controller/Data/Solution_vArmour.json b/Solutions/vArmour Application Controller/Data/Solution_vArmour.json index b9bd99306e4..5db25fb8ee9 100644 --- a/Solutions/vArmour Application Controller/Data/Solution_vArmour.json +++ b/Solutions/vArmour Application Controller/Data/Solution_vArmour.json @@ -2,9 +2,10 @@ "Name": "vArmour Application Controller", "Author": "vArmour", "Logo": "", - "Description": "This vArmour solution enables streaming of Application Controller Violation Alerts into Microsoft Sentinel, so you can take advantage of search & correlation, alerting, & threat intelligence enrichment for each log.\n\n**Underlying Microsoft Technologies used:**\n\nThis solution takes a dependency on the following technologies, and some of these dependencies either may be in [Preview](https://azure.microsoft.com/support/legal/preview-supplemental-terms/) state or might result in additional ingestion or operational costs:\n\n a. [Agent-based log collection (CEF over Syslog)](https://docs.microsoft.com/azure/sentinel/connect-common-event-format)", + "Description": "This vArmour solution enables streaming of Application Controller Violation Alerts into Microsoft Sentinel, so you can take advantage of search & correlation, alerting, & threat intelligence enrichment for each log.\n\r\n1. **vArmour Application Controller via AMA** - This data connector helps in ingesting OSSEC logs into your Log Analytics Workspace using the new Azure Monitor Agent. Learn more about ingesting using the new Azure Monitor Agent [here](https://learn.microsoft.com/azure/sentinel/connect-cef-ama). **Microsoft recommends using this Data Connector**.\n\r\n2. **vArmour Application Controller via Legacy Agent** - This data connector helps in ingesting vArmour Application Controller logs into your Log Analytics Workspace using the legacy Log Analytics agent.\n\n**NOTE:** Microsoft recommends installation of vArmour Application Controller via AMA Connector. Legacy connector uses the Log Analytics agent which is about to be deprecated by **Aug 31, 2024,** and thus should only be installed where AMA is not supported. Using MMA and AMA on same machine can cause log duplication and extra ingestion cost [more details](https://learn.microsoft.com/en-us/azure/sentinel/ama-migrate).", "Data Connectors": [ - "Data Connectors/Connector_vArmour_AppController_CEF.json" + "Data Connectors/Connector_vArmour_AppController_CEF.json", + "Data Connectors/template_Connector_vArmour_AppController_CEFAMA.json" ], "Workbooks": [ "Workbooks/vArmour_AppContoller_Workbook.json" @@ -13,7 +14,7 @@ "Analytic Rules/vArmourApplicationControllerSMBRealmTraversal.yaml" ], "BasePath": "C:\\GitHub\\Azure-Sentinel\\Solutions\\vArmour Application Controller", - "Version": "2.0.0", + "Version": "3.0.0", "Metadata": "SolutionMetadata.json", "TemplateSpec": true, "Is1Pconnector": false From 40e49e3a7fe6153ec47c6177fb71d9751d0696ec Mon Sep 17 00:00:00 2001 From: Github Bot Date: Mon, 4 Sep 2023 05:59:20 +0000 Subject: [PATCH 2/5] [skip ci] Github Bot Added package to Pull Request! --- .../Data/system_generated_metadata.json | 31 + .../Package/3.0.0.zip | Bin 0 -> 10748 bytes .../Package/createUiDefinition.json | 27 +- .../Package/mainTemplate.json | 553 +++++++++++++++--- 4 files changed, 523 insertions(+), 88 deletions(-) create mode 100644 Solutions/vArmour Application Controller/Data/system_generated_metadata.json create mode 100644 Solutions/vArmour Application Controller/Package/3.0.0.zip diff --git a/Solutions/vArmour Application Controller/Data/system_generated_metadata.json b/Solutions/vArmour Application Controller/Data/system_generated_metadata.json new file mode 100644 index 00000000000..1edb6a6ea54 --- /dev/null +++ b/Solutions/vArmour Application Controller/Data/system_generated_metadata.json @@ -0,0 +1,31 @@ +{ + "Name": "vArmour Application Controller", + "Author": "vArmour", + "Logo": "", + "Description": "This vArmour solution enables streaming of Application Controller Violation Alerts into Microsoft Sentinel, so you can take advantage of search & correlation, alerting, & threat intelligence enrichment for each log.\n\r\n1. **vArmour Application Controller via AMA** - This data connector helps in ingesting OSSEC logs into your Log Analytics Workspace using the new Azure Monitor Agent. Learn more about ingesting using the new Azure Monitor Agent [here](https://learn.microsoft.com/azure/sentinel/connect-cef-ama). **Microsoft recommends using this Data Connector**.\n\r\n2. **vArmour Application Controller via Legacy Agent** - This data connector helps in ingesting vArmour Application Controller logs into your Log Analytics Workspace using the legacy Log Analytics agent.\n\n**NOTE:** Microsoft recommends installation of vArmour Application Controller via AMA Connector. Legacy connector uses the Log Analytics agent which is about to be deprecated by **Aug 31, 2024,** and thus should only be installed where AMA is not supported. Using MMA and AMA on same machine can cause log duplication and extra ingestion cost [more details](https://learn.microsoft.com/en-us/azure/sentinel/ama-migrate).", + "BasePath": "C:\\GitHub\\Azure-Sentinel\\Solutions\\vArmour Application Controller", + "Version": "3.0.0", + "Metadata": "SolutionMetadata.json", + "TemplateSpec": true, + "Is1Pconnector": false, + "publisherId": "varmournetworks", + "offerId": "varmour_sentinel", + "providers": [ + "vArmour" + ], + "categories": { + "domains": [ + "IT Operations" + ], + "verticals": [] + }, + "firstPublishDate": "2022-06-01", + "support": { + "name": "vArmour Networks", + "tier": "Partner", + "link": "https://www.varmour.com/contact-us/" + }, + "Data Connectors": "[\n \"Data Connectors/Connector_vArmour_AppController_CEF.json\",\n \"Data Connectors/template_Connector_vArmour_AppController_CEFAMA.json\"\n]", + "Workbooks": "[\n \"Workbooks/vArmour_AppContoller_Workbook.json\"\n]", + "Analytic Rules": "[\n \"vArmourApplicationControllerSMBRealmTraversal.yaml\"\n]" +} diff --git a/Solutions/vArmour Application Controller/Package/3.0.0.zip b/Solutions/vArmour Application Controller/Package/3.0.0.zip new file mode 100644 index 0000000000000000000000000000000000000000..d6219f15b873723ed70394ad2b40d2f7f932989f GIT binary patch literal 10748 zcmZ{KRZty3lqK%&?(WXx;qLD4!5;1qAh^4`ySqzp_uvk}B{&3|%+AN`&en9Fu6s{+ z*Zu2Tr@D@cJR}qr7#J8Fm^CYv_R7vFdk-8K*d-Yl81BDaa~DffH%m<$3CnLb4mNH! zjt(rgu8s~@y1tHw9q3=e`DS}UX0S;)CCqwEU7mlaqc6ZGuFR4*CDCEQnHO*f<(3mu zdOPj=e61?lnNFP3uUaJo$s#NEdro-8&+kbFPTOf>ya%P~O|bN{Gqsm&8ZoGtEE)6u zEW=!u8{Cs=$iB`hpavK3t<7;6BlczHSH*3 zWtXR%;En|17HUZ`+q1dW=p!L)aIeCwquEPq-13-bQEyQoV|*XQHbB(u!m9p@uO0GA z=WhlaY^6>P^ZgYK%}K$>rR!bm5a^Eeu*hq;@s4ExX86(x?mY{0^Anpcj*xdT|TNX-PWGJfm-}(UJAG zPUTtRY*kz0cIEerL=DufKQ4}q0L65DyehBLE+<55f-c7DkIw`I0WU_npXYmE4lL$% zd{mbxI7D?0>aDV(c*(A=f^{+G?RZX{+@()tiyNxA!l-nJFFY9pt}RZ0ycZD=fg3*Tq~QN6mPss3e&Se=}MOK$C_f zjT|76){3IjH7hYz4DONpcBu1(FhNf_@HJS^s6}TgZXsI%WA>lX7;3$LE4s6C%Rhb7f7$D~b_K$DjsSl@N6>(aZ579Cwccc zFlVvTXzucA=^Xcw6qU&f|1^Y7+RHB&ckf53RZWn{_5_u%*fJo5C;OAxl03Gr7cL~`1TWrJ|gxLJUGie=ReyFDTV)=0ctVuaP z-`6k(_jyvwD=b@+Ng?KDf_CUsQi5#s{+K0@2=&@<#%2VnrB*>^1OdAAyQHZ=& z%yT&0dY&d2F1`SJG()J)M?B0Y`I&r@aLESt%YwTaBEqhaBcq6=l`<}ZdS<9{QeBw$ zBV>f?5wmg8`k^F7otG3j^m0wyQDq)iZo4a$Qm--x;l@>ht6hPqt}V)eu(6G8{Y~2SWPCZ1*274{>*@8t)r2bzFbAPkU{iEqEsHEeh>waa=&aF!%(@ zkwlI4JCWbpaZ_?I;OE9#r1*XY@}UQG5f-}lTWw8%ZQ=JBj{WrFd%NLd@vlFupZg0! zw%x?4j-Ho1%7~lrPjp0&%B_=1&I%w*`L?~J3Rq6EB-vx0yW#tV;a4QC zMP+#dSB+Is%iuR+YJuW$UEjlR^So4Qk;}HA;714VhHrmDChQ+_cs>cwAqLDz|7$XS zs1egwcP0TscgK|F6Mr_}{4D&o6_wcj}ptJK_{Myh}E?`{Y?sa~k;Z zDKaf1lDdP9qt&d=Uinz21@sUQfP?w-e77u4e4JR=IR6n8-ih-RS0+Y_YBv_!u_-R6 z4g#M}%lKJKnYXmMd@^`opd<~)Th+;F#J=+k5~DI^VBk7voRl0stqBEU6-&4(mH7TJ zS$00~yQo|u$;UDy{naP^^XKcVz!g9$ z<|E2E{^kR*>*eK3^TAk4^6~2z(fiuKe11ze=fH}7j@PVQkW&3fFwK+ha(C9alI_w2 z^$_O=-4La*=VqmxzWV*gY#V#U);)n#?NUGA#Ee#wc2>+xh|;xN=e|R~*7UX$7Nohe zx9DuktWx!viwF*8qI_ztf*+T#v+m|fu5{@*?%>VnA&SnIdBU4y!}_t#c#y0x{q@%O zAk^?>*68_E%=o;^eneYohO4F3I4?Z1w@nYM^|sL=Jyh(?q4OJr{>@f?XoND$eM2Yx z2Mk6Gl#&!X%Ik55VJ+0Fv5K$ny}S>{^a=XL7)WB*pwp|lkS%iAemED{R9}*#72wBt zf;@>W(4iFfG>3po`A>yir*}_(w|=;X>x~nKF`P6Z?A>>eec6QudSAT**>~!Eu}Atj?FA-zYf3`%#JG!X2){Ob!f(Se6%{n z7k81DW$5L3>Ck0-8*Y7;MlBf}zb&tF&6My**q|HD^Y*kH`39O@a&|*AkxAxOY&P~{ zN0`A7gkE=8xJ!+`EZG8mI*eq3zkL%qWb<(gi01w$DA03(x;vc-wk#*_D~1oJw)8EH zhxy*Dp-Kc_LEZH6Um2V>Rm9gWl^FdtRL?ApTap@<;%^wX%j`8ic6lUtZj3C)M(CGymLYZ%_Gs>Y2jpF%G8i&=;W4-W&XNyGlur z*@nOWlE3HZWu{bANNO^)`C)RT46%|RO0Z8x-UqzjmWBEwLls7~>MtSz+ayfV9cS4D z1Iy;W*Uf^g2X>r?4CH~tgn>y(GBwQijL08owg#2~^zfkLc+tGb7UMh>dPTWH(zjnK z73*gr341xW;V&M^3&>5(7mOhSICi#dr^s2bWY*6RWeTwY=7CBVv80KzGFSF4+>sH| zm5TNluNI&%a`xavbV**32sVlUqGVly~P7Sl<1$mJ0I3_uwsLVmq0fgf%WF2h;J30n*0fu{Wygc?|2_=75_Kz2E!4 z3hmN@kk1~#y^vuxw*aM(ql7~HJ+fjGEH1KQW_VO3<8b5r0QN{a0guYietQsYOj9TM zt|Q3aP(wj4*X}k4p|g6{V0Wr90v31Ph4W&_!T6WOt~(FSk4IZ2On$!_Wz#||}Yg+GS_l~!l> z#;+Mvo>9%fGGQ2sCK;jCsQ?1cKdwIZelT8&ol?jCN<_%Qj%6U9kDo^?_hX=X9N$4o zGUhc4bLb~t`mr$Y7GE%Cf)|>r12Gh9UxeWJ4pHKnO{X$j!402dO%N<&8fuclhdq;9 z3B~MJ1*a~C-kF&fTNz5Utf^`6bE}OPNUgrPR(Ec{me$xPc$*_kn=xM51{i$tDd{?1aZZU>8Ekt&3`l_Q*<{mo~dD|L;VAGffFk-cxdx8`#tFjt>4p8aoq zo6SC4WmfEXsjv^VJP&l~(Ry)X&!V=Jm$W0al)jSY7qDLx9M&+F96A8-)OzmN;{$un zjLi1KA(n$At3O3&M;QiVqnWx>Kbtx8Oa}}3??Xyg8HHC3^ox8MX=sme@)OL<;iiuv zvz@NzjaQv6Vj#a(8clQJ$TXRlCMI@?_$Sxf+Ltze=Si3o&FhEnP&0?37Og={$*NME z+vFQv1Zy$G3|ALFG@oVoc)YAc!w-@Kc;9O^<=bp$1lN4ZvWp%RcSV##+d*1O#vLFm zcxz8?V?muMGj)O;%|?br;y$I-GpZ8ffMOEQyj&X9idlD|iQ|(!C2{XGi(pt5*%s># z-m%IQBCSk3NE)X!N{Pfj)wvpShmZe17Gxjj7G7xAAn#AQq7?7ZhW<(#&@MsG9X zK0|%DoN9LC?-UVA#C{XR?c5wZ)Y`)!=jQ1DQM+)MQk#o3=-Ug&l0ix?e3Bf|gz0ow za8ZCQ^Rc4{bz_8bfzqR&hD2EM&)y7YNA*`#70oX@o7t99a zVXJV4tgbvnnH|nM6Q6@SXsZu!|)g}yn32? zaN!MEwlh!8^6CD1eR_5K`MR*l+e6K10g@njJ!EP?5oco{!oxO(F2gp=s_TX?@Q&_1$@Y8c ze5CQp1E2{m{JmFlJefJ8h0e9`7#C` zhUCRt9a~Rkfo9~bO%XUf06!`NOU-9R+`JR`5k@iqWFG=d81o~>%&QM1E-9$&{9Hn24yxw2$<+X3smp-)Pz^_=n~hPXM3Wh+L< zEC>Mmk$@Co%GEMLHAT+aZ=j!|4o4x=Zj2EJ0#%^2PqA zA?B+&dBF=&^N=w%L*mE8lVGX@7?=S1f&e8Vz~p(nK0XNA+S@Ctb{Cg}?wZQj>ZLdOCA6zJEz#iL_5Ou3ftbQ3$eb;J zf(xXGdZUFv70U?g(GdRcz@#=u#Xm2zicmie)Hwf)kB1*0rwT`6p~1bHsrzshTCFKL z;4LIh7-YSF!Boi5-UXuoS-}atA{~eiXTi6d1Gq zLR?Q4VuMzJ=QGpn8T^nx={WU8(yLhdStm*&^QDnvIR{+~ygcPZ)sS zv}&Kcddh^tH%gQ2#=+%C&zC7Bz8hW6P|g9Lhy)0?!yD@#>Sy}}UiK#@#+y`pt2$ED z$NrA>2QVuH9TvI9KbptEHhvR{wyi&vxE|ClV>jwjS$Dt&qnK>1y75UManm~_HaI1X zb9K0VRy5p84~g>F4hq8!P^2XS8~2xhBPCz3ruC-}{qjd|$HQ3n4sW)Dju zScxHry&C20jng97n{kbn{kh)5KT02h~_5Bvh(JKzWRo)j{7wM%~ zxFz+G!2(<}0HKt+4b-U+QTU-q)OntjjWOUo@ku>mtg2j*IgchK zvxX+ZPF-2WU1==&9GgIti?-CZZ;gjjoivgKBglq~^1(m%s2FEG@|(_uA75eM(!NEr zG)%_CX^I|2AtNSHfI~J!c4_`xWiBIxm=kPhD)fHx+LNDOxj*3UXacp{P~60hZjAuG zZPar#?v_91+j~$kvupLuPpyE24JAZ4IDvsR`K`2`Y7gJ@Q|}{7dYd1&-ZT5p`WTqY zsX_6#cx4$d6)ee(Z_JI=#X->3*j~|Y=*tfHGv9DQYZgnxReQhz2|c0_k6tYHkaC8Y z(u#^+uot|@PRB__ z#5f>p3oaS5*GAXhgp(Y{XA~8t?BspKd^#n~yp8WE6E6UuwDp4(Ge6(kyiM9PoL(&I zZ@-S2`J{ji=8jOU4#5`M?>tNW(y!SBUfg(qw3~6xv_7$g4i*H_vyO^R$!V?*(%T#*6s>* zi-4B1EV+<_fr;;0kGha-pv!q?$k`WWaR$2U0oWa5;Lgm?QU_ZKCLENgW72q2E}ldO z8N9~M!4oC+Py}_vc^1P2?rv|F&gza^lwt47%5#RgP?x`_(#cqEkYzKKeYPK1rYj;G zjNR+v;AYJ_a^WLaih=)iNHr*OLvQjLRk#kKfUq6X4b^)3sulaD@A3EAM$~!M<;9If zX`jiZQ!aDDx~QG-(XlF_PZeLC?SNv@!NvEQ>5K=}F`jvPf*!VHA}EuazJkv8c)|YM z^&+%N@q65ie!oq+<4QAVF_zcLopHfobR@fBL$m*EWfLUNyS~n|`liPG7|M})ZbipT z&S~@QQ8g!0qe8ceBR(wwsFBOjqJ-@uQYrSEUaYhD`+Z6QL8XW>88n^cOnGKA+d&80 zT$60bZIv_*E@qt(lyjkL1&3J&mD-E5B%JXwm6x}gUfldWRiR)*P6)P~Q1x9b3*E$J zAoKiS^3*p<^Fyj8O)~T3qsH}d9{r>>hWR>Ymo*Snjvzb;I|5*Sr+q7>l{KlBF{qZ+ zl~k9jnpUMoD=F!T-kgz=^1GyHIw?qv)udmvz+baU)-p;~(pGlXFh8`hK$B6KShqaJ zdR(7X)8dv$I}bz6zu#50LXbgSu*xH}p1!r1!9l&-;lAAIyJ00^*3=3^7Ymi7d2Uu? zQYHRl&?`c5p)JhqFXX-ITo+ZwUqw^{H}@r40!b-RgAIK&mVVHd2i>l?;DWius&N>lnLQtb7*qyPDb z5p3`q!Q=l!oz$4H8CIDJ;Jo6JG0sO4zn7;3oGjPjPqu&g1Q@=*-AX)+MBm{>1tj;o zYwvtX^FSTNf|6eb2{$fD_w2+zac;$4_-3c7&r10?CP;jqX((?NJIhFO*&x{Y6R!J= zKiJG7xi$$2^(VmOOmZM>t|zlEHVznxcCcC7^IHC;|9}b*05w_|uHqQ~7eMy6l54_K z+yNP(*k8-j+%lfJ+FZt|sSbH4qAS=-hj|xKXV`0XjAgXK|FUYF&n(JkZB_PO5qZ7K z9BnONU5K&ku_FZgLbcUxC4axUPNpxYgdHJ(P|{7Z@xJ8#4j@`< zT%{8bCk}|j2bUxY|DMt}0{@C&pc;CvC&mfCq6SRyoQJ3|U9f|!iFXv`5rEWMkC5gZ z6>+6W6c|nKZLKZHknusO>kX*4`(!OU{yM2+stm(4t0ebifULl~W{P0&jLkp3{P%iV zb&Gc%nj$C_n(|{8s?ye^l1;?F0Uj_qf`mAAL@bEHs5;QoHlGvH#wl}5GrJI36AOQ= zI8N(Z{aEePYg6~IA7V2qD+az64?PgyrrK?!uz6gWnm~4oiE^41Ct(n-zkS0()}SAb z#2YXqV~K`3WY@mLg7W>>_h=sKh)8m1h|H?R=snE<$U2u!fw%%PHTEuK$*2N8V`QKv z`bbE;SI1(p4kosAc2 z;O_d1Z_F*1VH3577P?B>{A`|+GK!@-uXq7>H%haDLW77RwVsapD2MWf#Hic^9KEUB zNEFPg%G?%|XK)Xm9VhYm_b>|9HHC_3#)13%$)tzakuJ}QlLef*;^V{DAxG(#pMe7SrL8pRWNwtzIkiy3$Aa?pU=mM6U} zOy0r8X>*pZWOGf+G}wLh^y0H+@5QfK;mI880C3wltBS(@nCw$n;^#aSHCa2o^ud6J z(m%e&p7h`S_PA_}1l!5zyy#2+M34SEVukKx3C-7is_(<{cN8uCa}xcO-wfsNfuShB zXZ6ObDY09D)X5TP+}b{?2GQTn5-2?NO{iT+#{&MH>Czqky}kj;-_a1FzX7@J zc;WV6U-19t2N>lm@ahD2bw|$-92=#8ec2)H3#jrgcqR9ehiX|1y?{nDKI0l4Ex+~O z)Fj-p00vp`_wVph7sEyFW(&YZnPU5>14*liQ@@NzamF+@4Pn&^kBu`Ij9@KR@(Qlc zP8RO;oR@nxO#dkJ+4OQ@0@}M8Os^Gqff!T*s%s4yzha5pxrBoIN9tn@sv|Dt;Y`s~ zoBY-K%>}kbnrF*MZ-IAIplO+D(R2)H)M@QgIE7OK<8J?iKV?z(r_^v!AG$L<4^fuG zv`hDQRydX~>RZXx zU`*kGpx^qV3m+RjOHLi2VZ!2UY@YAen&dj6;R0A54JO)@!BAs zEN7xgc~uy^H~pcN7M*CI{QFIt^sEuG?1`kYT!e0H<9+_du5NLEeMAchD-38(uHVt+ z3q^8L|5yI{@7sjE@OzeBrP0gtdTKzI=J`rLm~N>zLl5&O=#GZ6Ho!i6NioJOn!dO7 zmxI*~yo;l~{aJ$(SOytofH1_{BpkjU;N#ii2>g#V0inNT0s+Ykle>xsnYI>gG4Aku z2gzBh$sz2i46+U`B9?l{#gG>xR3OyKMxb$K>c|??E#yE04M}oIfZ6?c@COWYzq*J= zbf8FqLZv@e4+xR=$S_=)hb#xl3#T?ccCsk3X#A0t(Q%x6X zkux4BEIHZbVaYCQA{HLVpi3O!%qq3gHveMpKq0nn{U}T&QyS}j+}8J>tKje|$}kTx z@*{dXrT0n6=@amuWrjlaLb<)uQ+D3d2c*R2prui-qX#PA5=7?!_h(kL8R`ON5$#3R{i_&yZhH+W#O5@u%c z-S+F=2#;Xf-jF~#va)c%aX3&7w&BwYZ#ol;ZuMwfir9(y;h}iB#V5O{n}TO#c<2KY zHy+dD=8j0(6zO&jX|v&eHg8ZsR{x5oj!lub*V#mip*uZ*6W`R98$`Sn54rgSHmkR+ zG;gqVe(|uFGu1Q2rElyhUyl=WT1IpnN!wUpBp&1Cg0H$4JzP)|ILE1G0R{5Lx)`d+ zSQ)w~nA2fbG_t|MbxW)>K32*vR?r*G{SeNl+S@&KQ@$iRe~cc!vn#}xb#w-EEOmj{IX9w?PWpNMsWEhH*8a8!U&o_G$6M{S*Cd5D7kZ;7eGcqw~+705H(OC0HdZbE!{Mjyse_Cl#COG_fu24Oror0k>cvU1?H|__)9Mha-_{;bKU(oZ35uQtL;-+p;&1_+P&7jWo?}JHu^th zA)0f36r+SPHe*>YzH9z=8T<|lNzkKN^J1*SV&){o)hdA|co0E%+EhFwmUd-*b$>_V zVB--0Wa`_?QAtSC|Je5|;^(*4$MOH-sw~KE`{16rFYAG^MT|FVfW+C`0;Y6{1{490 zHx9VDelj!0hk3}@A`8NLH9IZeJ9s`<`VZea#|Fm@TL0Z3ieLD>4r2G-b!`kb z9ce2{IkOAz@)#i-fn-OE>k!%tx6>u5W5N!@O;6s?irkFk$9>4LyZ zh$Ttbp?*Px02R_I-->lq)v2*M3tX@SpX~xtWV^3n%U+tHDE?v*K%Q0H@>1;LT^5x0 zIFa35V%q7E42U{t3)z*{9xoGE*ExmIvmUHqteD%!348ufn@S6Cfc%Q>1 zzNbD;Hn#^Pt`nGgd&>^lb9gk?_^D|IYKC+bt!B(IOfHFxJw>AwJQs2LuRoh0RAM}0 z#IouZ?hwW1<7!n}v1V&j;od(OzV~1BXyDZDq{Am^a(nT8DQISsyN}geBE&n1s`U!; z`??R<;jyVTXzaORhjrZLso8l$>cD z-ds?`xs%tg<`$NgBWBB&MMn9k!&B&^pTt-=0o7Yx17S#F>B0*|K6s##Gxr0jpa+ED z8#;oyPV@2oiml`{$UQ&vBP6yPWQ!lN1<2CM zW0o5o#Eh!4DO_{mlXp*T=93c_3Xkr*-ps2Z#B*x)N&8W4m|=axBy6)baXnh!HYayS z_%#qLdKB0DN+DUFDWpi^93nGyn%;0XJupH+L$=Lz4$9G+gseFWKSBaa6D-;$DcMzl zV&A`-+l%4Y-cuvk7}W>!$K|NW%Kd2xc~%^^O&b{Zo<5dtr3VsBS`OK*Ff#j?!9r4KQkN7 zXmW(K{&&}}nJ-8cd2k3U$p77A`OkIme~tgearr-s{7>J)e^)Zf`4`RT|C9X(tT=}N literal 0 HcmV?d00001 diff --git a/Solutions/vArmour Application Controller/Package/createUiDefinition.json b/Solutions/vArmour Application Controller/Package/createUiDefinition.json index 4440663c659..95c8c307c4b 100644 --- a/Solutions/vArmour Application Controller/Package/createUiDefinition.json +++ b/Solutions/vArmour Application Controller/Package/createUiDefinition.json @@ -6,7 +6,7 @@ "config": { "isWizard": false, "basics": { - "description": "\n\n**Note:** _There may be [known issues](https://aka.ms/sentinelsolutionsknownissues) pertaining to this Solution, please refer to them before installing._\n\nThis vArmour solution enables streaming of Application Controller Violation Alerts into Microsoft Sentinel, so you can take advantage of search & correlation, alerting, & threat intelligence enrichment for each log.\n\n**Underlying Microsoft Technologies used:**\n\nThis solution takes a dependency on the following technologies, and some of these dependencies either may be in [Preview](https://azure.microsoft.com/support/legal/preview-supplemental-terms/) state or might result in additional ingestion or operational costs:\n\n a. [Agent-based log collection (CEF over Syslog)](https://docs.microsoft.com/azure/sentinel/connect-common-event-format)\n\n**Data Connectors:** 1, **Workbooks:** 1, **Analytic Rules:** 1\n\n[Learn more about Microsoft Sentinel](https://aka.ms/azuresentinel) | [Learn more about Solutions](https://aka.ms/azuresentinelsolutionsdoc)", + "description": "\n\n**Note:** _There may be [known issues](https://aka.ms/sentinelsolutionsknownissues) pertaining to this Solution, please refer to them before installing._\n\nThis vArmour solution enables streaming of Application Controller Violation Alerts into Microsoft Sentinel, so you can take advantage of search & correlation, alerting, & threat intelligence enrichment for each log.\n\r\n1. **vArmour Application Controller via AMA** - This data connector helps in ingesting OSSEC logs into your Log Analytics Workspace using the new Azure Monitor Agent. Learn more about ingesting using the new Azure Monitor Agent [here](https://learn.microsoft.com/azure/sentinel/connect-cef-ama). **Microsoft recommends using this Data Connector**.\n\r\n2. **vArmour Application Controller via Legacy Agent** - This data connector helps in ingesting vArmour Application Controller logs into your Log Analytics Workspace using the legacy Log Analytics agent.\n\n**NOTE:** Microsoft recommends installation of vArmour Application Controller via AMA Connector. Legacy connector uses the Log Analytics agent which is about to be deprecated by **Aug 31, 2024,** and thus should only be installed where AMA is not supported. Using MMA and AMA on same machine can cause log duplication and extra ingestion cost [more details](https://learn.microsoft.com/en-us/azure/sentinel/ama-migrate).\n\n**Data Connectors:** 2, **Workbooks:** 1, **Analytic Rules:** 1\n\n[Learn more about Microsoft Sentinel](https://aka.ms/azuresentinel) | [Learn more about Solutions](https://aka.ms/azuresentinelsolutionsdoc)", "subscription": { "resourceProviders": [ "Microsoft.OperationsManagement/solutions", @@ -60,7 +60,7 @@ "name": "dataconnectors1-text", "type": "Microsoft.Common.TextBlock", "options": { - "text": "This solution installs the data connector that enables streaming of Application Controller Violation Alerts into Microsoft Sentinel. After installing the solution, configure and enable this data connector by following guidance in Manage solution view." + "text": "This Solution installs the data connector for vArmour Application Controller. You can get vArmour Application Controller CommonSecurityLog data in your Microsoft Sentinel workspace. After installing the solution, configure and enable this data connector by following guidance in Manage solution view." } }, { @@ -72,6 +72,13 @@ "uri": "https://docs.microsoft.com/azure/sentinel/connect-data-sources" } } + }, + { + "name": "dataconnectors2-text", + "type": "Microsoft.Common.TextBlock", + "options": { + "text": "This Solution installs the data connector for vArmour Application Controller. You can get vArmour Application Controller CommonSecurityLog data in your Microsoft Sentinel workspace. After installing the solution, configure and enable this data connector by following guidance in Manage solution view." + } } ] }, @@ -88,7 +95,7 @@ "name": "workbooks-text", "type": "Microsoft.Common.TextBlock", "options": { - "text": "The workbook installed with the vArmour Application Controller help’s you gain insights into the telemetry collected in Microsoft Sentinel. After installing the solution, start using the workbook in Manage solution view." + "text": "This solution installs workbook(s) to help you gain insights into the telemetry collected in Microsoft Sentinel. After installing the solution, start using the workbook in Manage solution view." } }, { @@ -100,6 +107,20 @@ "uri": "https://docs.microsoft.com/azure/sentinel/tutorial-monitor-your-data" } } + }, + { + "name": "workbook1", + "type": "Microsoft.Common.Section", + "label": "vArmour Application Controller", + "elements": [ + { + "name": "workbook1-text", + "type": "Microsoft.Common.TextBlock", + "options": { + "text": "Sets the time name for analysis" + } + } + ] } ] }, diff --git a/Solutions/vArmour Application Controller/Package/mainTemplate.json b/Solutions/vArmour Application Controller/Package/mainTemplate.json index b4000912d50..a1e0edce7bb 100644 --- a/Solutions/vArmour Application Controller/Package/mainTemplate.json +++ b/Solutions/vArmour Application Controller/Package/mainTemplate.json @@ -40,55 +40,52 @@ "variables": { "solutionId": "varmournetworks.varmour_sentinel", "_solutionId": "[variables('solutionId')]", - "workspaceResourceId": "[resourceId('microsoft.OperationalInsights/Workspaces', parameters('workspace'))]", + "_solutionName": "vArmour Application Controller", + "_solutionVersion": "3.0.0", "uiConfigId1": "vArmourAC", "_uiConfigId1": "[variables('uiConfigId1')]", "dataConnectorContentId1": "vArmourAC", "_dataConnectorContentId1": "[variables('dataConnectorContentId1')]", "dataConnectorId1": "[extensionResourceId(resourceId('Microsoft.OperationalInsights/workspaces', parameters('workspace')), 'Microsoft.SecurityInsights/dataConnectors', variables('_dataConnectorContentId1'))]", "_dataConnectorId1": "[variables('dataConnectorId1')]", - "dataConnectorTemplateSpecName1": "[concat(parameters('workspace'),'-dc-',uniquestring(variables('_dataConnectorContentId1')))]", + "dataConnectorTemplateSpecName1": "[concat(parameters('workspace'),'/Microsoft.SecurityInsights/',concat(parameters('workspace'),'-dc-',uniquestring(variables('_dataConnectorContentId1'))))]", "dataConnectorVersion1": "1.0.0", + "_dataConnectorcontentProductId1": "[concat(take(variables('_solutionId'),50),'-','dc','-', uniqueString(concat(variables('_solutionId'),'-','DataConnector','-',variables('_dataConnectorContentId1'),'-', variables('dataConnectorVersion1'))))]", + "uiConfigId2": "vArmourAC", + "_uiConfigId2": "[variables('uiConfigId2')]", + "dataConnectorContentId2": "vArmourAC", + "_dataConnectorContentId2": "[variables('dataConnectorContentId2')]", + "dataConnectorId2": "[extensionResourceId(resourceId('Microsoft.OperationalInsights/workspaces', parameters('workspace')), 'Microsoft.SecurityInsights/dataConnectors', variables('_dataConnectorContentId2'))]", + "_dataConnectorId2": "[variables('dataConnectorId2')]", + "dataConnectorTemplateSpecName2": "[concat(parameters('workspace'),'/Microsoft.SecurityInsights/',concat(parameters('workspace'),'-dc-',uniquestring(variables('_dataConnectorContentId2'))))]", + "dataConnectorVersion2": "1.0.0", + "_dataConnectorcontentProductId2": "[concat(take(variables('_solutionId'),50),'-','dc','-', uniqueString(concat(variables('_solutionId'),'-','DataConnector','-',variables('_dataConnectorContentId2'),'-', variables('dataConnectorVersion2'))))]", "workbookVersion1": "1.0.0", "workbookContentId1": "vArmourAppContollerWorkbook", "workbookId1": "[resourceId('Microsoft.Insights/workbooks', variables('workbookContentId1'))]", - "workbookTemplateSpecName1": "[concat(parameters('workspace'),'-wb-',uniquestring(variables('_workbookContentId1')))]", + "workbookTemplateSpecName1": "[concat(parameters('workspace'),'/Microsoft.SecurityInsights/',concat(parameters('workspace'),'-wb-',uniquestring(variables('_workbookContentId1'))))]", "_workbookContentId1": "[variables('workbookContentId1')]", + "workspaceResourceId": "[resourceId('microsoft.OperationalInsights/Workspaces', parameters('workspace'))]", + "_workbookcontentProductId1": "[concat(take(variables('_solutionId'),50),'-','wb','-', uniqueString(concat(variables('_solutionId'),'-','Workbook','-',variables('_workbookContentId1'),'-', variables('workbookVersion1'))))]", "analyticRuleVersion1": "1.0.0", "analyticRulecontentId1": "a36de6c3-3198-4d37-92ae-e19e36712c2e", "_analyticRulecontentId1": "[variables('analyticRulecontentId1')]", "analyticRuleId1": "[resourceId('Microsoft.SecurityInsights/AlertRuleTemplates', variables('analyticRulecontentId1'))]", - "analyticRuleTemplateSpecName1": "[concat(parameters('workspace'),'-ar-',uniquestring(variables('_analyticRulecontentId1')))]" + "analyticRuleTemplateSpecName1": "[concat(parameters('workspace'),'/Microsoft.SecurityInsights/',concat(parameters('workspace'),'-ar-',uniquestring(variables('_analyticRulecontentId1'))))]", + "_analyticRulecontentProductId1": "[concat(take(variables('_solutionId'),50),'-','ar','-', uniqueString(concat(variables('_solutionId'),'-','AnalyticsRule','-',variables('_analyticRulecontentId1'),'-', variables('analyticRuleVersion1'))))]", + "_solutioncontentProductId": "[concat(take(variables('_solutionId'),50),'-','sl','-', uniqueString(concat(variables('_solutionId'),'-','Solution','-',variables('_solutionId'),'-', variables('_solutionVersion'))))]" }, "resources": [ { - "type": "Microsoft.Resources/templateSpecs", - "apiVersion": "2021-05-01", + "type": "Microsoft.OperationalInsights/workspaces/providers/contentTemplates", + "apiVersion": "2023-04-01-preview", "name": "[variables('dataConnectorTemplateSpecName1')]", "location": "[parameters('workspace-location')]", - "tags": { - "hidden-sentinelWorkspaceId": "[variables('workspaceResourceId')]", - "hidden-sentinelContentType": "DataConnector" - }, - "properties": { - "description": "vArmour Application Controller data connector with template", - "displayName": "vArmour Application Controller template" - } - }, - { - "type": "Microsoft.Resources/templateSpecs/versions", - "apiVersion": "2021-05-01", - "name": "[concat(variables('dataConnectorTemplateSpecName1'),'/',variables('dataConnectorVersion1'))]", - "location": "[parameters('workspace-location')]", - "tags": { - "hidden-sentinelWorkspaceId": "[variables('workspaceResourceId')]", - "hidden-sentinelContentType": "DataConnector" - }, "dependsOn": [ - "[resourceId('Microsoft.Resources/templateSpecs', variables('dataConnectorTemplateSpecName1'))]" + "[extensionResourceId(resourceId('Microsoft.OperationalInsights/workspaces', parameters('workspace')), 'Microsoft.SecurityInsights/contentPackages', variables('_solutionId'))]" ], "properties": { - "description": "vArmour Application Controller data connector with template version 2.0.0", + "description": "vArmour Application Controller data connector with template version 3.0.0", "mainTemplate": { "$schema": "https://schema.management.azure.com/schemas/2019-04-01/deploymentTemplate.json#", "contentVersion": "[variables('dataConnectorVersion1')]", @@ -104,7 +101,7 @@ "properties": { "connectorUiConfig": { "id": "[variables('_uiConfigId1')]", - "title": " vArmour Application Controller", + "title": "[Deprecated] vArmour Application Controller via Legacy Agent", "publisher": "vArmour", "descriptionMarkdown": "vArmour reduces operational risk and increases cyber resiliency by visualizing and controlling application relationships across the enterprise. This vArmour connector enables streaming of Application Controller Violation Alerts into Microsoft Sentinel, so you can take advantage of search & correlation, alerting, & threat intelligence enrichment for each log.", "graphQueries": [ @@ -246,7 +243,7 @@ }, { "type": "Microsoft.OperationalInsights/workspaces/providers/metadata", - "apiVersion": "2022-01-01-preview", + "apiVersion": "2023-04-01-preview", "name": "[concat(parameters('workspace'),'/Microsoft.SecurityInsights/',concat('DataConnector-', last(split(variables('_dataConnectorId1'),'/'))))]", "properties": { "parentId": "[extensionResourceId(resourceId('Microsoft.OperationalInsights/workspaces', parameters('workspace')), 'Microsoft.SecurityInsights/dataConnectors', variables('_dataConnectorContentId1'))]", @@ -269,12 +266,23 @@ } } ] - } + }, + "packageKind": "Solution", + "packageVersion": "[variables('_solutionVersion')]", + "packageName": "[variables('_solutionName')]", + "packageId": "[variables('_solutionId')]", + "contentSchemaVersion": "3.0.0", + "contentId": "[variables('_dataConnectorContentId1')]", + "contentKind": "DataConnector", + "displayName": "[Deprecated] vArmour Application Controller via Legacy Agent", + "contentProductId": "[variables('_dataConnectorcontentProductId1')]", + "id": "[variables('_dataConnectorcontentProductId1')]", + "version": "[variables('dataConnectorVersion1')]" } }, { "type": "Microsoft.OperationalInsights/workspaces/providers/metadata", - "apiVersion": "2022-01-01-preview", + "apiVersion": "2023-04-01-preview", "name": "[concat(parameters('workspace'),'/Microsoft.SecurityInsights/',concat('DataConnector-', last(split(variables('_dataConnectorId1'),'/'))))]", "dependsOn": [ "[variables('_dataConnectorId1')]" @@ -308,7 +316,7 @@ "kind": "GenericUI", "properties": { "connectorUiConfig": { - "title": " vArmour Application Controller", + "title": "[Deprecated] vArmour Application Controller via Legacy Agent", "publisher": "vArmour", "descriptionMarkdown": "vArmour reduces operational risk and increases cyber resiliency by visualizing and controlling application relationships across the enterprise. This vArmour connector enables streaming of Application Controller Violation Alerts into Microsoft Sentinel, so you can take advantage of search & correlation, alerting, & threat intelligence enrichment for each log.", "graphQueries": [ @@ -450,33 +458,388 @@ } }, { - "type": "Microsoft.Resources/templateSpecs", - "apiVersion": "2021-05-01", - "name": "[variables('workbookTemplateSpecName1')]", + "type": "Microsoft.OperationalInsights/workspaces/providers/contentTemplates", + "apiVersion": "2023-04-01-preview", + "name": "[variables('dataConnectorTemplateSpecName2')]", + "location": "[parameters('workspace-location')]", + "dependsOn": [ + "[extensionResourceId(resourceId('Microsoft.OperationalInsights/workspaces', parameters('workspace')), 'Microsoft.SecurityInsights/contentPackages', variables('_solutionId'))]" + ], + "properties": { + "description": "vArmour Application Controller data connector with template version 3.0.0", + "mainTemplate": { + "$schema": "https://schema.management.azure.com/schemas/2019-04-01/deploymentTemplate.json#", + "contentVersion": "[variables('dataConnectorVersion2')]", + "parameters": {}, + "variables": {}, + "resources": [ + { + "name": "[concat(parameters('workspace'),'/Microsoft.SecurityInsights/',variables('_dataConnectorContentId2'))]", + "apiVersion": "2021-03-01-preview", + "type": "Microsoft.OperationalInsights/workspaces/providers/dataConnectors", + "location": "[parameters('workspace-location')]", + "kind": "GenericUI", + "properties": { + "connectorUiConfig": { + "id": "[variables('_uiConfigId2')]", + "title": "[Recommended] vArmour Application Controller via AMA", + "publisher": "vArmour", + "descriptionMarkdown": "vArmour reduces operational risk and increases cyber resiliency by visualizing and controlling application relationships across the enterprise. This vArmour connector enables streaming of Application Controller Violation Alerts into Microsoft Sentinel, so you can take advantage of search & correlation, alerting, & threat intelligence enrichment for each log.", + "graphQueries": [ + { + "metricName": "Total data received", + "legend": "vArmour", + "baseQuery": "CommonSecurityLog\n |where DeviceVendor =~ 'vArmour'\n |where DeviceProduct =~ 'AC'\n |extend sent_by_ama = column_ifexists('CollectorHostName','')\n |where isnotempty(sent_by_ama)" + } + ], + "sampleQueries": [ + { + "description": "Top 10 App to App violations", + "query": "CommonSecurityLog\n| where DeviceVendor == \"vArmour\"\n| where DeviceProduct == \"AC\"\n| where Activity == \"POLICY_VIOLATION\"\n| extend AppNameSrcDstPair = extract_all(\"AppName=;(\\\\w+)\", AdditionalExtensions)\n| summarize count() by tostring(AppNameSrcDstPair)\n| top 10 by count_\n" + }, + { + "description": "Top 10 Policy names matching violations", + "query": "CommonSecurityLog\n| where DeviceVendor == \"vArmour\"\n| where DeviceProduct == \"AC\"\n| where Activity == \"POLICY_VIOLATION\"\n| summarize count() by DeviceCustomString1\n| top 10 by count_ desc\n" + }, + { + "description": "Top 10 Source IPs generating violations", + "query": "CommonSecurityLog\n| where DeviceVendor == \"vArmour\"\n| where DeviceProduct == \"AC\"\n| where Activity == \"POLICY_VIOLATION\"\n| summarize count() by SourceIP\n| top 10 by count_\n" + }, + { + "description": "Top 10 Destination IPs generating violations", + "query": "CommonSecurityLog\n| where DeviceVendor == \"vArmour\"\n| where DeviceProduct == \"AC\"\n| where Activity == \"POLICY_VIOLATION\"\n| summarize count() by DestinationIP\n| top 10 by count_\n" + }, + { + "description": "Top 10 Application Protocols matching violations", + "query": "CommonSecurityLog\n| where DeviceVendor == \"vArmour\"\n| where DeviceProduct == \"AC\"\n| where Activity == \"POLICY_VIOLATION\"\n| summarize count() by ApplicationProtocol\n| top 10 by count_\n" + } + ], + "dataTypes": [ + { + "name": "CommonSecurityLog (vArmour)", + "lastDataReceivedQuery": "CommonSecurityLog\n |where DeviceVendor =~ 'vArmour'\n |where DeviceProduct =~ 'AC'\n |extend sent_by_ama = column_ifexists('CollectorHostName','')\n |where isnotempty(sent_by_ama)\n | summarize Time = max(TimeGenerated)\n | where isnotempty(Time)" + } + ], + "connectivityCriterias": [ + { + "type": "IsConnectedQuery", + "value": [ + "CommonSecurityLog\n |where DeviceVendor =~ 'vArmour'\n |where DeviceProduct =~ 'AC'\n |extend sent_by_ama = column_ifexists('CollectorHostName','')\n |where isnotempty(sent_by_ama)\n | summarize LastLogReceived = max(TimeGenerated)\n | project IsConnected = LastLogReceived > ago(30d)" + ] + } + ], + "availability": { + "status": 1, + "isPreview": false + }, + "permissions": { + "resourceProvider": [ + { + "provider": "Microsoft.OperationalInsights/workspaces", + "permissionsDisplayText": "read and write permissions are required.", + "providerDisplayName": "Workspace", + "scope": "Workspace", + "requiredPermissions": { + "read": true, + "write": true, + "delete": true + } + }, + { + "provider": "Microsoft.OperationalInsights/workspaces/sharedKeys", + "permissionsDisplayText": "read permissions to shared keys for the workspace are required. [See the documentation to learn more about workspace keys](https://docs.microsoft.com/azure/azure-monitor/platform/agent-windows#obtain-workspace-id-and-key).", + "providerDisplayName": "Keys", + "scope": "Workspace", + "requiredPermissions": { + "action": true + } + } + ], + "customs": [ + { + "description": "To collect data from non-Azure VMs, they must have Azure Arc installed and enabled. [Learn more](https://docs.microsoft.com/azure/azure-monitor/agents/azure-monitor-agent-install?tabs=ARMAgentPowerShell,PowerShellWindows,PowerShellWindowsArc,CLIWindows,CLIWindowsArc)" + }, + { + "description": "Common Event Format (CEF) via AMA and Syslog via AMA data connectors must be installed [Learn more](https://learn.microsoft.com/azure/sentinel/connect-cef-ama#open-the-connector-page-and-create-the-dcr)" + } + ] + }, + "instructionSteps": [ + { + "description": "Install and configure the Linux agent to collect your Common Event Format (CEF) Syslog messages and forward them to Microsoft Sentinel.\n\n> Notice that the data from all regions will be stored in the selected workspace", + "instructions": [ + { + "parameters": { + "title": "1. Kindly follow the steps to configure the data connector", + "instructionSteps": [ + { + "title": "Step A. Configure the Common Event Format (CEF) via AMA data connector", + "description": "_Note:- CEF logs are collected only from Linux Agents_\n\n1. Navigate to Microsoft Sentinel workspace ---> configuration ---> Data connector blade .\n\n2. Search for 'Common Event Format (CEF) via AMA' data connector and open it.\n\n3. Check If there is no existing DCR configured to collect required facility of logs, Create a new DCR (Data Collection Rule)\n\n\t_Note:- It is recommended to install minimum 1.27 version of AMA agent [Learn more](https://learn.microsoft.com/azure/azure-monitor/agents/azure-monitor-agent-manage?tabs=azure-portal ) and ensure there is no duplicate DCR as it can cause log duplicacy_\n\n4. Run the command provided in the CEF via AMA data connector page to configure the CEF collector on the machine", + "instructions": [] + }, + { + "title": "Step B. Configure the vArmour Application Controller to forward Common Event Format (CEF) logs to the Syslog agent", + "description": "Send Syslog messages in CEF format to the proxy machine. Make sure you to send the logs to port 514 TCP on the machine's IP address.", + "innerSteps": [ + { + "title": "1 Download the vArmour Application Controller user guide", + "description": "Download the user guide from https://support.varmour.com/hc/en-us/articles/360057444831-vArmour-Application-Controller-6-0-User-Guide." + }, + { + "title": "2 Configure the Application Controller to Send Policy Violations", + "description": "In the user guide - refer to \"Configuring Syslog for Monitoring and Violations\" and follow steps 1 to 3." + } + ] + }, + { + "title": "Step C. Validate connection", + "description": "Follow the instructions to validate your connectivity:\n\nOpen Log Analytics to check if the logs are received using the CommonSecurityLog schema.\n\nIt may take about 20 minutes until the connection streams data to your workspace.\n\nIf the logs are not received, run the following connectivity validation script:\n\n 1. Make sure that you have Python on your machine using the following command: python -version\n\n2. You must have elevated permissions (sudo) on your machine", + "instructions": [ + { + "parameters": { + "label": "Run the following command to validate your connectivity:", + "value": "sudo wget -O Sentinel_AMA_troubleshoot.py https://raw.githubusercontent.com/Azure/Azure-Sentinel/master/DataConnectors/Syslog/Sentinel_AMA_troubleshoot.py&&sudo python Sentinel_AMA_troubleshoot.py --cef" + }, + "type": "CopyableLabel" + } + ] + } + ] + }, + "type": "InstructionStepsGroup" + } + ] + }, + { + "description": "Make sure to configure the machine's security according to your organization's security policy\n\n\n[Learn more >](https://aka.ms/SecureCEF)", + "title": "2. Secure your machine " + } + ] + } + } + }, + { + "type": "Microsoft.OperationalInsights/workspaces/providers/metadata", + "apiVersion": "2023-04-01-preview", + "name": "[concat(parameters('workspace'),'/Microsoft.SecurityInsights/',concat('DataConnector-', last(split(variables('_dataConnectorId2'),'/'))))]", + "properties": { + "parentId": "[extensionResourceId(resourceId('Microsoft.OperationalInsights/workspaces', parameters('workspace')), 'Microsoft.SecurityInsights/dataConnectors', variables('_dataConnectorContentId2'))]", + "contentId": "[variables('_dataConnectorContentId2')]", + "kind": "DataConnector", + "version": "[variables('dataConnectorVersion2')]", + "source": { + "kind": "Solution", + "name": "vArmour Application Controller", + "sourceId": "[variables('_solutionId')]" + }, + "author": { + "name": "vArmour" + }, + "support": { + "name": "vArmour Networks", + "tier": "Partner", + "link": "https://www.varmour.com/contact-us/" + } + } + } + ] + }, + "packageKind": "Solution", + "packageVersion": "[variables('_solutionVersion')]", + "packageName": "[variables('_solutionName')]", + "packageId": "[variables('_solutionId')]", + "contentSchemaVersion": "3.0.0", + "contentId": "[variables('_dataConnectorContentId2')]", + "contentKind": "DataConnector", + "displayName": "[Recommended] vArmour Application Controller via AMA", + "contentProductId": "[variables('_dataConnectorcontentProductId2')]", + "id": "[variables('_dataConnectorcontentProductId2')]", + "version": "[variables('dataConnectorVersion2')]" + } + }, + { + "type": "Microsoft.OperationalInsights/workspaces/providers/metadata", + "apiVersion": "2023-04-01-preview", + "name": "[concat(parameters('workspace'),'/Microsoft.SecurityInsights/',concat('DataConnector-', last(split(variables('_dataConnectorId2'),'/'))))]", + "dependsOn": [ + "[variables('_dataConnectorId2')]" + ], "location": "[parameters('workspace-location')]", - "tags": { - "hidden-sentinelWorkspaceId": "[variables('workspaceResourceId')]", - "hidden-sentinelContentType": "Workbook" - }, "properties": { - "description": "vArmour Application Controller Workbook with template", - "displayName": "vArmour Application Controller workbook template" + "parentId": "[extensionResourceId(resourceId('Microsoft.OperationalInsights/workspaces', parameters('workspace')), 'Microsoft.SecurityInsights/dataConnectors', variables('_dataConnectorContentId2'))]", + "contentId": "[variables('_dataConnectorContentId2')]", + "kind": "DataConnector", + "version": "[variables('dataConnectorVersion2')]", + "source": { + "kind": "Solution", + "name": "vArmour Application Controller", + "sourceId": "[variables('_solutionId')]" + }, + "author": { + "name": "vArmour" + }, + "support": { + "name": "vArmour Networks", + "tier": "Partner", + "link": "https://www.varmour.com/contact-us/" + } } }, { - "type": "Microsoft.Resources/templateSpecs/versions", - "apiVersion": "2021-05-01", - "name": "[concat(variables('workbookTemplateSpecName1'),'/',variables('workbookVersion1'))]", + "name": "[concat(parameters('workspace'),'/Microsoft.SecurityInsights/',variables('_dataConnectorContentId2'))]", + "apiVersion": "2021-03-01-preview", + "type": "Microsoft.OperationalInsights/workspaces/providers/dataConnectors", + "location": "[parameters('workspace-location')]", + "kind": "GenericUI", + "properties": { + "connectorUiConfig": { + "title": "[Recommended] vArmour Application Controller via AMA", + "publisher": "vArmour", + "descriptionMarkdown": "vArmour reduces operational risk and increases cyber resiliency by visualizing and controlling application relationships across the enterprise. This vArmour connector enables streaming of Application Controller Violation Alerts into Microsoft Sentinel, so you can take advantage of search & correlation, alerting, & threat intelligence enrichment for each log.", + "graphQueries": [ + { + "metricName": "Total data received", + "legend": "vArmour", + "baseQuery": "CommonSecurityLog\n |where DeviceVendor =~ 'vArmour'\n |where DeviceProduct =~ 'AC'\n |extend sent_by_ama = column_ifexists('CollectorHostName','')\n |where isnotempty(sent_by_ama)" + } + ], + "dataTypes": [ + { + "name": "CommonSecurityLog (vArmour)", + "lastDataReceivedQuery": "CommonSecurityLog\n |where DeviceVendor =~ 'vArmour'\n |where DeviceProduct =~ 'AC'\n |extend sent_by_ama = column_ifexists('CollectorHostName','')\n |where isnotempty(sent_by_ama)\n | summarize Time = max(TimeGenerated)\n | where isnotempty(Time)" + } + ], + "connectivityCriterias": [ + { + "type": "IsConnectedQuery", + "value": [ + "CommonSecurityLog\n |where DeviceVendor =~ 'vArmour'\n |where DeviceProduct =~ 'AC'\n |extend sent_by_ama = column_ifexists('CollectorHostName','')\n |where isnotempty(sent_by_ama)\n | summarize LastLogReceived = max(TimeGenerated)\n | project IsConnected = LastLogReceived > ago(30d)" + ] + } + ], + "sampleQueries": [ + { + "description": "Top 10 App to App violations", + "query": "CommonSecurityLog\n| where DeviceVendor == \"vArmour\"\n| where DeviceProduct == \"AC\"\n| where Activity == \"POLICY_VIOLATION\"\n| extend AppNameSrcDstPair = extract_all(\"AppName=;(\\\\w+)\", AdditionalExtensions)\n| summarize count() by tostring(AppNameSrcDstPair)\n| top 10 by count_\n" + }, + { + "description": "Top 10 Policy names matching violations", + "query": "CommonSecurityLog\n| where DeviceVendor == \"vArmour\"\n| where DeviceProduct == \"AC\"\n| where Activity == \"POLICY_VIOLATION\"\n| summarize count() by DeviceCustomString1\n| top 10 by count_ desc\n" + }, + { + "description": "Top 10 Source IPs generating violations", + "query": "CommonSecurityLog\n| where DeviceVendor == \"vArmour\"\n| where DeviceProduct == \"AC\"\n| where Activity == \"POLICY_VIOLATION\"\n| summarize count() by SourceIP\n| top 10 by count_\n" + }, + { + "description": "Top 10 Destination IPs generating violations", + "query": "CommonSecurityLog\n| where DeviceVendor == \"vArmour\"\n| where DeviceProduct == \"AC\"\n| where Activity == \"POLICY_VIOLATION\"\n| summarize count() by DestinationIP\n| top 10 by count_\n" + }, + { + "description": "Top 10 Application Protocols matching violations", + "query": "CommonSecurityLog\n| where DeviceVendor == \"vArmour\"\n| where DeviceProduct == \"AC\"\n| where Activity == \"POLICY_VIOLATION\"\n| summarize count() by ApplicationProtocol\n| top 10 by count_\n" + } + ], + "availability": { + "status": 1, + "isPreview": false + }, + "permissions": { + "resourceProvider": [ + { + "provider": "Microsoft.OperationalInsights/workspaces", + "permissionsDisplayText": "read and write permissions are required.", + "providerDisplayName": "Workspace", + "scope": "Workspace", + "requiredPermissions": { + "read": true, + "write": true, + "delete": true + } + }, + { + "provider": "Microsoft.OperationalInsights/workspaces/sharedKeys", + "permissionsDisplayText": "read permissions to shared keys for the workspace are required. [See the documentation to learn more about workspace keys](https://docs.microsoft.com/azure/azure-monitor/platform/agent-windows#obtain-workspace-id-and-key).", + "providerDisplayName": "Keys", + "scope": "Workspace", + "requiredPermissions": { + "action": true + } + } + ], + "customs": [ + { + "description": "To collect data from non-Azure VMs, they must have Azure Arc installed and enabled. [Learn more](https://docs.microsoft.com/azure/azure-monitor/agents/azure-monitor-agent-install?tabs=ARMAgentPowerShell,PowerShellWindows,PowerShellWindowsArc,CLIWindows,CLIWindowsArc)" + }, + { + "description": "Common Event Format (CEF) via AMA and Syslog via AMA data connectors must be installed [Learn more](https://learn.microsoft.com/azure/sentinel/connect-cef-ama#open-the-connector-page-and-create-the-dcr)" + } + ] + }, + "instructionSteps": [ + { + "description": "Install and configure the Linux agent to collect your Common Event Format (CEF) Syslog messages and forward them to Microsoft Sentinel.\n\n> Notice that the data from all regions will be stored in the selected workspace", + "instructions": [ + { + "parameters": { + "title": "1. Kindly follow the steps to configure the data connector", + "instructionSteps": [ + { + "title": "Step A. Configure the Common Event Format (CEF) via AMA data connector", + "description": "_Note:- CEF logs are collected only from Linux Agents_\n\n1. Navigate to Microsoft Sentinel workspace ---> configuration ---> Data connector blade .\n\n2. Search for 'Common Event Format (CEF) via AMA' data connector and open it.\n\n3. Check If there is no existing DCR configured to collect required facility of logs, Create a new DCR (Data Collection Rule)\n\n\t_Note:- It is recommended to install minimum 1.27 version of AMA agent [Learn more](https://learn.microsoft.com/azure/azure-monitor/agents/azure-monitor-agent-manage?tabs=azure-portal ) and ensure there is no duplicate DCR as it can cause log duplicacy_\n\n4. Run the command provided in the CEF via AMA data connector page to configure the CEF collector on the machine", + "instructions": [] + }, + { + "title": "Step B. Configure the vArmour Application Controller to forward Common Event Format (CEF) logs to the Syslog agent", + "description": "Send Syslog messages in CEF format to the proxy machine. Make sure you to send the logs to port 514 TCP on the machine's IP address.", + "innerSteps": [ + { + "title": "1 Download the vArmour Application Controller user guide", + "description": "Download the user guide from https://support.varmour.com/hc/en-us/articles/360057444831-vArmour-Application-Controller-6-0-User-Guide." + }, + { + "title": "2 Configure the Application Controller to Send Policy Violations", + "description": "In the user guide - refer to \"Configuring Syslog for Monitoring and Violations\" and follow steps 1 to 3." + } + ] + }, + { + "title": "Step C. Validate connection", + "description": "Follow the instructions to validate your connectivity:\n\nOpen Log Analytics to check if the logs are received using the CommonSecurityLog schema.\n\nIt may take about 20 minutes until the connection streams data to your workspace.\n\nIf the logs are not received, run the following connectivity validation script:\n\n 1. Make sure that you have Python on your machine using the following command: python -version\n\n2. You must have elevated permissions (sudo) on your machine", + "instructions": [ + { + "parameters": { + "label": "Run the following command to validate your connectivity:", + "value": "sudo wget -O Sentinel_AMA_troubleshoot.py https://raw.githubusercontent.com/Azure/Azure-Sentinel/master/DataConnectors/Syslog/Sentinel_AMA_troubleshoot.py&&sudo python Sentinel_AMA_troubleshoot.py --cef" + }, + "type": "CopyableLabel" + } + ] + } + ] + }, + "type": "InstructionStepsGroup" + } + ] + }, + { + "description": "Make sure to configure the machine's security according to your organization's security policy\n\n\n[Learn more >](https://aka.ms/SecureCEF)", + "title": "2. Secure your machine " + } + ], + "id": "[variables('_uiConfigId2')]" + } + } + }, + { + "type": "Microsoft.OperationalInsights/workspaces/providers/contentTemplates", + "apiVersion": "2023-04-01-preview", + "name": "[variables('workbookTemplateSpecName1')]", "location": "[parameters('workspace-location')]", - "tags": { - "hidden-sentinelWorkspaceId": "[variables('workspaceResourceId')]", - "hidden-sentinelContentType": "Workbook" - }, "dependsOn": [ - "[resourceId('Microsoft.Resources/templateSpecs', variables('workbookTemplateSpecName1'))]" + "[extensionResourceId(resourceId('Microsoft.OperationalInsights/workspaces', parameters('workspace')), 'Microsoft.SecurityInsights/contentPackages', variables('_solutionId'))]" ], "properties": { - "description": "vArmour_AppContoller_WorkbookWorkbook Workbook with template version 2.0.0", + "description": "vArmour_AppContoller_WorkbookWorkbook Workbook with template version 3.0.0", "mainTemplate": { "$schema": "https://schema.management.azure.com/schemas/2019-04-01/deploymentTemplate.json#", "contentVersion": "[variables('workbookVersion1')]", @@ -494,7 +857,7 @@ }, "properties": { "displayName": "[parameters('workbook1-name')]", - "serializedData": "{\"version\":\"Notebook/1.0\",\"items\":[{\"type\":1,\"content\":{\"json\":\"## vArmour Application Controller\\n---\"},\"name\":\"text - 2\"},{\"type\":12,\"content\":{\"version\":\"NotebookGroup/1.0\",\"groupType\":\"editable\",\"items\":[{\"type\":3,\"content\":{\"version\":\"KqlItem/1.0\",\"query\":\"let starttime = 30d;\\nlet endtime = 0d;\\nlet timeframe = 1h;\\nlet TotalEventsThreshold = 5;\\nlet ExeList = dynamic([\\\"POLICY_VIOLATION\\\"]);\\nlet TimeSeriesData= \\nCommonSecurityLog\\n| where DeviceVendor == \\\"vArmour\\\"\\n| where DeviceProduct == \\\"AC\\\"\\n| where Activity == \\\"POLICY_VIOLATION\\\"\\n| where TimeGenerated between (startofday(ago(starttime))..startofday(ago(endtime)))\\n| where Activity in (ExeList)\\n| make-series Total=count() on TimeGenerated from ago(starttime) to ago(endtime) step timeframe by Activity;\\nTimeSeriesData\\n| render timechart \\n\",\"size\":0,\"title\":\"Violations against Policy (Incoming Rate)\",\"timeContext\":{\"durationMs\":259200000},\"queryType\":0,\"resourceType\":\"microsoft.operationalinsights/workspaces\"},\"customWidth\":\"33\",\"name\":\"query - 5\",\"styleSettings\":{\"showBorder\":true}},{\"type\":3,\"content\":{\"version\":\"KqlItem/1.0\",\"query\":\"CommonSecurityLog\\n| where DeviceVendor == \\\"vArmour\\\"\\n| where DeviceProduct == \\\"AC\\\"\\n| where Activity == \\\"POLICY_VIOLATION\\\"\\n| summarize count() by DestinationIP | top 10 by count_ desc \\n|render piechart\\n\\n\",\"size\":0,\"title\":\"Top 10 Destinations observed Counter to Policy (Potential Apps/Workloads under threat)\",\"timeContext\":{\"durationMs\":2592000000},\"queryType\":0,\"resourceType\":\"microsoft.operationalinsights/workspaces\"},\"customWidth\":\"33\",\"name\":\"query - 3\",\"styleSettings\":{\"showBorder\":true}},{\"type\":3,\"content\":{\"version\":\"KqlItem/1.0\",\"query\":\"CommonSecurityLog\\n| where DeviceVendor == \\\"vArmour\\\"\\n| where DeviceProduct == \\\"AC\\\"\\n| where Activity == \\\"POLICY_VIOLATION\\\"\\n| extend AppNameSrcDstPair = extract_all(\\\"AppName=;(\\\\\\\\w+)\\\", AdditionalExtensions)\\n| summarize count() by tostring(AppNameSrcDstPair)\\n| top 10 by count_\\n\",\"size\":0,\"title\":\"Top 10 Applications with Violations (AppName to AppName)\",\"timeContext\":{\"durationMs\":2592000000},\"queryType\":0,\"resourceType\":\"microsoft.operationalinsights/workspaces\"},\"customWidth\":\"33\",\"name\":\"query - 4\",\"styleSettings\":{\"showBorder\":true}}]},\"name\":\"group - 0\"},{\"type\":12,\"content\":{\"version\":\"NotebookGroup/1.0\",\"groupType\":\"editable\",\"items\":[{\"type\":3,\"content\":{\"version\":\"KqlItem/1.0\",\"query\":\"CommonSecurityLog\\n| where DeviceVendor == \\\"vArmour\\\"\\n| where DeviceProduct == \\\"AC\\\"\\n| where Activity == \\\"POLICY_VIOLATION\\\"\\n| summarize count() by ApplicationProtocol | top 10 by count_ desc \\n| render barchart\\n\",\"size\":0,\"title\":\"Top 10 Application Protocols involved in Violations (Potential Protocol Exposure)\",\"timeContext\":{\"durationMs\":2592000000},\"queryType\":0,\"resourceType\":\"microsoft.operationalinsights/workspaces\"},\"customWidth\":\"33\",\"name\":\"query - 4\",\"styleSettings\":{\"showBorder\":true}},{\"type\":12,\"content\":{\"version\":\"NotebookGroup/1.0\",\"groupType\":\"editable\",\"title\":\"Top 10 Sources of Violations (Potential Compromised Workloads or User Risk)\",\"items\":[{\"type\":3,\"content\":{\"version\":\"KqlItem/1.0\",\"query\":\"CommonSecurityLog\\n| where DeviceVendor == \\\"vArmour\\\"\\n| where DeviceProduct == \\\"AC\\\"\\n| where Activity == \\\"POLICY_VIOLATION\\\"\\n| summarize count() by SourceIP | top 10 by count_ desc \\n\",\"size\":0,\"timeContext\":{\"durationMs\":2592000000},\"queryType\":0,\"resourceType\":\"microsoft.operationalinsights/workspaces\"},\"customWidth\":\"50\",\"name\":\"query - 2\"}]},\"customWidth\":\"33\",\"name\":\"group - 4\",\"styleSettings\":{\"showBorder\":true}},{\"type\":3,\"content\":{\"version\":\"KqlItem/1.0\",\"query\":\"CommonSecurityLog\\n| where DeviceVendor == \\\"vArmour\\\"\\n| where DeviceProduct == \\\"AC\\\"\\n| where Activity == \\\"POLICY_VIOLATION\\\"\\n| extend PolicyName = extract(\\\"(\\\\\\\\w+{.*})\\\", 1, DeviceCustomString1)\\n| summarize count() by PolicyName | top 10 by count_ desc \\n\",\"size\":0,\"title\":\"Policies with Violations (Risk Identification)\",\"timeContext\":{\"durationMs\":2592000000},\"queryType\":0,\"resourceType\":\"microsoft.operationalinsights/workspaces\"},\"customWidth\":\"33\",\"name\":\"query - 4\",\"styleSettings\":{\"showBorder\":true}}]},\"name\":\"group - 1\"},{\"type\":12,\"content\":{\"version\":\"NotebookGroup/1.0\",\"groupType\":\"editable\",\"items\":[{\"type\":3,\"content\":{\"version\":\"KqlItem/1.0\",\"query\":\"union withsource=_TableName *\\n| summarize Count=count() by _TableName\\n| render barchart\",\"size\":1,\"title\":\"Types and Number of Events ingested\",\"queryType\":0,\"resourceType\":\"microsoft.operationalinsights/workspaces\"},\"name\":\"query - 2\",\"styleSettings\":{\"showBorder\":true}}]},\"name\":\"group - 3\"}]}\r\n", + "serializedData": "{\"version\":\"Notebook/1.0\",\"items\":[{\"type\":1,\"content\":{\"json\":\"## vArmour Application Controller\\n---\"},\"name\":\"text - 2\"},{\"type\":12,\"content\":{\"version\":\"NotebookGroup/1.0\",\"groupType\":\"editable\",\"items\":[{\"type\":3,\"content\":{\"version\":\"KqlItem/1.0\",\"query\":\"let starttime = 30d;\\nlet endtime = 0d;\\nlet timeframe = 1h;\\nlet TotalEventsThreshold = 5;\\nlet ExeList = dynamic([\\\"POLICY_VIOLATION\\\"]);\\nlet TimeSeriesData= \\nCommonSecurityLog\\n| where DeviceVendor == \\\"vArmour\\\"\\n| where DeviceProduct == \\\"AC\\\"\\n| where Activity == \\\"POLICY_VIOLATION\\\"\\n| where TimeGenerated between (startofday(ago(starttime))..startofday(ago(endtime)))\\n| where Activity in (ExeList)\\n| make-series Total=count() on TimeGenerated from ago(starttime) to ago(endtime) step timeframe by Activity;\\nTimeSeriesData\\n| render timechart \\n\",\"size\":0,\"title\":\"Violations against Policy (Incoming Rate)\",\"timeContext\":{\"durationMs\":259200000},\"queryType\":0,\"resourceType\":\"microsoft.operationalinsights/workspaces\"},\"customWidth\":\"33\",\"name\":\"query - 5\",\"styleSettings\":{\"showBorder\":true}},{\"type\":3,\"content\":{\"version\":\"KqlItem/1.0\",\"query\":\"CommonSecurityLog\\n| where DeviceVendor == \\\"vArmour\\\"\\n| where DeviceProduct == \\\"AC\\\"\\n| where Activity == \\\"POLICY_VIOLATION\\\"\\n| summarize count() by DestinationIP | top 10 by count_ desc \\n|render piechart\\n\\n\",\"size\":0,\"title\":\"Top 10 Destinations observed Counter to Policy (Potential Apps/Workloads under threat)\",\"timeContext\":{\"durationMs\":2592000000},\"queryType\":0,\"resourceType\":\"microsoft.operationalinsights/workspaces\"},\"customWidth\":\"33\",\"name\":\"query - 3\",\"styleSettings\":{\"showBorder\":true}},{\"type\":3,\"content\":{\"version\":\"KqlItem/1.0\",\"query\":\"CommonSecurityLog\\n| where DeviceVendor == \\\"vArmour\\\"\\n| where DeviceProduct == \\\"AC\\\"\\n| where Activity == \\\"POLICY_VIOLATION\\\"\\n| extend AppNameSrcDstPair = extract_all(\\\"AppName=;(\\\\\\\\w+)\\\", AdditionalExtensions)\\n| summarize count() by tostring(AppNameSrcDstPair)\\n| top 10 by count_\\n\",\"size\":0,\"title\":\"Top 10 Applications with Violations (AppName to AppName)\",\"timeContext\":{\"durationMs\":2592000000},\"queryType\":0,\"resourceType\":\"microsoft.operationalinsights/workspaces\"},\"customWidth\":\"33\",\"name\":\"query - 4\",\"styleSettings\":{\"showBorder\":true}}]},\"name\":\"group - 0\"},{\"type\":12,\"content\":{\"version\":\"NotebookGroup/1.0\",\"groupType\":\"editable\",\"items\":[{\"type\":3,\"content\":{\"version\":\"KqlItem/1.0\",\"query\":\"CommonSecurityLog\\n| where DeviceVendor == \\\"vArmour\\\"\\n| where DeviceProduct == \\\"AC\\\"\\n| where Activity == \\\"POLICY_VIOLATION\\\"\\n| summarize count() by ApplicationProtocol | top 10 by count_ desc \\n| render barchart\\n\",\"size\":0,\"title\":\"Top 10 Application Protocols involved in Violations (Potential Protocol Exposure)\",\"timeContext\":{\"durationMs\":2592000000},\"queryType\":0,\"resourceType\":\"microsoft.operationalinsights/workspaces\"},\"customWidth\":\"33\",\"name\":\"query - 4\",\"styleSettings\":{\"showBorder\":true}},{\"type\":12,\"content\":{\"version\":\"NotebookGroup/1.0\",\"groupType\":\"editable\",\"title\":\"Top 10 Sources of Violations (Potential Compromised Workloads or User Risk)\",\"items\":[{\"type\":3,\"content\":{\"version\":\"KqlItem/1.0\",\"query\":\"CommonSecurityLog\\n| where DeviceVendor == \\\"vArmour\\\"\\n| where DeviceProduct == \\\"AC\\\"\\n| where Activity == \\\"POLICY_VIOLATION\\\"\\n| summarize count() by SourceIP | top 10 by count_ desc \\n\",\"size\":0,\"timeContext\":{\"durationMs\":2592000000},\"queryType\":0,\"resourceType\":\"microsoft.operationalinsights/workspaces\",\"sortBy\":[]},\"customWidth\":\"50\",\"name\":\"query - 2\"}]},\"customWidth\":\"33\",\"name\":\"group - 4\",\"styleSettings\":{\"showBorder\":true}},{\"type\":3,\"content\":{\"version\":\"KqlItem/1.0\",\"query\":\"CommonSecurityLog\\n| where DeviceVendor == \\\"vArmour\\\"\\n| where DeviceProduct == \\\"AC\\\"\\n| where Activity == \\\"POLICY_VIOLATION\\\"\\n| extend PolicyName = extract(\\\"(\\\\\\\\w+{.*})\\\", 1, DeviceCustomString1)\\n| summarize count() by PolicyName | top 10 by count_ desc \\n\",\"size\":0,\"title\":\"Policies with Violations (Risk Identification)\",\"timeContext\":{\"durationMs\":2592000000},\"queryType\":0,\"resourceType\":\"microsoft.operationalinsights/workspaces\"},\"customWidth\":\"33\",\"name\":\"query - 4\",\"styleSettings\":{\"showBorder\":true}}]},\"name\":\"group - 1\"},{\"type\":12,\"content\":{\"version\":\"NotebookGroup/1.0\",\"groupType\":\"editable\",\"items\":[{\"type\":3,\"content\":{\"version\":\"KqlItem/1.0\",\"query\":\"union withsource=_TableName *\\n| summarize Count=count() by _TableName\\n| render barchart\",\"size\":1,\"title\":\"Types and Number of Events ingested\",\"queryType\":0,\"resourceType\":\"microsoft.operationalinsights/workspaces\"},\"name\":\"query - 2\",\"styleSettings\":{\"showBorder\":true}}]},\"name\":\"group - 3\"}]}\n", "version": "1.0", "sourceId": "[variables('workspaceResourceId')]", "category": "sentinel" @@ -539,37 +902,30 @@ } } ] - } + }, + "packageKind": "Solution", + "packageVersion": "[variables('_solutionVersion')]", + "packageName": "[variables('_solutionName')]", + "packageId": "[variables('_solutionId')]", + "contentSchemaVersion": "3.0.0", + "contentId": "[variables('_workbookContentId1')]", + "contentKind": "Workbook", + "displayName": "[parameters('workbook1-name')]", + "contentProductId": "[variables('_workbookcontentProductId1')]", + "id": "[variables('_workbookcontentProductId1')]", + "version": "[variables('workbookVersion1')]" } }, { - "type": "Microsoft.Resources/templateSpecs", - "apiVersion": "2021-05-01", + "type": "Microsoft.OperationalInsights/workspaces/providers/contentTemplates", + "apiVersion": "2023-04-01-preview", "name": "[variables('analyticRuleTemplateSpecName1')]", "location": "[parameters('workspace-location')]", - "tags": { - "hidden-sentinelWorkspaceId": "[variables('workspaceResourceId')]", - "hidden-sentinelContentType": "AnalyticsRule" - }, - "properties": { - "description": "vArmour Application Controller Analytics Rule 1 with template", - "displayName": "vArmour Application Controller Analytics Rule template" - } - }, - { - "type": "Microsoft.Resources/templateSpecs/versions", - "apiVersion": "2021-05-01", - "name": "[concat(variables('analyticRuleTemplateSpecName1'),'/',variables('analyticRuleVersion1'))]", - "location": "[parameters('workspace-location')]", - "tags": { - "hidden-sentinelWorkspaceId": "[variables('workspaceResourceId')]", - "hidden-sentinelContentType": "AnalyticsRule" - }, "dependsOn": [ - "[resourceId('Microsoft.Resources/templateSpecs', variables('analyticRuleTemplateSpecName1'))]" + "[extensionResourceId(resourceId('Microsoft.OperationalInsights/workspaces', parameters('workspace')), 'Microsoft.SecurityInsights/contentPackages', variables('_solutionId'))]" ], "properties": { - "description": "vArmourApplicationControllerSMBRealmTraversal_AnalyticalRules Analytics Rule with template version 2.0.0", + "description": "vArmourApplicationControllerSMBRealmTraversal_AnalyticalRules Analytics Rule with template version 3.0.0", "mainTemplate": { "$schema": "https://schema.management.azure.com/schemas/2019-04-01/deploymentTemplate.json#", "contentVersion": "[variables('analyticRuleVersion1')]", @@ -578,7 +934,7 @@ "resources": [ { "type": "Microsoft.SecurityInsights/AlertRuleTemplates", - "name": "[variables('AnalyticRulecontentId1')]", + "name": "[variables('analyticRulecontentId1')]", "apiVersion": "2022-04-01-preview", "kind": "Scheduled", "location": "[parameters('workspace-location')]", @@ -597,23 +953,27 @@ "status": "Available", "requiredDataConnectors": [ { - "connectorId": "vArmourAC", "dataTypes": [ "CommonSecurityLog" - ] + ], + "connectorId": "vArmourAC" } ], "tactics": [ "Discovery", "LateralMovement" ], + "techniques": [ + "T1135", + "T1570" + ], "entityMappings": [ { "entityType": "Host", "fieldMappings": [ { - "columnName": "DestinationHostName", - "identifier": "HostName" + "identifier": "HostName", + "columnName": "DestinationHostName" } ] }, @@ -621,8 +981,8 @@ "entityType": "IP", "fieldMappings": [ { - "columnName": "SourceIP", - "identifier": "Address" + "identifier": "Address", + "columnName": "SourceIP" } ] } @@ -655,17 +1015,35 @@ } } ] - } + }, + "packageKind": "Solution", + "packageVersion": "[variables('_solutionVersion')]", + "packageName": "[variables('_solutionName')]", + "packageId": "[variables('_solutionId')]", + "contentSchemaVersion": "3.0.0", + "contentId": "[variables('_analyticRulecontentId1')]", + "contentKind": "AnalyticsRule", + "displayName": "vArmour AppController - SMB Realm Traversal", + "contentProductId": "[variables('_analyticRulecontentProductId1')]", + "id": "[variables('_analyticRulecontentProductId1')]", + "version": "[variables('analyticRuleVersion1')]" } }, { - "type": "Microsoft.OperationalInsights/workspaces/providers/metadata", - "apiVersion": "2022-01-01-preview", + "type": "Microsoft.OperationalInsights/workspaces/providers/contentPackages", + "apiVersion": "2023-04-01-preview", "location": "[parameters('workspace-location')]", "properties": { - "version": "2.0.0", + "version": "3.0.0", "kind": "Solution", - "contentSchemaVersion": "2.0.0", + "contentSchemaVersion": "3.0.0", + "displayName": "vArmour Application Controller", + "publisherDisplayName": "vArmour Networks", + "descriptionHtml": "

Note: There may be known issues pertaining to this Solution, please refer to them before installing.

\n

This vArmour solution enables streaming of Application Controller Violation Alerts into Microsoft Sentinel, so you can take advantage of search & correlation, alerting, & threat intelligence enrichment for each log.

\n
    \n
  1. vArmour Application Controller via AMA - This data connector helps in ingesting OSSEC logs into your Log Analytics Workspace using the new Azure Monitor Agent. Learn more about ingesting using the new Azure Monitor Agent here. Microsoft recommends using this Data Connector.

    \n
  2. \n
  3. vArmour Application Controller via Legacy Agent - This data connector helps in ingesting vArmour Application Controller logs into your Log Analytics Workspace using the legacy Log Analytics agent.

    \n
  4. \n
\n

NOTE: Microsoft recommends installation of vArmour Application Controller via AMA Connector. Legacy connector uses the Log Analytics agent which is about to be deprecated by Aug 31, 2024, and thus should only be installed where AMA is not supported. Using MMA and AMA on same machine can cause log duplication and extra ingestion cost more details.

\n

Data Connectors: 2, Workbooks: 1, Analytic Rules: 1

\n

Learn more about Microsoft Sentinel | Learn more about Solutions

\n", + "contentKind": "Solution", + "contentProductId": "[variables('_solutioncontentProductId')]", + "id": "[variables('_solutioncontentProductId')]", + "icon": "", "contentId": "[variables('_solutionId')]", "parentId": "[variables('_solutionId')]", "source": { @@ -689,6 +1067,11 @@ "contentId": "[variables('_dataConnectorContentId1')]", "version": "[variables('dataConnectorVersion1')]" }, + { + "kind": "DataConnector", + "contentId": "[variables('_dataConnectorContentId2')]", + "version": "[variables('dataConnectorVersion2')]" + }, { "kind": "Workbook", "contentId": "[variables('_workbookContentId1')]", From 0f29ca70b39c0407fe492ccd4490196fab3694b9 Mon Sep 17 00:00:00 2001 From: v-rusraut Date: Mon, 4 Sep 2023 12:30:24 +0530 Subject: [PATCH 3/5] updated package --- ...pplicationControllerSMBRealmTraversal.yaml | 3 +++ ...onnector_vArmour_AppController_CEFAMA.json | 2 +- .../Data/Solution_vArmour.json | 2 +- .../Package/3.0.0.zip | Bin 10748 -> 11325 bytes .../Package/createUiDefinition.json | 10 ++------- .../Package/mainTemplate.json | 20 +++++++++--------- .../ReleaseNotes.md | 5 +++++ .../WorkbookMetadata/WorkbooksMetadata.json | 3 ++- 8 files changed, 24 insertions(+), 21 deletions(-) create mode 100644 Solutions/vArmour Application Controller/ReleaseNotes.md diff --git a/Solutions/vArmour Application Controller/Analytic Rules/vArmourApplicationControllerSMBRealmTraversal.yaml b/Solutions/vArmour Application Controller/Analytic Rules/vArmourApplicationControllerSMBRealmTraversal.yaml index 0d031f5291a..db3473f0f61 100644 --- a/Solutions/vArmour Application Controller/Analytic Rules/vArmourApplicationControllerSMBRealmTraversal.yaml +++ b/Solutions/vArmour Application Controller/Analytic Rules/vArmourApplicationControllerSMBRealmTraversal.yaml @@ -8,6 +8,9 @@ requiredDataConnectors: - connectorId: vArmourAC dataTypes: - CommonSecurityLog + - connectorId: vArmourACAma + dataTypes: + - CommonSecurityLog queryFrequency: 1h queryPeriod: 1h triggerOperator: gt diff --git a/Solutions/vArmour Application Controller/Data Connectors/template_Connector_vArmour_AppController_CEFAMA.json b/Solutions/vArmour Application Controller/Data Connectors/template_Connector_vArmour_AppController_CEFAMA.json index c2b7cfd2c96..966d2cdca8c 100644 --- a/Solutions/vArmour Application Controller/Data Connectors/template_Connector_vArmour_AppController_CEFAMA.json +++ b/Solutions/vArmour Application Controller/Data Connectors/template_Connector_vArmour_AppController_CEFAMA.json @@ -1,5 +1,5 @@ { - "id": "vArmourAC", + "id": "vArmourACAma", "title":"[Recommended] vArmour Application Controller via AMA", "publisher": "vArmour", "descriptionMarkdown": "vArmour reduces operational risk and increases cyber resiliency by visualizing and controlling application relationships across the enterprise. This vArmour connector enables streaming of Application Controller Violation Alerts into Microsoft Sentinel, so you can take advantage of search & correlation, alerting, & threat intelligence enrichment for each log.", diff --git a/Solutions/vArmour Application Controller/Data/Solution_vArmour.json b/Solutions/vArmour Application Controller/Data/Solution_vArmour.json index 5db25fb8ee9..516fc4dc6b8 100644 --- a/Solutions/vArmour Application Controller/Data/Solution_vArmour.json +++ b/Solutions/vArmour Application Controller/Data/Solution_vArmour.json @@ -2,7 +2,7 @@ "Name": "vArmour Application Controller", "Author": "vArmour", "Logo": "", - "Description": "This vArmour solution enables streaming of Application Controller Violation Alerts into Microsoft Sentinel, so you can take advantage of search & correlation, alerting, & threat intelligence enrichment for each log.\n\r\n1. **vArmour Application Controller via AMA** - This data connector helps in ingesting OSSEC logs into your Log Analytics Workspace using the new Azure Monitor Agent. Learn more about ingesting using the new Azure Monitor Agent [here](https://learn.microsoft.com/azure/sentinel/connect-cef-ama). **Microsoft recommends using this Data Connector**.\n\r\n2. **vArmour Application Controller via Legacy Agent** - This data connector helps in ingesting vArmour Application Controller logs into your Log Analytics Workspace using the legacy Log Analytics agent.\n\n**NOTE:** Microsoft recommends installation of vArmour Application Controller via AMA Connector. Legacy connector uses the Log Analytics agent which is about to be deprecated by **Aug 31, 2024,** and thus should only be installed where AMA is not supported. Using MMA and AMA on same machine can cause log duplication and extra ingestion cost [more details](https://learn.microsoft.com/en-us/azure/sentinel/ama-migrate).", + "Description": "This vArmour solution enables streaming of Application Controller Violation Alerts into Microsoft Sentinel, so you can take advantage of search & correlation, alerting, & threat intelligence enrichment for each log.\n\r\n1. **vArmour Application Controller via AMA** - This data connector helps in ingesting vArmour Application Controller logs into your Log Analytics Workspace using the new Azure Monitor Agent. Learn more about ingesting using the new Azure Monitor Agent [here](https://learn.microsoft.com/azure/sentinel/connect-cef-ama). **Microsoft recommends using this Data Connector**.\n\r\n2. **vArmour Application Controller via Legacy Agent** - This data connector helps in ingesting vArmour Application Controller logs into your Log Analytics Workspace using the legacy Log Analytics agent.\n\n**NOTE:** Microsoft recommends installation of vArmour Application Controller via AMA Connector. Legacy connector uses the Log Analytics agent which is about to be deprecated by **Aug 31, 2024,** and thus should only be installed where AMA is not supported. Using MMA and AMA on same machine can cause log duplication and extra ingestion cost [more details](https://learn.microsoft.com/en-us/azure/sentinel/ama-migrate).", "Data Connectors": [ "Data Connectors/Connector_vArmour_AppController_CEF.json", "Data Connectors/template_Connector_vArmour_AppController_CEFAMA.json" diff --git a/Solutions/vArmour Application Controller/Package/3.0.0.zip b/Solutions/vArmour Application Controller/Package/3.0.0.zip index d6219f15b873723ed70394ad2b40d2f7f932989f..025b18ce30fcad7eae5a0c31aa2947753be6d9a8 100644 GIT binary patch literal 11325 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 literal 10748 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 diff --git a/Solutions/vArmour Application Controller/Package/createUiDefinition.json b/Solutions/vArmour Application Controller/Package/createUiDefinition.json index 95c8c307c4b..9a2c5337d00 100644 --- a/Solutions/vArmour Application Controller/Package/createUiDefinition.json +++ b/Solutions/vArmour Application Controller/Package/createUiDefinition.json @@ -6,7 +6,7 @@ "config": { "isWizard": false, "basics": { - "description": "\n\n**Note:** _There may be [known issues](https://aka.ms/sentinelsolutionsknownissues) pertaining to this Solution, please refer to them before installing._\n\nThis vArmour solution enables streaming of Application Controller Violation Alerts into Microsoft Sentinel, so you can take advantage of search & correlation, alerting, & threat intelligence enrichment for each log.\n\r\n1. **vArmour Application Controller via AMA** - This data connector helps in ingesting OSSEC logs into your Log Analytics Workspace using the new Azure Monitor Agent. Learn more about ingesting using the new Azure Monitor Agent [here](https://learn.microsoft.com/azure/sentinel/connect-cef-ama). **Microsoft recommends using this Data Connector**.\n\r\n2. **vArmour Application Controller via Legacy Agent** - This data connector helps in ingesting vArmour Application Controller logs into your Log Analytics Workspace using the legacy Log Analytics agent.\n\n**NOTE:** Microsoft recommends installation of vArmour Application Controller via AMA Connector. Legacy connector uses the Log Analytics agent which is about to be deprecated by **Aug 31, 2024,** and thus should only be installed where AMA is not supported. Using MMA and AMA on same machine can cause log duplication and extra ingestion cost [more details](https://learn.microsoft.com/en-us/azure/sentinel/ama-migrate).\n\n**Data Connectors:** 2, **Workbooks:** 1, **Analytic Rules:** 1\n\n[Learn more about Microsoft Sentinel](https://aka.ms/azuresentinel) | [Learn more about Solutions](https://aka.ms/azuresentinelsolutionsdoc)", + "description": "\n\n**Note:** Please refer to the following before installing the solution: \r \n • Review the solution [Release Notes](https://github.com/Azure/Azure-Sentinel/tree/master/Solutions/vArmour%20Application%20Controller/ReleaseNotes.md)\r \n • There may be [known issues](https://aka.ms/sentinelsolutionsknownissues) pertaining to this Solution, please refer to them before installing.\n\nThis vArmour solution enables streaming of Application Controller Violation Alerts into Microsoft Sentinel, so you can take advantage of search & correlation, alerting, & threat intelligence enrichment for each log.\n\r\n1. **vArmour Application Controller via AMA** - This data connector helps in ingesting vArmour Application Controller logs into your Log Analytics Workspace using the new Azure Monitor Agent. Learn more about ingesting using the new Azure Monitor Agent [here](https://learn.microsoft.com/azure/sentinel/connect-cef-ama). **Microsoft recommends using this Data Connector**.\n\r\n2. **vArmour Application Controller via Legacy Agent** - This data connector helps in ingesting vArmour Application Controller logs into your Log Analytics Workspace using the legacy Log Analytics agent.\n\n**NOTE:** Microsoft recommends installation of vArmour Application Controller via AMA Connector. Legacy connector uses the Log Analytics agent which is about to be deprecated by **Aug 31, 2024,** and thus should only be installed where AMA is not supported. Using MMA and AMA on same machine can cause log duplication and extra ingestion cost [more details](https://learn.microsoft.com/en-us/azure/sentinel/ama-migrate).\n\n**Data Connectors:** 2, **Workbooks:** 1, **Analytic Rules:** 1\n\n[Learn more about Microsoft Sentinel](https://aka.ms/azuresentinel) | [Learn more about Solutions](https://aka.ms/azuresentinelsolutionsdoc)", "subscription": { "resourceProviders": [ "Microsoft.OperationsManagement/solutions", @@ -63,6 +63,7 @@ "text": "This Solution installs the data connector for vArmour Application Controller. You can get vArmour Application Controller CommonSecurityLog data in your Microsoft Sentinel workspace. After installing the solution, configure and enable this data connector by following guidance in Manage solution view." } }, + { "name": "dataconnectors-link2", "type": "Microsoft.Common.TextBlock", @@ -72,13 +73,6 @@ "uri": "https://docs.microsoft.com/azure/sentinel/connect-data-sources" } } - }, - { - "name": "dataconnectors2-text", - "type": "Microsoft.Common.TextBlock", - "options": { - "text": "This Solution installs the data connector for vArmour Application Controller. You can get vArmour Application Controller CommonSecurityLog data in your Microsoft Sentinel workspace. After installing the solution, configure and enable this data connector by following guidance in Manage solution view." - } } ] }, diff --git a/Solutions/vArmour Application Controller/Package/mainTemplate.json b/Solutions/vArmour Application Controller/Package/mainTemplate.json index a1e0edce7bb..5e81398e84e 100644 --- a/Solutions/vArmour Application Controller/Package/mainTemplate.json +++ b/Solutions/vArmour Application Controller/Package/mainTemplate.json @@ -38,10 +38,10 @@ } }, "variables": { - "solutionId": "varmournetworks.varmour_sentinel", - "_solutionId": "[variables('solutionId')]", "_solutionName": "vArmour Application Controller", "_solutionVersion": "3.0.0", + "solutionId": "varmournetworks.varmour_sentinel", + "_solutionId": "[variables('solutionId')]", "uiConfigId1": "vArmourAC", "_uiConfigId1": "[variables('uiConfigId1')]", "dataConnectorContentId1": "vArmourAC", @@ -51,9 +51,9 @@ "dataConnectorTemplateSpecName1": "[concat(parameters('workspace'),'/Microsoft.SecurityInsights/',concat(parameters('workspace'),'-dc-',uniquestring(variables('_dataConnectorContentId1'))))]", "dataConnectorVersion1": "1.0.0", "_dataConnectorcontentProductId1": "[concat(take(variables('_solutionId'),50),'-','dc','-', uniqueString(concat(variables('_solutionId'),'-','DataConnector','-',variables('_dataConnectorContentId1'),'-', variables('dataConnectorVersion1'))))]", - "uiConfigId2": "vArmourAC", + "uiConfigId2": "vArmourACAma", "_uiConfigId2": "[variables('uiConfigId2')]", - "dataConnectorContentId2": "vArmourAC", + "dataConnectorContentId2": "vArmourACAma", "_dataConnectorContentId2": "[variables('dataConnectorContentId2')]", "dataConnectorId2": "[extensionResourceId(resourceId('Microsoft.OperationalInsights/workspaces', parameters('workspace')), 'Microsoft.SecurityInsights/dataConnectors', variables('_dataConnectorContentId2'))]", "_dataConnectorId2": "[variables('dataConnectorId2')]", @@ -574,8 +574,8 @@ "instructionSteps": [ { "title": "Step A. Configure the Common Event Format (CEF) via AMA data connector", - "description": "_Note:- CEF logs are collected only from Linux Agents_\n\n1. Navigate to Microsoft Sentinel workspace ---> configuration ---> Data connector blade .\n\n2. Search for 'Common Event Format (CEF) via AMA' data connector and open it.\n\n3. Check If there is no existing DCR configured to collect required facility of logs, Create a new DCR (Data Collection Rule)\n\n\t_Note:- It is recommended to install minimum 1.27 version of AMA agent [Learn more](https://learn.microsoft.com/azure/azure-monitor/agents/azure-monitor-agent-manage?tabs=azure-portal ) and ensure there is no duplicate DCR as it can cause log duplicacy_\n\n4. Run the command provided in the CEF via AMA data connector page to configure the CEF collector on the machine", - "instructions": [] + "description": "_Note:- CEF logs are collected only from Linux Agents_\n\n1. Navigate to Microsoft Sentinel workspace ---> configuration ---> Data connector blade .\n\n2. Search for 'Common Event Format (CEF) via AMA' data connector and open it.\n\n3. Check If there is no existing DCR configured to collect required facility of logs, Create a new DCR (Data Collection Rule)\n\n\t_Note:- It is recommended to install minimum 1.27 version of AMA agent [Learn more](https://learn.microsoft.com/azure/azure-monitor/agents/azure-monitor-agent-manage?tabs=azure-portal ) and ensure there is no duplicate DCR as it can cause log duplicacy_\n\n4. Run the command provided in the CEF via AMA data connector page to configure the CEF collector on the machine" + }, { "title": "Step B. Configure the vArmour Application Controller to forward Common Event Format (CEF) logs to the Syslog agent", @@ -785,8 +785,8 @@ "instructionSteps": [ { "title": "Step A. Configure the Common Event Format (CEF) via AMA data connector", - "description": "_Note:- CEF logs are collected only from Linux Agents_\n\n1. Navigate to Microsoft Sentinel workspace ---> configuration ---> Data connector blade .\n\n2. Search for 'Common Event Format (CEF) via AMA' data connector and open it.\n\n3. Check If there is no existing DCR configured to collect required facility of logs, Create a new DCR (Data Collection Rule)\n\n\t_Note:- It is recommended to install minimum 1.27 version of AMA agent [Learn more](https://learn.microsoft.com/azure/azure-monitor/agents/azure-monitor-agent-manage?tabs=azure-portal ) and ensure there is no duplicate DCR as it can cause log duplicacy_\n\n4. Run the command provided in the CEF via AMA data connector page to configure the CEF collector on the machine", - "instructions": [] + "description": "_Note:- CEF logs are collected only from Linux Agents_\n\n1. Navigate to Microsoft Sentinel workspace ---> configuration ---> Data connector blade .\n\n2. Search for 'Common Event Format (CEF) via AMA' data connector and open it.\n\n3. Check If there is no existing DCR configured to collect required facility of logs, Create a new DCR (Data Collection Rule)\n\n\t_Note:- It is recommended to install minimum 1.27 version of AMA agent [Learn more](https://learn.microsoft.com/azure/azure-monitor/agents/azure-monitor-agent-manage?tabs=azure-portal ) and ensure there is no duplicate DCR as it can cause log duplicacy_\n\n4. Run the command provided in the CEF via AMA data connector page to configure the CEF collector on the machine" + }, { "title": "Step B. Configure the vArmour Application Controller to forward Common Event Format (CEF) logs to the Syslog agent", @@ -857,7 +857,7 @@ }, "properties": { "displayName": "[parameters('workbook1-name')]", - "serializedData": "{\"version\":\"Notebook/1.0\",\"items\":[{\"type\":1,\"content\":{\"json\":\"## vArmour Application Controller\\n---\"},\"name\":\"text - 2\"},{\"type\":12,\"content\":{\"version\":\"NotebookGroup/1.0\",\"groupType\":\"editable\",\"items\":[{\"type\":3,\"content\":{\"version\":\"KqlItem/1.0\",\"query\":\"let starttime = 30d;\\nlet endtime = 0d;\\nlet timeframe = 1h;\\nlet TotalEventsThreshold = 5;\\nlet ExeList = dynamic([\\\"POLICY_VIOLATION\\\"]);\\nlet TimeSeriesData= \\nCommonSecurityLog\\n| where DeviceVendor == \\\"vArmour\\\"\\n| where DeviceProduct == \\\"AC\\\"\\n| where Activity == \\\"POLICY_VIOLATION\\\"\\n| where TimeGenerated between (startofday(ago(starttime))..startofday(ago(endtime)))\\n| where Activity in (ExeList)\\n| make-series Total=count() on TimeGenerated from ago(starttime) to ago(endtime) step timeframe by Activity;\\nTimeSeriesData\\n| render timechart \\n\",\"size\":0,\"title\":\"Violations against Policy (Incoming Rate)\",\"timeContext\":{\"durationMs\":259200000},\"queryType\":0,\"resourceType\":\"microsoft.operationalinsights/workspaces\"},\"customWidth\":\"33\",\"name\":\"query - 5\",\"styleSettings\":{\"showBorder\":true}},{\"type\":3,\"content\":{\"version\":\"KqlItem/1.0\",\"query\":\"CommonSecurityLog\\n| where DeviceVendor == \\\"vArmour\\\"\\n| where DeviceProduct == \\\"AC\\\"\\n| where Activity == \\\"POLICY_VIOLATION\\\"\\n| summarize count() by DestinationIP | top 10 by count_ desc \\n|render piechart\\n\\n\",\"size\":0,\"title\":\"Top 10 Destinations observed Counter to Policy (Potential Apps/Workloads under threat)\",\"timeContext\":{\"durationMs\":2592000000},\"queryType\":0,\"resourceType\":\"microsoft.operationalinsights/workspaces\"},\"customWidth\":\"33\",\"name\":\"query - 3\",\"styleSettings\":{\"showBorder\":true}},{\"type\":3,\"content\":{\"version\":\"KqlItem/1.0\",\"query\":\"CommonSecurityLog\\n| where DeviceVendor == \\\"vArmour\\\"\\n| where DeviceProduct == \\\"AC\\\"\\n| where Activity == \\\"POLICY_VIOLATION\\\"\\n| extend AppNameSrcDstPair = extract_all(\\\"AppName=;(\\\\\\\\w+)\\\", AdditionalExtensions)\\n| summarize count() by tostring(AppNameSrcDstPair)\\n| top 10 by count_\\n\",\"size\":0,\"title\":\"Top 10 Applications with Violations (AppName to AppName)\",\"timeContext\":{\"durationMs\":2592000000},\"queryType\":0,\"resourceType\":\"microsoft.operationalinsights/workspaces\"},\"customWidth\":\"33\",\"name\":\"query - 4\",\"styleSettings\":{\"showBorder\":true}}]},\"name\":\"group - 0\"},{\"type\":12,\"content\":{\"version\":\"NotebookGroup/1.0\",\"groupType\":\"editable\",\"items\":[{\"type\":3,\"content\":{\"version\":\"KqlItem/1.0\",\"query\":\"CommonSecurityLog\\n| where DeviceVendor == \\\"vArmour\\\"\\n| where DeviceProduct == \\\"AC\\\"\\n| where Activity == \\\"POLICY_VIOLATION\\\"\\n| summarize count() by ApplicationProtocol | top 10 by count_ desc \\n| render barchart\\n\",\"size\":0,\"title\":\"Top 10 Application Protocols involved in Violations (Potential Protocol Exposure)\",\"timeContext\":{\"durationMs\":2592000000},\"queryType\":0,\"resourceType\":\"microsoft.operationalinsights/workspaces\"},\"customWidth\":\"33\",\"name\":\"query - 4\",\"styleSettings\":{\"showBorder\":true}},{\"type\":12,\"content\":{\"version\":\"NotebookGroup/1.0\",\"groupType\":\"editable\",\"title\":\"Top 10 Sources of Violations (Potential Compromised Workloads or User Risk)\",\"items\":[{\"type\":3,\"content\":{\"version\":\"KqlItem/1.0\",\"query\":\"CommonSecurityLog\\n| where DeviceVendor == \\\"vArmour\\\"\\n| where DeviceProduct == \\\"AC\\\"\\n| where Activity == \\\"POLICY_VIOLATION\\\"\\n| summarize count() by SourceIP | top 10 by count_ desc \\n\",\"size\":0,\"timeContext\":{\"durationMs\":2592000000},\"queryType\":0,\"resourceType\":\"microsoft.operationalinsights/workspaces\",\"sortBy\":[]},\"customWidth\":\"50\",\"name\":\"query - 2\"}]},\"customWidth\":\"33\",\"name\":\"group - 4\",\"styleSettings\":{\"showBorder\":true}},{\"type\":3,\"content\":{\"version\":\"KqlItem/1.0\",\"query\":\"CommonSecurityLog\\n| where DeviceVendor == \\\"vArmour\\\"\\n| where DeviceProduct == \\\"AC\\\"\\n| where Activity == \\\"POLICY_VIOLATION\\\"\\n| extend PolicyName = extract(\\\"(\\\\\\\\w+{.*})\\\", 1, DeviceCustomString1)\\n| summarize count() by PolicyName | top 10 by count_ desc \\n\",\"size\":0,\"title\":\"Policies with Violations (Risk Identification)\",\"timeContext\":{\"durationMs\":2592000000},\"queryType\":0,\"resourceType\":\"microsoft.operationalinsights/workspaces\"},\"customWidth\":\"33\",\"name\":\"query - 4\",\"styleSettings\":{\"showBorder\":true}}]},\"name\":\"group - 1\"},{\"type\":12,\"content\":{\"version\":\"NotebookGroup/1.0\",\"groupType\":\"editable\",\"items\":[{\"type\":3,\"content\":{\"version\":\"KqlItem/1.0\",\"query\":\"union withsource=_TableName *\\n| summarize Count=count() by _TableName\\n| render barchart\",\"size\":1,\"title\":\"Types and Number of Events ingested\",\"queryType\":0,\"resourceType\":\"microsoft.operationalinsights/workspaces\"},\"name\":\"query - 2\",\"styleSettings\":{\"showBorder\":true}}]},\"name\":\"group - 3\"}]}\n", + "serializedData": "{\"version\":\"Notebook/1.0\",\"items\":[{\"type\":1,\"content\":{\"json\":\"## vArmour Application Controller\\n---\"},\"name\":\"text - 2\"},{\"type\":12,\"content\":{\"version\":\"NotebookGroup/1.0\",\"groupType\":\"editable\",\"items\":[{\"type\":3,\"content\":{\"version\":\"KqlItem/1.0\",\"query\":\"let starttime = 30d;\\nlet endtime = 0d;\\nlet timeframe = 1h;\\nlet TotalEventsThreshold = 5;\\nlet ExeList = dynamic([\\\"POLICY_VIOLATION\\\"]);\\nlet TimeSeriesData= \\nCommonSecurityLog\\n| where DeviceVendor == \\\"vArmour\\\"\\n| where DeviceProduct == \\\"AC\\\"\\n| where Activity == \\\"POLICY_VIOLATION\\\"\\n| where TimeGenerated between (startofday(ago(starttime))..startofday(ago(endtime)))\\n| where Activity in (ExeList)\\n| make-series Total=count() on TimeGenerated from ago(starttime) to ago(endtime) step timeframe by Activity;\\nTimeSeriesData\\n| render timechart \\n\",\"size\":0,\"title\":\"Violations against Policy (Incoming Rate)\",\"timeContext\":{\"durationMs\":259200000},\"queryType\":0,\"resourceType\":\"microsoft.operationalinsights/workspaces\"},\"customWidth\":\"33\",\"name\":\"query - 5\",\"styleSettings\":{\"showBorder\":true}},{\"type\":3,\"content\":{\"version\":\"KqlItem/1.0\",\"query\":\"CommonSecurityLog\\n| where DeviceVendor == \\\"vArmour\\\"\\n| where DeviceProduct == \\\"AC\\\"\\n| where Activity == \\\"POLICY_VIOLATION\\\"\\n| summarize count() by DestinationIP | top 10 by count_ desc \\n|render piechart\\n\\n\",\"size\":0,\"title\":\"Top 10 Destinations observed Counter to Policy (Potential Apps/Workloads under threat)\",\"timeContext\":{\"durationMs\":2592000000},\"queryType\":0,\"resourceType\":\"microsoft.operationalinsights/workspaces\"},\"customWidth\":\"33\",\"name\":\"query - 3\",\"styleSettings\":{\"showBorder\":true}},{\"type\":3,\"content\":{\"version\":\"KqlItem/1.0\",\"query\":\"CommonSecurityLog\\n| where DeviceVendor == \\\"vArmour\\\"\\n| where DeviceProduct == \\\"AC\\\"\\n| where Activity == \\\"POLICY_VIOLATION\\\"\\n| extend AppNameSrcDstPair = extract_all(\\\"AppName=;(\\\\\\\\w+)\\\", AdditionalExtensions)\\n| summarize count() by tostring(AppNameSrcDstPair)\\n| top 10 by count_\\n\",\"size\":0,\"title\":\"Top 10 Applications with Violations (AppName to AppName)\",\"timeContext\":{\"durationMs\":2592000000},\"queryType\":0,\"resourceType\":\"microsoft.operationalinsights/workspaces\"},\"customWidth\":\"33\",\"name\":\"query - 4\",\"styleSettings\":{\"showBorder\":true}}]},\"name\":\"group - 0\"},{\"type\":12,\"content\":{\"version\":\"NotebookGroup/1.0\",\"groupType\":\"editable\",\"items\":[{\"type\":3,\"content\":{\"version\":\"KqlItem/1.0\",\"query\":\"CommonSecurityLog\\n| where DeviceVendor == \\\"vArmour\\\"\\n| where DeviceProduct == \\\"AC\\\"\\n| where Activity == \\\"POLICY_VIOLATION\\\"\\n| summarize count() by ApplicationProtocol | top 10 by count_ desc \\n| render barchart\\n\",\"size\":0,\"title\":\"Top 10 Application Protocols involved in Violations (Potential Protocol Exposure)\",\"timeContext\":{\"durationMs\":2592000000},\"queryType\":0,\"resourceType\":\"microsoft.operationalinsights/workspaces\"},\"customWidth\":\"33\",\"name\":\"query - 4\",\"styleSettings\":{\"showBorder\":true}},{\"type\":12,\"content\":{\"version\":\"NotebookGroup/1.0\",\"groupType\":\"editable\",\"title\":\"Top 10 Sources of Violations (Potential Compromised Workloads or User Risk)\",\"items\":[{\"type\":3,\"content\":{\"version\":\"KqlItem/1.0\",\"query\":\"CommonSecurityLog\\n| where DeviceVendor == \\\"vArmour\\\"\\n| where DeviceProduct == \\\"AC\\\"\\n| where Activity == \\\"POLICY_VIOLATION\\\"\\n| summarize count() by SourceIP | top 10 by count_ desc \\n\",\"size\":0,\"timeContext\":{\"durationMs\":2592000000},\"queryType\":0,\"resourceType\":\"microsoft.operationalinsights/workspaces\"},\"customWidth\":\"50\",\"name\":\"query - 2\"}]},\"customWidth\":\"33\",\"name\":\"group - 4\",\"styleSettings\":{\"showBorder\":true}},{\"type\":3,\"content\":{\"version\":\"KqlItem/1.0\",\"query\":\"CommonSecurityLog\\n| where DeviceVendor == \\\"vArmour\\\"\\n| where DeviceProduct == \\\"AC\\\"\\n| where Activity == \\\"POLICY_VIOLATION\\\"\\n| extend PolicyName = extract(\\\"(\\\\\\\\w+{.*})\\\", 1, DeviceCustomString1)\\n| summarize count() by PolicyName | top 10 by count_ desc \\n\",\"size\":0,\"title\":\"Policies with Violations (Risk Identification)\",\"timeContext\":{\"durationMs\":2592000000},\"queryType\":0,\"resourceType\":\"microsoft.operationalinsights/workspaces\"},\"customWidth\":\"33\",\"name\":\"query - 4\",\"styleSettings\":{\"showBorder\":true}}]},\"name\":\"group - 1\"},{\"type\":12,\"content\":{\"version\":\"NotebookGroup/1.0\",\"groupType\":\"editable\",\"items\":[{\"type\":3,\"content\":{\"version\":\"KqlItem/1.0\",\"query\":\"union withsource=_TableName *\\n| summarize Count=count() by _TableName\\n| render barchart\",\"size\":1,\"title\":\"Types and Number of Events ingested\",\"queryType\":0,\"resourceType\":\"microsoft.operationalinsights/workspaces\"},\"name\":\"query - 2\",\"styleSettings\":{\"showBorder\":true}}]},\"name\":\"group - 3\"}]}\r\n", "version": "1.0", "sourceId": "[variables('workspaceResourceId')]", "category": "sentinel" @@ -1039,7 +1039,7 @@ "contentSchemaVersion": "3.0.0", "displayName": "vArmour Application Controller", "publisherDisplayName": "vArmour Networks", - "descriptionHtml": "

Note: There may be known issues pertaining to this Solution, please refer to them before installing.

\n

This vArmour solution enables streaming of Application Controller Violation Alerts into Microsoft Sentinel, so you can take advantage of search & correlation, alerting, & threat intelligence enrichment for each log.

\n
    \n
  1. vArmour Application Controller via AMA - This data connector helps in ingesting OSSEC logs into your Log Analytics Workspace using the new Azure Monitor Agent. Learn more about ingesting using the new Azure Monitor Agent here. Microsoft recommends using this Data Connector.

    \n
  2. \n
  3. vArmour Application Controller via Legacy Agent - This data connector helps in ingesting vArmour Application Controller logs into your Log Analytics Workspace using the legacy Log Analytics agent.

    \n
  4. \n
\n

NOTE: Microsoft recommends installation of vArmour Application Controller via AMA Connector. Legacy connector uses the Log Analytics agent which is about to be deprecated by Aug 31, 2024, and thus should only be installed where AMA is not supported. Using MMA and AMA on same machine can cause log duplication and extra ingestion cost more details.

\n

Data Connectors: 2, Workbooks: 1, Analytic Rules: 1

\n

Learn more about Microsoft Sentinel | Learn more about Solutions

\n", + "descriptionHtml": "

Note: There may be known issues pertaining to this Solution, please refer to them before installing.

\n

This vArmour solution enables streaming of Application Controller Violation Alerts into Microsoft Sentinel, so you can take advantage of search & correlation, alerting, & threat intelligence enrichment for each log.

\n
    \n
  1. vArmour Application Controller via AMA - This data connector helps in ingesting vArmour Application Controller logs into your Log Analytics Workspace using the new Azure Monitor Agent. Learn more about ingesting using the new Azure Monitor Agent here. Microsoft recommends using this Data Connector.

    \n
  2. \n
  3. vArmour Application Controller via Legacy Agent - This data connector helps in ingesting vArmour Application Controller logs into your Log Analytics Workspace using the legacy Log Analytics agent.

    \n
  4. \n
\n

NOTE: Microsoft recommends installation of vArmour Application Controller via AMA Connector. Legacy connector uses the Log Analytics agent which is about to be deprecated by Aug 31, 2024, and thus should only be installed where AMA is not supported. Using MMA and AMA on same machine can cause log duplication and extra ingestion cost more details.

\n

Data Connectors: 2, Workbooks: 1, Analytic Rules: 1

\n

Learn more about Microsoft Sentinel | Learn more about Solutions

\n", "contentKind": "Solution", "contentProductId": "[variables('_solutioncontentProductId')]", "id": "[variables('_solutioncontentProductId')]", diff --git a/Solutions/vArmour Application Controller/ReleaseNotes.md b/Solutions/vArmour Application Controller/ReleaseNotes.md new file mode 100644 index 00000000000..e192c60f3d3 --- /dev/null +++ b/Solutions/vArmour Application Controller/ReleaseNotes.md @@ -0,0 +1,5 @@ +| **Version** | **Date Modified (DD-MM-YYYY)** | **Change History** | +|-------------|--------------------------------|--------------------------------------------------------------------------| +| 3.0.0 | 04-09-2023 | Addition of new vArmour Application Controller AMA **Data Connector** | | + + diff --git a/Tools/Create-Azure-Sentinel-Solution/V2/WorkbookMetadata/WorkbooksMetadata.json b/Tools/Create-Azure-Sentinel-Solution/V2/WorkbookMetadata/WorkbooksMetadata.json index 2b46b3602e1..b9bb4e37f48 100644 --- a/Tools/Create-Azure-Sentinel-Solution/V2/WorkbookMetadata/WorkbooksMetadata.json +++ b/Tools/Create-Azure-Sentinel-Solution/V2/WorkbookMetadata/WorkbooksMetadata.json @@ -2981,7 +2981,8 @@ "CommonSecurityLog" ], "dataConnectorsDependencies": [ - "vArmourAC" + "vArmourAC", + "vArmourACAma" ], "previewImagesFileNames": [ "vArmourAppControllerAppBlack.png", From 8954698770f6eed8eaa03f1318d7252e2bc5c792 Mon Sep 17 00:00:00 2001 From: v-rusraut Date: Mon, 4 Sep 2023 13:36:19 +0530 Subject: [PATCH 4/5] Updated AnalyticRuleVersion --- ...pplicationControllerSMBRealmTraversal.yaml | 2 +- .../Package/3.0.0.zip | Bin 11325 -> 11339 bytes .../Package/mainTemplate.json | 18 ++++++++++++++---- 3 files changed, 15 insertions(+), 5 deletions(-) diff --git a/Solutions/vArmour Application Controller/Analytic Rules/vArmourApplicationControllerSMBRealmTraversal.yaml b/Solutions/vArmour Application Controller/Analytic Rules/vArmourApplicationControllerSMBRealmTraversal.yaml index db3473f0f61..4ff86d70d62 100644 --- a/Solutions/vArmour Application Controller/Analytic Rules/vArmourApplicationControllerSMBRealmTraversal.yaml +++ b/Solutions/vArmour Application Controller/Analytic Rules/vArmourApplicationControllerSMBRealmTraversal.yaml @@ -36,5 +36,5 @@ entityMappings: fieldMappings: - identifier: Address columnName: SourceIP -version: 1.0.0 +version: 1.0.1 kind: Scheduled \ No newline at end of file diff --git a/Solutions/vArmour Application Controller/Package/3.0.0.zip b/Solutions/vArmour Application Controller/Package/3.0.0.zip index 025b18ce30fcad7eae5a0c31aa2947753be6d9a8..8f81e96b819b113ca3c29ae9376179e5ac527e7c 100644 GIT binary patch delta 8935 zcmVY5VRU6KYIARH z?LGZ>+cuKF?|b_{;Hh_Od(VneG8yZG#;A21i-Y))6yr0n6a;z9J_=peSku{6QL5Njv4#G(=3wc!rY=Rv{`0hOL zW-)*yvFMgu2O)nEEy%%i>bbVXDjWg|Vc>Z*>>!*^yyK}ATF^P*rF88DyiNKD9>()2 z#U7(Lbp4S;261=&6Y7uRF}&@kj~#k#&Aj-H<;_^Tw;_!HC!78h2D9nrR!{cwPK8yV zgMby;p*s~gbzTKAnMKsuCRekV_>?--A#p&aRumB{oOFNV_&pFLipjrDL?_+zaWM0o zE;Q}_K)XL%p<@To>|Z@Xext;rnQ6*|aOs{1>?$yY`s45pihf z-awbvVK8CUPYy`Zpd<1A#Q*ptr>zLG9)0tKY)r1VzzJH_K)F8kaC##e&!(kAxe9{!{VsxTH-#1QSt(of zi111d9a&VOT^N_53~sE@wXQs>>ViwjBd_>qYvO;Nwo`Q8UaIk+hOBVxFt8Q_>(iL= zN>BX0jKstg0rPfm6Qnmc(l;AhiB{>%TtM&I9UVJ;1^ z3?iy{Y(L&b%r~|-9D9TPLHGd9`2YkAV{?Dj^hm{pL#Z`z-k)iD<=}G!N+ofS5wioZ z+cc6qFiY~FT9Qk;C}~hF%;v5oi2EqagHmBGCruem^1?j0tHL~}AddP5b-=@g$ci{m$G*yLMEb*Pt~jL2a19IF@m-_Q-x=dS7m=J zs>M7bpnBTAtr&fF@C=(&M-?bNDb-VneO{)gG#KY)q|JhNd(~P-B(D|4Lr1WJWaPO% zH!qghot(`)niq_|ww9flKx^+?hkk4Cb@%$;|D*fJ+54{h{lKDK+W(&JefwR1U=L_Y zQZpQt5%je-3|NR`1|WIubNgxX{R8saklK z1Cn)0f6Bg0z-iuTL{65E*`I%^1XStx@)e@mNY1QS3IYXb?RR(gw9=Y1SwL-M_jMZB zZ6!JZ@ZR;A?*57TG<5A>k2Q5nGLlqC82?wXU)R@znr^}Wr#kYqD6)338+&}>k0?+Y zMns)=6-OrI#HLz=jouT>cZloTA+;iSZO^YLR*qcHr9NPHH3wXyndP~Ez!J!6+hQ2(w=%qtdhCyA z>`o(MAxA~bR}AB$;S_qKJ#sO2ql7rAR-!(mIRTr8S`&mET$^b3#tnE!gc*DhpdSYs z-}^R+0x}O~#I}5b3qOCcoEyuJK|dk%h+3gNCVvAgLW%k|u@EHmzYQF#4v44p#!5) zJT%hx%i4MrP)>$M>F9g^q{?r5C3`j=J@r=!Nu|GSG*=ObR5JU`Q$vbk0LNST<8^Fg_a#( zTAsHFpm~k`r<;F6D7XK$HSBDY1IKZ>K6oJwrf3VnMzhHTbm1Qq1Z3vNn_H+0;y~<5 z3cay5F{dX~WNj{ozG>18#BDlrrvYe)IXjh$$i#~6G3t(cIEh+nbI6CYC=Mok57O6B znILUePU>@J3X$W}h>UPWw&I6GYCgK-(=WosN3hp-eZGIDJy7~8L;ONSR;>vbVI0_j z_W*Tl{Ub6JQa3>U& z*NOFE6aV~)%PV!ZQaEnp2e{3S=d8-s638vgWyTkWFgmb;tX8C#+rHyS?BFE*%=Eqy zu_lJTSe<{*Li!V!cmOTu-8c)dGyFG-^K5^EK<$Bf? z?5X0pY5$4VZEVFeoY1~u9y)GxD)#bE$hGA~R98>0FgvjEo466P?@DlxE{{{O(Jz~F zBZCpPF_-OYdl$^?mqq``ji#P8zX0nN!G{=WhZ}#>Ta*c+R3sK~RY-rIxv>2;Y|$im zfvtI%t+G4!mV5!&S(i}sK|&=tENLenp8E{)G|7IVFbTy z#@LC*Fq6(NbiNResGI@YJr0z-2dJ5_HXi7gVIA`JobpIcC$ML@`{#B9K=G&*`eYJ7 zb?bjBn8gYRg#2z(I!K{q)Ju;s(J#t8r2OA5Xihf{!X5O50ygjx{X*Sa7gXkL^i6OT zTdvh72SbZx=6BuK=eQW z34HX_PYCsI+%WJ_%WRVaR1S!A09^y>UNCc_p3zt-)5;BKKOmBcalpWZl2;KCU*Y9e zGoivxY4nmSK-`Nlmv};#>?{?fDw%&jP{wW)!<+~d!RkYq3Fl-QgmFf05@Cu1-idDB zCD)_ZI!^`hSHvDC(4b@1)#Lsna&dSnWU${OFVX!Raf~e{@nme>P;xqt$AO;=RSsnq zAsKKC*U(RJi@z{U1BUQ~OnIBGIJ*;_40`0B0Ch5pVh$SE{RXY!%(Ax`&76N=E8kz~ z0+Lmd71E8Rl*_PavqVZ8T!RSy=CZK$iq1uYWX(D*@sMX)oQ5v!Fy^o>VZnXjKqBgxTw3V=!xYi#dO zzdMU|tPt!n54JXY-|p@{{_fGENB`LCcLlm#1>J6nZui^nZueK{t@{)9wqh$_09L?Z zW}!6@5mxDHy* zbLH@!c_W{o4FY?3KbIDVo18JV-xK#bRULe1EgW#ErBn0+i;#aJX5Spgpj+nR7@zI4 z2fJhfN;L+3HiJcqo0AeL%r9i21QFlyNHZ_B=@9C14l6&16U??rs9CntAxmnot{4HI zd=6`m^|6SpSE`KbntA0aq=|Xg$h6Ctb>)?-EVP=|SqaNm8D%PplDZO~r+!20z15pUJ4`WBToOtoIHAs?9^nnLnx@eq zRPkY4);{L@0o?E2)8Dd#U68T%q$~HsN1Cn8+nJLoNyjdj5Sis=qHm!RJ zGBQg*FUtvc)=Q4hHO}NvnL^IrX;gtuOQ!dR=m(U;v@TS!H>wMkyb^i*h9QH9umh!2 z*jD*Q!gznK{~l{e&3b!#o7tQp%UO1e+cVubs+6DlQ&FDk_(5P9OkmSzdymnvcIIN4*aWd&tR1hQF0#)0H( z7sjKBHg5)?sj`wybN7!V;zlMH2QVBWWCO`HmuJz*X8o{xaB&Wtgl85wj@PTi{~=(SwHh? z5iOe)F9l|6y;724W!5>iM8T9%wTg_W8ktb*45+)50acOtRP+qA$aJcc;q)ako3cBB z9Fu>VL#B%~X%!-U??a=@$Y(1a*pd)vv*W2c-|OUmY%a`%ChjWXoglCEVY+ZUqW6sPe&&bJ6V0i{kt;`$k8Bl+Vgo@(CXVF_?hE1!?nwrT6O_B~OGia(a zXR0!0iYEjGFw2_2ij0`5x%{d!VVY*Ztb+L}GF__9mNJHVPODUBuvD%aUsc9RWz4C5 z2A7bT@|9(z=nj4>X}g@vlXb?)Dq|2=mvK@v1X0UHSZaqJ)($(YpGi_LgQP4jv1Wfv z;-VQN4<%E?9F5p060vpgTX8BE$@plz*}I#W9gD86%g*4qH<=qPR?AgoXxypHj7DPj zB{MJ@3-CJA;%m#asA1mdMZS(%Q_G~OkwIayP-E+e@(wbOgAKitsiGS%{(+_SGgSZ_^|KZO;6tg6u?TwACv;!q@Pl2?It4-GzyWjJ$ zGg(Yd*`_nsJRB_nc(*2T`C)0YEQ{35!_^Xi_kh%m!q#M27HM0Cvn5dP0ezc?waKz9 zA}nhqmID5&WGf#tC8lI1- z=WVBd{>J&O_ymyNK0G;=@6$iwg?aI8rz3KNHb;^OmouZGh$NAZvS&mQpM)!_5ME1b zCeB)7NAl=f0PWiJx(k06$~Pb;eitUXoAlP50@;~(@;GGn*0IA9IvF^*!TMeuwk}KU z{oq#>#-0$NI;KRHa_v?p#w4k%20G%MOx|3^b20o`OjjX(Aj{)r>Y4RXpF`48fj5>E zcZ5m~@*!i@;@fN-tj`>$UIKT}CtVh+nZ!g1u7qh1e55Dx3TJ;@rvIW#WGtZfE9=G` z;nA^{{geg0+wDG2rhr=j?9oy7Jo?JB97-754lt;K9nPSIu~A8ijr`d*iU=wg;>HZ% z9#EHsrSSkTwr_$(hp=51dS{Lf&r&XNRN<5>H0&H~wiUsnBP7-~Ih5%VKD}iSHrbHG zmJP>wHuLBf3pRg=C9RKR>^n?P2-R5XiR-(Q*@X0agYS|fc{~V1ZOzn1L-kvGt>ee_ ze5vE_G4#~($d*`YMRZ$AJ7>lnL6i;Mih$Papv|^0B?L8=sA10;%RK548L=hfw1knB zC>-QNJ$Dma8;YW=P0WySZ;Rl&Rr%hFuVfB3ASp_P9FDC&f}8PBc3yDGxFSZd4` z7G+ggY7BU>+?%NIVyTu5ER89?nn?0uxl^&_#bVsMrN!W2OH1_()tH@}_BzzZdRF#S zB>3HoI=?SL=bs_we7Pa#8iuI9VMt32j>Xbw6OoqHg_akKA^T05&zE2Vtv2YKtFfK3 z4zmI1rKo>(abI6cwbfBfywna?FP5d~&+-bT?aPOlo>b+wmOlYirzHb4qGUR4F`!Y~ zm2tPD@Dr@n#H$+7__DN4xy(JNPHtEry!Ih}Z(#7Xe{aALxlNkiJ8X(auD*XbsoCHj zVq~u;71p1`6Y7`kjFSfTl`HHeE%c+(Y=z zfPM)!C()IIT7PGt<+{JPhNxWU8;g$GR==*VzcY|U{egdHAjh>0@(UNyvRUy`V7AsP zEC0^Gf{QMxlkd0A^SeuVe)s140?PbV1Lt(CftjO`!a$2@9IzN`lAf@Bs;d+QN64z*gG~!%g=soOUmY1uJ?hI zjj~(YlCEVI>wTbK^X%2OL|h7n&-6&=39UCqYQbqQh+;O;{=kk~ap(FGHI&PefWLAgzBB zkT@e$Th?i*lK(o^wo?5wBp7{#iA7ZjMJ*DETIn_Y3vGQp%8e6)3SH(;ZFAjJ?y>K7 z!cWsgpE9q0^)2sd_3Bu>1>)RL2nxN!;A9vXSf#=HDY zkX`Uq#BqQikv-9$)D0vDY ziThpb+n7y;p<$l;2X&74$T}Z~GK_uLc{1#v&j`Wn^n1I*&i1h5f>gmK=E;9ssE8Z^ zfA-upR)K==68uM#vy-NWgdo+J(llZe4r;T*ysDinFFC*d-LsZs5!8QXYaNW zpwQJhixtD!-6!z47*J3WQ7}wn3gFK|O*O1w$N~$pwKA~<24t1$nb^AI`V{QU$>ux`ZY!|A^-;~RiSv)F&|^M*|KXo;zv zvc0@AyBH%Oy2km)&IRi~MDJ_Jn%JP9Vw@kwTM-B(u+}d8$?P!3W~mDSy0vg?C4C#4 z$3Cn-XdIpavRe!U0%h9ugWzRHc)njE(+?hhKiI|cNpi9f66{hg3W?mLZe1nR-7Ojs zT#Wgl=x?qQk6G)zJ%)c!BHgSz5bwu)sPWtby2R)Mk2t2l`?o)UwF}yz^8`<7KdEY< zrI6l9zORl@B8DhAWR*V!|4d!ZKFB>~3{(v6ib!w;{EuFfLxjzJT9T_y10*sm52(AN z9ki{`!-(Dy#K&+F?F~R)*0I&4IK=b}oO5q}2wD)nH-8mWa5i zuP8^^5#bTe_~*T0(nk%L^j*egVwMg-*u5u4)14HMx`B?RT3IgZS9p9Z)N%ucR$@h6 z|0eKm_~E3=;HhFx5PI=p8lW@jL2~-)__;66K_4mfp1}3HgO}EmUKk~KE+co za^^aK5 z6%!|q6L$ad0()T$@%J3tupQ36!aQkR?Xs;fO+UjlI4FM}!}w}8!Q5_GEV$7@myd5>wfVK~&D=d0IQ^s|2R)PET0uaZcRPtPSxE=UaE8U;MvMaIrn z#lKdcwiTV#wU3FK+yghjGosIV51c&VFyB8T9ly+}zR=}wIgj@Le3YPnq4RyQjHu@^ z61S%q01`6NnsY^>=T%a5 zQ%+J%%47L78XB9_o$=-zS#(hd>znUn(T>AWMA$eOzHl-kb`D-08L+d(9SEHkpPb1^ zN5R%MM+s%Fi$eWnh=MVN)YQaCs^P<$m?SE4#poPNH0x*5rV&QE$C^-|s_d=x^@$0- zO|E}WtXu=~Hz(?rfc7WV)z>4+=J|>RJT-Ahwc9pWx@4>S6~SbQ2wTh-Sw}IgIEqQJ zIZ~73{N)d4)bb`5p@rOLd6zQk+468!A|(nMe?O=gCzbu~UYt{bU)U{as;JZrd{W1m z=v+halWwzFap`zs1H&{q(1rGnvzFqU0BC=@Z#)9{Hf-{4$J8gluc90>^eK( zYoT_Ldzn`y@Vm+*CKOSRoI+(6s7QQnu=0F)0xOFh+@MDUc8xd{q2-Y{2t4e@kFF`~ zCHcL1Ap@k{TI7}|Wp9wmC+RZe89F2pQY|=d}aXua!;7Pb@<-yck=0Qivu=%onuT)gmJA zKIt6rOH#b@>kzW30!6jQi@~Z-ui}5KxydNICQzwW+&<~6HVEWzI)ajY$!8fv@!>ly zTi{g{wh@uek<@zn!E{czB76yTaAnq@sPC5AW8VdtGxvPa@9#Y}^m@^M{M~NdzR=Yh z&tF>8DSED(awuq>CZT=*Dm#(s(!E-_qYT%5Bw;IJ458nf~G!M6Mla&pLuB7g-%fEtV_{s;sb5#1u?t&ZpxUiOzAe@ zVKZx0=;riu2S<7kI_;(|$Unyu59>dhK7STL2ma_eyH4oYj`&5M(aG}*=5fG#6|N|G zW)axcUhfY(xx`}`^eHiYHG#cs z^5q0E&cMTeJ@>gXX%$A5xcexb)h_?MMD8x6G4-bG>K-2O#O|{#2h6U-U^HTBk%TwQ@TTJh@+#Z`YQ{PM3JQF7Y(y&WkIm8~^A+593uU{PdqWX&FtbWLYIxmYVo z@Bspfd$|Mw6Z*=j+JRYWGgl{cWZ82*xH~Xu9!Dozk=+xO8|V(_O+}f!zIdT16D>J~ zICC^XcxuoG@9|2g-jn1?X);6qGh(hmncR*+y6~z7+RXVja91 z2EDWL76$EYXNe=7d2r=y!!tXG>PmpP5-KYP!28{aJHm`ekO3xv4s2pwkE!WiqFp6X zvOFIt(>vHsC?|i9i`Cct^tGH5w#m!XNxL(xGYox+Jz!kW97T1_)|)@gOIHSDvVJ*% ztphI?DMlWSZka_{W*eBTK#4@YVhsbZc2k?%BhTE)h(w{Skfq%{HVI*Ngb4rVU{?`h z_?3z=yYz-Xk@wz!tOh$`*OWvR4m-CP7!A06_jvjNFrK zj{eKWO@=dAWH{ys)kT7!1cVl0LcG++zruxR9z-oKhXB%Yx6ey0FVwXgM)4`%lpgWG z6yfOpHg`e$N^)_0;TS@rm(-IcnOUHddMCiB7|p>(=lFsoo`~!%E$UF@pXr#E<$mfp);mn9gDz^77Ze!2karlcOt94w-8tSL7OV=vN{D0FWS)0xUHKu`2)o008Ls BdY5VRU6KYIARH z?LGZ-+cvVl-^~3F81=ogeb16DIccv+ocCNiZ9R1oKif^`Cd&9|5|((ONR_1QsA=Bc z{&w*}f+WB%Nr~+Uok=YcSS%L1i^XCW{P@?u5YqXN$R5*))p>tHI^#H=Mo)Hj_>qWA9Z*8I}V+C!5r&d(8<)ZV%qz66!_nCwpj;u z;K%Up4GkkV@UfqMZx{a)?v-WX=R zSqvaaEV?DvK}df@3vw`>daiA;3WtC~7wBr zH_+vE7))68lLL}8=t#Uj@jpJvX)A)PN8dal8JW~WZ|(#ZTxFvJLQ_q4f%d!YwKP0*fT>e8JU^eY7O}}*&p!%Q6>{7 z!H69AmN$=GJA%2SAtf(eI}D=WIwt2JP_9osoZg7WvuWv2u7cowzl)&TO<{$6R?1dA zBD|7AM;4W67sjP1gBvS!tt*eJy5Lgs$SXeDnz(d6qFp>E1!Uur} z!b7gy&G1WVt9==&8T*wW=m)5YG(HnjeC%w7>7N@3m-k*zX~<^G@{Xa!XdFj7iD*U} z+eCjA?BoSV_BK(VoKt%iy74>#k--YVD1$N$o~a8xg{nwXMiaUEo=>Tb9NSkFpkZ{| z8#^U~+t{vZ-F58l#`es2f1gn<`kVC#uw@#BkQs)2KO;0*Xu_;G4FhLpCoCoKjji`I zgNP~~+mCk<^NsBd$KGIn5I%r&J^%s3*qnbgJyLPuP-+dF_h*`3IrtobQb`$sxS{~2=kz+FlR=4M}>J% zQ<(DvlGcb>(a9RA-cUtyI>qPA;`mJ(Hu;uP9qOegBQjV$$LhuYH*^E|BJ0iVRT+Pa zYBA3UsGhcOD@LCkJi{i{Q3Xm*O7&D?pO@(=4aRvHX|v$nUbU7H$!kUN&=IU48F{YH z&5I>=CucK{ngv6xWoIVP+WXd_-`acKz5e(A=st4xzUzKJuxOX|zo&cOe%Bw^1DcZ5 z3`b=IeXR`x*5x8sVD$qK-x%9TDawDzps901?_Wd~t*}fMjU&i#x2D!Y9BzfJIXu}R zBQ8ZYH;t#j>N;M|4_o%0A99NkM_%g@OAlIcu!Xur_g0Kf3=YR8cGHPZ1;+E1kGbe7 zsB6ycOvB*Db)c^uL9Rq*BtcOcrmnKx9_$YGxO=iY4e5}J;?Ye#Lux~ZPO0xiulGns*wJljURfrz(E|RXVjyx@jtX=HJ9-sIl3Y3Ns zQRiL7kqNnREpkFfmOUp2BbZeK?CI>vbE7fUo!jK9DoWv{6~1?Z+l+s52q`RvG$KJd zza(^{_r&rY;`(+-tq5M*^DBy#BiD1O57=GJ0oQ0|dF~&u1hU$;7zX>T3@@Y}`y(2= z(}-BeQ4#YM!}w@8h2Ch7T#Vf)Ax^55sLyClz~-UW1R)34CfdDm1Ktr~244i|$AQN8 zzD=Tl%!3)REuY}RPb`1u#`0s(PY6AtR%nmO-vEnHqP|Tm1PT3b!;5$f$ixVq!f0Wd zY#a-);u!T7bA?k2KzPBZXPA{yXidleI|KgJDG^z;42cCj^U$C4m0tugOdC_^z-SZ? zjr9GpwjKqPol4GOb+2Id5zRSPKMW?5z?Zt|Bp40-Kg9{h5omuB8!Ry2fx++Zlc9t? z?Bpv6`-|5)I2?95`rbe39>3F*GqPZM#EDq{NIgaE{#e{p!~jK zN~IMJ?AW~l(EQ!$>yzWde_p;hetmLqas2ufugMG@2eC&!IS=il2#gLFdc{|vWyhD6 z=WPOLUSt31<`93%?SE|zJKN;Iaa^tsUPyx}+Cs3=Y%&2|_y+|6nfdYN7V3gH5WA8> zZ>&ws=?N8Co6DhZnsftko6g*602*S>PURvpv0{6Sy5k;BqL$hm^5HCsg9+b*^mSAw zNSl?D`ka|UEWIz>35Df# zVtv@eKY!x#N}a6~jvM&_ZnNV#tFpBOatm{r@x>vG4y+)n73t-+?>G`WI7vSCRU ziJ>o6=d*v1{sbl-K+AbI&I0TV{|zG}${3+;zV&lrje^a+UB@&(Fd2(aoONTlo^=I# zs(5bNf1-68Tk#Ahv~QS)jvJkdz5Ek$ZFv#Z)zd4?4s84;Zp7@n5*(z<<5X<)%ck7O zV1#YVW&7IR1vC3)(LZvdsb|eEz`8~7Ax7Ha#`J#{Wr8Rbi3MC0(%)w;Y<~?~Gznhd zD`3kVS8}ja+BmXG9uKf=}?a*Rn0ZEjLu#d!7rOJ zcA_!Nr1J}%FT^7%XTWxk110YPY9_3W2l{1LhrB(fJd)E1>>2Lt}izuS}!QfL|V(ql~Yi!u)>|F;X8(~X002YsP{4ZK9ZQ1{jam3bR|6I{iX z>vvP%nd@|c=ey9yRx8e~B<5#eYReWjT3Zg(ztC!IgI2^y-EhY6IFISH)pDA%H-Uj; z*lrFu0Q)g*u*01*yzuKC2D_;zA(Ock{37l@<(6*D<+$VFMix2=kv$| zs|a?u5uPJ3xWFN|R_Gwq3DJ7LdP9HcKPRt(7}iv%2jCe0qVtFa;v$M6i{OpOtqVV{ zD1nV8iiGR4x;#P`e&1Ge01y&Z-wG09Dd&j9ncDC5VJM6|Ae!i&1l4W{3QjDv*-L-< zu{bSN&^V1WA-s$@7|CsMcP0qbhdEFyzNOUXlNSk_Cyju{Nz%ZI(fuhqM86~uJrF}^IfC)j_=_gA`r zWR+xvbYm&yGA!CGk>*o@=&sA0nJWZJwMea$RAtXDr4o)$-9nqL{UlW^NUy3eh*qhFYG)F?~ zwl@Nj&aObU$zVZdl`xgV|LuQDVc40##)*bInW(;K2hiNf_wcvBF$4sc7W)6V`-yz) zf2t&MnI7XM*~T6Q(>Wd=oiKuzH#6E2SPWY|EXH!=N5p}V*Hd;4`pHJ z*Et>ygWhISyM(n>wAI4ajiIpMb;;y8JNe-RykY zXbnUJR$yEv&SKuwaHM~-o(fh$o|;{-Pp^3g!;VA+)u-TR+_WiH18UH;^I=CU_^5Ni zumu()eFU{vO1DMC9G2iL!78{9kdgL?+4`5#hVWGNu_}e}BPSSkr!M=50<18ugO>AL zIlO1y$R}unz#iVurN!YUXH4z)#Jx^c2j5u>2V83D6#c*=q=Z#CJT>%u8)LgnFFA$`9fMvuzS;mhE)Nk{YZlM!+YZ z!`fqgEMn`GD&x9lUbzZsV%{|}?J{OvdF3h#t)_KW!tzx{na&`S78z)O8OFPegCJg+ zQI_kZXqV-&K-+(;l&s}8Sz~)_A!WPQBX8v7q*A{st*A(Jpx=IOM5!0Rvh5&rm{1G7 z6NDqncmLqgZc5E5TQi4DtlyrbuEgi5-_Uw*^(N5{Q;Zasgc1o(sPm{tc!R8_X>}TV}bGd3P)O{x# z$gUt+8Qln2Q(uO-fAN6l7O8%QSXPom{uZ;c&5-nfWEg2?inKLv7Kt(zFgUqQ>t2G4 z%o5Pca>AYUlH+rYGdWbIkn?vMRiM+7>AfNP0p&2Q3svlm>VhS&L>|9k$RHx@KR zJ6&se%%g3JFAeP~*+y+6Wb~Zb>86Vr)S9iOSpxW_N|-xN_Lyr~LD>?4Y*vwRAo<#b z@o1vWn*nI5tYp*N{UeF^Eq7^duq5BvPR@xqLltxeh1mt5Jh3Ns-jzxr}_)&%9bh z%Vxz(f!SKGlw??$b&f4jFlAJ&A|t9sCe%6u>MmtKRb)ODJp(N=o$6#beTmGb>`oxZ zq~?E+=^{;9g-GA~(C9Mq*@_3YBm~;*c&ZM0E(>-3JS6;VA)1Bc^IDzp6}_rWr7+V7`h>m#VX+jG>;>D%BY*mFvb=m9bJ8bE==g zC1j?2Wf>{DgWpQpE+_M3opG|t7{t|OoYV|K)N&D)+M$QF!w&0blGMu}DT_<28Iymw zXvWAx$rLe1BQ}aeY#sbooXSNqJ{oWK?q+7kqO0q&GdS)|=0=Ova#a}`cPcZZk=T97 z42;GCyw0@v+A=L_m^XTnuVdEKGHGgLP?#)~n$}5+jEM)7DWSJXYTF}?lwGY1h{js! zZf80)&2T95`Bq=}n^vz5K3X8KM{s}d=e~h`kPQZE9YwUhfxW`YVC!NU>GRNUU?1dS zCJXCV&VhOVZeSnivsN0!0VYirP#dOrzyx+%iB16Ar5o6bT$Qv-;|?@-)fGAj?|=5_L??$G`J$c6yDk*|^*xkH_ULwrrhpCW&P3BP`N zc{RVZCKlO8cj0W}U%J=ygB!&lZimu;_;V1&EJC80`M@sU1G-B3QQflT&WSbP=f5q3y z--`)vp2|U%kjo*9=Hwbn6UJCyS6|B&QyOEjnqb-#e2bvkq;b9Y#-w_KI7g+;`nvkc z8`jrBx;mmX3)W5AeFmmp)phkI^=Y&HVabwQ&bkF_naJ?nG^ExK{4ReF=zQ}s+D4X{ zD~H|u%|U3(m@~>X7xx(=pQQ(RjX8%gOq6}t+KRb|#)Y4w=1m?68DR22O6UzE_8>%Tjwk z_*I3mCq$@@DUqdIyVZ#?Nh+&>j(8`NH<$5T41X5WRfr$R@_3ngW_{G>khE0bjU~k$ zp^}4q$XK=bHX8@)Gsmfyz#a5Sm&Ix(F;RjmVcG*9>506;8JBMeyhdiM34*Wx9k*E;v4$~7tHI{nf`tD>lA^qOqyW~h755iDeGqurB{nlRV_;Ed7 z>iByMJ+(ZtC6-zd-ImhMnQ=!DWka_jpfx*avn@;sL5(G9*mK4*k9tH#Y{@t+VPqu= z2l-IX-2~T$q9|(@&!Z@0KXP^L}sgjaSSCJ_95WX{@ zUxLj^bmgGd-x+AR?k}z(D%bhOqNBFeuj}jY3}jJ%;NKa@aczVA!bP-fR=gCLt@X;v zzcaAlqD$)J`>pf*?oyuLz4^YtGD4PD9JAcu&IF{`9r}F1GKjlc+J3GCfU-%m6;F9d zpud0FdsZFT-}Ivi_hRC{Od$We`V+hUD8oI;j;(f7FDnc7j!n|?vtQeivU!&4eIR9{ z?AErVYnjD*AL!RSd$lbQ7syh*4}@%+om#fMtv||8nIqIPkE~VxSj`lhCaE=*d1BT1 zVO4oy#bcBLm}O1i`lAf>^Szqpd98x^7X5!HLtgEaLL&Xeuq3uPU#qMtG!No74$?TxH%=jhRl10Y5CCGe2sb7q!ldTIWR>^P$Yqto7yh z&g4Daw|u7tc}^v>fo1i1P4_ULsXS7->Ks z&Ir|pby}+AzmBo3RR0Y5MPFfFQB^)si#(!MdQJaATVIcIwYe9xUe?n+<|{f``AWN@-mEsDC&+f%jD%y#=RB?#oD$Nm;``~ zL*+*+nhLrA+ke2+X{si<2>ML9!e%$-k(x0^eIXIpzQ96DHgcmH4)5yZynH4~oTCX-=gnCJdMog+T7&c~sQVjp&%3_IvDLNGi1-tMroJ?yw3Rj`S9@)mz8B1gcV zeRwQb7=FQX*d}Fa&K*I>9BACm>?s6KLHc08!`HD`tQr|2H?>wHvE6MA=5otVrr*s zFR#olhDeC6aXzwh!TJx;`5Lk&Ht44q=ZEoD1Of@HwF`eTJB+be>Oz2SE!`!OGCJokVuF}lDbjw$f|?GIq>f_CUU!GqdQsv2l1 zq<50h5R< zZ7cLJqIZO`EsNxD#BE=a-S*b(RyTfjn2(^9QM5yI9IcU^%L0FCweey#SXi+oB5vv{ z%29Sicz`qhd2g8XQ3ED@m$8|cr2`Ol?}^cLCk3Q#oMWk0mdpATo*oOe+<>8#P*K;v z3A`JAHmNdrs+bdmUVNAa=uCQ$oW44KE=&ZEu8#1)TTgM|TiBLO+z6&6T@is#@f3`l zxzYQruU1lIXnKE{coaq9&^T|KMfKJ;B3-j+JJC2v0@{t%`HHzi;3&91O9n0=v` z6(4(l|0GO{{avQ^zVrkG4pZ7 z#L44?-M_rRUKm6CJ;yd|hqJFRPg+;IY%5ID&oB)RiidwNzM4%iwHp=-?zw@5dIY;G z>ZE8cZ}xS1X~AjUW14Lk4z=g`>TMSNtlvEK9|roHBogG)a|x3R663c<0nc`kp|e%t zuhpk*MQ3&GW1=S4zzy(>=yP5JCr>!c*Uw1DFLSCdboX1%qy0Z0CFo!1d|xah>UoUB z?I{L81V4YeT)6f{v{4ry_M)57Q=$Oguke#UB}oGM5jzB}+ubLZ`(SXEM@J zu(i!mLYdp5P=6VsU`!!3H8GNE_^>7>iHbC#qkF6gtf@+sTHjTe;M?S`!b**szot;9 zaNB>M3s>JoD4XXi7Vy+W{nT#TV4;w$?pM5!CE{5zIb$6&wBnc{Wra@{`16-PoKef0 zT!a>Ko8?`~7-P%BS&5XGWBmP~B8pV@yL(YZ1%6>ylBuFnH_S*KXQFcrp+>r`UBwOG ziNy)id}aX zuazypPb?iWyck=0Qivu=gcY>e)gmG<8tEMH8%ezKy9cs?`9-zIi@~HXyJAnNRor{% ztG?49iY2{&UNgUQ(AC%M19X5pxT}LT(u8^ENGc5d{-krlb;wJogNvF57k#(X9{Vn^ ztGVZket++=q1TK4dCwPSM5MbaHv?3$e=KjdXgPpz5_tJ*TQ4EXKVd zLA#ruS@2!EyaCVDCu_nl(39#|i4RIzn;I{kh*6J!Y{#dclV}G#SF{1mHiD;;e-vr}BP1efj@uSn|6Z6q|I<;3j2Eg;_1hugpgCaFoAA*;5gVUJ#G zYau|a9lH4{55}QerLWYVYwuuP?_e!i&U*-rqP(PiShdekgLWgoVWaj9^^$D4LjR%k zbERm1HgO-ebs(6%WH)8ZSEh6u@UWS+Ds*#tE&q`ogigDu3-ZtL#KZc}rq7>6(1AaC z&aS>GogxCASPA)@Mh9gL+j^6vht?x$B41+SBvtNY& ze70jf$8>qT6i=k-#&|8iq~kW3diXhj^y-Lz81KEhqSu(5D=y!GhP`JyfZns6>GPov zL&#k1FVXmtH~U+Y=~H65-JiW|a>KtEXW-$#p8H&xv$OFdDIZ=j`nhze$->?pVN^m-w}O;?56#NmY+1$=CdXi4=#*)*7CF zY<}S!uqd)QvSyD+x~4OqTmTg%_y7UL{ZWE|34P^M?Z7OxnX3~zvg|n@+#Q%SkE4^V z$SyR>4RnX|rlL$Tp_e~{K?@4l{G?}667BSbLOm4>@U3e!J z=QAJ!Xf=nzVq)`Lx_L7F2eT2`>u(c(SaTk2r^8_PVT@;>QpUl|6ZfuNsh1!M_a>mp z?%s-tFiY{$$zK^=UyAz`u@2s0f{smjU4ZshuEYn;oS$;G;h7yobtORDU6hpr;Qj8z z9bxJo$N-Z-2R5;;$JBH$(XNsxS)PxS=^bn*l#?f|>g#^`TFwdE;Z8HT>Z z9xyIwj-t9|>&>6$r7Ht6S-+gX)`6Fc6eABux6Gm}vklBvphO~Hv4#OyyQ$6Xk!S8? zM554E$kOh@m4q-mLWKWwu&W3${7S``-Oj?F$O~FPR)d|JT=?6tbBhtYfZKPEryl@A ziY8?8^Lfp^fO)53awU{B(eK26*WVt?qP~)Ek7dnRbI4P9s8dOZQ_&Y#`5ik^&&+(8 zV9UdDuTqnb;`OsrkEPnRxvJslzrfpMID configuration ---> Data connector blade .\n\n2. Search for 'Common Event Format (CEF) via AMA' data connector and open it.\n\n3. Check If there is no existing DCR configured to collect required facility of logs, Create a new DCR (Data Collection Rule)\n\n\t_Note:- It is recommended to install minimum 1.27 version of AMA agent [Learn more](https://learn.microsoft.com/azure/azure-monitor/agents/azure-monitor-agent-manage?tabs=azure-portal ) and ensure there is no duplicate DCR as it can cause log duplicacy_\n\n4. Run the command provided in the CEF via AMA data connector page to configure the CEF collector on the machine" - + }, { "title": "Step B. Configure the vArmour Application Controller to forward Common Event Format (CEF) logs to the Syslog agent", @@ -896,6 +896,10 @@ { "contentId": "vArmourAC", "kind": "DataConnector" + }, + { + "contentId": "vArmourACAma", + "kind": "DataConnector" } ] } @@ -953,10 +957,16 @@ "status": "Available", "requiredDataConnectors": [ { + "connectorId": "vArmourAC", "dataTypes": [ "CommonSecurityLog" - ], - "connectorId": "vArmourAC" + ] + }, + { + "connectorId": "vArmourACAma", + "dataTypes": [ + "CommonSecurityLog" + ] } ], "tactics": [ From 737b4286671ffd098913ebef8a3116e77b627f19 Mon Sep 17 00:00:00 2001 From: v-rusraut Date: Mon, 4 Sep 2023 13:54:37 +0530 Subject: [PATCH 5/5] Update ValidConnectorIds.json --- .../detectionTemplateSchemaValidation/ValidConnectorIds.json | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/.script/tests/detectionTemplateSchemaValidation/ValidConnectorIds.json b/.script/tests/detectionTemplateSchemaValidation/ValidConnectorIds.json index 2bce3ad84b0..26f21ba0636 100644 --- a/.script/tests/detectionTemplateSchemaValidation/ValidConnectorIds.json +++ b/.script/tests/detectionTemplateSchemaValidation/ValidConnectorIds.json @@ -196,5 +196,6 @@ "DynatraceAuditLogs", "DynatraceProblems", "MicrosoftDefenderThreatIntelligence", - "CortexXDR" + "CortexXDR", + "vArmourACAma" ]