MICINのソフトウェア管理の取組み〜シャドーIT撲滅へ向けて〜
この記事は2023年9月に旧MICIN Developers Blogに公開したもののアップデート版になります。
はじめに
従業員が組織のシステム管理部門の許可を得ずに、個人的に判断してソフトウェアを使用してしまうケースはよくあるのではないでしょうか。また、システム管理部門でデバイス管理システムを用いてインストール済みのソフトウェア情報を取得しているものの、それが自社のポリシーに合致しているかまで確認しているでしょうか。
今回は、このいわゆる「シャドーIT」の一種である未許可ソフトウェアの対策としてMICINが実施している、社内のソフトウェア管理の取り組み「ソフトウェアチェック」の運用について、情報セキュリティチームの高橋がご紹介します。
ソフトウェアチェックの目的と狙い
MICINでは、従業員が貸与されたデバイスで新しいアプリケーションやブラウザ拡張機能を使う前に、必ず「ソフトウェアチェック」を行うルールを設けています。
このルールは、社内のセキュリティポリシーに違反するソフトウェアの使用によって意図しないセキュリティホールが生まれてしまうことや、近年被害が顕著な検索サイトの広告を利用したマルバタイジング(正規ソフトの配布サイトを偽装したマルウェアの拡散)の被害に遭うことなどを脅威として想定しています。
ソフトウェアにセキュリティ上の問題がないか、また不正なサイトからソフトウェアをダウンロードしようとしていないかを確認し、社内のセキュリティを強化することが本運用の目的です。
デバイス管理システムによってソフトウェアのインストールを厳しく制限することも可能ですが、過度な利用制限は従業員の利便性を大きく損なう可能性があります。そのため、MICINでは厳しい制限はかけずに、申請ベースで比較的自由にソフトウェアを利用できる体制にしています。
制限をかけない分、時折、許可されていない未申請ソフトウェアが利用されてしまうことがあります。そこで、貸与PCのモニタリングを行い、未申請ソフトウェアのインストールを自動的に検知し、利用者には事後申請もしくは削除してもらうことで違反を是正する仕組みを整備しています。
ソフトウェアチェック運用の全体像
ソフトウェアチェックの運用をどのように実現しているか、具体的な実装方法を説明していきます。全体のフローは下図の通り、6つのステップに分かれています。
ソフトウェアチェック運用の全体像
①申請
従業員各自がGoogleフォームで作成された申請フォームから申請します。申請されたデータは「チェック結果」というスプレッドシートに記録されます。
本運用では、以下の3つをチェック対象のソフトウェアとしています。
- PCにインストーラーを使用してインストールするソフトウェア
- PCにダウンロードして使用するソフトウェア
- Webブラウザにインストールする拡張機能
申請内容は下図の通りです。フォームの最初(説明部)と最後に「チェック結果」を確認するよう促す文言を含めることで、同一・類似のソフトウェアの重複申請を減らす工夫をしています。
実際の申請フォーム
②チェック
申請情報は情報セキュリティチームのSlackチャンネルに通知が届き、情報セキュリティチームのメンバーが内容を確認してチェックを実施します。
フリーソフトの場合
ソフトウェア本体またはインストーラーを、VirusTotalでファイルスキャンします。Chrome拡張機能の場合は、本体のCRXファイルをダウンロードしてスキャンします。
VirusTotalでのウイルスチェック結果の例
有償ソフトの場合
VirusTotalはフリーユーザーがスキャンしたファイルを有料会員が自由に入手できてしまうため、有償ソフトのスキャンには適していません。そのため、有償ソフトの場合はJPCERT/CCのCISTAの検体解析機能を使用してファイルスキャンを行っています。(※2025年2月28日をもって、CISTAの検体解析機能の提供が終了してしまったため、現在は配布サイトのURLをVirusTotalでチェックするなどして代替しています。)
CISTAの検体解析機能でのウイルスチェック結果の例(過去)
ファイルスキャンの結果、ウイルス判定がなく、かつ社内ポリシーに適合している場合、そのソフトウェアの利用は許可されます。一方、ウイルス判定が1件以上または社内ポリシーに適合していない場合は、原則として利用は許可されません。社内ポリシーに適合しないソフトウェアには、主に情報漏洩の潜在的なリスクがあるものが含まれます。例えば、以下のようなケースです。
- 私用プリンターの利用に繋がるソフトウェア
- リモートデスクトップ機能を持つアプリケーション
- クラウド上にデータが保存されるメモやタスク管理ソフトウェア
- 未許可のクラウドストレージのクライアントソフト
また、ソフトウェアの使用に関する特別な注意事項(例:私用アカウントでの利用禁止、機密情報の取り扱い禁止など)がある場合は、その旨をチェック結果に記載し、申請者に通知します。
ソフトウェアチェック結果の例
このチェック結果のスプレッドシートは社内に公開しており、社内で使用が許可されているソフトウェアのカタログとしても役立っています。これは従業員の利便性向上にも寄与するものと考えています。
③情報収集
全従業員が必ずソフトウェアチェック申請を行ってくれれば、ここまでの作業だけで運用を完結できますが、実際は申請されずにソフトウェアがインストールされるケースも少なくありません。そのため、まずは各端末に実際にインストールされているソフトウェアの情報を収集します。
貸与PCはデバイス管理システムによって管理されており、そこからインストール済みのアプリケーション情報を収集しています。MICINではMacの場合はJamf Pro、Windowsの場合はIntuneを使用しています。また、貸与PC内のGoogle Chromeは管理対象ブラウザとなっており、インストール済みの拡張機能の情報も収集しています。
Jamf Proで収集されたアプリケーション情報の例
④情報転送
MICINでは社内のログ収集基盤としてSIEM(Security Information and Event Management)ツールである「SumoLogic」を使用しています。このSumoLogicを本運用でも活用し、情報の蓄積や、情報の突き合わせによる未申請ソフトウェアの検出に利用しています。
③にて収集したIntune、Jamf Pro、Google Workspaceのアプリケーション情報は、定期的なバッチ処理によってSumoLogicに転送されます。このバッチ処理は、AWS Lambda上で実行されるPythonスクリプトによって実現しており、EventBridgeを使用して日次で実行しています。転送される情報は、以下の通りです。
- デバイス管理システム上のアプリケーションID
- アプリケーション名(突き合わせしやすいように補正したもの)
- アプリケーション名(脆弱性管理に使用するためCPE表記に補正したもの)
- アプリケーション名(デバイス管理システムの元の表記)
- アプリケーションのバージョン
SumoLogicに転送されたWindowsのアプリケーション情報
ここでSumoLogicに転送されたアプリケーション情報は、社内の脆弱性管理にも活用しています。
また、チェック結果のスプレッドシートについては、Google Apps Script(GAS)を使用し、情報を日次でSumoLogicに転送しています。
⑤検出
SumoLogicにて、アプリケーション情報とチェック結果をアプリケーション名(Chrome拡張機能はID)で突き合わせし、合致しないものを未申請ソフトウェアとして検出します。アプリケーション情報は日次で転送されるため、検出も日次での運用となっています。
突き合わせの際、以下のようなソフトウェアは除外しています。
- ハードウェアやOSに関連するソフトウェア
- PC貸与時に標準でインストールされているソフトウェア
- 自社開発のソフトウェア
- バンドルでインストールされるソフトウェア
(実際の突き合わせの際には100件以上を除外しており、運用開始時の除外リスト作成は非常に大変でした…)
SumoLogic上での検知例
検知した内容に基づき、情報セキュリティチームのSlackチャンネルに申請外ソフトウェアの検知に関する通知が届きます。どのPCにインストールされているかは、デバイス管理システムのリンクを通じて簡単に確認できるようになっています。
申請外ソフトウェア検知の通知例
⑥是正
通知に基づいて、未申請ソフトウェアを利用している従業員に対し、Slackを通じてチェック申請または削除を依頼します。従業員による是正対応が完了し、翌日の検知で通知されなくなれば、対応完了とみなします。
申請or削除依頼の例
これまでの運用状況と今後の課題
このソフトウェアチェックは、まず①〜②の申請・チェックの運用を2022年6月から開始しました。その後、運用開始前から使われていたソフトウェアの後追いチェックや、検出の自動化を進めながら、組織全体への浸透を待つ期間を1年設け、2023年6月からは④〜⑥の未申請ソフトウェアの自動検出と是正の運用を本格的に開始しました。
これまでにチェックしたソフトウェアの総数は約500件にのぼり、自動検出の開始後4ヶ月で約25件の未申請ソフトウェアを検知しました。(中には、リスクの高いリモートデスクトップのクライアントアプリケーションを検知したというケースもありました)
今後の課題としては、現在も手動で行っている「ウイルスチェック」と「是正のアナウンス」の自動化が挙げられ、これらは現在進行形で取り組みを進めています。また、2017年に発生したCCleanerへのマルウェア混入事案のような脅威に対抗するため、ソフトウェアがバージョンアップするたびにウイルスチェックを実施するような運用も検討しています。
情報セキュリティチームでは今後も、安全性と利便性を両立させた社内IT環境の実現に向けて、取り組みを続けていきます!
【後日談】運用開始から約3年が経ちました
ここまでは以前公開した記事の内容ですが、運用開始から約3年が経過した、2025年7月現在の状況を紹介します。当時、チェックしたソフトウェアの総数は約500件でしたが、新規ソフトウェアの追加や、サポートが終了したソフトウェアの削除などを繰り返した結果、現在のリストも約500件を維持しています。
以前の課題として挙げていた点については、以下の進捗がありました。
ウイルスチェックの自動化については、Chrome拡張機能のチェックは自動化できました。しかし、WindowsやMacのソフトウェアは配布サイトの形式が様々で、人の判断が必要なこともあり、引き続き手動で対応しています。
是正のアナウンスについては、自動化を実現しました。しかし、心理的な要因なのか、botによる自動アナウンスは、人間によるアナウンスに比べて是正される割合が低い傾向にあると感じます。(悲)
また、約3年間の運用で便利なソフトウェアの情報が多く蓄積されたため、これらの有益なツールを広く共有することにしました。先日、おすすめツールを紹介するページを作成し、社内に公開しています。
便利なソフトウェアの紹介ページ
ソフトウェアのセキュリティチェックのような対策は、一般的に「問題を防ぐためのコスト」や「手間のかかる守りの活動」と見なされがちです。しかし私たちは、セキュリティの取り組みを、単にマイナスからゼロにするだけでなく、利便性の向上や業務改善といった「プラスの価値」を生み出す機会にしていきたいと考えています!
Discussion