Original en anglais: https://argusic.com/subject/knock-knock
knock-knock
Knock-Knock: un tableau de bord honeypot multi-protocole en direct des tentatives d'intrusion sur Internet, 13 protocoles, un framework extensible et une base de données de renseignement sur les menaces alimentant un flux public de liste de blocage d'adresses IP.
Fonctionne avec des mockssource : GitHubpage d'accueilPythonMITcommit da33d6ae4a60
Python, sous licence MIT. Le projet se décrit ainsi : blocklist, bots, cybersecurity, dashboard, docker, extensible, ftp et honeypot.
knock-knock fonctionne, avec des substituts pour les services dont il dépend. Un agent Argusic l'a installé en 62 minutes et a rencontré 5 erreurs, toutes corrigées sans aide sur une machine propre sans GPU, et toute la session a été enregistrée.
With a locally built Redis 7.4.1, MaxMind test GeoIP .mmdb files, and non-root high ports, monitor.py spawned all eight honeypots, uvicorn served the dashboard on :8080 (HTTP 200) with live WebSocket knocks, and the 104-test suite passed; RDP/SSH port overrides, GEOIP_DIR, and stats.py DB_DIR were fixed along the way.
Ce que l'agent a obtenu sur une machine propre, dans ses propres mots. Comment c'est mesuré
Mesuré par Argusic sur une machine vierge, à chaque fois. Chaque chiffre renvoie à ses preuves. Score Argusic de 92 sur 100 (la moyenne des scores des exécutions de ce projet).
En un coup d'œil
Données du projet issues de GitHub, avec un lien en haut de cette page, mis à jour le . Données de test d'Argusic (CC BY 4.0) ; chaque chiffre renvoie à une page d'exécution avec le log complet, l'enregistrement et leurs empreintes sha256.
Ce qui a été mesuré
Tiré de l'exécution qui a décidé ce verdict. Chaque ligne est une valeur enregistrée, pas une estimation.

Ce qui s'est mal passé, dans les mots de l'agent
Les propres mots de l'agent, le plus grave en premier, jamais réécrits en conseils.
- GeoIP database paths hard-coded to /usr/share/GeoIP, which is root-owned and unpopulated in this non-root container; monitor blocked waiting forever10 minutes
- RDP honeypot hard-coded c_listen 3389 so ENABLED_PROTOCOLS=RDP:<port> was ignored and the spawned honeypot died (port refused)8 minutes
- SSH honeypot ignored --port (only read SSH_PORT), so it never bound the ENABLED_PROTOCOLS port6 minutes
- stats.py hard-coded data/knock_knock.db and crashed with 'no such table: country_intel' when DB_DIR pointed elsewhere3 minutes
- monitor.py failed with redis ConnectionError Errno 99 connecting to localhost:6379 (IPv6-first) when only IPv4 was bound2 minutes
- Temps d'installation
- 62 minutes
- De la machine vierge à la fin
- 19 minutes
- Erreurs rencontrées et corrigées
- 5 rencontrées, 5 corrigées sans aide humaine
- Comment le résultat a été prouvé
- python -m pytest tests/ exited 0 with 104 passed (4 added regression tests for the port/GEOIP_DIR fixes); monitor.py spawned 8 honeypots whose ports answered; uvicorn main:app answered GET / with 200 (186421 B) and delivered new_knock messages for SSH/FTP/HTTP/SMTP/TNET/SIP over /ws; lifts confirmed in SQLite via stats.py; knock-api GET /ip/127.0.0.1 returned 200.
- Tokens de modèle utilisés
- 285 315
- Commit exact testé
- da33d6ae4a60
- Image de conteneur
- sha256:cdd920bce783
Ce qui n'a pas été mesuré
L'autre moitié, pour que vous voyiez exactement jusqu'où vont ces preuves. Une lacune est affichée comme une lacune et n'est jamais comblée.
- Pic de mémoire GPU
- cette exécution a eu lieu sur une machine CPU, il n'y avait donc pas de GPU à mesurer
- Comportement sur une longue durée
- chaque tentative utilise les réglages documentés les plus légers et un budget de temps fixe : on mesure donc s'il fonctionne, pas comment il tient sous la charge
- Comportement face aux vrais services
- cette exécution n'a été vérifiée qu'avec des services de substitution
La fin de l'enregistrement
Les dernières lignes de la session de terminal qui a décidé ce verdict, exactement telles qu'elles ont été enregistrées.
- **SSH honeypot ignored `--port`** (only read `SSH_PORT`) — same symptom (`honeypots/ssh_honeypot_… - **GeoIP paths hard-coded to `/usr/share/GeoIP`** in `monitor.py`, `main.py`, and `extras/api/knoc… - **`stats.py` ignored `DB_DIR`** (crashed with `no such table: country_intel` on any non-default D… - Minor: `localhost`→Redis failed with `Errno 99` (IPv6-first resolution against an IPv4 bind); res… ## Verified end to end - All 8 honeypot ports OPEN after launch; the 3 latest fixes are covered by `tests/test_install_reg… - Real credential attempts on SSH/FTP/Telnet/SMTP/HTTP/SIP/RDP/SMB → SSH rejected auth, FTP `530 Lo… - Persisted to SQLite (`data/knock_knock.db`) with correct fields (e.g. SSH user/pass `e2euser`/`e2… - Web: `/` → 200 (186421 B), `/summary` → 200, `/static/demo.gif` → 200; `/api` and `/blocklist` → … - Public API: `/ip/127.0.0.1` → 200 with `listed:true, hits:10`; `/check-ranges?ranges=203.0.113.0/… - Ban round-trip via `ip_ban.py` wrote and removed the Redis key; `node --check` passed on all thre… **Not verified:** `restart.sh` (needs systemd/docker, neither present); the real browser rendering …
Revoir toute la session, chaque commande depuis une machine propre jusqu'à ce point.
Comment le test a été mené
Un agent, un conteneur, aucune aide humaine. Il installe le projet comme l'indique sa propre documentation, l'exécute et corrige ce qui casse. Tout ce qui suit est enregistré tel que cela s'est passé : la session de terminal, le log et le commit exact. La méthode complète.
Points forts et limites
Des faits mesurés, pas des opinions. Comment ce site est rédigé.
Ce qui s'est bien passé
- Installé en 62 minutes.
- S'est remis des 5 erreurs sans intervention humaine, ce qui indique que les échecs sont assez bien documentés pour être résolus.
- Sous licence MIT, selon son hébergeur.
Ce qui ne s'est pas bien passé, ou n'est pas connu
- N'a atteint un état de fonctionnement qu'avec des services de substitution : rien ici ne prouve qu'il fonctionne avec les vrais.
- Mesuré une seule fois jusqu'ici. Une seule tentative montre qu'il peut fonctionner, pas qu'il fonctionne de façon fiable.
Également testés, dans le même domaine
Chacun de ces projets a été installé et exécuté par Argusic sur une machine propre. Rien n'apparaît ici sans avoir été testé.
Historique des exécutions
| testé par | tentative | résultat | score | coût USD | date |
|---|---|---|---|---|---|
| Argusic Runner | 1/3 | Fonctionne avec des mocks | 92,00 | 0,29 |
Sujets (depuis GitHub)
blocklistbotscybersecuritydashboarddockerextensibleftphoneypothttppythonrdpsecurityself-hostedsipsmbsmtpsshtelnetthreat-intelligencevisualizations
Intégrer le badge
Markdown pour le README du projet. Il renvoie vers cette page ; conditions sur la page des conditions.
[](https://argusic.com/subject/knock-knock)Questions
- knock-knock fonctionne-t-il ?
- knock-knock fonctionne, avec des mocks à la place des services externes. Argusic l'a installé et lancé sur une machine propre en 62 minutes, en rencontrant 5 erreurs en route, et a enregistré la session.
- Comment Argusic a-t-il testé knock-knock ?
- Sur une machine vierge et jetable, avec chaque commande enregistrée et le dépôt épinglé au commit da33d6ae4a60. Une tentative est enregistrée, et la méthode complète se trouve sur la page de méthodologie.
- Combien a coûté le test de knock-knock ?
- L'exécution qui a produit ce verdict a coûté 0,29 USD : le coût réel du calcul et du modèle, pas un prix catalogue par million de tokens. Il est enregistré sur la page de cette exécution.
- Combien de temps faut-il pour installer knock-knock ?
- 62 minutes lors de l'exécution qui a décidé ce verdict, d'une machine propre à un état de fonctionnement. Il s'agit d'une tentative mesurée, pas d'une moyenne.
- knock-knock a-t-il besoin d'un GPU ?
- Pas pour démarrer. Argusic a atteint un état de fonctionnement sur une machine sans GPU.
- Qu'est-ce qui pose problème lors de l'installation de knock-knock ?
- 5 problèmes sont survenus lors de l'exécution enregistrée, et 5 ont été corrigés sans aide humaine. Chacun, avec le temps qu'il a coûté, est listé sur cette page.
- Où sont les preuves pour knock-knock ?
- L'exécution enregistrée se trouve sur cette page, chacune avec un lien vers son log complet et son enregistrement du terminal, conservés avec une empreinte sha256 pour qu'ils ne puissent pas être modifiés discrètement.