hip.xml 4.2 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990
  1. <PAGE>
  2. <INCLUDE file="inc/header.tmpl" />
  3. <VAR match="VAR_SEL_FEATURES" replace="selected" />
  4. <VAR match="VAR_SEL_FEATURE_HIP" replace="selected" />
  5. <PARSE file="menu1.xml" />
  6. <PARSE file="menu2-features.xml" />
  7. <INCLUDE file="inc/content.tmpl" />
  8. <h1>PAN GlobalProtect HIP</h1>
  9. <p>The HIP ('Host Integrity Protection') mechanism is a security
  10. scanner for the <a href="globalprotect.html">PAN GlobalProtect</a>
  11. VPNs, in the same vein as <a href="csd.html">Cisco's CSD</a> and <a
  12. href="juniper.html">Juniper's Host Checker (tncc.jar)</a>.</p>
  13. <h2>How it works</h2>
  14. <p>It is somewhat <i>less</i> intrusive than CSD or TNCC, because it
  15. does not appear to work by downloading a trojan binary from the VPN
  16. server. Instead, it runs a HIP report generator (built-in as part of
  17. the official GlobalProtect VPN client software), which generates an
  18. "HIP report" XML file.</p>
  19. <p>HIP flow used in the official clients:</p>
  20. <ol>
  21. <li>Client authenticates and fetches the tunnel configuration from the GlobalProtect gateway.</li>
  22. <li>Client runs HIP report generator and computes MD5 digest of report.</li>
  23. <li>Client checks whether a HIP report is required (<tt>/ssl-vpn/hipreportcheck.esp</tt>), including its MD5 digest and gateway-assigned IP address in the report.</li>
  24. <li>Gateway responds whether or not a HIP report is required (normally, it doesn't require a new one if a report with the same MD5 digest and same IP address have been submitted recently).</li>
  25. <li>Client uploads the complete HIP report to (<tt>/ssl-vpn/hipreport.esp</tt>).</li>
  26. <li>Server confirms acceptance of HIP report with a success message.</li>
  27. </ol>
  28. <p>If all goes well, the client should have the expected level of
  29. access to resources on the network after these steps are
  30. complete. However, two things can go wrong:</p>
  31. <ul>
  32. <li>Many GlobalProtect servers report that they require HIP reports
  33. (#3 above), but don't actually enforce this requirement. (For this
  34. reason, OpenConnect does not currently fail if a HIP report is
  35. required but no HIP report script is provided.)</li>
  36. <li>Many GlobalProtect servers will claim that the HIP report was
  37. accepted successfully (#6 above) but silently fail to enable the
  38. expected network access, presumably because some aspect of the
  39. HIP report contents were not approved.</li>
  40. </ul>
  41. <h2>HIP support in OpenConnect</h2>
  42. <p>OpenConnect supports HIP report generation and submission by passing the <tt>--csd-wrapper=SCRIPT</tt> argument with a shell script to generate a HIP report in the format expected by the
  43. server. This shell script must output the HIP report to standard output and exit successfully (status code 0). The HIP script is called with the following command-line arguments:</p>
  44. <pre>
  45. --cookie: a URL-encoded string, as output by openconnect
  46. --authenticate --protocol=gp, which includes parameters
  47. --from the /ssl-vpn/login.esp response
  48. --client-ip{,v6}: IPv4/6 addresses allocated by the GlobalProtect
  49. VPN for this client (included in
  50. /ssl-vpn/getconfig.esp response)
  51. --md5: The md5 digest to encode into this HIP report. All that
  52. really matters is that the value in the HIP report
  53. submission should match the value in the HIP report check.
  54. </pre>
  55. <h2>Generating/spoofing a HIP report</h2>
  56. <p>Two example scripts are included in the OpenConnect distribution,
  57. in the <tt>trojans/</tt> subdirectory: <tt>hipreport.sh</tt> (which
  58. reproduces the behavior of a GlobalProtect Windows client) and
  59. <tt>hipreport-android.sh</tt> (a report with minimal contents
  60. suitable for use on an Android device).</p>
  61. <p>Depending on how picky your GlobalProtect
  62. VPN is, it may be necessary to spoof or alter some of the parameters
  63. of the HIP report to match the output of one of the official
  64. clients. In order to capture the contents of the official Windows
  65. client's HIP reports, enable the highest logging level for the "PanGPS
  66. Service", and then sift through the giant <tt>PanGPS.log</tt> file
  67. (which should be in the same directory as the executables, normally
  68. <tt>c:\Program Files\PaloAlto Networks\GlobalProtect</tt>) to find
  69. the HIP report submission.</p>
  70. <INCLUDE file="inc/footer.tmpl" />
  71. </PAGE>