Skip to content

Warn on insecure Hazelcast cluster defaults, clarify security docs - #159

Open
jbonofre wants to merge 1 commit into
apache:mainfrom
jbonofre:security/hazelcast-insecure-defaults-warning
Open

jbonofre wants to merge 1 commit into
apache:mainfrom
jbonofre:security/hazelcast-insecure-defaults-warning

Conversation

@jbonofre

Copy link
Copy Markdown
Member

Summary

The shipped etc/hazelcast.xml enables multicast discovery with the well-known group
name/password (cellar/pass) and no SSL, symmetric-encryption or socket-interceptor. In
Hazelcast OSS, the group password is not an authentication mechanism - it isn't verified at
join. Combined with groups.cfg shipping default.bundle.whitelist.inbound=* and
default.bundle.sync=cluster, any host that can reach the multicast group can join the
cluster and push a bundle-install cluster event that other nodes will execute.

This PR does not change any default values (multicast, group name/password, or the
groups.cfg whitelist) - that's a separate, more disruptive discussion. It only makes the
risk impossible to miss and gives operators concrete hardening steps:

  • HazelcastServiceFactory now logs a loud, non-blocking WARN at startup if the group
    name/password are still the shipped defaults, and/or if multicast is enabled with no
    SSL/symmetric-encryption/socket-interceptor protecting it.
  • The shipped hazelcast.xml gets explanatory comments next to the <group> and
    <multicast> elements.
  • hazelcast.adoc no longer implies the group password is a real credential, and gains a
    new "Security considerations" section with hardening recommendations (network isolation,
    tcp-ip with an explicit member list instead of multicast, SSL/symmetric-encryption).

Test plan

  • mvn -pl hazelcast -am test - all tests pass, including a new
    HazelcastServiceFactorySecurityTest covering both detection conditions (default group,
    unprotected multicast) and their negative cases, plus a regression guard that asserts the
    shipped assembly/src/main/resources/hazelcast.xml is still detected as insecure today.
  • Confirmed the existing HazelcastServiceFactoryTest, which spins up a real
    HazelcastInstance, still passes with the new check wired into buildInstance().
  • Manually reviewed the rendered hazelcast.adoc changes for correct AsciiDoc syntax.

The shipped etc/hazelcast.xml enables multicast discovery with the
well-known group name/password ("cellar"/"pass") and no SSL,
symmetric-encryption or socket-interceptor. In Hazelcast OSS the
group password is not an authentication mechanism, so any host that
can reach the multicast group can join the cluster and push cluster
events (including bundle installs) to every node.

Add a loud, non-blocking startup warning in HazelcastServiceFactory
when these insecure defaults are detected, add explanatory comments
to the shipped hazelcast.xml, and correct the misleading doc language
that implied the group password is a real credential, with a new
"Security considerations" section covering hardening recommendations.

This does not change any default values (multicast, group name/
password, groups.cfg whitelist) - it only makes the risk visible and
gives operators concrete steps to secure their deployment.
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant