GitHub ist eine der beliebtesten Code-Hosting-Plattformen im Internet, mit a Weltgemeinschaft von mehr als 90 Millionen Menschen gemeldet seine Dienste zu nutzen.
Dies macht GitHub zu einer wichtigen Plattform für Programmierer und Entwickler. Viele nützliche Tools, die Open-Source-Untersuchungen unterstützen, finden Sie auf der Website (einschließlich auf Bellincgats GitHub Repository).
Angesichts der Menge an Informationen, die Benutzer auf der Plattform teilen, kann GitHub selbst auch eine nützliche Quelle für Online-Ermittler sein.
Beispielsweise können auf GitHub verfügbare Informationen mit anderen sozialen Medien oder Online-Inhalten, die öffentlich geteilt wurden, querverwiesen werden.
Während GitHub über eine intuitive Benutzeroberfläche verfügt, erfordert es viele Klicks und ist darauf beschränkt, jeweils eine Entität (sei es eine einzelne Seite oder ein Benutzer- oder Organisationsprofil) zu öffnen.
Darüber hinaus gibt es keine einfache Möglichkeit, die Informationen zu speichern, auf die man auf GitHub stößt.
Hier kommt Octosuite ins Spiel. Octosuite ist ein fortschrittliches GitHub-Framework, das in Python geschrieben ist und die öffentliche API von GitHub verwendet, um den Prozess der Untersuchung von Konten und Repositories auf der Plattform effizienter zu gestalten und gleichzeitig eine Reihe automatisierter und leicht reproduzierbarer Abfragen zu erstellen.
Was kann Octosuite?
Octosuite verfügt über eine Vielzahl von Befehlen, mit denen Informationen zu Konten und Repositories abgerufen werden können, die auf GitHub öffentlich sichtbar sind.
Mit Octosuite kann man leicht öffentliche Informationen finden zu:
Octosuite enthält auch eine Suchfunktion, die nach Benutzern, Repositorys, Themen (ein Entwicklungstag, der hilft, den Zweck des Codes zu verstehen), Commits (eine Antwort oder Änderung an einer Datei oder einem Satz von Dateien, die von einem Benutzer vorgenommen wurden) und Problemen (Conversation Threads, die die Community verwenden kann, um Probleme zu melden oder nach Funktionen oder Hilfe zu fragen).
Alle Ergebnisse dieser Suchen sind in einem lesbaren Format verfügbar und können im CSV-Format (Comma-Separated Value) exportiert werden.
Erste Schritte mit Octosuite
Die Einrichtung von Octosuite ist ein unkomplizierter Vorgang.
Es kann auf zwei Arten installiert und verwendet werden; als Befehlszeilenschnittstelle (CLI) oder als grafische Benutzeroberfläche (GUI).
Wenn Sie mit der Befehlszeile nicht vertraut sind, bietet die GUI-Option (mit Installationsanweisungen auf Fenster und Mac OS) ist offensichtlich vorzuziehen. Die GUI-Version des Tools ermöglicht es Benutzern, Suchbefehle aus einem Dropdown-Menü auszuwählen.
Die CLI kann jedoch flexibler bei der Verarbeitung der gekratzten Daten oder bei der Stapelverarbeitung sein. Sie müssen auch die Grundlagen der Befehlszeile kennen, um die GUI-Version des Tools zu installieren. Eine vollständige Anleitung zur Installation der GUI-Version von Octosuite finden Sie hier GitHub-Leitfaden.
Im Rest dieses Artikels wird detailliert beschrieben, wie Sie die CLI-Version des Tools verwenden.
Octosuite-Befehle
Wenn Sie mit der Befehlszeile vertraut sind (unter Windows, Linux oder Mac), können Sie einfach ein Terminalfenster öffnen und den folgenden Befehl eingeben, um Octosuite zu installieren: „pip3 install octosuite“.
Stellen Sie jedoch sicher, dass Sie Python 3 installiert haben, bevor Sie den Befehl ausführen.
Eine Anleitung für Anfänger zur Verwendung der Befehlszeile finden Sie hier hier.
Sobald der Installationsvorgang abgeschlossen ist, können Sie Octosuite starten, indem Sie den Befehl „octosuite“ ausführen
Alternativ können Sie den folgenden Befehl verwenden, um verfügbare Optionen zum Ausführen von Octosuite mit Befehlszeilenargumenten anzuzeigen: `octosuite –help`
Sie werden zu Beginn gefragt, ob Sie Farben im Programm aktivieren möchten (dies macht die Erfahrung ansprechender), wählen Sie „y“ für „Ja“ und „n“ für „Nein“. Danach sehen Sie den Hauptbildschirm.
Von dort aus können Sie mit dem Befehl „help“ beginnen, um eine Liste der verfügbaren Befehle anzuzeigen.
Octosuite-Ermittlungsbefehle haben Unterbefehle mit ihrer eigenen einzigartigen Funktionalität. Um sie aufzulisten, geben Sie einfach `help:investigation_command` ein. Wenn Sie beispielsweise alle Unterbefehle für den Benutzerbefehl sehen möchten, sollten Sie Folgendes eingeben: `help:user`.
Daraufhin erscheint eine Tabelle mit allen Unterbefehlen des Benutzerbefehls.
Benutzer-Unterbefehle
Versuchen wir, die Profilinformationen eines Benutzers abzurufen.
Geben Sie dazu den Befehl „user:profile“ ein. Sie werden aufgefordert, einen Benutzernamen einzugeben. Drücken Sie danach die Eingabetaste.
Der folgende Screenshot zeigt die Ausgabe mit den Profilinformationen eines Benutzers (wobei einige Details redigiert wurden). Octosuite fragt Sie, ob Sie die Ausgabe in einer CSV-Datei speichern möchten. Sie können gespeicherte CSV-Dateien mit dem Befehl „csv:read“ lesen, eine einzelne CSV-Datei mit „csv:delete“ löschen oder alle CSV-Dateien löschen, indem Sie „csv:clear“ eingeben.
Pragmatische Octosuite
Wenn Sie die gesamte GitHub-API zur Hand haben, eröffnen sich neue Möglichkeiten für Querverweise auf Datenpunkte oder das Erstellen spezifischer Abfragen. Octosuite kann erweitert werden, um einige davon zu verallgemeinern. Einige aktuelle Beispiele sind:
Im folgenden Beispiel verwenden wir das Flag „–method“, um anzugeben, mit welcher Methode Octosuite ausgeführt werden soll, und dann das Flag „–username“, um den zu suchenden Wert anzugeben. Es wird erwartet, dass jede Zeile von usernames.txt einen einzelnen Github-Benutzernamen hat.
Wir verwenden auch die Option „–colours“, die Octosuite mit aktivierten Farben ausführt, „–log-to-csv“ ermöglicht es uns, die Ausgabe in einer CSV-Datei zu protokollieren, was für die spätere Analyse der Ergebnisse nützlich ist.
`beim Lesen des Benutzernamens; do octosuite —method user_profile —username „$username“ —colours —log-to-csv done; < Benutzernamen.txt`
Andere Verwendungsmöglichkeiten von Octosuite
Octosuite kann auch verwendet werden, um Episoden wie 2022 zu untersuchen GitHub-Malware-Angriff die von einem einzelnen Benutzerkonto stammten und mehr als betroffen waren 35.000 Ablagen.
Eine Zeichenfolge, die in einer URL auftauchte, die in einer Reihe von Repositories vorhanden war, die durch diesen Angriff kompromittiert wurden, war „.ovz1“. Die Suche nach allen Instanzen von .ovz1 würde es einem Forscher daher ermöglichen, andere potenziell kompromittierte Repositories zu überprüfen. Octosuite ermöglicht diese Art der Suche auf folgende Weise:
Ein weiteres 2022 Vorfalldas sah Die ctx-Bibliothek von Python und ein Fork von PHPs phpass kompromittiert, können ebenfalls mit Octosuite untersucht werden.
Durch Eingabe der folgenden Befehle können Benutzer schnell nach betroffenen GitHub-Repositories suchen:
Diese Befehle funktionieren auf die gleiche Weise wie die ovz.1-Suchen und finden Repositories, die Pythons ctx-Bibliothek und phpass verwendet haben.
Es wird wahrscheinlich viel mehr Verwendungsmöglichkeiten für Octosuite in Open-Source-Untersuchungen geben, als hier beschrieben. Benutzer werden ermutigt, das Tool zu erkunden und seine vollen Möglichkeiten zu entdecken.
Bellingcat ist auch gespannt, wie Octosuite eingesetzt wird. Wenn Sie das Tool in Ihrer Forschung oder Untersuchung verwenden, teilen Sie uns dies bitte mit, indem Sie dieses Formular ausfüllen.
Dieser Artikel wurde im Rahmen des Tech Fellowship-Programms von Bellingcat erstellt, das darauf abzielt, Untersuchungswerkzeuge und Online-Ressourcen für Open-Source-Forscher zu erstellen. Bewerbungen für unsere nächste Auswahl an Stipendiaten werden in Kürze beginnen. Bitte behalten Sie unsere Website und unsere Social-Media-Kanäle im Auge, um weitere Informationen zu erhalten.
Bellingcat ist gemeinnützig und die Fähigkeit, unsere Arbeit auszuführen, hängt von der freundlichen Unterstützung einzelner Spender ab. Wenn Sie unsere Arbeit unterstützen möchten, können Sie dies hier tun. Sie können auch unseren Patreon-Kanal abonnieren hier. Abonnieren Sie unsere Newsletter und folgen Sie uns auf Twitter hier.