
Eine macOS-App zum Scannen von Xcode-Projektdateien auf mögliche Sicherheitsprobleme.
XcInspector ist eine macOS-App und ein Kommandozeilenwerkzeug, um Xcode-Projektdateien auf mögliche Sicherheitsprobleme zu scannen.
Es gibt einige Wege, wie Xcode-Projekte genutzt werden können, um Sicherheit und Privatsphäre zu kompromittieren.
Dieses Werkzeug ist ein Versuch (keine Garantie), einige bekannte Risiken bei Xcode-Projekten zu erkennen.
Hinweis: XcInspector scannt keine Quelldateien (Swift, Objective-C, etc.) auf irgendeine Art von Sicherheitsproblemen in deren Code. Das ist ein separates Anliegen außerhalb des Umfangs dieses Projekts.
XcInspector ist sowohl als App als auch als Kommandozeilenwerkzeug für macOS verfügbar. Beide befinden sich im „Alpha"-Zustand – das bedeutet, sie sind nutzbar, aber noch etwas unhandlich und unvollständig.
Es gibt noch keine herunterladbaren Pakete, daher müssen Sie Xcode verwenden, um die Werkzeuge aus dem Quellcode in diesem Projekt zu kompilieren und zu bauen.
Das Projekt und die Quellen befinden sich im Verzeichnis .
XcInspectorWir verwenden hier ein Unterverzeichnis, weil unsere Beispieldateien (Verzeichnis
TestSamples), die von den Unit- und UI-Tests verwendet werden, Xcode-Projektdateien enthalten – einschließlich einiger absichtlich fehlerhafter Dateien. Diese im Projektverzeichnis zu haben, würde Xcode verwirren (wie wir auf die harte Tour gelernt haben).
~/Library/Developer/Xcode/DerivedDataXcodeProjectSecurity beginnt,
gefolgt von einer Reihe scheinbar zufälliger Zeichen.Build/Products/DebugXcInspectorApp.app finden~/Library/Developer/Xcode/DerivedDataXcodeProjectSecurity beginnt,
gefolgt von einer Reihe scheinbar zufälliger Zeichen.Build/Products/Releasexcinspector-Datei finden./usr/local/bin).Um ein Xcode-Projekt zu scannen, wählen Sie den Befehl „Öffnen…" (⌘-O) aus dem Menü „Ablage"
in der App. Wählen Sie dann ein Verzeichnis mit einer Xcode-Projektdatei
(.xcodeproj) darin aus und klicken Sie auf die Schaltfläche „Öffnen".
Ein Berichtsfenster erscheint und teilt Ihnen mit, wie viele mögliche Probleme gefunden wurden, falls überhaupt welche. Das Berichtsfenster listet auch jedes identifizierte Problem auf, einschließlich der spezifischen Datei und (falls zutreffend) der Zeilennummer, an der das Problem aufgetreten ist.
Stellen Sie sicher, dass sich das Kommandozeilenwerkzeug an einem Ort befindet, an dem Sie darauf zugreifen können
(wie z. B. /usr/local/bin).
Um Anweisungen zu den verfügbaren Optionen bei der Ausführung des Werkzeugs zu erhalten,
verwenden Sie den Befehl: xcinspector --help
Im Allgemeinen können Sie einen Bericht für ein bestimmtes Xcode-Projekt erhalten, indem Sie den Pfad
zum Projektverzeichnis oder die Projektdatei (.xcodeproj) selbst übergeben.
Z. B.: xcinspector /User/me/Projects/MyApp
Der resultierende Bericht wird im Terminal (stdout) ausgegeben und liegt im
Xcode-Warnungsformat vor (filepath:linenumber:(error|warning|note):message).
Wenn keine Probleme gefunden wurden, ist der Bericht leer (es wird nur eine leere Zeile
ausgegeben).
Sie können optional eine Zusammenfassung am Ende des Berichts einfügen (die
auch dann angezeigt wird, wenn keine Probleme gefunden wurden).
xcinspector --stats path/to/project oder xcinspector -s path/to/project
Sie können auch optional erweiterte Details für gefundene Probleme einfügen.
(Derzeit wird damit nur der Text des Skripts angezeigt, wenn ein eingebettetes Skript
gefunden wird.)
xcinspector --details path/to/project oder xcinspector -d path/to/project
Obwohl dieses Werkzeug helfen kann, einige mögliche Sicherheitsrisiken zu identifizieren, kann es IN KEINSTER WEISE die Sicherheit eines bestimmten Xcode-Projekts oder eines daraus abgeleiteten Produkts GARANTIEREN.
Durch die Nutzung dieser Software erklären Sie sich damit einverstanden, dass Sie allein dafür verantwortlich sind, die Sicherheit aller Xcode-Projekte zu gewährleisten, die Sie verwenden oder weitergeben, und entbinden alle Autoren von, Mitwirkenden an oder Distributoren von XcInspector von jeglicher Verantwortung oder Haftung.
Copyright ©2023-2024 Grant Neufeld, et.al.
Der Quellcode dieses Projekts wird unter den Bedingungen der Mozilla Public License, v. 2.0 zur Verfügung gestellt.
Die Lizenz-Datei ist im Lieferumfang der Projektdateien enthalten.