I wonder if this would be mitigated if https://github.com/IndySockets/Indy/issues/122 were implemented?
IIRC, That would be a old-fashioned ping that assumed the availabiilty of a random unused UDP port as an endpoint, rather than ICMP per se. It might also be unable to do a broadcast ping, which (again IIRC) required elevated privilege.
I can't speak for other distreaux, but on Debian ping uses POSIX capabilities these days (it used to be setuid root):
# getcap `which ping`
/usr/bin/ping cap_net_raw=ep
However there's the added problem that as soon as a program that's been blessed with elevated capabilities is copied or moved (i.e. during installation) it loses the capabilities: an obvious precaution, but awkward.
In addition, while it's possible to bless an IDE so that it can set capabilities without needing an explicit password that also allows it to set the capability-to-set-any-capability: that's an obvious security no-no which can only be fixed by the kernel developers.
So, using a UDP-based ping might be the most practical solution, but isn't quite the same thing.
MarkMLl