Octosuite: Ein neues Tool zur Durchführung von Open-Source-Untersuchungen auf GitHub

Die Kolosseen von Elden Ring oeffnen morgen endlich im kostenlosen

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.

Bild: Hilfemenü der Octosuite-Befehlszeilenschnittstelle

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:

  • Benutzer: Profilinformationen, Gists (kleine Codeschnipsel), Kontoaktivität (über Ereignisse wie Abonnieren, Erstellen, Folgen), Repositories, Organisationen, Abonnements, Follower und Follower
  • Organisationen: Profilinformationen, Kontoaktivität, Repositories und öffentliche Mitglieder
  • Aufbewahrungsorte: Mitwirkende, Programmiersprachen, Stargazer (entspricht Likes auf der Plattform), Forks (Details, wer eine öffentliche Kopie des Repositorys erstellt hat) und Releases
  • 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`

    Bild: Aufforderung von Octosuite, Farben für eine Sitzung zu aktivieren.

    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.

    Bild: Hauptbildschirm von Octosuite mit aktivierter Farboption.

    Von dort aus können Sie mit dem Befehl „help“ beginnen, um eine Liste der verfügbaren Befehle anzuzeigen.

    Bild: Das Hilfemenü von Octosuite.

    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.

    Bild: Benutzer-Unterbefehle von Octosuite.

    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.

    Bild: Octosuite zeigt die Profilinformationen eines Benutzers (mit einigen geschwärzten Details).

    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:

  • Überprüfen Sie, ob Benutzer A Benutzer B folgt: `user:follows`
  • Überprüfen Sie, ob ein Benutzer A zu einer Organisation gehört: `org:member`
  • Holen Sie sich eine Liste von Dateien in einem angegebenen Verzeichnis D eines Repositorys R: `repo:path_contents`
  • Iterieren Sie eine Liste von Benutzernamen und rufen Sie user_profile auf
  • 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`

    Bild: Das Ergebnis einer Octosuite-Benutzersuche (mit einigen geschwärzten Details)

    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:

  • Geben Sie mit dem Befehl „search:commits“ (oder bei Ausführung mit Befehlszeilenargumenten die search_commits-Methode) „.ovz1“ als Abfragezeichenfolge ein.
  • Mit der –method ‚commits_search –query .ovz1 –colors –log-to-csv‘ Abfrage.
  • 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:

  • „search:commits“ und geben Sie „phpass“ „ctx“ als Abfragezeichenfolge ein.
  • „octosuite –method commits_search –query „phpass“ „ctx“ –colors –log-to-csv“
  • 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.



    bllc-allgemeines