FHIR Chat · HL7 v2 MITM · Security and Privacy

Stream: Security and Privacy

Topic: HL7 v2 MITM


view this post on Zulip Grahame Grieve (Apr 28 2020 at 10:11):

I've been asked to review a paper for JIMR that describes a MITM attack on the v2 LLP. It's super-trivial, really - they wrote an ARP agent to redirect IP packets from a blood gas matchine, captured the insecure traffic, altered it, and forwarded it to the EHR after alterations.

view this post on Zulip Grahame Grieve (Apr 28 2020 at 10:13):

In the mitigations section, the mention LAN segmentation as a possible defense - well, duh! But that made me wonder - can anyone here comment on the operation use of LAN segmentation for things like blood gas analysers? Is it a no-brainer, would always be done correctly, or is that not the case? It seems to me that it would require some additional network hardening to avoid physical changing of the network cables, which might be easy to do in a busy hospital ward

view this post on Zulip Grahame Grieve (Apr 28 2020 at 10:14):

Do we have any numbers on this

view this post on Zulip John Moehrke (Apr 28 2020 at 14:10):

There are some use of VLAN to virtually create a LAN that just hosts the medical devices. There are other configurations that place a VPN router between the devices and the servers they talk to (X-Ray device and the PACS). I have no statistics on this, NEMA might. @Elliot Silver @Jonathan Whitby ?
The NEMA imaging workgroup still regularly meets and addresses various things like this that come up in the market https://www.nema.org/Standards/Pages/Cybersecurity-for-Medical-Imaging.aspx
Of course, better is that all endpoints use mutually-authenticate-TLS using managed certificates with revocation checking -- ala ATNA.

view this post on Zulip Elliot Silver (Apr 28 2020 at 14:36):

No I don't have any statistics for this, but network segmentation is typical for imaging. Generally it is for bandwidth management, rather than security though.

view this post on Zulip Grahame Grieve (Apr 28 2020 at 19:46):

all endpoints use mutually-authenticate-TLS using managed certificates with revocation checking

That's kind of rather theoretical. No one is going to be able to do with a PoC testing device using MLLP

view this post on Zulip John Moehrke (Apr 28 2020 at 20:25):

I would agree that mutual-auth-TLS is far more realistic when both ends are within the management of one organization.

view this post on Zulip John Moehrke (Apr 28 2020 at 20:26):

but it is also very usable where two endpoints are within organizations managed by an organization --- CommonWell ADT for example. (someone check my assertion as I am not 100% sure)

view this post on Zulip John Moehrke (Apr 28 2020 at 20:27):

if you had indicated the problem was FHIR apps, then I would have not called upon mutual-auth-TLS.. but rather server auth https with OAuth... This accomplishes the same function (when done right).

view this post on Zulip John Moehrke (Apr 28 2020 at 20:30):

Note that ATNA secure communications transaction has flavors for all these kinds of communications.. Including using S/MIME to secure email (similar to Direct Project), and WS-I async SOAP. (soon an AS4 option, won't that be fun).

view this post on Zulip John Moehrke (Apr 28 2020 at 20:31):

that is to say that ATNA is not just mutual-auth-TLS... much to the surprise of many who believe that

view this post on Zulip Vassil Peytchev (Apr 28 2020 at 22:31):

I think Graham is pointing out that a Point of Care device (like a blood gas machine) is unlikely to properly manage the certificates needed for TLS (whether it's MLLP or HTTPS).

view this post on Zulip Grahame Grieve (Apr 28 2020 at 22:41):

does anyone even use MLLP using mutual TLS?

view this post on Zulip Lloyd McKenzie (Apr 28 2020 at 22:42):

We did almost 20 years ago - though we also used v2.xml, so we were a bit weird... :)

view this post on Zulip Grahame Grieve (Apr 29 2020 at 22:32):

@Lloyd McKenzie are the specs for this still around?

view this post on Zulip Lloyd McKenzie (Apr 29 2020 at 23:37):

I doubt it. Don't believe they were public even then.

view this post on Zulip Vassil Peytchev (Apr 30 2020 at 02:42):

@Grahame Grieve which part are you referencing - v2.xml, or TLS for MLLP?

view this post on Zulip Grahame Grieve (Apr 30 2020 at 02:52):

TLS for MLLP.

view this post on Zulip Vassil Peytchev (Apr 30 2020 at 03:50):

Wouldn't that be just referencing BCP 195?
AFAIK, DICOM and the IHE ATNA profile do just that.

view this post on Zulip Grahame Grieve (Apr 30 2020 at 04:22):

I'm not sure whether we need to say more about :

  • graceful initiation or fall back (security issues, I know but how do we make this practical?)
  • mutual TLS?
  • a certificate management protocol?

view this post on Zulip Vassil Peytchev (Apr 30 2020 at 05:01):

I may have more informed opinions in a month or three, but right now I don't see managing TLS for MLLP significantly different from managing HTTPS, and in one small way, they might be easier to manage - if two systems using MLLP are both senders and receivers of HL7 messages, trusting one side's server certificate means the same side's client certificate will also be trusted (assuming the same issuer)

view this post on Zulip Grahame Grieve (Apr 30 2020 at 05:02):

right. but PoC devices... not much of a UI.... how to manage certs?

view this post on Zulip Vassil Peytchev (Apr 30 2020 at 05:11):

Pure speculation, but I assume that even PoC devices need to have a method of updating their software. Since common solutions like OpenSSL look for certificates in specific files, these files can be updated like the rest of the software...

view this post on Zulip John Moehrke (Apr 30 2020 at 12:50):

Certificate management on a PoC device is really not that hard. The mechanics behind "Lets Encrypt" have been standardized in RFC8555 and can be used by PoC devices with no user impact. These result in a certificate being issued to the device that can then be used for either side of TLS. The thing that ACME does not do is create a trust relationship to a specific user or use-case; this would be part of the setup procedure. That setup procedure is typical for any PoC in that it asks for a few things using browser UI.

view this post on Zulip Grahame Grieve (Apr 30 2020 at 12:50):

I think you're assuming that it has a general purpose OS with a full functional UI attached so that letsencrypt can be used

view this post on Zulip John Moehrke (Apr 30 2020 at 12:51):

im not

view this post on Zulip John Moehrke (Apr 30 2020 at 12:51):

the UI comes from a browser session on the users phone, tablet, or computer

view this post on Zulip John Moehrke (Apr 30 2020 at 12:51):

I just did one of these with a web camera. The web camera has no UI.

view this post on Zulip Tom Jones (May 01 2020 at 17:15):

Check out this book - Dan is security for IoT at Amazon - full disclosure - he is a long time friend of mine - https://www.amazon.com/Cloud-Security-Control-2nd-Griffin/dp/1494966247/ref=dp_ob_image_bk

view this post on Zulip Tom Jones (May 01 2020 at 17:19):

or you can look at a presentation he gave 2 years ago https://www.amazon.com/Cloud-Security-Control-2nd-Griffin/dp/1494966247/ref=dp_ob_image_bk

view this post on Zulip Grahame Grieve (May 01 2020 at 20:41):

@John Moehrke so I don't think that PoC devices come with that kind of functionality - or am I wrong?

view this post on Zulip John Moehrke (May 01 2020 at 22:52):

@Grahame Grieve if you are asking if a consumer can ADD security that is not designed into an PoC??? No. But a PoC manufacture can design security into the product. They can also design Privacy into the product.

view this post on Zulip Grahame Grieve (May 01 2020 at 23:03):

but do they? do we know?

view this post on Zulip John Moehrke (May 02 2020 at 18:49):

well, that is the rub... it is next to impossible for a common consumer to be able to tell if the product they have purchased/chosen is safe, secure, and privacy protecting. That impossibility tends to be a good reason for regulation to step in. Example is the regulated safety requirements for automobiles. The drawback is that this adds overhead in terms of delayed releases, expensive procedures, expensive labs, etc..

view this post on Zulip John Moehrke (May 02 2020 at 18:49):

note that a consumer can't tell that their Firewall and VPN are working right either... so that is not really a solution

view this post on Zulip John Moehrke (May 02 2020 at 19:20):

intermediate solution is to have authorities inspect and declare -- Consumer Reports Labs, or even smart-person-I-know says so.

view this post on Zulip Grahame Grieve (May 03 2020 at 20:48):

seems to me that we or IHE should host a connectathon around MLLP over TLS (as opposed to an IPSec tunnel), and also someone should post a open end point on the net somewhere to serve as a reference test case

view this post on Zulip John Moehrke (May 03 2020 at 23:42):

I suspect that is already done with Gazelle, and thus available today. Ill check into it.

view this post on Zulip John Moehrke (May 04 2020 at 00:09):

It would surely have been tested with XDS testing, which requires ATNA, and also requires PIX or PDQ (both HL7 v2)...

view this post on Zulip Grahame Grieve (May 04 2020 at 00:10):

hmm I had not paid attention to this. PIX and PDQ require secure transport? And ATNA is not in scope for PoC testing devices?

view this post on Zulip John Moehrke (May 04 2020 at 00:11):

right, XDS is not really a PoC use-case... yet.

view this post on Zulip John Moehrke (May 04 2020 at 00:11):

but, yes XDS mandated ATNA... when ATNA is mandated it is mandated for the whole system... which means the PIX or PDQ one uses to do patient lookup must be (able to be) secured by mutual-auth-TLS

view this post on Zulip John Moehrke (May 04 2020 at 00:12):

In theory.. that ATNA (virus) spreads to all communications in/out of your system... but that is likely not tested beyond the PIX/PDQ use with XDS.

view this post on Zulip Grahame Grieve (May 04 2020 at 00:13):

ok good. That's not quite an answer to my question about ATNA though - ATNA itself is not in scope for PoC testing devices? (I know XDS is not)

view this post on Zulip John Moehrke (May 04 2020 at 00:14):

I would need to get someone from the devices domain to speak authoratively on that. I don't know all the domain specifications that have mandated, or recommended ATNA... or more specifcally tested it is fact vs theory

view this post on Zulip Grahame Grieve (May 04 2020 at 00:14):

it would seem that IHE is closer to this - I would encourage IHE to unbundle secure v2 comms out of the XDS use case and make it available for testing in it's own right, to increase accessibility

view this post on Zulip John Moehrke (May 04 2020 at 00:14):

it is available for ALL profiles

view this post on Zulip John Moehrke (May 04 2020 at 00:15):

grouping with ATNA is available for any use-case

view this post on Zulip Grahame Grieve (May 04 2020 at 00:15):

i'll ask my question differently: is there any functional or business benefit to a PoC device in implementing ATNA ?

view this post on Zulip John Moehrke (May 04 2020 at 00:15):

security

view this post on Zulip John Moehrke (May 04 2020 at 00:16):

I get the feeling that you see a drawback

view this post on Zulip John Moehrke (May 04 2020 at 00:17):

note that ATNA now has FHIR R4 AuditEvent as an alternative for auditing rather than SYSLOG/DICOM/RFC3881

view this post on Zulip John Moehrke (May 04 2020 at 00:19):

and of course, audit logging is allowed to be turned off or locally stored... so it is a low bar.

view this post on Zulip Grahame Grieve (May 04 2020 at 00:19):

I'm just looking at from the pov of the buyers and sellers of the devices - what is the least expensive route to get an IHE approval that is meaningful? looking at ATNA, I feel as though it includes some thing that will cost manufacturers - and therefore buyers - real dollars without delivering any actual benefit. If those things can be moved out of the bundle, then it will cost less $$ to get secure and certified by IHE. Which will improve actual security

view this post on Zulip John Moehrke (May 04 2020 at 00:20):

would welcome a constructive recommendation on making it easier. I don't think it is as hard as you guess.

view this post on Zulip John Moehrke (May 04 2020 at 00:21):

Especially if the PoC implements ACME for certificate issuing. (which I think is what Gazelle test service supports for the IHE Connectathon)

view this post on Zulip John Moehrke (May 04 2020 at 00:24):

note I do have a rant against ACME, as it totally lacks any Identity Proofing... but that Proofing could be added by a human workflow, like I did with my web-camera... Once specifically proofed, it is added to a whitelist. So cert is used for security, and existance on the whitelist authorizes use.

view this post on Zulip Grahame Grieve (May 04 2020 at 00:24):

so according to https://wiki.ihe.net/index.php/Audit_Trail_and_Node_Authentication, requirements:

  • limit access to authorized users - I sure hope that they are doing this, but is it allowed to say that anyone who has physical possession of the device is an authorised user?
  • requires the use of bi-directional certificate-based node authentication for connections to and from each node - does it need to be bi-directional for a PoC device?
  • Audit Trail - it appears that the profile requires that there be an audit trail. I'm dubious as to the business value of this in a device

view this post on Zulip John Moehrke (May 04 2020 at 00:25):

see previous comments on audit logging

view this post on Zulip John Moehrke (May 04 2020 at 00:25):

on access control, that is a functional requirement that is fully in the control of the PoC system... so this is a non issue

view this post on Zulip John Moehrke (May 04 2020 at 00:25):

yes, bi-directional is important

view this post on Zulip John Moehrke (May 04 2020 at 00:26):

unless you are going to use OAuth for client.. which is a fine alternative.... but if you are going to just have server side http, then what is the value add?

view this post on Zulip Grahame Grieve (May 04 2020 at 00:26):

see previous comments on audit logging

"audit logging is allowed to be turned off or locally stored" - but it still must be implemented. So I think that's the thing I think should be unbundled for PoC devices.

view this post on Zulip Grahame Grieve (May 04 2020 at 00:28):

just have server side http, then what is the value add?

We're worried about MITM right? So if you write a client that authenticates the server, and follows a revocation list, that sorts out MITM, no? Or we do we assume that the revocation list part is too fragile?

view this post on Zulip John Moehrke (May 04 2020 at 15:16):

Client can do good validation which would include revocation checking , expiration checking , and server name validation (all things covered in BCP195). But this does not address malicious clients reading, creating, or updating data. This is what the client auth is for.

view this post on Zulip John Moehrke (May 04 2020 at 15:17):

client auth can be by TLS client cert, or by OAuth, or by some other method... These are all recognized in ATNA. So there is nothing burdensome identified yet.

view this post on Zulip Grahame Grieve (May 04 2020 at 19:38):

auditing must be implemented.

view this post on Zulip John Moehrke (May 06 2020 at 15:49):

IHE Gazelle has a Security Suite that was developed by the Kereval team in Europe. Its capabilities have evolved over time. It includes:

  • Issuing digital certificates. I don’t know what software underlies their PKI.
  • TLS simulators for client & server, including support for the new ATNA options for various flavors of TLS compliance.
  • validator for ATNA audit records, syslog format, including transaction-specific contraints
  • Audit Record Repository actor simulator (syslog only). I have requested FHIR AuditEvent support.
  • XUA SAML STS. Requested support for IUA OAuth

User documentation is here: https://gazelle.ihe.net/gazelle-documentation/Gazelle-Security-Suite/user.html

Testing the HL7 v2 is done independent, with the presumption that grouping is just logical assembly of the HL7 v2 messaging within a TLS tunnel.


Last updated: Apr 12 2022 at 19:14 UTC