OpenRung
무료·프라이버시 우선 릴레이 네트워크로 개방형 인터넷 접근을 지원 오픈소스·비영리 운영
Sophos Fusion XDR·NG‑SIEM용 파서·플레이북·커넥터와 브라우저에서 파서를 작성·테스트하는 Parser Studio를 제공합니다
Parsers, playbooks and connectors for Sophos Fusion XDR and Sophos NG-SIEM that people share, and Parser Studio to write and test parsers in the browser. Unofficial project, not from Sophos.
보안Python · JavaScriptGitHub @Aaronjacobs000온라인운영자 미확인
써 보셨어요? 한 번만 눌러 주세요. 로그인은 필요 없어요.
Unofficial Sophos Fusion XDR and SIEM Library: parsers, playbooks and connectors for Sophos Fusion that people share, and Parser Studio to write and test parsers in the browser. Not from Sophos.
README 전체를 불러오는 중입니다.
README 전문 보기 ↗Unofficial project, not from Sophos. This is a personal project by an individual. It is not an official Sophos product and it is not built, endorsed, supported, or warranted by Sophos. Raise problems as issues on this repository, not with Sophos support. Report a security problem privately, as SECURITY.md explains.
A library of parsers, playbooks and connectors for Sophos Fusion that people share, with Parser Studio, a page that helps you write custom parsers and test them in your browser. It has three sections:
Open the library at https://aaronjacobs000.github.io/sophos-xdr-siem-library/ and Parser Studio at https://aaronjacobs000.github.io/sophos-xdr-siem-library/#/build/sample
This repo was called sophos-ngsiem-parser-studio until October 2026. Links to the old site redirect here, and the old repo's page links here.
event_metadata. Plain-text logs get a capture pattern with named groups that you can edit.The lint checks syntax and directives, documented functions and their arguments, every $ field against the destination schema, sub-fields against their types, enum values, regex patterns that Go's RE2 engine rejects, DATETIME layouts, and confirm strings that overlap a parser in the library. Each schema page on docs.sophos.com is linked from the map step.
Mapping is rules only. There is no AI service and no backend.
Everything runs in the browser tab. Your samples are never uploaded and never written to browser storage. The page counts visits with GoatCounter, an open-source counter that uses no cookies. It sends the route you open, such as /parsers/vendor/product, and on the first page the site that linked you there, and nothing you type or paste. GoatCounter works out the country from the IP address and doesn't keep the address or browser details. The page's content security policy only lets it fetch from the site itself, to read the library, and send those counts to GoatCounter. The site never connects to a Sophos Fusion tenant.
There is no public Sophos parser engine or parser API, so the emulator follows the custom parser docs: statements, capture patterns, JSONPath, every documented function, parent and child routing, SANITIZE_ALL and TRIM_ALL. Where the docs are silent, it does what the Sophos engine did in a lab tenant. For example, enum fields take names in any case or numbers, sub-fields such as fileHash$.sha1$ work, the root parser sets sensor_type, takes sensor_id and the event time from a plain BSD syslog header, and Run Test rejects a parser that reads a variable before a statement sets it, even in an IF branch that isn't taken. The lint marks the few behaviors that haven't been checked as inferred. Sophos Fusion won't save a parser with *= anywhere in its code, a comment or a regex included, though Run Test accepts it, so the lint flags it as an error. It saves a !PARENT line, which the docs use to extend a global parser, only with Set Global Parent in Parser Script turned on, so the lint warns about one.
The emulator handles the syslog header the way Run Test does: it takes a plain BSD header such as Oct 14 01:02:03 host off message. A line that starts with a <PRI> such as <134>, an RFC 5424 header or an ISO time keeps its header: message is the whole line, there is no sensor_id, and the event time is the ingest time. eventTimeUsec$ already holds it, in microseconds and to the whole second, when the parser starts. Whether ingest takes the <PRI> off first hasn't been checked.
여기까지가 README 앞부분입니다. 나머지는 원문에서 읽을 수 있습니다. README 전문 보기 ↗