質問内容

当方環境から外部への通信することができません。別の方法でスキャンすることはできすか?

回答

可能です。

proxy を経由してインターネットに接続できる場合は以下のFAQも参照ください。

proxy 環境でスキャン実行できますか?

アプリライブラリスキャンの場合

アプリライブラリのスキャンに必要なプロジェクトの情報をインターネットが繋がる環境に持ち出すことでスキャンを行うことができます。

Java系言語の場合(Java、Kotlin、Scala)

yamoryのアプリライブラリスキャンでスキャン対象のファイルは下記リンクにまとまっています。Java系言語の場合は、依存ツリーを出力するコマンドの結果をインターネットが接続できる環境に持ち出すことでスキャンが可能です。

https://yamory.io/docs/scan-targets/

Mavenの場合の例

  1. Mavenコマンドを実行できる環境がネットに繋がらない場合は、下記コマンドでdependency treeの出力結果をファイルに吐き出し、インターネットにつながる環境に.txtファイルを持ち出してください

    mvn --projects sample_project dependency:tree -B -Dverbose=true > sample_project_dependency_tree.txt
    

    ※プロジェクト名は置き換えてください

    ※rootプロジェクトの場合は、—projectsの項目は削除してください

  2. インターネットに繋がる環境で、上記の出力ファイル(sample_project_dependency_tree.txt)をyamoryのスキャンサーバーに接続します

    cat sample_project_dependency_tree.txt | PROJECT_GROUP_KEY=sample YAMORY_API_KEY=xxxxxxxx YAMORY_OPEN_SYSTEM=true YAMORY_DISTRIBUTED=false bash -c "$(curl -sSf -L <https://yamory/script/>...)"
    

    <aside> 💡 PROJECT_GROUP_KEY, YAMORY_API_KEY, https://yamory/script/... は、アプリライブラリスキャンページから生成されたコマンドの情報に置き換えて実行してください

    </aside>

Gradle,sbtの場合

Mavenの例を参考に、一度dependency treeをテキストファイルに出力し、それをインターネットに接続可能な環境に持ち出し、yamoryのスキャンサーバーに送信することで、閉環境でもスキャンすることが可能です。