当前位置:首页 » 新媒体运营 » 正文

项目启动流程图,使用开源dependency track建立开源组件分析管理平台

3174 人参与  2023年02月27日 10:53  分类 : 新媒体运营  评论

如今的软件开发几乎都会用到各种开源组件,我统计过公司一个不算大的项目,使用的开源组件数量就有300个之多,开源组件的安全问题越来越受到重视。dependency track是OWASP组织个一个开源项目,它可以实时分析依赖组件并识别漏洞,降低团队软件组件供应链的使用风险。dependency track的原理是分析生成的SBOM软件物料清单,依据同步的漏洞数据库识别出组件漏洞信息,本文介绍如何安装和使用dependency track工具。

项目启动流程图,使用开源dependency track建立开源组件分析管理平台-百度竞价优化_微商推广_今日头条自媒体_新媒体运营_剑谦网络


安装

使用docker-compose安装时,需要确保Docker环境已搭建完成(参见windows系统下docker开发环境搭建)。如果你通过Docker Desktop for windows安装了Docker,就不用担心,因为默认会安装好docker-compose。

curl -LO https://dependencytrack.org/docker-compose.yml# 启动容器之前如果需要修改数据库配置,则参考下面的步骤修改docker-compose.yml文件docker-compose up -d

默认情况下使用的是内置数据库,但官方不建议在生产环境用此数据库,因此以PostgreSQL数据库为例(可参考使用 Docker 安装 PostgreSQL 数据库进行环境搭建),在docker-compose.yml文件中修改dtrack-apiserver数据库部分的配置,具体参数根据实际情况进行定制。

version: '3.7'###################################################### This Docker Compose file contains two services#    Dependency-Track API Server#    Dependency-Track FrontEnd#####################################################volumes:  dependency-track:services:  dtrack-apiserver:    image: dependencytrack/apiserver    environment:    # The Dependency-Track container can be configured using any of the    # available configuration properties defined in:    # https://docs.dependencytrack.org/getting-started/configuration/    # All properties are upper case with periods replaced by underscores.    #    # Database Properties    - ALPINE_DATABASE_MODE=external    - ALPINE_DATABASE_URL=jdbc:postgresql://192.168.19.103:5432/dtrack    - ALPINE_DATABASE_DRIVER=org.postgresql.Driver    - ALPINE_DATABASE_USERNAME=dtrack    - ALPINE_DATABASE_PASSWORD=changeme    - ALPINE_DATABASE_POOL_ENABLED=true    - ALPINE_DATABASE_POOL_MAX_SIZE=20    - ALPINE_DATABASE_POOL_MIN_IDLE=10    - ALPINE_DATABASE_POOL_IDLE_TIMEOUT=300000    - ALPINE_DATABASE_POOL_MAX_LIFETIME=600000    #    # Optional LDAP Properties    # - ALPINE_LDAP_ENABLED=true    # - ALPINE_LDAP_SERVER_URL=ldap://ldap.example.com:389    # - ALPINE_LDAP_BASEDN=dc=example,dc=com    # - ALPINE_LDAP_SECURITY_AUTH=simple    # - ALPINE_LDAP_BIND_USERNAME=    # - ALPINE_LDAP_BIND_PASSWORD=    # - ALPINE_LDAP_AUTH_USERNAME_FORMAT=%s@example.com    # - ALPINE_LDAP_ATTRIBUTE_NAME=userPrincipalName    # - ALPINE_LDAP_ATTRIBUTE_MAIL=mail    # - ALPINE_LDAP_GROUPS_FILTER=(&(objectClass=group)(objectCategory=Group))    # - ALPINE_LDAP_USER_GROUPS_FILTER=(member:1.2.840.113556.1.4.1941:={USER_DN})    # - ALPINE_LDAP_GROUPS_SEARCH_FILTER=(&(objectClass=group)(objectCategory=Group)(cn=*{SEARCH_TERM}*))    # - ALPINE_LDAP_USERS_SEARCH_FILTER=(&(objectClass=user)(objectCategory=Person)(cn=*{SEARCH_TERM}*))    # - ALPINE_LDAP_USER_PROVISIONING=false    # - ALPINE_LDAP_TEAM_SYNCHRONIZATION=false    #    # Optional OpenID Connect (OIDC) Properties    # - ALPINE_OIDC_ENABLED=true    # - ALPINE_OIDC_ISSUER=https://auth.example.com/auth/realms/example    # - ALPINE_OIDC_CLIENT_ID=    # - ALPINE_OIDC_USERNAME_CLAIM=preferred_username    # - ALPINE_OIDC_TEAMS_CLAIM=groups    # - ALPINE_OIDC_USER_PROVISIONING=true    # - ALPINE_OIDC_TEAM_SYNCHRONIZATION=true    #    # Optional HTTP Proxy Settings    # - ALPINE_HTTP_PROXY_ADDRESS=proxy.example.com    # - ALPINE_HTTP_PROXY_PORT=8888    # - ALPINE_HTTP_PROXY_USERNAME=    # - ALPINE_HTTP_PROXY_PASSWORD=    # - ALPINE_NO_PROXY=    #    # Optional HTTP Outbound Connection Timeout Settings. All values are in seconds.    # - ALPINE_HTTP_TIMEOUT_CONNECTION=30    # - ALPINE_HTTP_TIMEOUT_SOCKET=30    # - ALPINE_HTTP_TIMEOUT_POOL=60    #    # Optional Cross-Origin Resource Sharing (CORS) Headers    # - ALPINE_CORS_ENABLED=true    # - ALPINE_CORS_ALLOW_ORIGIN=*    # - ALPINE_CORS_ALLOW_METHODS=GET, POST, PUT, DELETE, OPTIONS    # - ALPINE_CORS_ALLOW_HEADERS=Origin, Content-Type, Authorization, X-Requested-With, Content-Length, Accept, Origin, X-Api-Key, X-Total-Count, *    # - ALPINE_CORS_EXPOSE_HEADERS=Origin, Content-Type, Authorization, X-Requested-With, Content-Length, Accept, Origin, X-Api-Key, X-Total-Count    # - ALPINE_CORS_ALLOW_CREDENTIALS=true    # - ALPINE_CORS_MAX_AGE=3600    #    # Optional metrics properties    # - ALPINE_METRICS_ENABLED=true    # - ALPINE_METRICS_AUTH_USERNAME=    # - ALPINE_METRICS_AUTH_PASSWORD=    #    # Optional environmental variables to enable default notification publisher templates override and set the base directory to search for templates    # - DEFAULT_TEMPLATES_OVERRIDE_ENABLED=false    # - DEFAULT_TEMPLATES_OVERRIDE_BASE_DIRECTORY=/data    #    # Optional configuration for the Snyk analyzer    # - SNYK_THREAD_BATCH_SIZE=10    #    # Optional environmental variables to provide more JVM arguments to the API Server JVM, i.e. "-XX:ActiveProcessorCount=8"    # - EXTRA_JAVA_OPTIONS=    deploy:      resources:        limits:          memory: 12288m        reservations:          memory: 8192m      restart_policy:        condition: on-failure    ports:      - '8081:8080'    volumes:      - 'dependency-track:/data'    restart: unless-stopped  dtrack-frontend:    image: dependencytrack/frontend    depends_on:      - dtrack-apiserver    environment:      # The base URL of the API server.      # NOTE:      #   * This URL must be reachable by the browsers of your users.      #   * The frontend container itself does NOT communicate with the API server directly, it just serves static files.      #   * When deploying to dedicated servers, please use the external IP or domain of the API server.      - API_BASE_URL=http://localhost:8081      # - "OIDC_ISSUER="      # - "OIDC_CLIENT_ID="      # - "OIDC_SCOPE="      # - "OIDC_FLOW="      # - "OIDC_LOGIN_BUTTON_TEXT="      # volumes:      # - "/host/path/to/config.json:/app/static/config.json"    ports:      - "8080:8080"    restart: unless-stopped

初次启动

docker-compose up -d命令执行成功后,访问8080端口使用admin/admin默认账户登录,根据提示修改密码,注意点击Change password按钮之后响应稍慢,请耐心等待一会,之后跳转到登录页面,输入新密码之后就可以正常登录了

项目启动流程图,使用开源dependency track建立开源组件分析管理平台-百度竞价优化_微商推广_今日头条自媒体_新媒体运营_剑谦网络


创建项目及团队

首先创建一个项目,Classifier支持应用、容器、操作系统、框架等多种类型,示例选择Application。

项目启动流程图,使用开源dependency track建立开源组件分析管理平台-百度竞价优化_微商推广_今日头条自媒体_新媒体运营_剑谦网络


Access Management选项创建团队,dependency track的定位是为组织的安全团队使用,为团队增加BOM_UPLOAD、POLICY_VIOLATION_ANALYSIS、PROJECT_CREATION_UPLOAD、VIEW_PORTFOLIO、VIEW_VULNERABILITY、VULNERABILITY_ANALYSIS权限,复制API Keys作为后续认证令牌。

项目启动流程图,使用开源dependency track建立开源组件分析管理平台-百度竞价优化_微商推广_今日头条自媒体_新媒体运营_剑谦网络


生成SBOM

为了为Dependency Track提供SBOM以进行漏洞分析,使用jenkins作为CI/CD的话建议使用Dependency-Track插件。一旦插件安装成功且生效后,就可以在系统配置中看到Dependency-Track的配置项,输入后端URL地址和上面团队的API Keys,如果连接测试成功,就会显示出如下成功信息。

项目启动流程图,使用开源dependency track建立开源组件分析管理平台-百度竞价优化_微商推广_今日头条自媒体_新媒体运营_剑谦网络


创建jenkins项目,构建步骤执行打包和生成SBOM执行

mvn -Pprod clean -DskipTests=true install
mvn org.cyclonedx:cyclonedx-maven-plugin:makeBom
项目启动流程图,使用开源dependency track建立开源组件分析管理平台-百度竞价优化_微商推广_今日头条自媒体_新媒体运营_剑谦网络


构建后操作选择”Publish BOM to Dependency-Track“,配置相关项

  • Dependency-Track project可以直接下拉进行选择

  • Artifact为生成bom.xml文件路径

  • Enable synchronous publishing mode:
    如果不勾选,项目构建完成后,直接访问dependency track前端查看分析结果;
    如果勾选,项目构建完成后,会等待dependency track分析完成后,调用api读取分析结果,并可以在jenkins构建信息中查看。同时,可以设置各级别等级漏洞的门限值,以此判定构建是否成功。

项目启动流程图,使用开源dependency track建立开源组件分析管理平台-百度竞价优化_微商推广_今日头条自媒体_新媒体运营_剑谦网络


项目启动流程图,使用开源dependency track建立开源组件分析管理平台-百度竞价优化_微商推广_今日头条自媒体_新媒体运营_剑谦网络


勾选Enable synchronous publishing mode,可以跟踪每次构建的漏洞数量趋势

项目启动流程图,使用开源dependency track建立开源组件分析管理平台-百度竞价优化_微商推广_今日头条自媒体_新媒体运营_剑谦网络


构建结果漏洞分析结果概要

项目启动流程图,使用开源dependency track建立开源组件分析管理平台-百度竞价优化_微商推广_今日头条自媒体_新媒体运营_剑谦网络


构建结果漏洞详情

项目启动流程图,使用开源dependency track建立开源组件分析管理平台-百度竞价优化_微商推广_今日头条自媒体_新媒体运营_剑谦网络

本文链接:http://www.woshiqian.com/post/194265.html

<< 上一篇 下一篇 >>

  • 评论(0)
  • 赞助本站

       

◎欢迎参与讨论,请在这里发表您的看法、交流您的观点。