Hi,

I'm not aware of any other mechanisms to explore the filesystem. If
you have ideas, please reach out to the security list.
Thanks,
Mickael

On Tue, Dec 5, 2023 at 1:05 PM Gantigmaa Selenge <gsele...@redhat.com> wrote:
>
> Hi everyone,
>
>
> Apologies for the very delayed response. Thank you both for the feedback.
>
>
> > For clarity it might make sense to mention this feature will be useful
>
> when using a ConfigProvider with Kafka Connect as providers are set in
>
> the runtime and can then be used by connectors. This feature has no
>
> use when using a ConfigProvider in server.properties or in clients.
>
>
> I have updated the KIP to address this suggestion. Please let me know if
> it's not clear enough.
>
>
> > When trying to use a path not allowed, you propose returning an error.
>
> With Connect does that mean the connector will be failed? The
>
> EnvVarConfigProvider returns empty string in case a user tries to
>
> access an environment variable not allowed. I wonder if we should
>
> follow the same pattern so the behavior is "consistent" across all
>
> built-in providers.
>
>
> I agree with this, it makes sense to have consistent behaviour across all
> the providers. I made this update.
>
>
> > 1. In the past Connect removed the FileStream connectors in order to
>
> prevent a REST API attacker from accessing the filesystem. Is this the
>
> only remaining attack vector for reading the file system? Meaning, if
>
> this feature is configured and all custom plugins are audited for
>
> filesystem accesses, would someone with access to the REST API be
>
> unable to access arbitrary files on disk?
>
>
> Once this feature is configured, it will stop someone from accessing the
> file system via config providers.
>
> However, I’m not sure whether there are other ways users can access file
> systems via REST API.
>
>
> Mickael, perhaps you have some thoughts on this?
>
>
> > 2. Could you explain how this feature would prevent a path traversal
>
> attack, and how we will verify that such attacks are not feasible?
>
>
> The intention is to generate File objects based on the String value
> provided for allowed.paths and the String path passed to the get() function.
>
> This would allow validation of path inclusion within the specified allowed
> paths using their corresponding Path objects, rather than doing String
> comparisons.
>
> This hopefully will mitigate the risk of path traversal. The implementation
> should include unit tests to verify this.
>
>
> > 3. This applies a single "allowed paths" to a whole worker, but I've
>
> seen situations where preventing one connector from accessing
>
> another's secrets may also be desirable. Is there any way to extend
>
> this feature now or in the future to make that possible?
>
>
> One approach could be creating multiple providers, each assigned a unique
> name and specific allowed.paths configuration. Users would then be assigned
> a provider name, granting them appropriate access on the file system to
> load variables for their connectors. However, during provider
> configuration, administrators would have to anticipate and specify the
> files and directories users may require access to.
>
>
> Regards,
>
> Tina
>
> On Wed, Nov 8, 2023 at 7:49 PM Greg Harris <greg.har...@aiven.io.invalid>
> wrote:
>
> > Hey Tina,
> >
> > Thanks for the KIP! Unrestricted file system access over a REST API is
> > an unfortunate anti-pattern, so I'm glad that you're trying to change
> > it. I had a few questions, mostly from the Connect perspective.
> >
> > 1. In the past Connect removed the FileStream connectors in order to
> > prevent a REST API attacker from accessing the filesystem. Is this the
> > only remaining attack vector for reading the file system? Meaning, if
> > this feature is configured and all custom plugins are audited for
> > filesystem accesses, would someone with access to the REST API be
> > unable to access arbitrary files on disk?
> > 2. Could you explain how this feature would prevent a path traversal
> > attack, and how we will verify that such attacks are not feasible?
> > 3. This applies a single "allowed paths" to a whole worker, but I've
> > seen situations where preventing one connector from accessing
> > another's secrets may also be desirable. Is there any way to extend
> > this feature now or in the future to make that possible?
> >
> > Thanks!
> > Greg
> >
> > On Tue, Nov 7, 2023 at 7:06 AM Mickael Maison <mickael.mai...@gmail.com>
> > wrote:
> > >
> > > Hi Tina,
> > >
> > > Thanks for the KIP.
> > > For clarity it might make sense to mention this feature will be useful
> > > when using a ConfigProvider with Kafka Connect as providers are set in
> > > the runtime and can then be used by connectors. This feature has no
> > > use when using a ConfigProvider in server.properties or in clients.
> > >
> > > When trying to use a path not allowed, you propose returning an error.
> > > With Connect does that mean the connector will be failed? The
> > > EnvVarConfigProvider returns empty string in case a user tries to
> > > access an environment variable not allowed. I wonder if we should
> > > follow the same pattern so the behavior is "consistent" across all
> > > built-in providers.
> > >
> > > Thanks,
> > > Mickael
> > >
> > > On Tue, Nov 7, 2023 at 1:52 PM Gantigmaa Selenge <gsele...@redhat.com>
> > wrote:
> > > >
> > > > Hi everyone,
> > > >
> > > > Please let me know if you have any comments on the KIP.
> > > >
> > > > I will leave it for a few more days. If there are still no comments, I
> > will
> > > > start the vote on it.
> > > >
> > > > Regards,
> > > > Tina
> > > >
> > > > On Wed, Oct 25, 2023 at 8:31 AM Gantigmaa Selenge <gsele...@redhat.com
> > >
> > > > wrote:
> > > >
> > > > > Hi everyone,
> > > > >
> > > > > I would like to start a discussion on KIP-933 that proposes
> > restricting
> > > > > files accessed by File and Directory ConfigProviders.
> > > > >
> > > > >
> > > > >
> > https://cwiki.apache.org/confluence/display/KAFKA/KIP-993%3A+Allow+restricting+files+accessed+by+File+and+Directory+ConfigProviders
> > > > >
> > > > > Regards,
> > > > > Tina
> > > > >
> >
> >

Reply via email to