-
Notifications
You must be signed in to change notification settings - Fork 362
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Implement FQDN Beaconing using TLS SNI and HTTP Host #739
Conversation
…for sni connections
…y beacons and sni beacons
…er runs on the beaconSNI collection
Is the entire beacon fqdn package being removed or only a portion of it? |
We're going to keep the old fqdn beaconing in for this release. |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Went through the code and noticed some oddities. Still working on testing.
{Key: []string{"src", "fqdn", "src_network_uuid"}, Unique: true}, | ||
{Key: []string{"src", "src_network_uuid"}}, | ||
{Key: []string{"fqdn"}}, | ||
{Key: []string{"responding_ips.ip", "responding_ips.network_uuid"}}, |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
We do not create indexes for resolved_ips
in beaconFQDN
. Do you remember any contradiction for adding them in beaconFQDN
or was this just an oversight? I have a faint memory of the index causing a slowdown instead of a speed increase, but I seriously could have been dreaming.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
I'll go take a brief skim through our past tickets, but this doesn't ring a bell for me. I don't think I was heavily involved with the development of beaconFQDN
, so I might not be the best person to ask though.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
I couldn't find anything related to it while sifting through old issues & PRs, so I'll just blame it on the mandela effect.
…vel; remove .tls.cid and .http.cid
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Requested changes were made. Stated functionality works as expected. SNI beaconing command line commands & html report functionality work as well.
This PR implements an FQDN beaconing analysis based off of TLS SNI and HTTP Host headers.
The following collections are added:
SNIconn
: equivalent of theuconn
collection for src -> fqdn pairsdat
array subdocumentsdat.tls
anddat.http
dat.tls
entries record TLS connection data for the current chunkdat.http
entries record HTTP connection data for the current chunkbeaconSNI
: equivalent of thebeacon
collection for src -> fqdn pairsSNIConn
, the connection data for TLS and HTTP is merged to create a connection dataset for FQDN beaconing analysisbeacon
collection except for the destination is anfqdn
entry instead of a destination unique IPAdditions:
ParseResults
:TLSConnMap
,HTTPConnMap,
andZeekUIDMap
.ZeekUIDMap
is used to link in information from theconn.log
file into theTLSConnMap
andHTTPConnMap
entriessniconn
package createsuconn
like entries for every source -> fqdn pair in theTLSConnMap
andHTTPConnMap
beaconSNI
package createsbeacon
like entries for every source -> fqdn pair in theTLSConnMap
andHTTPConnMap
which passes the connection thresholdbeaconSNI
package createsdat.mbsni
anddat.max_beacon_sni
entries in thehost
collection with a separate summary stepshow-beacons-sni
command writes the results of thebeaconSNI
analysis out to the terminalrita-html-report
now writes out a separate tab for Beacon SNI analysisRemovals:- I have left the old FQDN analysis code in the project during testing of the PR for comparison sake- I will remove it after we approve the new codeBug fixes:
Oddities:
uconns
. Instead of a single top levelstrobe
field, strobe markers are stored indat.http.strobe
,dat.tls.strobe
, anddat.beacon.strobe
.Todo:
sniconn
Readmebeaconsni
Readme