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

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


■まとめ

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

あざまる水産!!

Pocket

カテゴリー: DockerVuls

adachin

1989年生まれのSRE。ホスティングから大規模なアドテクなどのインフラエンジニアとして携わる。現在はサービスの信頼性向上、DevOps、可用性、レイテンシ、パフォーマンス、モニタリング、オブザーバビリティ、緊急対応、AWS/Azureでのインフラ構築、Docker開発環境の提供、Kubernetes保守、インフラコード化、新技術の検証、リファクタリング、セキュリティ強化などを担当している。個人事業主では数社サーバー保守とベンチャー企業のSREインフラコンサルティングやMENTAで未経験者にインフラのコーチング/コミュニティの運用を実施している。また、「脆弱性スキャナVuls」のOSS活動もしており、自称エバンジェリスト/技術広報/テクニカルサポート/コントリビュータでもある。

0件のコメント

コメントを残す

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