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