Code
Hub
Workspaces
Following
Trending
Connect
MCP
copy
Create free account
hub
/
github.com/david415/HoneyBadger
/ functions
Functions
265 in github.com/david415/HoneyBadger
⨍
Functions
265
◇
Types & classes
58
↓ 39 callers
Method
Add
(a, b types.Sequence)
blocks/blocks.go:80
↓ 29 callers
Method
Difference
Difference defines an ordering for comparing TCP sequences that's safe for roll-overs. It returns: > 0 : if t comes after s < 0 : if t comes before s
types/sequence.go:35
↓ 26 callers
Method
Equal
Equal returns true if TcpIpFlow structs t and s are equal. False otherwise.
types/flow.go:75
↓ 18 callers
Method
ReceivePacket
(*types.PacketManifest)
connection.go:93
↓ 18 callers
Method
String
()
blocks/blocks.go:29
↓ 16 callers
Function
NewTcpIpFlowFromFlows
NewTcpIpFlowFromFlows given a net flow (either ipv4 or ipv6) and TCP flow returns a TcpIpFlow
types/flow.go:54
↓ 15 callers
Method
Close
()
connection.go:85
↓ 14 callers
Method
Next
Next returns the next ring element. r must not be empty.
types/ring.go:29
↓ 11 callers
Function
checkBlocks
(t *testing.T, got, want Blocks)
blocks/blocks_test.go:7
↓ 9 callers
Method
Reverse
Reverse returns a reversed TcpIpFlow, that is to say the resulting TcpIpFlow flow will be made up of a reversed IP flow and a reversed TCP flow.
types/flow.go:70
↓ 7 callers
Method
GreaterThan
GreaterThan returns true if s > t
types/sequence.go:60
↓ 7 callers
Method
ReadPacketData
ReadPacketData returns the next packet available from this data source. It returns: data: The bytes of an individual packet. ci: Metadata about the
types/packet_source.go:49
↓ 7 callers
Method
Write
()
attack/injector.go:121
↓ 6 callers
Method
Flows
Flows returns the component flow structs IPv4, TCP
types/flow.go:101
↓ 6 callers
Function
NewHashedTcpIpv4Flow
NewHashedTcpIpv4Flow returns a comparable struct given a flow struct
types/flow.go:143
↓ 6 callers
Method
Stop
()
types/events.go:34
↓ 5 callers
Method
Build
(options ConnectionOptions)
connection.go:63
↓ 5 callers
Function
NewHashedTcpIpv6Flow
NewHashedTcpIpv6Flow returns a comparable struct given a flow struct
types/flow.go:112
↓ 5 callers
Function
NewTcpIp4FlowFromLayers
NewTcpIp4FlowFromLayers given IPv4 and TCP layers it returns a TcpIpFlow
types/flow.go:38
↓ 5 callers
Method
addContiguous
addContiguous adds contiguous byte-sets to a connection. returns the next Sequence number and a bool value set to true if the end of connection was de
ordered_coalesce.go:368
↓ 5 callers
Method
detectInjection
(p *types.PacketManifest)
connection.go:214
↓ 4 callers
Method
LessThanOrEqual
LessThanOrEqual returns true if s <= t
types/sequence.go:50
↓ 4 callers
Method
Log
(r *Event)
types/events.go:28
↓ 4 callers
Function
NewDummyAttackLogger
()
retrospective_test.go:29
↓ 4 callers
Function
NewRing
NewRing creates a ring of n elements.
types/ring.go:39
↓ 4 callers
Function
NewSupervisor
(options SupervisorOptions)
supervisor.go:45
↓ 4 callers
Method
Prev
Prev returns the previous ring element. r must not be empty.
types/ring.go:34
↓ 4 callers
Method
Remove
()
types/events.go:35
↓ 4 callers
Method
Run
()
supervisor.go:72
↓ 4 callers
Method
SetIPv4Layer
(iplayer layers.IPv4)
attack/injector.go:55
↓ 4 callers
Method
SetIPv6Layer
(iplayer layers.IPv6)
attack/injector.go:59
↓ 4 callers
Method
SetTCPLayer
(tcpLayer layers.TCP)
attack/injector.go:63
↓ 4 callers
Function
SetupTestInquisitor
()
dispatcher_test.go:127
↓ 4 callers
Function
SnifferRegister
Register makes a ethernet sniffer driver available by the provided name. If Register is called twice with the same name or if driver is nil, it panics
drivers/register.go:30
↓ 4 callers
Method
connections
()
dispatcher.go:110
↓ 4 callers
Method
detectCensorInjection
(p *types.PacketManifest)
connection.go:562
↓ 4 callers
Method
freeNext
()
ordered_coalesce.go:271
↓ 3 callers
Method
Connections
()
connection.go:95
↓ 3 callers
Method
Count
Count computes the number of none nil Reassembly structs populating the ring
types/ring.go:68
↓ 3 callers
Method
LessThan
LessThan returns true if s < t
types/sequence.go:45
↓ 3 callers
Function
NewAttackMetadataJsonLogger
NewAttackMetadataJsonLogger returns a pointer to a AttackMetadataJsonLogger struct
logging/metadata_attack_logger.go:41
↓ 3 callers
Function
NewOrderedCoalesce
(logger types.Logger, flow *types.TcpIpFlow, pageCache *pageCache, streamRing *types.Ring, maxBufferedPagesTot
ordered_coalesce.go:143
↓ 3 callers
Function
NewTcpIpFlowFromPacket
getPacketFlow returns a TcpIpFlow struct given a byte array packet
types/flow.go:85
↓ 3 callers
Method
Start
()
types/events.go:33
↓ 3 callers
Method
insert
(packetManifest *types.PacketManifest, nextSeq types.Sequence)
ordered_coalesce.go:164
↓ 3 callers
Function
newPageCache
()
ordered_coalesce.go:51
↓ 2 callers
Method
Build
(ConnectionOptions)
connection.go:57
↓ 2 callers
Function
FlowFromPacket
()
types/flow_test.go:97
↓ 2 callers
Method
GetDispatcher
()
supervisor.go:58
↓ 2 callers
Method
GetObservedConnectionsChan
(int)
connection.go:94
↓ 2 callers
Method
GetSniffer
()
supervisor.go:62
↓ 2 callers
Method
GetStartedChan
()
types/packet_source.go:63
↓ 2 callers
Function
HelperTestThreeWayClose
(isClient bool, t *testing.T)
connection_test.go:241
↓ 2 callers
Function
NewPcapLogger
(logDir, archiveDir string, flow *types.TcpIpFlow, pcapLogNum int, pcapQuota int)
logging/pcap_logger.go:56
↓ 2 callers
Function
NewTCPStreamInjector
(pcapHandle *pcap.Handle, isIPv6Mode bool)
attack/injector.go:43
↓ 2 callers
Method
Overlap
(a, b types.Sequence)
blocks/blocks.go:33
↓ 2 callers
Method
Overlaps
(a, b types.Sequence)
blocks/blocks.go:70
↓ 2 callers
Method
Run
()
types/packet_source.go:56
↓ 2 callers
Method
SetEthernetLayer
(eth *layers.Ethernet)
attack/injector.go:51
↓ 2 callers
Method
SprayFutureAndFillGapPackets
SprayFutureAndFillGapPackets is used to perform an ordered coalesce injection attack; that is we first inject packets with future sequence numbers and
attack/injector.go:87
↓ 2 callers
Method
Start
()
logging/attack_logger.go:64
↓ 2 callers
Method
Stop
()
logging/attack_logger.go:68
↓ 2 callers
Method
Stopped
()
types/packet_source.go:55
↓ 2 callers
Method
Write
(data []byte)
logging/util_test.go:16
↓ 2 callers
Method
WritePacket
(rawPacket []byte, timestamp time.Time)
types/events.go:32
↓ 2 callers
Method
addNext
addNext pops the first page off our doubly-linked-list and appends it to the reassembly-ring. Here we also handle the case where the connection should
ordered_coalesce.go:295
↓ 2 callers
Function
checkForInjectionInRing
(ringPtr *types.Ring, start, end types.Sequence, payload []byte)
retrospective.go:32
↓ 2 callers
Method
closeConnectionList
(conns []ConnectionInterface)
dispatcher.go:152
↓ 2 callers
Function
count_distribution
(filename, or_addr)
cmd/honeybadgerReportTool/tcp_port_distribution.py:8
↓ 2 callers
Method
detectHijack
detectHijack checks for duplicate SYN/ACK indicating handshake hijake and submits a report if an attack was observed
connection.go:190
↓ 2 callers
Function
getOverlapBytesFromSlice
(payload []byte, sequence types.Sequence, overlap blocks.Block)
retrospective.go:63
↓ 2 callers
Function
getOverlapsInRing
(ringPtr *types.Ring, start, end types.Sequence)
retrospective.go:69
↓ 2 callers
Method
grow
grow exponentially increases the size of our page cache as much as necessary.
ordered_coalesce.go:61
↓ 2 callers
Method
next
next returns a clean, ready-to-use page object.
ordered_coalesce.go:75
↓ 2 callers
Method
replace
replace replaces a page into the pageCache.
ordered_coalesce.go:96
↓ 2 callers
Method
setupNewConnection
(flow *types.TcpIpFlow)
dispatcher.go:172
↓ 1 callers
Method
Archive
()
types/events.go:36
↓ 1 callers
Method
Close
()
sniffer.go:79
↓ 1 callers
Method
Close
Close returns all used pages to the page cache
ordered_coalesce.go:158
↓ 1 callers
Method
CloseAllConnections
CloseAllConnections closes all connections in the pool.
dispatcher.go:144
↓ 1 callers
Method
CloseOlderThan
CloseOlderThan takes a Time argument and closes all the connections that have not received packet since that specified time
dispatcher.go:127
↓ 1 callers
Method
Equals
Equals returns true if s == t
types/sequence.go:55
↓ 1 callers
Method
GetClientFlow
()
connection.go:86
↓ 1 callers
Method
GetLastSeen
()
connection.go:88
↓ 1 callers
Method
Len
()
blocks/blocks.go:58
↓ 1 callers
Function
NewAttackJsonLogger
NewAttackJsonLogger returns a pointer to a AttackJsonLogger struct
logging/attack_logger.go:55
↓ 1 callers
Function
NewDispatcher
NewInquisitor creates a new Inquisitor struct
dispatcher.go:72
↓ 1 callers
Function
NewDummyPacketLogger
(str string, flow *types.TcpIpFlow, pcapNum int, pcapSize int)
pcap_integration_test.go:18
↓ 1 callers
Function
NewMockPacketLogger
(str string, flow *types.TcpIpFlow, pcapNum int, pcapSize int)
dispatcher_test.go:98
↓ 1 callers
Function
NewPcapLoggerFactory
(logDir, archiveDir string, pcapLogNum, pcapQuota int)
logging/pcap_logger.go:82
↓ 1 callers
Function
NewRotatingQuotaWriter
NewRotatingQuotaWriter takes a "starting filename" and a quota size in bytes... and guarantees to behave as an io.Writer who will write no more than q
logging/rotating_writer.go:42
↓ 1 callers
Function
NewTestLogger
()
pcap_integration_test.go:53
↓ 1 callers
Function
NewTestPcapWriter
()
logging/pcap_logger_test.go:50
↓ 1 callers
Function
PcapIsDetectInjection
(pcapPath string)
pcap_integration_test.go:105
↓ 1 callers
Method
Publish
Publish writes a JSON report to the attack-report file for that flow.
logging/attack_logger.go:106
↓ 1 callers
Method
Publish
Publish writes a JSON report to the attack-report file for that flow.
logging/metadata_attack_logger.go:89
↓ 1 callers
Method
ReceivePacket
(*types.PacketManifest)
connection.go:89
↓ 1 callers
Method
SerializeAndWrite
(event *types.Event)
logging/attack_logger.go:87
↓ 1 callers
Method
SerializeAndWrite
(event *types.Event)
logging/metadata_attack_logger.go:73
↓ 1 callers
Method
SetFileWriter
(writer io.WriteCloser)
logging/pcap_logger.go:95
next →
1–100 of 265, ranked by callers