概要
早いもので、今年のGWがもう終わろうとしています。いつも通りTwitter(新X)を眺めていた私ですが、なんだか今年は一段とエンジニアをヒヤリとさせるニュースが多かった気がするので、戒めを込めてまとめていこうと思います。
LinuxでのCopy Fail(CVE-2026-31431)脆弱性
事象
事象としては、一般ユーザが不正にroot権限を取得することができる、という脆弱性です。
また、2017年以降のすべてのLinuxディストリビューションにて起こりうる可能性があり、影響範囲の広さや脆弱性自体の汎用性の高さなどから今でもタイムラインをにぎわせております。
AIがこの脆弱性を発見した、という点でもこのニュースは話題になっていました。
基本的には最新のパッチをあてることで、この脆弱性は防ぐことができるようです。
教訓
個人で対応できることは少ないかもですが、
- 脆弱性に関してのニュースに敏感になっておく(初動対応を素早く行うため)
- 緊急パッチの対応などがスムーズにできるよう、自社のシステムを把握しやすい形にしておく
などが対策として挙げられるかなと思います。少し前には超有名ライブラリaxiosに不正なコードを実行するバージョンが公開されていた、などの問題もありましたので、把握しやすい形にしておくことが一番かなと思います。
マネーフォワードの顧客情報流出
事象
家計簿アプリなどで知られるマネーフォワードのGitHubへ不正アクセスを発端としたこのニュース。
リポジトリ内に顧客情報が含まれており、その内容が流出した模様です。顧客のビジネスカード番号下4桁およびカード保持者名が漏洩したとのこと。
教訓
GitHubに機密情報は乗せちゃいけません(当たり前)、これはprivateリポジトリでも当然です。
認証キーやパスワードみたいな情報がうっかり乗っちゃった、ならまだわかるんですが、どういう作り方をしていたら顧客の情報がリポジトリに含まれる形になっちゃうんですかね...
また、どうあっても人為的ミスを100%防ぐことはできないため、Secret scanningなど自動的に検出できるツールを用いて、紛れ込まない/紛れ込んだ時にすぐに対応できるようにしておくことも大事です。
今回はリポジトリごとクローンされちゃったみたいなので、 過去コミット履歴 などもおそらく不正にみられてしまっている状態。過去にうっかり新人が...みたいなことも全然あり得るため、仕組みで防ぎましょう。
サードパーティ製サイゼリア注文クライアント
事象
下記ツイートを発端にした、APIのセキュリティや技術者としてのモラルなどいろんな議論を巻き起こしているこのニュース。
この方が行ったこととしては
- サイゼリアの注文コードを読み込んで実際に注文ができるクライアントアプリを作成
- CLI上からも注文できるようにし、Codexで対話的に注文できるように
- そのコードをGitHubに公開
といった感じです。ここで問題になっているのが
- 公式に想定されていない使い方をして、かつそのアプリケーションを公開した(倫理的な問題)
- 注文できるような(いわゆるお金がかかわる)部分を任意のサイトから呼べるようになっている(サイゼリア側の設計の問題)
- GitHubソース上に公式画像なども含まれていて、再配布されている形となっていた(著作権的な問題)
などなど、いろんな側面からの議論を引き起こしています。
教訓
あなたの作ったAPI、きちんとアクセス制御できていますか?
いったん倫理的な部分はおいておくとして、もし外部から呼ばれたくない場合はきちんとそれなりの制御(CORS制御やバリデーションなど)をしておきましょう、という話。
クライアント側なんて想定外のことをしてくる前提!バックエンド側ではクライアントを信用しない設計になっているか、今一度見直してみましょう。
感想ですが、正直そういうチャレンジ精神みたいなのは純粋にスゲーと思いますし、元のものが不便だから新しいものを作ろう!みたいな発想は大歓迎です。ただ自分がサイゼリアの中の人だったらヒヤリどころじゃすまない問題ですね...
おまけ:BeRealによる顧客情報流出
事象
知らない人はいないであろうくらい拡散され話題となったこのニュース。
顧客情報を含む写真がSNSに投稿された、という実に(SNSの悪いパブリックイメージとして)あるあるな気もする事象です。
そもそもBeRealは、「一日一回ランダムに通知が来て、2分以内に写真付きで投稿する」というスタイルのSNS。こういうことがある程度起こりやすいようなシステムになっているようです。
教訓
若者よ、SNSはTwitter一択です。BeRealなんて怪しいSNSはやめましょう(過激派)
エンジニア的には 「機密情報が見えるような場所に個人のスマホを持ち込めないような仕組みにしよう!」 だと思います。まぁ営業担当さんとかだとそれも難しいのかもしれませんが...
そのあたりのゾーニングの重要性を改めて感じました。一番何をやるかわからずに怖いのは人間です。
まとめ
本当に連日ヒヤリとさせられるニュースが多かったので、うちの会社は大丈夫だろうかと気が気でなかったエンジニアさんも多いのではないでしょうか?
誰かのやらかしは教訓として、日々の業務に生かしていきましょう。大半悪いのは人間なので、それを防ぐためのフールプルーフな設計を日ごろから心がけようね!