Zeek

From Wikipedia, the free encyclopedia
Jump to navigation Jump to search

Zeek
Original authorVern Paxson
Initial release24 January 1998; 28 years ago (1998-01-24)[1]
Repository
  • {{URL|example.com|optional display text}}Lua error in Module:EditAtWikidata at line 29: attempt to index field 'wikibase' (a nil value).
Written inC++
Engine
    Lua error in Module:EditAtWikidata at line 29: attempt to index field 'wikibase' (a nil value).
    Operating systemLinux, FreeBSD, macOS
    TypeNetwork intrusion detection system
    LicenseBSD license

    Lua error in mw.title.lua at line 392: bad argument #2 to 'title.new' (unrecognized namespace name 'Portal'). Zeek is a free and open-source software network analysis framework. Vern Paxson began development work on Zeek in 1995 at Lawrence Berkeley National Lab.[2] Zeek is a network security monitor (NSM) but can also be used as a network intrusion detection system (NIDS).[3] The Zeek project releases the software under the BSD license.

    Output

    [edit | edit source]

    Zeek's purpose is to inspect network traffic and generate a variety of logs describing the activity it sees.[4] A complete list of log files is available at the project documentation site.[5]

    Log example

    [edit | edit source]

    The following is an example of one entry in JSON format from the conn.log:[6]

    {
      "ts": 1554410064.698965,
      "uid": "CMreaf3tGGK2whbqhh",
      "id.orig_h": "192.168.144.130",
      "id.orig_p": 64277,
      "id.resp_h": "192.168.144.2",
      "id.resp_p": 53,
      "proto": "udp",
      "service": "dns",
      "duration": 0.320463,
      "orig_bytes": 94,
      "resp_bytes": 316,
      "conn_state": "SF",
      "missed_bytes": 0,
      "history": "Dd",
      "orig_pkts": 2,
      "orig_ip_bytes": 150,
      "resp_pkts": 2,
      "resp_ip_bytes": 372,
      "tunnel_parents": []
    }
    

    Threat hunting

    [edit | edit source]

    One of Zeek's primary use cases involves cyber threat hunting.[7]

    The principal author, Paxson, originally named the software "Bro" as a warning regarding George Orwell's Big Brother from the novel Nineteen Eighty-Four. In 2018 the project leadership team decided to rename the software. At LBNL in the 1990s, the developers ran their sensors as a pseudo-user named "zeek", thereby inspiring the name change in 2018.[8]

    Zeek deployment

    [edit | edit source]

    Security teams identify locations on their network where they desire visibility. They deploy one or more network taps or enable switch SPAN ports for port mirroring to gain access to traffic. They deploy Zeek on servers with access to those visibility points.[9] The Zeek software on the server deciphers network traffic as logs, writing them to local disk or remote storage.[10]

    Zeek application architecture and analyzers

    [edit | edit source]

    Zeek's event engine analyzes live or recorded network traffic to generate neutral event logs. Zeek uses common ports and dynamic protocol detection (involving signatures as well as behavioral analysis) to identify network protocols.[11]

    Developers write Zeek policy scripts in the Turing complete Zeek scripting language. By default Zeek logs information about events to files, but analysts can also configure Zeek to take other actions, such as sending an email, raising an alert, executing a system command, updating an internal metric, or calling another Zeek script.

    Zeek analyzers perform application layer decoding, anomaly detection, signature matching and connection analysis.[12] Zeek's developers designed the software to incorporate additional analyzers. The latest method for creating new protocol analyzers relies on the Spicy framework.[13]

    References

    [edit | edit source]
    1. ^ Lua error in Module:Citation/CS1/Configuration at line 2172: attempt to index field '?' (a nil value).
    2. ^ Lua error in Module:Citation/CS1/Configuration at line 2172: attempt to index field '?' (a nil value).
    3. ^ Lua error in Module:Citation/CS1/Configuration at line 2172: attempt to index field '?' (a nil value).
    4. ^ Lua error in Module:Citation/CS1/Configuration at line 2172: attempt to index field '?' (a nil value).
    5. ^ Lua error in Module:Citation/CS1/Configuration at line 2172: attempt to index field '?' (a nil value).
    6. ^ Lua error in Module:Citation/CS1/Configuration at line 2172: attempt to index field '?' (a nil value).
    7. ^ Lua error in Module:Citation/CS1/Configuration at line 2172: attempt to index field '?' (a nil value).
    8. ^ Lua error in Module:Citation/CS1/Configuration at line 2172: attempt to index field '?' (a nil value).
    9. ^ Lua error in Module:Citation/CS1/Configuration at line 2172: attempt to index field '?' (a nil value).
    10. ^ Lua error in Module:Citation/CS1/Configuration at line 2172: attempt to index field '?' (a nil value).
    11. ^ Lua error in Module:Citation/CS1/Configuration at line 2172: attempt to index field '?' (a nil value).
    12. ^ Lua error in Module:Citation/CS1/Configuration at line 2172: attempt to index field '?' (a nil value).
    13. ^ Lua error in Module:Citation/CS1/Configuration at line 2172: attempt to index field '?' (a nil value).
    [edit | edit source]