Bug ID 940545: L7 Protocol lookup agent does not detect 'http-connect' protocol in VPE for APM/SWG use cases

Last Modified: Oct 06, 2020

Bug Tracker

Affected Product:  See more info
BIG-IP APM, SWG(all modules)

Known Affected Versions:
14.1.0, 14.1.0.1, 14.1.0.2, 14.1.0.3, 14.1.0.5, 14.1.0.6, 14.1.2, 14.1.2.1, 14.1.2.2, 14.1.2.3, 14.1.2.4, 14.1.2.5, 14.1.2.6, 14.1.2.7, 14.1.2.8, 15.0.0, 15.0.1, 15.0.1.1, 15.0.1.2, 15.0.1.3, 15.0.1.4, 15.1.0, 15.1.0.1, 15.1.0.2, 15.1.0.3, 15.1.0.4, 15.1.0.5, 16.0.0, 16.0.0.1

Opened: Aug 27, 2020
Severity: 3-Major

Symptoms

Per-request policy L7 Protocol lookup agent does not detect 'http-connect' protocol in the visual policy editor for APM/SWG use cases

Impact

Per-request policy L7 Protocol lookup agent classifies HTTP Connect request as 'http' instead of 'http-connect'.

Conditions

-- APM/SWG is licensed and provisioned. -- L7 Protocol Lookup agent is added in per-req policy to classify 'http-connect' protocol. -- User sends explicit traffic through BIG-IP.

Workaround

Following custom iRule can be attached to virtual server to detect 'http-connect' protocol in VPE. when CLIENT_ACCEPTED { set ptcl "" TCP::collect } when CLIENT_DATA { set tcplen [TCP::payload length] set said [TCP::payload] if { $tcplen >= 8 } { #at least 8 bytes are required for http traffic to find the http method. if {$ptcl eq ""} { set ptcl [call detect_l7_ptcl $ptcl $said $tcplen] } #Release collected data TCP::release } } when L7CHECK_CLIENT_DATA { if { $ptcl eq "http-connect" } { L7CHECK::protocol set "http-connect" } } proc detect_l7_ptcl {ptcl data len} { if {[regexp {^([A-Z]+) (?:/|https?://|[A-Za-z\d-]{1,63}[.]|\[[a-fA-F\d:]+\]|(?:[*]\x20))} $data junk method]} { if { $method eq "CONNECT" } { return "http-connect" } } }

Fix Information

None

Behavior Change