Un día en la vida de un operador de pool
O cómo me convertí en el «capo de una botnet»
Una historia real sobre gestionar un pool de minería CPU, recibir un correo alarmante, ver cómo la mitad de tu infraestructura se apaga — y pasarte un día entero demostrando que no eres un criminal.
Gestiono un pool de minería para una moneda minable en CPU. Unos usuarios apuntaron una botnet hacia él. Mi proveedor de hosting concluyó que yo era el operador de la botnet, apagó mi servidor, y me pasé un maravilloso día entre correos, llamadas telefónicas y angustia existencial demostrando que solo soy un tipo que gestiona un pool de minería. Pronóstico para operadores de pool: impredecible, con probabilidad de falsas acusaciones.
Acto I: Un martes perfectamente normal
Imagínate esto. Es un día de trabajo normal. Estoy en mi trabajo diurno como ingeniero informático, haciendo cosas de ingeniero informático. Concretamente, trabajaba en un nuevo proyecto — el tipo de trabajo concentrado en el que tienes tres terminales abiertos, una pestaña de documentación que seguro leerás luego, y ese estado de flujo particular en el que todo simplemente encaja.
En segundo plano, como siempre, mis pools de minería zumban tranquilamente. Llevan funcionando más de una década. Uptime Kuma está en verde de cabo a rabo. Los mineros minan. Se encuentran bloques. Los pagos salen. La hermosa y aburrida rutina de una infraestructura bien mantenida.
Entre los pools que opero hay uno para una moneda minable en CPU. Si sabes algo sobre monedas minables en CPU, ya sabes adónde va esta historia. Si no — abróchate el cinturón.
Las monedas minables en CPU son el «Wi-Fi gratis» de la minería de criptomonedas. Todo ordenador tiene un CPU. Todo ordenador comprometido tiene un CPU. Ya ves el problema.
Acto II: El correo
Justo en medio de mi estado de flujo, el móvil vibra. Luego vuelve a vibrar. Y otra vez. Le echo un vistazo esperando quizás una notificación de Slack sobre una reunión que ya estaba ignorando. En cambio, veo esto:
Para: yo, un ciudadano respetuoso de la ley
Asunto: Rescisión del servicio — Actividad botnet C&C detectada
Estimado cliente:
Hemos detectado que su servidor está siendo utilizado como servidor de comando y control (C&C) de botnet. Múltiples informes indican tráfico malicioso procedente de su dirección IP, coherente con actividad de coordinación de botnet.
Su servicio ha sido suspendido con efecto inmediato.
Atentamente,
El Departamento de Abusos
Me quedé mirando el móvil durante cinco segundos seguidos. Luego hice lo que cualquier persona razonable habría hecho: lo releí para asegurarme de que no estaba alucinando.
No estaba alucinando.
Mi proveedor de hosting acabá de llamarme capo de una botnet y apagar mi servidor.
Justo en ese momento, Uptime Kuma decidió unirse a la conversación. El móvil se convirtió en un árbol de Navidad de alertas rojas. El proxy frontend — el que hace de intermediario entre internet y mi infraestructura real del pool — corría en ese servidor. Así que cuando lo apagaron, no se cayó un solo servicio. Se cayó la puerta de entrada a la mitad de mi operación.
un día estupendo
y el colapso de Uptime Kuma
fuera de línea
Acto III: Lo que realmente ocurrió
Permitidme explicar lo que realmente pasaba, ya que mi proveedor de hosting obviamente no se molestó en comprobarlo.
Gestiono un pool de minería. Un pool de minería es un servidor que acepta conexiones de mineros. Los mineros se conectan mediante el protocolo stratum, envían shares (prueba de trabajo computacional) y reciben pagos de forma proporcional cuando el pool encuentra un bloque. Esto no es controvertido. Así funciona la minería de criptomonedas desde aproximadamente siempre.
Ahora bien, aquí viene la parte divertida de las monedas minables en CPU: como no se necesita ni una GPU ni un ASIC para minar, cualquier ordenador puede hacerlo. Incluidos ordenadores que no pertenecen a la persona que ejecuta el software de minería en ellos.
Un individuo emprendedor — llamémoslo «no es mi problema, pero de repente es completamente mi problema» — gestionaba una botnet. Había comprometido un montón de máquinas e instalado software de minería en todas ellas. Luego apuntó todos esos mineros hacia mi pool.
Desde fuera, eso parece miles de conexiones desde IPs diversas comunicándose todas con mi servidor. Para alguien que no sabe qué es un pool de minería, ese patrón es exactamente igual al de una botnet llamando a casa con su servidor de comando y control.
Solo que yo no soy quien controla la botnet. Soy el aparcamiento donde el coche de la fuga decidió estacionar.
El verdadero operador de la botnet está ahí fuera en algún lugar, probablemente sorbiendo café y viendo cómo su hashrate sube en el panel de mi pool. Mientras tanto, soy yo quien acaba de tener el servidor destruido desde la órbita porque el departamento de abusos de un proveedor de hosting vio «muchas conexiones desde IPs sospechosas» y saltó directamente a «este tipo dirige una empresa criminal».
Es como tener un aparcamiento y que alguien llame a la policía contra ti porque un coche robado estaba aparcado en la tercera planta. «Señor, está claro que usted dirige una red de robo de coches.» No, gestiono un aparcamiento. La gente aparca aquí. Yo no compruebo los títulos de propiedad.
Acto IV: Las cinco fases para demostrar la inocencia
Lo que siguió fue una de las experiencias más tediosas de mi vida, y lo digo como alguien que una vez tuvo que depurar una race condition en un servidor stratum de Node.js a las 3 de la mañana. Al menos la race condition no ponía en duda mi carácter moral.
Fase 1: El correo de respuesta
Redacté un correo muy educado y muy detallado explicando que gestiono un pool de minería de criptomonedas. Expliqué qué son las conexiones stratum. Expliqué qué es la minería CPU. Expliqué por qué que muchas IPs diferentes se conecten a un pool de minería no solo es normal, sino que es literalmente el modelo de negocio entero. Añadí enlaces, diagramas y desesperación apenas disimulada.
Tiempo de respuesta: varias horas de silencio.
Fase 2: El correo de seguimiento
Como habían pasado horas y mis pools seguían perdiendo mineros (que, comprensiblemente, se marchaban a minar a otro sitio porque no podían alcanzar mi frontend), mandé un seguimiento. Este iba algo menos pulido y algo más en la línea de «por favor, os lo suplico, mirad lo que es realmente un pool de minería».
Fase 3: La llamada telefónica
Llamé a su línea de soporte. Me transfirieron. Luego me transfirieron otra vez. Expliqué los pools de minería a tres personas distintas, cada una de las cuales parecía oír hablar de criptomonedas por primera vez. Una preguntó si la minería era «como Bitcoin». Sí. Sí, es como Bitcoin. Eso es literalmente lo que es. ¿Puedo recuperar mi servidor, por favor?
Fase 4: El paquete de pruebas
Querían «pruebas» de que gestionaba un servicio legítimo. Así que compilé un greatest hits de la legalidad: capturas de pantalla del sitio web del pool, registros públicos de blockchain, años de historial operacional, información de registro, el listado de mi pool en sitios agregadores de minería, y una carta sincera que estuvo a punto de incluir mi partida de nacimiento y una carta de recomendación de mi madre.
Fase 5: La espera
Y entonces esperé. Mientras mi frontend estaba caído. Mientras los mineros se iban. Mientras Uptime Kuma me mandaba alertas rojas con el entusiasmo de un niño pequeño que descubre el claxón del coche. Ahí estaba yo, actualizando el correo, sin haber hecho absolutamente nada malo, esperando permiso para operar el servicio que llevo gestionando más de una década.
Acto V: Las nubes se despejan (en su mayoría)
Finalmente — y por «finalmente» me refiero a después de suficientes correos para llenar una novela — el proveedor de hosting admitió que quizás, solo quizás, no estaba dirigiendo un imperio criminal de botnets desde mi servidor alquilado. El servicio fue restaurado. El frontend volvió a estar en línea. El panel de Uptime Kuma fue volviendo poco a poco al verde, una comprobación tras otra, como un paciente que sale del coma.
Pero el daño estaba hecho. Los mineros que habían estado desconectados durante horas ya se habían trasladado a otros pools. Algunos volvieron. Otros no. El hashrate del pool sufrió un golpe que tardó días en recuperarse. Y había perdido un día entero de trabajo en mi empleo habitual gestionando esto, porque «mi proveedor de hosting cree que soy un ciberdelincuente» no es algo que puedas poner en un ticket y resolver mañana.
¿El operador de la botnet? Sigue ahí fuera. Sigue sin ser mi problema. Excepto que, por supuesto, era completamente mi problema.
que no soy un criminal
transferencias necesarias
(como siempre)
El panorama general: la vida de un operador de pool
A veces la gente me pregunta cómo es gestionar un pool de minería. Creo que esperan que hable de tasas de hash, recompensas de bloque y optimización de la latencia stratum. Y sí, eso es parte de ello. Pero la respuesta real es: es un sistema meteorológico.
Algunos días son soleados. Todo funciona. Los bloques llegan a un ritmo constante. Los mineros están contentos. Nadie te manda correos sobre nada. Casi te olvidas de que gestionas una infraestructura crítica de la que la gente depende. Puedes concentrarte en nuevas funciones, optimizaciones y las cosas que hacen que esto sea realmente divertido.
Luego, sin ningún aviso, empieza a llover a cántaros. Una botnet apunta a tu pool y tu proveedor de hosting te declara hombre buscado. O alguien lanza un ataque DDoS porque está aburrido, o enfadado, o dirige un pool competidor con ética cuestionable. O un demonio de moneda tiene un bug de consenso a las 2 de la mañana y de repente estás en un fork en el que nadie más está. O falla un disco duro. O un minero encuentra un bloque pero la entrega se queda colgada por un fallo de red y pierdes una recompensa de 200 dólares en el vacío.
Y luego, eventualmente, la lluvia para. El sol vuelve a salir. Pero nunca es exactamente el mismo cielo brillante y despejado de antes. Es más bien un «bueno, ¿qué sigue?» de cielo cubierto. Nublado. Aprendes a apreciar más los buenos días porque sabes — con absoluta certeza — que la próxima sorpresa ya está cargando.
Mañana: Todo está en verde. La vida es hermosa. Te planteas escribir un artículo sobre lo fluido que todo va.
Tarde: Recibes un correo que te revuelve el estómago. La mitad de la infraestructura está en llamas. Estás explicando qué son los puertos TCP a un agente de soporte.
Noche: Las cosas están mayormente de vuelta en línea. Estás demasiado cansado para sentir alivio. Miras fijamente el panel de monitorización esperando lo siguiente.
Repetir.
Lo que aprendí (además de paciencia)
Si hay algo que sacar de esta deliciosa experiencia, son unas pocas cosas:
- Tener redundancia en la capa frontend/proxy. Si no hubiera tenido el frontend en un servidor único con ese proveedor, el impacto habría sido mucho menor. Los puntos únicos de fallo están bien hasta que dejan de estarlo — y dejan de estarlo en el peor momento posible.
- Tener la documentación lista. Tener preparada una explicación de «somos un pool de minería legítimo» con pruebas de apoyo ahorra tiempo cuando hay que justificar la propia existencia ante alguien que te toma por un criminal.
- Elegir proveedores de hosting que entiendan lo que haces. O al menos los que hacen preguntas antes de cortar el suministro.
- Minar de forma legítima. Si estás apuntando máquinas comprometidas a un pool, no solo estás infringiendo la ley — podrías estar consiguiendo que cierren el pool para todos los que minan honestamente. El operador del pool es castigado por tus acciones. No seas esa persona.
- Entender que las caídas del pool a veces ocurren por cosas así. No siempre es un fallo técnico. A veces es un fallo humano — simplemente no del lado del operador del pool.
Conclusión
Gestionar un pool de minería es un compromiso 24/7 que va mucho más allá de mantener el software actualizado y los servidores funcionando. Significa estar disponible cuando las cosas se tuercen, incluso cuando «torcerse» significa defenderse de acusaciones que serían graciosas si no estuvieran destrozando activamente tu uptime.
Las monedas minables en CPU atraen botnets. No es ningún secreto y no es culpa del pool. Un pool no puede verificar si un CPU que se conecta pertenece a la persona que envía shares o a alguien al otro lado del mundo cuya máquina fue comprometida. Culpar al pool es como culpar a la autopista por un coche que excede el límite de velocidad.
El día de un operador de pool puede pasar de soleado a tormentoso en el tiempo que tarda en leer un correo. Y normalmente ocurre justo cuando estás en medio de otra cosa. No hay un «buen momento» para que tu proveedor de hosting te acuse de ciberdelincuencia. Pero definitivamente hay un «peor momento», y por lo visto siempre es ese.
Si eres un minero leyendo esto: sabe que detrás de cada pool de minería hay una persona (o un pequeño equipo) que lidia con este tipo de caos para que tú puedas simplemente apuntar tu minero a una dirección stratum y cobrar tus pagos. Si tu pool tiene una caída, quízas espera un momento antes de cambiar. Puede que haya un operador de pool muy cansado al otro extremo, intentando convencer a un agente de soporte de que las conexiones stratum no son, en realidad, un ciberarma.
Artículos relacionados
Seguridad del pool de minería
Cómo los pools de minería se protegen a sí mismos y a sus mineros frente a DDoS, exploits y otras amenazas.
Elegir el pool de minería adecuado
Cómo evaluar pools de minería por comisiones, esquemas de pago, disponibilidad y confiabilidad.
Pool Solo Mining vs solo mining real
La verdad sobre el «solo mining en un pool» de un operador de pool que lleva haciéndolo desde 2013.