-
Notifications
You must be signed in to change notification settings - Fork 2
Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
Merge pull request #44 from metaschema-framework/hotfix/latest
document security improvement in oscal
- Loading branch information
Showing
12 changed files
with
2,078 additions
and
82 deletions.
There are no files selected for viewing
Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.
Oops, something went wrong.
61 changes: 61 additions & 0 deletions
61
.oscal/attachments/diagrams/authorization-boundary.mermaid
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,61 @@ | ||
flowchart TD | ||
subgraph External["External Boundary"] | ||
Client[Web Client] | ||
end | ||
|
||
subgraph AuthBoundary["Authorization Boundary"] | ||
direction TB | ||
|
||
subgraph ServerControls["Server Security Controls"] | ||
LocalHost["Localhost Only\nPort 8888"] | ||
Router["Router/API Gateway\nInput Validation"] | ||
end | ||
|
||
subgraph FileSystemControls["Filesystem Security Controls"] | ||
DirVal["Directory Validation"] | ||
PathCheck["Path Traversal Check"] | ||
UrlProcess["URL Processing\nHTTPS/File Only"] | ||
PermCheck["Permission Checks"] | ||
end | ||
|
||
subgraph TrustedZone["Trusted Zone"] | ||
OscalDir["~/.oscal Directory\nOwner RWX Only"] | ||
AllowedDirs["Allowed Directories\nvia OSCAL_SERVER_PATH"] | ||
TempFiles["Temporary Files\nRestricted Access"] | ||
end | ||
|
||
subgraph Validation["Security Validation"] | ||
ValidateDir["validateDirectory()"] | ||
RestrictPerms["restrictDirectoryPermissions()"] | ||
SymlinkCheck["Symlink Validation"] | ||
end | ||
end | ||
|
||
Client -->|HTTP Requests| LocalHost | ||
LocalHost -->|Validated Requests| Router | ||
|
||
Router -->|File Operations| FileSystemControls | ||
|
||
FileSystemControls -->|Access Check| DirVal | ||
FileSystemControls -->|Traversal Prevention| PathCheck | ||
FileSystemControls -->|URL Validation| UrlProcess | ||
FileSystemControls -->|Permission Validation| PermCheck | ||
|
||
DirVal -->|Validated Access| TrustedZone | ||
PathCheck -->|Safe Paths| TrustedZone | ||
UrlProcess -->|Safe URLs| TrustedZone | ||
PermCheck -->|Verified Permissions| TrustedZone | ||
|
||
TrustedZone <-->|Security Checks| Validation | ||
|
||
classDef external fill:#ddd,stroke:#999,stroke-width:1px; | ||
classDef boundary fill:#f9f,stroke:#333,stroke-width:2px; | ||
classDef controls fill:#aef,stroke:#333,stroke-width:1px; | ||
classDef trusted fill:#bfb,stroke:#333,stroke-width:1px; | ||
classDef validation fill:#feb,stroke:#333,stroke-width:1px; | ||
|
||
class External external; | ||
class AuthBoundary boundary; | ||
class ServerControls,FileSystemControls controls; | ||
class TrustedZone trusted; | ||
class Validation validation; |
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,40 @@ | ||
graph TD | ||
Client[Web Client] | ||
Router[Router/API Gateway] | ||
VertxServer[Vertx HTTP Server\nPort 8888\nLocalhost Only] | ||
FileSystem[Local File System] | ||
OscalCLI[OSCAL CLI] | ||
HomeDir[User Home Directory] | ||
TempFiles[Temporary Files] | ||
|
||
subgraph "OSCAL Server" | ||
Router --> |Route Requests| Operations | ||
|
||
subgraph "Operations" | ||
Validate[Validate] | ||
Convert[Convert] | ||
Resolve[Resolve Profile] | ||
Query[Query/MetaPath] | ||
Health[Health Check] | ||
end | ||
|
||
subgraph "Storage" | ||
FileSystem --> |Read/Write| HomeDir | ||
HomeDir --> |Contains| OscalDir[~/.oscal Directory] | ||
FileSystem --> |Create/Delete| TempFiles | ||
end | ||
end | ||
|
||
Client -->|HTTP Requests\nGET/POST| VertxServer | ||
VertxServer --> |Forward| Router | ||
|
||
Operations --> |Execute| OscalCLI | ||
OscalCLI --> |Read Input| FileSystem | ||
OscalCLI --> |Write Output| FileSystem | ||
|
||
classDef secure fill:#f9f,stroke:#333,stroke-width:2px; | ||
classDef restricted fill:#ff9,stroke:#333,stroke-width:2px; | ||
|
||
class VertxServer restricted; | ||
class OscalDir secure; | ||
class TempFiles restricted; |
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Oops, something went wrong.