LINEで送る
Pocket

さてさてお久しぶりのVulsネタですが、
Vulsを最新アップデートするときに毎回手動でやっていたのですが、
めんどくさすぎるので、シェルスクリプトで自動化してみました。
それと以下のようにバージョンアップしろとよくTwitterでアナウンスされるので、
この機会にスクリプト使って、じゃんじゃんアップデートしてくれると幸いでやんす!


■How to Update to the Latest Version

https://vuls.io/docs/ja/misc-update-vuls.html

公式は上記。

[Vuls][update]v0.3.0からv0.4.0にアップデートしてみたけどハイパー簡単だった!


■vuls-update.sh

#!/bin/bash
set -e
## Current goval/go-cve-dictionary,Vuls version
echo -e "—-Current goval/go-cve-dictionary/gost,Vuls version—-"
docker run –rm vuls/go-cve-dictionary -v
docker run –rm vuls/goval-dictionary -v
docker run –rm vuls/gost -v
docker run –rm vuls/vuls -v
## Update go-cve-dictionary
echo -e "\n—-Update go-cve-dictionary—-"
docker pull vuls/go-cve-dictionary > /dev/null 2>&1
if [ $? = 0 ]; then
echo "Update OK"
else
echo "Update NO!!"
fi
## Update goval-dictionary
echo -e "\n—-Update goval-dictionary—-"
docker pull vuls/goval-dictionary > /dev/null 2>&1
if [ $? = 0 ]; then
echo "Update OK"
else
echo "Update NO!!"
fi
## Update gost
echo -e "\n—-Update gost—-"
docker pull vuls/gost > /dev/null 2>&1
if [ $? = 0 ]; then
echo "Update OK"
else
echo "Update NO!!"
fi
## Update Vuls
echo -e "\n—-Update Vuls—-"
docker pull vuls/vuls > /dev/null 2>&1
if [ $? = 0 ]; then
echo "Update OK"
else
echo "Update NO!!"
fi
echo -e "\n—-New goval/go-cve-dictionary,Vuls version—-"
docker run –rm vuls/go-cve-dictionary -v
docker run –rm vuls/goval-dictionary -v
docker run –rm vuls/gost -v
docker run –rm vuls/vuls -v

#!/bin/bash
set -e
GOCVEDICTIONARY=$GOPATH/src/github.com/kotakanbe/go-cve-dictionary
GOVALDICTIONARY=$GOPATH/src/github.com/kotakanbe/goval-dictionary
GOST=$GOPATH/src/github.com/knqyf263/gost
GOEXPLOITDB=$GOPATH/src/github.com/mozqnet/go-exploitdb
VULS=$GOPATH/src/github.com/future-architect/vuls
## Current goval/go-cve-dictionary,Vuls version
echo -e "—-Current goval/go-cve-dictionary/gost,Vuls version—-"
go-cve-dictionary -v
goval-dictionary -v
gost -v
go-exploitdb -v
vuls -v
## Update go-cve-dictionary
echo -e "\n—-Update go-cve-dictionary—-"
cd $GOCVEDICTIONARY && git pull > /dev/null 2>&1 && sudo rm -rf vendor && sudo rm -rf $GOPATH/pkg && make install > /dev/null 2>&1
if [ $? = 0 ]; then
echo "Update OK"
else
echo "Update NO!!"
fi
## Update goval-dictionary
echo -e "\n—-Update goval-dictionary—-"
cd $GOVALDICTIONARY && git pull > /dev/null 2>&1 && sudo rm -rf vendor && sudo rm -rf $GOPATH/pkg && make install > /dev/null 2>&1
if [ $? = 0 ]; then
echo "Update OK"
else
echo "Update NO!!"
fi
## Update gost
echo -e "\n—-Update gost—-"
cd $GOST && git pull > /dev/null 2>&1 && sudo rm -rf vendor && sudo rm -rf $GOPATH/pkg && make install > /dev/null 2>&1
if [ $? = 0 ]; then
echo "Update OK"
else
echo "Update NO!!"
fi
## Update go-exploitdb
echo -e "\n—-Update go-exploitdb—-"
cd $GOEXPLOITDB && git pull > /dev/null 2>&1 && sudo rm -rf vendor && sudo rm -rf $GOPATH/pkg && make install > /dev/null 2>&1
if [ $? = 0 ]; then
echo "Update OK"
else
echo "Update NO!!"
fi
## Update Vuls
echo -e "\n—-Update Vuls—-"
cd $VULS && git pull > /dev/null 2>&1 && sudo rm -rf vendor && sudo rm -rf $GOPATH/pkg && make install > /dev/null 2>&1
if [ $? = 0 ]; then
echo "Update OK"
else
echo "Update NO!!"
fi
## New goval/go-cve-dictionary/gost,Vuls version
echo -e "\n—-New goval/go-cve-dictionary,Vuls version—-"
go-cve-dictionary -v
goval-dictionary -v
go-exploitdb -v
gost -v
vuls -v

view raw
vuls-update.sh
hosted with ❤ by GitHub

go-cve-dictionary,goval-dictionary,vulsの3つをバージョンアップしています。
ツッコミどころ満載のスクリプトですが、一旦3つ同じ処理に関しては関数を使わずで作っております。(コード自体が少ないので)
Vulsのバージョンアップをするとたまにエラーが出ることがありますが、$GOPATH/pkgを消す処理も入れています。
では実際にこのスクリプトを使ってバージョンアップしてみやしょう!!!


■Run vuls-update.sh

!!!


■まとめ

自動化最高!!Docker用も作ろうかな。⇛上記のgistに乗っけました。
告知ですがVuls祭り #4でセッションすることになりました!
ぜひお声掛けください!!!!お待ちしております!!!

https://vuls-jp.connpass.com/event/94790/

LINEで送る
Pocket

カテゴリー: shell scriptVuls

adachin

1989年生まれのLancers SRE。 ホスティングから大規模なアドテクなどのインフラエンジニアとして携わり、AnsibleやTerraformでのインフラコード化を推進。副業では数社サーバー保守、未経験によるエンジニアのメンターなども実施している。また、「脆弱性スキャナVuls」のOSS活動もしており、自称エバンジェリスト/技術広報/テクニカルサポート/コントリビュータでもある。現在はサービスの信頼性向上、可用性、レイテンシ、パフォーマンス、モニタリング、緊急対応、インフラコード化、リファクタリング、セキュリティ強化、新技術の検証、Docker開発環境の提供、AWSでのインフラ構築、グループ会社のインフラをECS/Fargateへ移行、CakePHP4での管理画面作成、メンター、分析基盤の運用を担当している。

0件のコメント

コメントを残す

このサイトはスパムを低減するために Akismet を使っています。コメントデータの処理方法の詳細はこちらをご覧ください