退職者のアカウント

 皆さんは「セキュリティの都合で明かせない」というセリフを聞いたことありませんか?


 これは、半分正解で、半分間違いです。もちろん、パスワードなど秘匿しなければならない情報もあります。しかし、本質的には、仕組みの秘匿によって保たれているセキュリティは脆弱です。セキュリティを実現する仕組みはオープンにしても問題ないというのが理想です。なぜなら、どういう製品を使用していたか、どういう認証方法が用いられていたか、その他諸々、その仕組みを知っているのは従業員だけではないからです。例えば、退職者はまさにその代表例でしょう。システム課の退職者が会社にどれだけの恨みを抱いたとしても、何もできないのが理想といえます。


 ところが、現実には、それ以前の問題があります。退職者のアカウントの削除漏れです。意外とありがちなんですよね、これ。


 それでは、手始めに、私のアカウントでログインしてみようと思います。退職前の私は課長でしたので、それなりにアクセス権限も大きいアカウントでした。もしアカウントが生きていれば、攻撃が色々と捗ります。


 現時点では、私のアカウントが削除されているのが正しい状態ですが、さて……。


 まずは、最初の準備です。


 私は高槻さんにビデオカメラの準備を依頼しました。あとで経営陣に突きつける証跡として、すべて録画しながらでの作業を行います。


「きちんと録画しておいて下さいね」

「本当に必要なの?」

「監査なんですから、証跡を残さないといけないんですよ。一応スクリーンショットの録画もしていますが、それだけでは分からないこともありますからね」


 ていうか、なぜテレビ局仕様の4Kカメラを持ち込んでるんでしょうかね、この人。しかも新品臭が漂っていますが……。面倒くさそうな言動に反して、やる気満々じゃないですか。


 また、後から攻撃のログを特定しやすいように、ホテルの客室用の回線を使用します。どうせ他に誰も使いませんからね。


 では、真正面からカチコミに参りましょう。


 インターネットを介して外部から情報にアクセスできるルートは幾つか思いつきます。まずは、クラウドサービスです。テレワーク導入を機に、京姫鉄道では全社でMicrosoft 365を使用するようになりました。これに侵入できれば、まずはシステム課の情報にアクセスできるようになるでしょう。


 手始めに私のアカウントでログインを試みます。


――ユーザー名:a-hosono@kyoki-railway.co.jp


 願いを込めて、エンターキーを押します。


――このユーザー名は間違っている可能性があります。正しく入力したことをご確認ください。入力に問題がない場合は、管理者にお問い合わせください。


 うーん。これはダメです。


 そういえば、私にはもう一つのアカウントがありました。Azureのグローバル管理者権限があるアカウントです。Microsoft 365のライセンスは紐付けてませんが、ログインぐらいはできるかもしれません。



――このユーザー名は間違っている可能性があります。正しく入力したことをご確認ください。入力に問題がない場合は、管理者にお問い合わせください。


 私の元部下がきちんとアカウントを削除したということですね。えらい。



「嬉しそうな顔をしてるけど、成功した?」


 鼻息が私の後ろ髪に掛かります。


「いいえ、失敗しました」

「ハッキングに失敗して嬉しそうにするハッカーいる?」

「そりゃ、攻撃が成功しないのがベストですからね」


 すると、高槻さんは私の肩を叩き、やれやれといった口調で言いました。


「それだと、この作戦は失敗ということも覚えておいてね」


 まあ、確かに。


 その意味では、正面突破が封じられたのは残念ではあります。


 次、行きましょう。テレワーク用のVPNゲートウェイに接続してみます。VPNの認証についてはActiveDirectoryとはリアルタイムには連動していません。ユーザー情報は利用申請に基づいて日次バッチでアカウントが発行されていたはずです。もしそのバッチが止まっていれば、ワンチャンあるかもしれません。


――KYOKI-RAILWAY-VPN に接続できません

――指定したユーザー名またはパスワードが認識されないか、選択した認証プロトコルがリモート アクセス サーバーで許可されていないため、リモート接続が拒否されました。


 ワンチャン……いませんでした。


 サーバー側はSoftEther VPNなので、接続はSoftEther VPN Clientも試してみますが、結果は同じ。えらい、えらい。


 もうこの調子で全部失敗してくれたらいいんですけどね。


 問題は、安否確認システムです。


 このシステムは、社員番号と生年月日でログインする簡易な仕組みです。先の大震災では、パスワードがわからないという苦情が相次いだため、こういう仕様になったのですが、まぁ、それはそれで色々と問題がありますよね。


 社員番号と生年月日を入力します。


――ログインに成功しました


 おや。


 あっさりログインできてしまいました。


「ビンゴ、ビンゴなの?」


 鼻息がウザいです。


「ええ、まあ。ログインできたからといって何かが出来るわけではないのですが……」


 実はこのシステム、現在は総務部が管理しており、ActiveDirectoryとは連動していません。それどころか、他のどのシステムとも連携していませんから、このシステムを攻撃したところで直接的には何も出来ないのです。


 一応、「無事です」と投稿し、攻撃に成功した証として、レモンの画像をアップロードします。


 せっかくなので、コメント欄にscriptタグ記載してみましょう。内容は、「alert('🍋');」という感じにしておきましょうか。


 すると――



――🍋

――OK


 ページを開くだけで「🍋」という絵文字のアラートが表示されました。クロスサイトスクリプティングの脆弱性です。WEBサイトでユーザーが入力した内容を表示する際、HTMLタグのエスケープ処理などを適切に行っておらず、任意のJavaScriptを実行できてしまうという脆弱性です。こういう謎メッセージを出すぐらいなら可愛いものですが、最悪、WEBサイトにログインしているユーザーの権限で情報を盗んだりできてしまうというのが問題です。


 滅多に使われないシステムなので、こういう脆弱性も放置されていたんですね……。ここまで気が回らなかったのは、私の力不足でした。


「ハッキングに成功して悲しい表情するハッカーいる?」


 と、高槻さんは呆れ顔。


 まあ、そうなんですけど……。


「このまま災害が起きたときに支障になるかもしれないので、さっきの消しておきますね」


 そう言って私は先ほどクロスサイトスクリプティングのテストのために登録したメッセージを削除しました。まあ、スクリーンショットの録画で証跡が残れば目的は達成できるからです。


 さて、ここからどうしましょうか。


 SQLインジェクションを試みても良いのですが、さすがに不可逆的な影響があるかもしれません。今はやめておきましょう。


 となると、クロスサイトスクリプティングを突破口に、何ができるか……ですね。ちょっと遊んでみましょう。

  • Twitterで共有
  • Facebookで共有
  • はてなブックマークでブックマーク

作者を応援しよう!

ハートをクリックで、簡単に応援の気持ちを伝えられます。(ログインが必要です)

応援したユーザー

応援すると応援コメントも書けます

新規登録で充実の読書を

マイページ
読書の状況から作品を自動で分類して簡単に管理できる
小説の未読話数がひと目でわかり前回の続きから読める
フォローしたユーザーの活動を追える
通知
小説の更新や作者の新作の情報を受け取れる
閲覧履歴
以前読んだ小説が一覧で見つけやすい
新規ユーザー登録無料

アカウントをお持ちの方はログイン

カクヨムで可能な読書体験をくわしく知る