LINEで送る
Pocket

😄!!!!!

そういうことでVulsはサーバに優しくなったんでやんすよ。
とのことで早速アップデートしてみました!!
直でVulsインストールされて運営している側には特に異常ありませんでした。

が!!

Vuls dockerの方をアップデートすると、
configtestができない!!!Why!!😆


■Error

err: [Failed to detect OS: Unable to connect via SSH. Check SSH settings. If you have never SSH to the host to be scanned, SSH to the host before scanning in order to add the HostKey.

HostKeyを登録しろ!と怒られる。ググるとこんな記事を発見しました。


■VulsをDockerで構築したけどHostKeyを登録しろと永遠言われる問題

https://qiita.com/S-T/items/33d2a9d67fd8ccb40879

うーむ。。さすがにDocker bridgeのセグメントを変えるのはちょっと。。。
というか去年のバージョンからscanできなかった系!?
さすがにやばめちゃんなのでVulsのちょんまげさんに報告してみました。


■vuls-slack

とりあえず不明なのでscan時にssh -vvvできるようにマージして
パス(controlpath)が問題とちょんまげさん予想。

そこで-vvvを付けてスキャンすると!
(ここからはちょんまげさんと激しくダイレクトでやりとりします)


■Research

unix_listener: cannot bind to path: /root/.ssh/controlmaster-adachin-xxx.xx.xxx.xxx.22.HaaaaaHAHAHA

やはりパス(controlpath)が怪しい。権限なんじゃないかと疑い、
一旦以下のようにvuls scanコマンドを変えてみると。。scanできた!

動きとしてはsshの多重接続機能のコントロールファイルをhost:$HOME/.ssh/以下に作ろうとして、
初めはro(readonly)だったのでホスト側にファイルが作れないのでエラーが出てしまう。
今回はro->rw(readwrite)に変更したのでホスト側にファイル作れたのでエラーが出ないとのこと。
じゃあReadme直しときますね〜となりました。

が!!!

よくよく考えてみたのです。

・Docker volumes | ‘:rw’と’:ro’ってどういう意味?正体はなに?

https://hackerslog.net/post/softwares/docker/the-difference-of-ro-and-rw/

上記のはあまり関係ありませんが、controlpathで指定したファイルを/tmpに置くと他のユーザが
認証なしでアクセスできてしまうという恐れが….これではVuls自体に脆弱性が出て笑えないと気づいたので!
実行ユーザーのホームディレクトリ$HOME/.vuls(700)を作成し、ファイル(600)を作る作戦にしました。


■fix: change ControlPath to .vuls of SSH option #618

https://github.com/future-architect/vuls/pull/618

これで権限等変わらず、configtestもscanもできました!


■まとめ

速いうちに原因わかってよかった。。。
デバッカー頑張りますw

あざまる水産!!

LINEで送る
Pocket

カテゴリー: DockerVuls

あだちん

1989年生まれ。 ランサーズ/SRE。 ホスティングから大規模なアドテクなどのインフラエンジニアとして携わり、他社インフラレスポンス改善、ランサーズでの副業、ansibleでのインフラコード化を推進し、未経験によるエンジニアのMENTAなども実施している。また、「脆弱性スキャナVuls」のOSS活動もしており、自称エバンジェリスト/広報/VulsRepo init file,chatwork通知のコントリビュータでもある。現在はDocker開発環境の提供,AWSで新サービスのインフラ構築,PHPバージョンアップ,分析基盤を担当しておりDigdag,embulk,BigQueryを使いこなし中。

コメントを残す

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