zeek/doc/scripts/policy/protocols/ssh/detect-bruteforcing.zeek.rst
Tim Wojtulewicz ded98cd373 Copy docs into Zeek repo directly
This is based on commit 2731def9159247e6da8a3191783c89683363689c from the
zeek-docs repo.
2025-09-26 02:58:29 +00:00

82 lines
4 KiB
ReStructuredText

:tocdepth: 3
policy/protocols/ssh/detect-bruteforcing.zeek
=============================================
.. zeek:namespace:: SSH
Detect hosts which are doing password guessing attacks and/or password
bruteforcing over SSH.
:Namespace: SSH
:Imports: :doc:`base/frameworks/intel </scripts/base/frameworks/intel/index>`, :doc:`base/frameworks/notice </scripts/base/frameworks/notice/index>`, :doc:`base/frameworks/sumstats </scripts/base/frameworks/sumstats/index>`, :doc:`base/protocols/ssh </scripts/base/protocols/ssh/index>`
Summary
~~~~~~~
Redefinable Options
###################
=============================================================================== =====================================================================
:zeek:id:`SSH::guessing_timeout`: :zeek:type:`interval` :zeek:attr:`&redef` The amount of time to remember presumed non-successful logins to
build a model of a password guesser.
:zeek:id:`SSH::ignore_guessers`: :zeek:type:`table` :zeek:attr:`&redef` This value can be used to exclude hosts or entire networks from being
tracked as potential "guessers".
:zeek:id:`SSH::password_guesses_limit`: :zeek:type:`double` :zeek:attr:`&redef` The number of failed SSH connections before a host is designated as
guessing passwords.
=============================================================================== =====================================================================
Redefinitions
#############
============================================ ============================================================
:zeek:type:`Intel::Where`: :zeek:type:`enum`
* :zeek:enum:`SSH::SUCCESSFUL_LOGIN`:
An indicator of the login for the intel framework.
:zeek:type:`Notice::Type`: :zeek:type:`enum`
* :zeek:enum:`SSH::Login_By_Password_Guesser`:
Indicates that a host previously identified as a "password
guesser" has now had a successful login
attempt.
* :zeek:enum:`SSH::Password_Guessing`:
Indicates that a host has been identified as crossing the
:zeek:id:`SSH::password_guesses_limit` threshold with
failed logins.
============================================ ============================================================
Detailed Interface
~~~~~~~~~~~~~~~~~~
Redefinable Options
###################
.. zeek:id:: SSH::guessing_timeout
:source-code: policy/protocols/ssh/detect-bruteforcing.zeek 34 34
:Type: :zeek:type:`interval`
:Attributes: :zeek:attr:`&redef`
:Default: ``30.0 mins``
The amount of time to remember presumed non-successful logins to
build a model of a password guesser.
.. zeek:id:: SSH::ignore_guessers
:source-code: policy/protocols/ssh/detect-bruteforcing.zeek 39 39
:Type: :zeek:type:`table` [:zeek:type:`subnet`] of :zeek:type:`subnet`
:Attributes: :zeek:attr:`&redef`
:Default: ``{}``
This value can be used to exclude hosts or entire networks from being
tracked as potential "guessers". The index represents
client subnets and the yield value represents server subnets.
.. zeek:id:: SSH::password_guesses_limit
:source-code: policy/protocols/ssh/detect-bruteforcing.zeek 30 30
:Type: :zeek:type:`double`
:Attributes: :zeek:attr:`&redef`
:Default: ``30.0``
The number of failed SSH connections before a host is designated as
guessing passwords.