LoginSignup
0
0

More than 1 year has passed since last update.

ArcherySecにSAST、SCA、DASTの結果を読み込ませたら

Posted at

はじめに

最近セキュリティ系のツールに興味があり、脆弱性管理ツールの一つにArcherySecというオープンソースのツールがあったので試してみました。
この領域だとOWASP DefectDojoがオープンソースでは有名ですが、見た目がこっちの方が好みだったので、こっちを最初に試してみました。

ArcherySecとは

DevSecOpsでSAST / SCA / DASTなどさまざまなスキャナーを使ったときに検知結果を集約して管理できるオープンソースのツール。
また、DASTなどいくつかのツールに対してはArcherySecからスキャンを実行することができます。
公式ページはこちら

やりたいこと

  • ArcherySecをローカル環境で起動
  • SASTやSCAツールの結果をCLIでArcherySecに登録
  • どう表示されるのか確認

環境

% sw_vers      
ProductName:	macOS
ProductVersion:	12.6.2
BuildVersion:	21G320

% docker --version
Docker version 20.10.12, build e91ed57

やったこと

ArcherySecの起動

dockerでさくっと起動できます。

$ docker pull archerysec/archerysec
$ docker run \
    -e NAME=user \
    -e EMAIL=user@user.com \
    -e PASSWORD=admin@123A  \
    -it -p 8000:8000 archerysec/archerysec:latest

localhost:8000にブラウザでアクセスして、ログインすると、こんなページが表示される。

スクリーンショット 2023-02-24 22.57.40.png

SASTやSCAツールの結果をCLIでArcherySecに登録

公式サイトにさまざまなスキャナーの検知結果サンプルがあるので、SAST, SCA, DASTから以下を使用。

  • Gitlab SAST Scanner
  • Gitlab SCA Scanner
  • OWASP ZAP

Scans > Dynamic Scans(あるいはStatic Scans) > Upload Reportsからファイルをアップロード。

スクリーンショット 2023-02-24 23.16.14.png

どう表示されるのか確認

Static Scansの画面

スクリーンショット 2023-02-24 23.18.58.png

まず最初に「Project Name」には、アップロード時の「Project」ではなく「Target」の項目が表示される ... バグ?

それ以外は、どういうレベルの問題が検知されているのかぱっとわかりやすいなという印象。

Vulnerability Listの画面

これもどういう脆弱性があって、それがOpenなのかシンプルに表示されていて、わかりやすい。

スクリーンショット 2023-02-24 23.22.07.png

JIRAチケットの状況もわかるのだと思うのですが、わかりやすい。

スクリーンショット 2023-02-24 23.25.04.png

 ### 脆弱性詳細画面

SAST

ここが惜しいのですが、

  • Description ... まあ内容が記載されているのでOK
  • Instance ... コードの行番号が表示されない(アップロードされたファイルの中には行番号あり)
    という状況で、SASTなので、コードの行番号は欲しかったです。

スクリーンショット 2023-02-24 23.25.58.png

SCA

SCAの場合は、対象のライブラリーとバージョン、CVE IDとか、どのバージョンに上げればいいのかを知りたいところ。
GitLab SCAのファイルの中身は↓のように情報が記載されている。

    "category": "dependency_scanning",
      "name": "Improper Input Validation",
      "message": "Improper Input Validation in pip",
      "description": "An issue was discovered in pip (all versions) because it installs the version with the highest version number, even if the user had intended to obtain a private package from a private index. This only affects use of the `--extra-index-url` option, and exploitation requires that the package does not already exist in the public index (and thus the attacker can put the package there with an arbitrary version number).",
      "cve": "requirements.txt:pip:gemnasium:f42440cc-317f-449c-87c3-016bee39ecbe",
      "severity": "High",
      "solution": "Unfortunately, there is no solution available yet.",
      "scanner": {
        "id": "gemnasium",
        "name": "Gemnasium"
      },
      "location": {
        "file": "requirements.txt",
        "dependency": {
          "package": {
            "name": "pip"
          },
          "version": "20.2.2"
        }
      },
      "identifiers": [
        {
          "type": "gemnasium",
          "name": "Gemnasium-f42440cc-317f-449c-87c3-016bee39ecbe",
          "value": "f42440cc-317f-449c-87c3-016bee39ecbe",
          "url": "https://gitlab.com/gitlab-org/security-products/gemnasium-db/-/blob/master/pypi/pip/CVE-2018-20225.yml"
        },
        {
          "type": "cve",
          "name": "CVE-2018-20225",
          "value": "CVE-2018-20225",
          "url": "https://cve.mitre.org/cgi-bin/cvename.cgi?name=CVE-2018-20225"
        }
      ],
      "links": [
        {
          "url": "https://nvd.nist.gov/vuln/detail/CVE-2018-20225"
        },
        {
          "url": "https://pip.pypa.io/en/stable/news/"
        }
      ]

ただ、ArcherySecだと、対象のライブラリーとバージョン、CVE IDとか、どのバージョンに上げればいいのかは全く表示されず、使えないな〜という印象でした。

スクリーンショット 2023-02-24 23.31.36.png

DAST

DASTだと、Description, Request/Responseの情報、SolutionやReferenceまで一通り情報が表示されていて、使える印象でした。

スクリーンショット 2023-02-24 23.37.05.png

まとめ

脆弱性管理ツールのArcherySecを試してみました。
ArcherySecがもつ機能の一部のみ試してみましたが、DAST系であれば使えそうな感じでした。
Static Scansについてもきちんと表示されれば使えるなという印象でしたが、プルリクを見る限りしばらく直らなそうでした。
次回はDefectDojoかな〜。

0
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
0
0