Ga naar de inhoud

Architectuur ​

Ogma is gebouwd als een lokale desktopapplicatie met een Rust-backend, Vue-frontend, Electron-shell, lokale projectopslag, een pluginruntime en optionele MCP-integratie.

Hoofdcomponenten ​

ComponentLocatieVerantwoordelijkheid
Rust-proxy-/API-backendcrates/proxyMITM-proxy, REST-API, opslag, scanners, replay, automatisering, plugins, MCP, OAST, eindpunten voor browserbesturing.
Vue-frontendfrontend/srcWerkruimte-interface, stores, routes, editors, scanners, plugin-iframes, AI-werkruimte, hulpprogramma's.
Electron-desktopshelldesktopVerpakte desktopapp, integratie van browservensters, instellingenbridge, levenscyclus van de app.
DocumentatiedocsVitePress-documentatiesite.
Gegevensmapogma-data of de appgegevensmap van het platformSQLite-database, CA-materiaal, plugins, exports, back-ups, bestanden.

Backend ​

De backend biedt een REST-API en een proxylistener. De belangrijkste backendmodules zijn:

  • proxy_server.rs: HTTP-interceptie en doorsturen.
  • intercept.rs en intercept_rules.rs: interceptiewachtrij en selectie op basis van regels.
  • store.rs en store_actor.rs: toegang tot de projectdatabase en een asynchrone store-handle.
  • api.rs: API-routering en handlers.
  • replay.rs, automate.rs en workflows.rs: herhaalbare uitvoering van verzoeken.
  • passive_scanner.rs en active_scanner.rs: scannerengines.
  • plugins.rs en plugin_runtime.rs: pluginmetadata, sandboxruntime, machtigingen en gebeurtenissen.
  • mcp.rs: MCP-resources en -tools.
  • ca.rs, tls_cert.rs, client_cert.rs: ondersteuning voor certificaten en TLS.
  • ws_history.rs, ws_replay.rs en sse.rs: ondersteuning voor streamingverkeer.
  • oast.rs: diensten voor out-of-bandcallbacks.

Frontend ​

De frontend is een Vue-applicatie die de meeste werkruimteweergaven pas laadt wanneer de bijbehorende route wordt geopend.

Belangrijke onderdelen:

  • router/index.ts: routes voor de werkruimte en instellingen.
  • components/NavSidebar.vue: hoofdnavigatie van het product.
  • stores/*: Pinia-stores voor HTTP-geschiedenis, Opnieuw versturen, Automatiseren, bevindingen, workflows, plugins, scope, shell, AI en andere toestand.
  • api/client.ts en api/types.ts: getypeerde API-clientinterface.
  • views/*: functiepagina's van de werkruimte.
  • components/WorkspacePanel.vue: werkruimtepaneel voor AI en reverse shells.
  • views/PluginsView.vue en views/PluginPageView.vue: installatie en beheer van plugins en hosting van frontend-iframes.

Desktopshell ​

De Electron-shell biedt de verpakte desktopervaring en native bridgefuncties:

  • Het appvenster starten en besturen.
  • Desktopinstellingen bewaren in de lokale opslag van de frontend.
  • Ogma-browservensters en ingesloten browserweergaven openen.
  • Assets en uitvoerbare bestanden verpakken voor desktopdistributie.

Opslagmodel ​

Ogma bewaart onderzoeksgegevens lokaal. De backendmigraties definiëren tabellen per project voor:

  • HTTP-geschiedenis en bodies.
  • WebSocket- en SSE-verkeer.
  • Sessies en pogingen in Opnieuw versturen.
  • Sessies, uitvoeringen en resultaten in Automatiseren.
  • Bevindingen en koppelingen naar bewijsmateriaal.
  • Workflows en workflowuitvoeringen.
  • Scopevoorinstellingen.
  • Plugins en pluginmachtigingen.
  • Bestanden, exports, back-ups en instellingen.

Pluginruntime ​

Plugins kunnen backendcomponenten, frontendcomponenten of beide bevatten.

Backendplugins worden in een JavaScript-sandbox uitgevoerd en ontvangen een sdk-object. Frontendplugins worden in afgeschermde iframes uitgevoerd en communiceren via een bridge die Ogma beheert.

Belangrijke grenzen:

  • Frontendplugins hebben geen toegang tot de DOM van de bovenliggende pagina.
  • Bridgeopdrachten worden aan de serverzijde gevalideerd.
  • Beschermde backendacties vereisen machtigingen die zijn gedeclareerd en verleend.
  • Geïnstalleerde pakketten worden gekopieerd naar de pluginmap die Ogma beheert, zodat de runtime stabiel blijft werken.

Zie Pluginsysteem.

MCP-integratie ​

De MCP-server stelt Ogma-projectcontext beschikbaar aan externe assistenten. Standaard start hij in de alleen-lezenmodus. Schrijven, exporteren, verzoeken versturen, workflows uitvoeren en interceptie besturen vereisen expliciete machtigingen.

Zie MCP instellen.

Ontwerpprincipes ​

  • Standaard primair lokaal werken.
  • Bevindingen met koppelingen naar bewijsmateriaal.
  • Scope bepalen vóór automatisering.
  • Expliciete machtigingscontroles voor AI, plugins, het versturen van verzoeken en exports.
  • Snelle navigatie voor terugkerende workflows van testers.
  • Compatibiliteit met gevestigde proxyworkflows, terwijl Ogma uitbreidbaar blijft.

Propriëtaire software. Alle rechten voorbehouden.