
Attack Surface Discovery Tool, basierend auf einem Mikroservice-Ansatz, der Multi-Threading für schnelle, internetweite Asset-Indizierung nutzt
Projektkontext: Dieses Projekt dient als Portfolio-Stück, das Konzepte in der offensiven Sicherheit, Nebenläufigkeit und verteilter Architektur demonstriert.
In meinen frühen Tagen, als ich in die Welt der offensiven Sicherheit eintauchte, war ich immer fasziniert davon, wie große Suchmaschinen wie Shodan Informationen von Millionen von Geräten indizierten. Dieses Konzept drehte sich ständig in meinem Kopf; ich musste die dahinterstehende Technik verstehen, indem ich sie selbst simulierte.
Kimi ist das Ergebnis dieser Neugier. Es ist ein kontinuierlicher Aufklärungsscanner, der darauf ausgelegt ist, die Analyse der externen Angriffsfläche zu priorisieren. Es führt großflächige, portorientierte Scans durch, um Informationen von mit dem Internet verbundenen Diensten zu sammeln.
Mein Ziel war es, eine effiziente Architektur zu schaffen: Die Implementierung von Threads und Queues wurde entwickelt, um die Leistung pro Scanzyklus zu maximieren und die Ausführungszeit für massive IP-Bereiche erheblich zu reduzieren.
Kimi dient als Proof of Concept in kritischen Bereichen:
Nebenläufigkeit: Verwendung von Threads und Queues in Python, um bis zu ≈500 gleichzeitige Netzwerk-I/O-Operationen zu orchestrieren.
Entkoppelte Architektur: Design eines verteilten Systems (Engine → API → DB), das die Ausführung des Scans von der Datenpersistenz trennt.
Netzwerk: Low-Level-Socket-Programmierung für TCP/UDP-Handshakes und präzises Timeout-Management.
NoSQL-Datenbanken: Implementierung von MongoDB, um Scanergebnisse zu speichern, die von Natur aus variabel und unstrukturiert sind.
Wenn ich mir Kimi heute wieder anschaue, kann ich eine moderne technische und ethische Perspektive auf meine ursprüngliche Arbeit anwenden:
Technische Weiterentwicklung: Die größte Herausforderung war die Beherrschung von threading in Python. Heute erkenne ich, dass die skalierbarste Lösung die Migration der Engine auf asynchrone Programmierung (asyncio) wäre, um den GIL-Overhead zu vermeiden und die Nebenläufigkeit weiter zu skalieren.
Ethische Reife: Die wichtigste Lektion war berufliche Verantwortung. Das Projekt entwickelte sich von einem neugiergetriebenen Experiment zu einem Demonstrationswerkzeug. Kimi ist streng auf ethische Tests in kontrollierten Netzwerken beschränkt, was mein Engagement für legale und verantwortungsbewusste Sicherheitspraktiken unterstreicht.
Das System ist unterteilt in die Engine (Scanner) und die API (Persistenz).
MongoDB fungiert als primärer Aufnahmespeicher. Die Architektur ist so ausgelegt, dass sie mit Elasticsearch / Kibana (ELK) -Integration kompatibel ist, wodurch Volltextsuchfunktionen und analytische Visualisierungen der gesammelten Daten ermöglicht werden.
| Szenario | Befehlsbeispiel | Beschreibung |
|---|---|---|
| Schnellscan | python3 engine.py -r 192.168.0.0,192.168.0.255 -t 150 --top-ports |
Bereitstellung: Das Projekt ist vollständig mit Docker containerisiert.
Lizenz: Apache 2.0.
Kontakt: [email protected]
Rechtlicher Hinweis: Kimi wird ausschließlich zu Bildungszwecken und zur technischen Demonstration präsentiert. Die Nutzung außerhalb kontrollierter Umgebungen liegt in der alleinigen Verantwortung des Benutzers.
| Scannt einen Bereich mit 150 Threads. |
| Benutzerdefiniertes CIDR | python3 engine.py -r 192.168.0.0/24 -t 350 -C 80 443 21 | Scannt bestimmte Ports mit 350 Threads. |