Open elasticmachine opened 7 years ago
Original comment by @MorrieAtElastic:
A user is also requesting logon-error limitation to Kibana. They additionally request a "human being verification" facility be installed on the Kibana login screen so that users must prove that they are no robots when logging into Kibana. Let me know if I need to provide a separate enhancement request for this facility.
Original comment by @epixa:
A separate enhancement request would be good for that
When upgrading the Native Realm, please add the ability to force the user to change the password at first login.
Hey guys, any update on this?. This is a requirement for compliance regulation like PCI DSS.
Thanks.
Hey guys, any update this ?
any update on this?
The requirements here seem a bit "squishy". There are asks for rate limiting in Kibana and/or Elasticsearch, but it would be good to understand exactly where we want this rate limiting to happen.
If we want Elasticsearch to perform the rate limiting, then we should transfer this issue to the Elasticsearch repo so that we can discuss and prioritize with the appropriate teams.
If we want Kibana to perform the rate limiting, then we can continue the discussion here. We haven't done much analysis on this recently, but I expect that we wouldn't be able to investigate this on the Kibana side until we implement https://github.com/elastic/kibana/issues/17870
It's important to note that if Kibana performs the rate limiting, that this won't prevent users from trying to brute-force passwords by authenticating against Elasticsearch directly. This might be fine for some users, but I imagine others would prefer a more holistic, stack-wide solution. In other words, if Elasticsearch performs the rate limiting, then Kibana will get this for "free", as well as any other stack component which authenticates to the stack.
@legrego Your last paragraph is the important one: I do not care on which application the login happens - we want to prevent brute force attacks. Therefore, ElasticSearch is the only place this can happen. I guess this will be true for API keys too?
@legrego Your last paragraph is the important one: I do not care on which application the login happens - we want to prevent brute force attacks. Therefore, ElasticSearch is the only place this can happen. I guess this will be true for API keys too?
API Keys are a bit different in that you don't provide a corresponding username when you attempt to authenticate with an API Key. The mechanism for detecting a brute-force attack would have to be different. Rate-limiting an invalid API Key is not very useful, because there's nothing you can do to make that key valid.
With user/pass combinations, you can try various passwords for the same user, so we at least have a username to track authentication attempts for in this scenario. This wouldn't prevent password spraying attacks, but multi-factor authentication is a good mitigation for that.
I will follow up periodically to check for updates.
Original comment by @epixa:
Taken from https://github.com/elastic/kibana/issues/11335
Feature Request and Motivation
Is it possible to rate limit the logins of users who've made a certain number of failed login attempts to Kibana (or Elasticsearch)? LDAP and ActiveDirectory login attempts can be rate limited externally, but I don't see any options for rate limiting the file or native realms.
The threat here is that a malicious user who has access to Kibana (or Elasticsearch) can attempt to brute-force the credentials of users in the file or native realms. This password guessing may be even more effective due to the fact that there are a number of known, built-in usernames, like
elastic
orkibana
.A malicious person gaining access to one of these users could be especially dangerous, as in practice they may be used for service-type accounts, which tend to be highly privileged.
My Search for Existing Support
I see that X-Pack can log a number of relevant auditing events, such as
authentication_failed
orrealm_authentication_failed
. It seems like X-Pack already has access to the type of information needed to rate limit failed login attempts.However, I don't see any security settings that an administrator can configure for Elastic Stack to actively change how it responds to a large number of failed login attempts for a particular user account.
Desired Feature Usage
Ideally there'd be several additional security settings for Kibana and Elasticsearch that Elastic Stack administrators could configure. The exact details require more thought, but a first pass might look something like the following (overall structure borrowed from the LINK REDACTED docs):