Skip to content

vela-ssoc/vela-sbom

Repository files navigation

sbom

vela sbom 供应链软件分析 支持 windows 和 linux
vela manager 会 自动扫描和查询相关数据接口,分析组件漏洞

内置方法

扫描文件

sbom = vela.sbom.file(path , bool)
path:扫描文件名称 bool:是否上报供应链sbom信息 sbom: 软件物料清单

    local sbom = vela.sbom.file("snapshot.jar" , true)
    print(sbom.cdx)
    print(sbom.sdx)
    print(sbom.catalog)

客户端

client = vela.sbom.client{name,remote,report,cache,timeout,bucket}
name:名称   remote:是否查寻远程信息   report:是否上报   cache:是否缓存   timeout:扫描超时时间   bucket: 存储路径

内置方法: sync_ 的方法是采用启用新的线程不会阻塞当前业务的模式扫描,push_ 的方法采用的的是推迟扫描的模式 防止服务占用业务高峰期cpu和内存

    local cli = vela.sbom.client{
        name = "client",
        timeout = 1000, -- 读取文件超时 millisecond
        report = true,  -- 上报结果
        cache = false,  -- 是否缓存
        remote = true,  -- 是否查询远程
    }
    cli.limit(1 , 10000) -- millisecond
    
    cli.filter("size > 100" ,
            "ext !eq json,txt" ,
            "mtime > 1000000" , 
            "name !re *windows*")
    cli.start()


    cli.pipe(function(catalog)
        print(catalog)
    end)
    cli.start()

    cli.by_pid(1)
    cli.by_pid_track("type = file" , 122 , 333)
    cli.by_process(p) --process object
    cli.by_process_track("type = file" , p1 , p2)     -- p1,p2 process object
    cli.sync_by_track("type = file" , "java" , "aaa") -- 异步扫描句柄信息

软件物料清单

sbom 软件物料清单 存储分析 文件的软件的物料清单

内置方法:

  • sdx  spdx 信息 json
  • cdx  cyclondx 信息 json
  • catalog 物料信息
  • reset 清空数据重置内存
    local sbom = vela.sbom.file("aaa.jar" , true)
    print(sbom.cdx)
    print(sbom.sdx)
    print(sbom.catalog)
    sbom.catalog.pipe(function(package)
        --package 
    end)
    sbom.reset()

物料信息

catalog 物料信息 相关数据信息

内置字段:

    local cli = vela.sbom.client{}
    cli.pipe(function(catalog) 
        print(catalog.filename)
        print(catalog.checksum)
        print(catalog.algorithm)
        print(catalog.mtime)
        print(catalog.size)
        -- 遍历 
        catalog.pipe(function(package)
            print(package.purl)
            print(package.version)
            print(package.name)
            print(package.algorithm)
            print(package.checksum)
            print(package.licenses)
            print(package.language)
        end)
    end)

package

封装单个组件信息 catalog 中遍历的包信息

内置字段:

  • purl  package url 唯一标识
  • version
  • name
  • algorithm
  • checksum
  • licenses
  • language
    print(p.purl) 
    print(p.name)