Jenkins 統合による Tenable Web App Scanning CI/CD スキャン

Jenkins のアプリケーションに対して、継続的インテグレーションおよび継続的デリバリ/継続的デプロイメント CI/CDTenable Web App Scanning Docker イメージをデプロイすることができます。この統合の詳細については、Jenkins のドキュメントを参照してください。

始める前に

  • Jenkins ビルドエージェントが利用できる統合環境にアプリをデプロイできるようにするか、テストのためにビルドエージェントで直接実行できるようにします。

  • CI/CD アプリケーションスキャンの概要で概要情報を確認してください。

Jenkins のパイプラインワークフローファイルの例

コピー

pipeline {
  agent any
  stages {
    stage('build-run-scan') {
      environment {
        ACCESS_KEY = credentials('ACCESS_KEY')
        SECRET_KEY = credentials('SECRET_KEY')
      }
      steps {
        sh '''
        docker pull swaggerapi/petstore
        docker run -d -e SWAGGER_URL=http://petstore:8080 -e SWAGGER_BASE_PATH=/v2 --name petstore swaggerapi/petstore
        docker pull tenable/was-scanner:latest
        docker run -v $(pwd):/scanner -t -e WAS_MODE=cicd -e ACCESS_KEY=${ACCESS_KEY} -e SECRET_KEY=${SECRET_KEY} --link petstore tenable/was-scanner:latest
        '''
      }
    }
  }
  post {
    always {
      sh '''
        docker rm $(docker stop $(docker ps -a -q --filter ancestor="tenable/was-scanner:latest" --format="{{.ID}}")) || true
        docker rm $(docker stop $(docker ps -a -q --filter ancestor="swaggerapi/petstore" --format="{{.ID}}")) || true
        docker system prune -f --volumes
        '''
        archiveArtifacts 'scanner.log'
        publishHTML([allowMissing: false, alwaysLinkToLastBuild: false, keepAll: true, reportDir: '', reportFiles: 'tenable_was_scan.html', reportName: 'WAS Report'])
        cleanWs()
    }
  }
}

CI/CD ツールの統合の例