Research libp2p DDoS attack mitigation
Los mantenedores suelen responder en 1 día
Nadie ha tomado este issue todavía.
Evaluación
- Dificultad
- 5/5
- Tiempo estimado
- Más de una semana
- Aptitud para principiantes
- 30/100
- Tipo de issue
- Documentación
- Claridad
- Bien especificado
- Estado de actividad
- Estancado
- Stack tecnológico
- go
Línea de trabajo
Comienza revisando connmgr.ConnManager y network.ResourceManager de libp2p, y luego compara rateconn con los limitadores personalizados de mensajes y tamaño. Documenta los enfoques de mitigación disponibles, sus ventajas y desventajas para las conexiones y los protocolos de Charon, y las recomendaciones; no se requiere implementación.
Escrito por el modelo de indexación a partir del texto del issue.
Descripción
Problem to be solved
Charon nodes in a cluster communicate via libp2p. There are multiple libp2p protocols inside charon (dkg/qbft/ping/parsigex). A Byzantine node can DDoS other nodes by spamming them with valid (or invalid) connections and messages, causing OOM and or CPU problems.
DDoS can happen on the following resources:
- Number of libp2p connections
- Number of messages per connection
- Size of messages
This is however a common problem, so there might be existing solutions to the problem.
Proposed solution
- Research different ways to mitigate DDoS attacks (by Byzantine cluster peers).
- Look at libp2p
connmgr.ConnManagerto limit connections - Look at libp2p
network.ResourceManagerto limit memory, streams, connections, and file descriptors - Look at something like for bandwith throttling: https://github.com/corverroos/rateconn
- Look at custom message rate limiters and custom message size rate limiters (both detecting and then throttling)
Write a document with findings and recommendations.
Out of Scope
Nothing needs to be implemented yet.
- Lenguaje dominante
- Go
- Estrellas
- 223
- Forks
- 139
- Merge medio
- 1 d 16 h
- PR fusionados (30 d)
- 64
Preparar el entorno
- Incluye un Dockerfile o un archivo de Docker Compose
- Tiene una plantilla de pull request
- Leer la guía de contribución
Primeros pasos
- Lee el issue completo y luego la guía de contribución del proyecto.
- Comenta en el issue que vas a ocuparte — evita que dos personas hagan lo mismo.
- Haz un fork del repositorio y trabaja en una rama.
- Abre un pull request que haga referencia al número del issue.
Más de ObolNetwork/charon
-
execution client version blankAbiertoprotocol
Dificultad 3/5 1-2 días Aptitud para principiantes 35/100
ObolNetwork/charon#4766 · 3 comentarios ·
Los mantenedores suelen responder en 1 día
-
core/infosync: remove dead proposal topicPosiblemente ocupada @KaloyanTanev la tomó hace 19 días. Abiertoenhancement protocol
ObolNetwork/charon#4728 · 1 asignado ·
Los mantenedores suelen responder en 1 día
-
core: gloas builder preferences duty (SignedBuilderRequestAuth aggregation)Posiblemente ocupada @KaloyanTanev la tomó hace 23 días. Abiertoprotocol
ObolNetwork/charon#4724 · 1 asignado ·
Los mantenedores suelen responder en 1 día
-
bug protocol
Dificultad 3/5 1-2 días Aptitud para principiantes 55/100
ObolNetwork/charon#4711 ·
Los mantenedores suelen responder en 1 día
-
protocol
Dificultad 4/5 3-5 días Aptitud para principiantes 55/100
ObolNetwork/charon#4710 ·
Los mantenedores suelen responder en 1 día
Todos los issues de ObolNetwork/charon
Issues similares
-
goose sub-agent runs are never indexed: blame finds no session for any file a `delegate` child wroteAbiertobug
Dificultad 2/5 1-3 horas Aptitud para principiantes 78/100
Los mantenedores suelen responder en 1 día
-
triage
Dificultad 2/5 1-3 horas Aptitud para principiantes 86/100
wakatime/wakatime-cli#1649 ·
Los mantenedores suelen responder en 1 día
-
PathBuffer.Pop corrupts later error locations when a key contains "." or "["Posiblemente ocupada Un pull request vinculado a esta issue está abierto o ya se fusionó. Abierto
Dificultad 2/5 1-3 horas Aptitud para principiantes 68/100
danielgtaylor/huma#1135 ·
Los mantenedores suelen responder en 1 día
-
needs-triage
Dificultad 2/5 1-3 horas Aptitud para principiantes 68/100
stacklok/toolhive-catalog#1734 ·
Los mantenedores suelen responder en 1 día
-
Docs: how to get more careful answers (Effort, reasoning models, Reasoning level, Deliberate)Abiertodocumentation priority:p1
Dificultad 2/5 1-3 horas Aptitud para principiantes 78/100
yeixio/toskar-core#697 ·
Los mantenedores suelen responder en 1 día