Document update - Added serialization to Security section#7923
Document update - Added serialization to Security section#7923JinwooHwang merged 4 commits intoapache:developfrom
Conversation
Added serialization page under Security section Added link to serialization page from Security model page Added a bullet point to the Security Implementaton Overview page
raboof
left a comment
There was a problem hiding this comment.
I'm no Geode expert, so I can't fully judge the technical details, but the general change looks reasonable. One question about the mention of 'Java 8'.
| in the context of security and performance. This is primarily achieved through: | ||
|
|
||
|
|
||
| ## Global Serialization Filter (Java 8) |
There was a problem hiding this comment.
Is this for 'exactly Java 8' or 'at least Java 8'?
If it's for 'exactly Java 8', what should operators running on later versions do?
If it's 'at least Java 8', we can remove it, as Geode doesn't support older Java versions anyway.
JinwooHwang
left a comment
There was a problem hiding this comment.
I’ve reviewed the PR and appreciate the effort put into it. To enhance clarity and impact, it may be beneficial to explicitly outline the ramifications of the default serialization configurations. For example, the current defaults allow unrestricted deserialization. Additionally, serialization filters like validate-serializable-objects and geode.enableGlobalSerialFilter are not enabled by default, which permits deserialization of custom classes without explicit whitelisting. Making these implications more visible could help readers better understand the associated security risks. @raboof, do you have any comments?
I believe the Security Model covers this by stating that serialization is off by default, and by recommending users evaluate security features individually: "Geode’s default configuration combines maximum flexibility and performance without any input needed from the user. Because of this, certain security measures like authentication, authorization, serialization and over-the-wire encryption are absent from a default Geode installation. It is highly recommended that users review Geode’s security capabilities and implement them as they see fit." |
Added serialization page under Security section Added link to serialization page from Security model page Added a bullet point to the Security Implementaton Overview page Removed Java version
|
Good point—the Security Model does mention that serialization is off by default and encourages users to evaluate security features individually. Since we already have a serialization section, perhaps we could use that space to remind users of the specific implications when serialization is turned on. For instance, the lack of default filters like validate-serializable-objects and geode.enableGlobalSerialFilter can lead to unrestricted deserialization. Making this more explicit could help users better assess the security posture. |
|
@raboof , Please let me know if you have any questions or comments. Thanks. |
|
Initiated build checks. |
raboof
left a comment
There was a problem hiding this comment.
@raboof , Please let me know if you have any questions or comments. Thanks.
I don't have any strong objections. It might be good to be a bit more explicit about the fact that unrestricted deserialization of untrusted input can lead to arbitrary code execution, but I'm OK with the current wording as well.
| in the context of security and performance. This is primarily achieved through: | ||
|
|
||
|
|
||
| ## Global Serialization Filter (Java) |
There was a problem hiding this comment.
AFAIK all of Geode is in Java, so (Java) is also not necessary :)
|
Restarted the failed integration test. |
|
The integration test completed successfully. |
|
Discussed the issues with @raboof . We’re committed to refining the document further in upcoming PRs. I’ll proceed with the merge. |
* Document update - Added serialization to Security section Added serialization page under Security section Added link to serialization page from Security model page Added a bullet point to the Security Implementaton Overview page * Document update - Added serialization to Security section Added serialization page under Security section Added link to serialization page from Security model page Added a bullet point to the Security Implementaton Overview page Removed Java version * Document update: Removed java version in serialization section (cherry picked from commit 863ba8c)
Added serialization page under Security section
Added link to serialization page from Security model page Added a bullet point to the Security Implementaton Overview page
For all changes:
Is there a JIRA ticket associated with this PR? Is it referenced in the commit message?
Has your PR been rebased against the latest commit within the target branch (typically
develop)?yes
Is your initial contribution a single, squashed commit?
yes
Does
gradlew buildrun cleanly?Have you written or updated unit tests to verify your changes?
If adding new dependencies to the code, are these dependencies licensed in a way that is compatible for inclusion under ASF 2.0?