MCPcopy Create free account

hub / github.com/david415/HoneyBadger / functions

Functions265 in github.com/david415/HoneyBadger

↓ 39 callersMethodAdd
(a, b types.Sequence)
blocks/blocks.go:80
↓ 29 callersMethodDifference
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 callersMethodEqual
Equal returns true if TcpIpFlow structs t and s are equal. False otherwise.
types/flow.go:75
↓ 18 callersMethodReceivePacket
(*types.PacketManifest)
connection.go:93
↓ 18 callersMethodString
()
blocks/blocks.go:29
↓ 16 callersFunctionNewTcpIpFlowFromFlows
NewTcpIpFlowFromFlows given a net flow (either ipv4 or ipv6) and TCP flow returns a TcpIpFlow
types/flow.go:54
↓ 15 callersMethodClose
()
connection.go:85
↓ 14 callersMethodNext
Next returns the next ring element. r must not be empty.
types/ring.go:29
↓ 11 callersFunctioncheckBlocks
(t *testing.T, got, want Blocks)
blocks/blocks_test.go:7
↓ 9 callersMethodReverse
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 callersMethodGreaterThan
GreaterThan returns true if s > t
types/sequence.go:60
↓ 7 callersMethodReadPacketData
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 callersMethodWrite
()
attack/injector.go:121
↓ 6 callersMethodFlows
Flows returns the component flow structs IPv4, TCP
types/flow.go:101
↓ 6 callersFunctionNewHashedTcpIpv4Flow
NewHashedTcpIpv4Flow returns a comparable struct given a flow struct
types/flow.go:143
↓ 6 callersMethodStop
()
types/events.go:34
↓ 5 callersMethodBuild
(options ConnectionOptions)
connection.go:63
↓ 5 callersFunctionNewHashedTcpIpv6Flow
NewHashedTcpIpv6Flow returns a comparable struct given a flow struct
types/flow.go:112
↓ 5 callersFunctionNewTcpIp4FlowFromLayers
NewTcpIp4FlowFromLayers given IPv4 and TCP layers it returns a TcpIpFlow
types/flow.go:38
↓ 5 callersMethodaddContiguous
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 callersMethoddetectInjection
(p *types.PacketManifest)
connection.go:214
↓ 4 callersMethodLessThanOrEqual
LessThanOrEqual returns true if s <= t
types/sequence.go:50
↓ 4 callersMethodLog
(r *Event)
types/events.go:28
↓ 4 callersFunctionNewDummyAttackLogger
()
retrospective_test.go:29
↓ 4 callersFunctionNewRing
NewRing creates a ring of n elements.
types/ring.go:39
↓ 4 callersFunctionNewSupervisor
(options SupervisorOptions)
supervisor.go:45
↓ 4 callersMethodPrev
Prev returns the previous ring element. r must not be empty.
types/ring.go:34
↓ 4 callersMethodRemove
()
types/events.go:35
↓ 4 callersMethodRun
()
supervisor.go:72
↓ 4 callersMethodSetIPv4Layer
(iplayer layers.IPv4)
attack/injector.go:55
↓ 4 callersMethodSetIPv6Layer
(iplayer layers.IPv6)
attack/injector.go:59
↓ 4 callersMethodSetTCPLayer
(tcpLayer layers.TCP)
attack/injector.go:63
↓ 4 callersFunctionSetupTestInquisitor
()
dispatcher_test.go:127
↓ 4 callersFunctionSnifferRegister
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 callersMethodconnections
()
dispatcher.go:110
↓ 4 callersMethoddetectCensorInjection
(p *types.PacketManifest)
connection.go:562
↓ 4 callersMethodfreeNext
()
ordered_coalesce.go:271
↓ 3 callersMethodConnections
()
connection.go:95
↓ 3 callersMethodCount
Count computes the number of none nil Reassembly structs populating the ring
types/ring.go:68
↓ 3 callersMethodLessThan
LessThan returns true if s < t
types/sequence.go:45
↓ 3 callersFunctionNewAttackMetadataJsonLogger
NewAttackMetadataJsonLogger returns a pointer to a AttackMetadataJsonLogger struct
logging/metadata_attack_logger.go:41
↓ 3 callersFunctionNewOrderedCoalesce
(logger types.Logger, flow *types.TcpIpFlow, pageCache *pageCache, streamRing *types.Ring, maxBufferedPagesTot
ordered_coalesce.go:143
↓ 3 callersFunctionNewTcpIpFlowFromPacket
getPacketFlow returns a TcpIpFlow struct given a byte array packet
types/flow.go:85
↓ 3 callersMethodStart
()
types/events.go:33
↓ 3 callersMethodinsert
(packetManifest *types.PacketManifest, nextSeq types.Sequence)
ordered_coalesce.go:164
↓ 3 callersFunctionnewPageCache
()
ordered_coalesce.go:51
↓ 2 callersMethodBuild
(ConnectionOptions)
connection.go:57
↓ 2 callersFunctionFlowFromPacket
()
types/flow_test.go:97
↓ 2 callersMethodGetDispatcher
()
supervisor.go:58
↓ 2 callersMethodGetObservedConnectionsChan
(int)
connection.go:94
↓ 2 callersMethodGetSniffer
()
supervisor.go:62
↓ 2 callersMethodGetStartedChan
()
types/packet_source.go:63
↓ 2 callersFunctionHelperTestThreeWayClose
(isClient bool, t *testing.T)
connection_test.go:241
↓ 2 callersFunctionNewPcapLogger
(logDir, archiveDir string, flow *types.TcpIpFlow, pcapLogNum int, pcapQuota int)
logging/pcap_logger.go:56
↓ 2 callersFunctionNewTCPStreamInjector
(pcapHandle *pcap.Handle, isIPv6Mode bool)
attack/injector.go:43
↓ 2 callersMethodOverlap
(a, b types.Sequence)
blocks/blocks.go:33
↓ 2 callersMethodOverlaps
(a, b types.Sequence)
blocks/blocks.go:70
↓ 2 callersMethodRun
()
types/packet_source.go:56
↓ 2 callersMethodSetEthernetLayer
(eth *layers.Ethernet)
attack/injector.go:51
↓ 2 callersMethodSprayFutureAndFillGapPackets
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 callersMethodStart
()
logging/attack_logger.go:64
↓ 2 callersMethodStop
()
logging/attack_logger.go:68
↓ 2 callersMethodStopped
()
types/packet_source.go:55
↓ 2 callersMethodWrite
(data []byte)
logging/util_test.go:16
↓ 2 callersMethodWritePacket
(rawPacket []byte, timestamp time.Time)
types/events.go:32
↓ 2 callersMethodaddNext
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 callersFunctioncheckForInjectionInRing
(ringPtr *types.Ring, start, end types.Sequence, payload []byte)
retrospective.go:32
↓ 2 callersMethodcloseConnectionList
(conns []ConnectionInterface)
dispatcher.go:152
↓ 2 callersFunctioncount_distribution
(filename, or_addr)
cmd/honeybadgerReportTool/tcp_port_distribution.py:8
↓ 2 callersMethoddetectHijack
detectHijack checks for duplicate SYN/ACK indicating handshake hijake and submits a report if an attack was observed
connection.go:190
↓ 2 callersFunctiongetOverlapBytesFromSlice
(payload []byte, sequence types.Sequence, overlap blocks.Block)
retrospective.go:63
↓ 2 callersFunctiongetOverlapsInRing
(ringPtr *types.Ring, start, end types.Sequence)
retrospective.go:69
↓ 2 callersMethodgrow
grow exponentially increases the size of our page cache as much as necessary.
ordered_coalesce.go:61
↓ 2 callersMethodnext
next returns a clean, ready-to-use page object.
ordered_coalesce.go:75
↓ 2 callersMethodreplace
replace replaces a page into the pageCache.
ordered_coalesce.go:96
↓ 2 callersMethodsetupNewConnection
(flow *types.TcpIpFlow)
dispatcher.go:172
↓ 1 callersMethodArchive
()
types/events.go:36
↓ 1 callersMethodClose
()
sniffer.go:79
↓ 1 callersMethodClose
Close returns all used pages to the page cache
ordered_coalesce.go:158
↓ 1 callersMethodCloseAllConnections
CloseAllConnections closes all connections in the pool.
dispatcher.go:144
↓ 1 callersMethodCloseOlderThan
CloseOlderThan takes a Time argument and closes all the connections that have not received packet since that specified time
dispatcher.go:127
↓ 1 callersMethodEquals
Equals returns true if s == t
types/sequence.go:55
↓ 1 callersMethodGetClientFlow
()
connection.go:86
↓ 1 callersMethodGetLastSeen
()
connection.go:88
↓ 1 callersMethodLen
()
blocks/blocks.go:58
↓ 1 callersFunctionNewAttackJsonLogger
NewAttackJsonLogger returns a pointer to a AttackJsonLogger struct
logging/attack_logger.go:55
↓ 1 callersFunctionNewDispatcher
NewInquisitor creates a new Inquisitor struct
dispatcher.go:72
↓ 1 callersFunctionNewDummyPacketLogger
(str string, flow *types.TcpIpFlow, pcapNum int, pcapSize int)
pcap_integration_test.go:18
↓ 1 callersFunctionNewMockPacketLogger
(str string, flow *types.TcpIpFlow, pcapNum int, pcapSize int)
dispatcher_test.go:98
↓ 1 callersFunctionNewPcapLoggerFactory
(logDir, archiveDir string, pcapLogNum, pcapQuota int)
logging/pcap_logger.go:82
↓ 1 callersFunctionNewRotatingQuotaWriter
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 callersFunctionNewTestLogger
()
pcap_integration_test.go:53
↓ 1 callersFunctionNewTestPcapWriter
()
logging/pcap_logger_test.go:50
↓ 1 callersFunctionPcapIsDetectInjection
(pcapPath string)
pcap_integration_test.go:105
↓ 1 callersMethodPublish
Publish writes a JSON report to the attack-report file for that flow.
logging/attack_logger.go:106
↓ 1 callersMethodPublish
Publish writes a JSON report to the attack-report file for that flow.
logging/metadata_attack_logger.go:89
↓ 1 callersMethodReceivePacket
(*types.PacketManifest)
connection.go:89
↓ 1 callersMethodSerializeAndWrite
(event *types.Event)
logging/attack_logger.go:87
↓ 1 callersMethodSerializeAndWrite
(event *types.Event)
logging/metadata_attack_logger.go:73
↓ 1 callersMethodSetFileWriter
(writer io.WriteCloser)
logging/pcap_logger.go:95
next →1–100 of 265, ranked by callers