さてさてお久しぶりのVulsネタですが、
Vulsを最新アップデートするときに毎回手動でやっていたのですが、
めんどくさすぎるので、シェルスクリプトで自動化してみました。
それと以下のようにバージョンアップしろとよくTwitterでアナウンスされるので、
この機会にスクリプト使って、じゃんじゃんアップデートしてくれると幸いでやんす!
重大なバグが修正された。もしgovalのfetch-ubuntuが途中で止まる場合は最新バージョンにアップデートしてください。https://t.co/eK7vUToy02#vuls #vulsjp https://t.co/uP1myp2Oir
— vuls (@vuls_ja) July 26, 2018
■How to Update to the Latest Version
https://vuls.io/docs/ja/misc-update-vuls.html
公式は上記。
■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 |
go-cve-dictionary,goval-dictionary,vulsの3つをバージョンアップしています。
ツッコミどころ満載のスクリプトですが、一旦3つ同じ処理に関しては関数を使わずで作っております。(コード自体が少ないので)
Vulsのバージョンアップをするとたまにエラーが出ることがありますが、$GOPATH/pkgを消す処理も入れています。
では実際にこのスクリプトを使ってバージョンアップしてみやしょう!!!
■Run vuls-update.sh
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 | $ ls go vuls vulsrepo $ ll vuls/ 合計 xxxxxxx -rw-rw-r-- 1 vuls vuls 1936 6月 29 15:42 config.toml -rw-r--r-- 1 vuls vuls 978161664 7月 25 09:46 cve.sqlite3 -rw-r--r-- 1 vuls vuls 32768 7月 25 10:46 cve.sqlite3-shm -rw-r--r-- 1 vuls vuls 0 7月 25 10:46 cve.sqlite3-wal -rw-r--r-- 1 vuls vuls 62992384 7月 25 10:46 oval.sqlite3 drwx------ 21 vuls vuls 4096 7月 25 10:46 results -rwxr-xr-x 1 vuls vuls 2137 5月 30 16:27 vuls-auto.sh -rwxr-xr-x 1 vuls vuls 1281 7月 27 19:13 vuls-update.sh $ cd vuls/ $ ./vuls-update.sh ----Current goval/go-cve-dictionary,Vuls version---- go-cve-dictionary v0.1.1 4ee71e8 goval-dictionary 4cd16b2 vuls v0.4.2 92f36ca ----Update go-cve-dictionary---- Update OK ----Update goval-dictionary---- Update OK ----Update Vuls---- Update OK ----New goval/go-cve-dictionary,Vuls version---- go-cve-dictionary v0.1.1 c2bcc41 goval-dictionary b8751b9 vuls v0.4.2 ea800e0 |
!!!
■まとめ
自動化最高!!Docker用も作ろうかな。⇛上記のgistに乗っけました。
告知ですがVuls祭り #4でセッションすることになりました!
ぜひお声掛けください!!!!お待ちしております!!!
https://vuls-jp.connpass.com/event/94790/
0件のコメント