自動化スクリプトにパスワードが平文で埋まっていたのを見つけた日

自動化スクリプトにパスワードが平文で埋まっていたのを見つけた日

見つけたときは、血の気が引きました。まったく別の作業のついでに、たまたま開いたファイルでした。

目次

きっかけは「画像まわりの点検」だった

その日やろうとしていたのは、サイトに載せる画像の扱いを見直す作業でした。関係しそうな自動化スクリプトを順番に開いていたところ、5月ごろに作った古いファイルが1本出てきました。

中を見て、手が止まりました。サイト管理用のパスワードが、そのまま文字として書き込まれていたのです。伏せ字でも、別の場所から読み込む形でもなく、コードの中に直接。

そして悪いことに、そのファイルはコードの変更履歴を管理する仕組み(GitやGitHubと呼ばれるもの)に入っていました。つまり2か月以上、その状態のまま履歴に残り続けていたことになります。

他のファイルは、ちゃんと安全な方式だった

不思議だったのは、同じような役割のスクリプトが他にも何本かあり、そちらは全部「環境変数」という安全な方式に統一されていたことです。

環境変数というのは、パスワードのような秘密の情報を、コードの外側(実行するパソコンの設定)に置いておき、コードからは「そこにある値を使って」とだけ指示する仕組みです。コードそのものには秘密が書かれないので、ファイルを他人が見ても中身は分かりません。

つまり方針としては正しく決まっていて、実際そのとおりに直してもいた。ただ1本だけ、古い書き方のまま取り残されていたわけです。

なぜ取り残されたかというと、その1本は「その時かぎりの作業用」として急いで作ったもので、後から整備した対象のリストに入っていなかったからでした。一度きりのつもりが、そのまま残ってしまった典型です。

その場でやったこと

順番はこうしました。

  1. 書き方をすぐ直す — コードの中の文字列を消し、他のファイルと同じ環境変数方式に書き換える。
  2. パスワードを再発行する — ここが一番大事です。書き方を直しても、過去の履歴には古いパスワードが残ります。だから発行し直して、古いものを無効にする。これを「ローテーション」と呼びます。
  3. 同じ種類のファイルを全部見る — 1本あったなら他にもある前提で、横に並ぶファイルをまとめて確認する。

特に2番は忘れがちです。「消したから大丈夫」と思ってしまいますが、履歴を管理する仕組みは消した過去も含めて残すのが仕事なので、消しただけでは無かったことになりません。

AIに任せる量が増えた人こそ、横断点検を

私がこの数か月でいちばん増やしたのは、AIに小さな自動化を書いてもらう仕事です。手作業を減らせるので、ついどんどん作ります。

そこに落とし穴がありました。AIは、その場で頼まれた1本については、きちんと動くものを作ってくれます。でも「他のファイルと方針をそろえる」ところまでは、こちらが指示しないと見てくれません。しかも量が増えるほど、自分でも全部は覚えていられません。

だから今は、こう決めています。

  • 秘密の情報(パスワード・鍵・トークン)は、コードに書かない。例外を作らない。
  • 一度きりのつもりで作ったものほど、後で見に行く。残るのはたいていこの種類です。
  • 月に一度、同じ種類のファイルを横に並べて見る。1本ずつではなく、横並びで見ると「1つだけ違う」がすぐ分かります。
  • 見つけたら書き換えだけで終わらせず、必ず発行し直す。

まとめ

この件で学んだのは、「安全な設計にした」と「全部が安全な設計になっている」は別物だということでした。設計を直した日ではなく、取り残しがゼロになった日が、直った日です。自動化を増やしている最中の人は、増やす手を一度止めて、横並びで見る日を作ってみてください。私はそれをサボっていました。


※本記事は、筆者が自社で実際に経験した一例です。使っている仕組みや管理方法によって、必要な対処は変わります。認証情報の扱いに不安がある場合は、自己判断で進めず、詳しい方に相談することをおすすめします。

よかったらシェアしてね!
  • URLをコピーしました!
  • URLをコピーしました!

この記事を書いた人

現役経営者 × FP3級 × Claude実践者。業務の大半をAI(Claude Code・ChatGPT)で自動化する実践者として、AI×お金×経営の独自実例を発信中。京都府出身・宮城県在住。

コメント

コメントする

目次