114 lines
2.3 KiB
Text
114 lines
2.3 KiB
Text
package web
|
|
|
|
import "git.jmbit.de/jmb/scanfile/server/web/templui/components/skeleton"
|
|
import "fmt"
|
|
import "git.jmbit.de/jmb/scanfile/server/internal/database"
|
|
import "git.jmbit.de/jmb/scanfile/server/web/templui/components/table"
|
|
|
|
// Loads Capa data if required
|
|
templ FileViewCapaLoader(fileid string) {
|
|
<div class="w-full" hx-get={fmt.Sprintf("/files/%s/capa", fileid)} hx-trigger="load">
|
|
@skeleton.Skeleton(skeleton.Props{Class: "h-12 w-12 rounded-full"})
|
|
<p> loading <a href={templ.URL(fmt.Sprintf("/files/%s/capa", fileid))}>CAPA Info</a></p>
|
|
</div>
|
|
}
|
|
|
|
templ FileViewCapa(data database.CapaData) {
|
|
<div class="w-full">
|
|
<h2 class="text-3xl">CAPAbility Analysis</h2>
|
|
<h3 class="text-2xl">Capabilities</h3>
|
|
@table.Table() {
|
|
@table.Header() {
|
|
@table.Head() {
|
|
Capability
|
|
}
|
|
@table.Head() {
|
|
Namespace
|
|
}
|
|
}
|
|
@table.Body() {
|
|
for a, b := range data.Capabilities {
|
|
@table.Row() {
|
|
@table.Cell() {
|
|
{a}
|
|
}
|
|
@table.Cell() {
|
|
{b}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
<h3 class="text-2xl">MITRE ATTA&CK Tactics</h3>
|
|
@table.Table() {
|
|
@table.Header() {
|
|
@table.Head() {
|
|
Tactic
|
|
}
|
|
@table.Head() {
|
|
Technique
|
|
}
|
|
}
|
|
@table.Body() {
|
|
for a, b := range data.Tactics {
|
|
@table.Row() {
|
|
@table.Cell() {
|
|
{a}
|
|
}
|
|
@table.Cell() {
|
|
{b}
|
|
}
|
|
}
|
|
|
|
}
|
|
}
|
|
}
|
|
<h3 class="text-2xl">MBC Objectives</h3>
|
|
@table.Table() {
|
|
@table.Header() {
|
|
@table.Head() {
|
|
Objective
|
|
}
|
|
@table.Head() {
|
|
Value
|
|
}
|
|
}
|
|
@table.Body() {
|
|
for a, b := range data.Objectives {
|
|
@table.Row() {
|
|
@table.Cell() {
|
|
{a}
|
|
}
|
|
@table.Cell() {
|
|
{b}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
<h3 class="text-2xl">Maec Detections</h3>
|
|
@table.Table() {
|
|
@table.Header() {
|
|
@table.Head() {
|
|
Category
|
|
}
|
|
@table.Head() {
|
|
Value
|
|
}
|
|
}
|
|
@table.Body() {
|
|
for a, b := range data.Maec {
|
|
@table.Row() {
|
|
@table.Cell() {
|
|
{a}
|
|
}
|
|
@table.Cell() {
|
|
{b}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
</div>
|
|
|
|
}
|