Escenario ficticio: lanzamiento de OrbitPup (PUP)
Modalidad: análisis offline reproducible de evidencia sintética
Riesgo: no usa wallets, frases semilla, fondos, contratos, programas ni redes reales
Un video viral afirma que una figura conocida acaba de lanzar un memecoin. La búsqueda del nombre
lleva a resultados patrocinados y cuentas sociales que anuncian un airdrop. Una cuenta imitadora y
la cuenta oficial —comprometida durante parte de la ventana— enlazan la misma landing. La página
imita al proyecto, muestra un contador y solicita conectar una wallet. Después aparece una petición
descrita como Claim 250 PUP, pero la acción decodificada concede gasto ilimitado a un tercero; ese
tercero mueve otro activo de la víctima. En el endpoint también se observa reemplazo del
portapapeles. Un segundo expediente independiente presenta retiro abrupto de liquidez.
Tu misión es reconstruir la secuencia, clasificar cada mecanismo sin mezclarlo con los demás y proponer controles que rompan la cadena antes, durante y después de la firma.
Al terminar podrás:
El diagrama tiene tres lecturas cruciales. Primero, el engaño puede usar una cuenta falsa o una cuenta auténtica tomada; por eso el nombre de usuario no basta. Segundo, conectar una wallet no es sinónimo de robo: normalmente crea una sesión y revela una dirección pública, mientras el efecto económico requiere una operación, permiso o secreto adicional según el protocolo. Tercero, el rug pull no es el último paso obligatorio del drainer: puede existir con un activo auténtico y compradores que hicieron exactamente la transacción que pretendían, pero bajo promesas o controles de liquidez engañosos.
| Caso | Mecanismo | Evidencia que lo discrimina | Error que evita |
|---|---|---|---|
| Fake token | nombre/símbolo imitado con otro identificador | red e identificador canónico contrastados | asumir que el ticker identifica el activo |
| Fake website | origen web sin relación demostrada con el proyecto | dominio, redirecciones, procedencia y enlaces oficiales | creer que TLS o buen diseño prueban legitimidad |
| Impersonation / fake influencer | identidad aparente usada como autoridad | historia de cuenta, enlaces independientes y origen del medio | validar por avatar, insignia o seguidores |
| Account takeover | publicación real emitida desde sesión comprometida | IdP, dispositivo, MFA, sesión y hora de la publicación | asumir que una cuenta auténtica siempre habla por su dueño |
| Fake airdrop / phishing | premio y urgencia llevan a una acción sensible | texto, landing, formulario y petición de wallet | reducir phishing al correo electrónico |
| Seed phrase theft | entrega del secreto raíz | captura del formulario y evidencia de envío si existe | confundirla con una autorización revocable |
| Malicious contract/program | código o instrucción produce efectos no entendidos | acción decodificada, cuentas, permisos, simulación y estado | confiar en la etiqueta del botón |
| Wallet drainer | permisos/firma/secreto permiten transferencias posteriores | vínculo entre autorización, spender y movimiento | decir que “conectar” drenó la wallet |
| Clipboard attack | malware lee o sustituye un valor copiado | proceso, padre, valor anterior/nuevo y destino | atribuir todo al sitio web |
| Rug pull | promotor retira liquidez, vende o abandona contra lo prometido | control de LP/admin, estado del lock, flujos y comunicaciones | llamar rug pull a cualquier caída de precio |
| Recurso | Uso |
|---|---|
data/caso.json |
evidencia sintética de los casos LV-001 y LV-002 |
analizar_caso.py |
reglas transparentes que producen hallazgos y límites |
tests/ |
comprueba cobertura y distinciones conceptuales |
RUBRICA.md |
entregables y criterios de dominio |
SOLUCION.md |
contraste docente; abrir después de resolver |
Solo necesitas Python 3.10 o posterior. Desde la raíz del repositorio:
python labs/lanzamientos-virales/analizar_caso.py
python labs/lanzamientos-virales/analizar_caso.py --json
python -m unittest discover -s labs/lanzamientos-virales/tests -v
La primera orden debe terminar con RESULTADO: 10 hallazgos razonados; los tests deben aprobar sin
red. El analizador es una ayuda pedagógica, no un detector universal: sus reglas conocen el esquema
del dataset y hacen explícito por qué emiten cada clasificación.
data/caso.json y registra hora, herramienta y zona.evento · tiempo · fuente · observación · inferencia · límite.official_reference.project_domain.advertised_asset_id con la referencia oficial. Explica por qué el símbolo
coincidente no resuelve la identidad.@0rbitpup, @orbitpup y @LiaNovaLive. La cuenta oficial tiene una anomalía
de sesión; la cuenta imitadora tiene otro nombre; la supuesta influencer carece de procedencia.Claim 250 PUP de decoded_actions.wallet_connection.state_change es false: la conexión no explica el movimiento.spender autorizado en evt-008 con el que aparece en evt-009.evt-010 muestra sustitución de portapapeles. Eso puede cambiar una dirección antes de que el usuario
la confirme, pero no causó el gasto delegado ya correlacionado con evt-008–evt-009. Conserva ambas
rutas en el alcance: una explicación mejor sustentada no borra la otra infección.
Después analiza liquidity_case. Es un expediente distinto: el activo está verificado, no hay drainer
y la evidencia apunta a control de liquidez incompatible con la promesa publicada. Clasificarlo como
rug pull exige esa mecánica o abandono probado; una vela roja o una caída viral no bastan.
Construye acciones por condición:
Las acciones exactas dependen de red, wallet, proveedor, jurisdicción y actividad en curso. No existe una operación universal que revierta una transferencia confirmada.
Entrega una timeline con los diez eventos, una matriz de hipótesis y un playbook de una página. Debe explicar dónde se rompe la cadena con al menos un control de identidad, uno de interfaz, uno de autorización, uno de endpoint y uno de respuesta.
Criterio de aceptación: ningún hallazgo usa el símbolo como identificador; conexión y firma quedan
separadas; drainer, seed theft, clipboard y rug pull se tratan como mecanismos distintos; cada
conclusión cita event_id y declara un límite.
| Error | Corrección |
|---|---|
| «Tenía HTTPS, por tanto era oficial» | TLS protege el canal hacia ese dominio; verifica quién controla el origen. |
| «La cuenta era la oficial» | Una cuenta auténtica puede estar tomada; correlaciona sesión y publicación. |
| «Conectó la wallet y perdió todo» | Busca la firma, permiso, transacción o exposición de secreto que produjo capacidad. |
| «La simulación dijo OK, entonces era seguro» | Simulación y decodificación reducen incertidumbre; no prueban identidad ni ausencia de rutas futuras. |
| «Toda caída es rug pull» | Exige control, retiro/venta/abandono y contradicción con lo prometido; modela también mercado y liquidez. |
| «La blockchain prueba quién lo hizo» | Prueba efectos del protocolo; identidad e intención requieren evidencia adicional. |