マネジメントと心理学、ときどきセキュリティ

日々の勉強の記録や、趣味の話を書いていきます

シスコで発生した「元従業員によるAWSインスタンス削除事件」を防ぐためにやるべきこと

f:id:chilochilo:20201020105431p:plain

 最近知ったのですが、シスコの元エンジニアが、AWSに不正アクセスし、インスタンスを削除したという事件が、2018年に発生していたそうです。詳しい事件経緯はこちらです。

  • スディシュ・カサバ・ラメシュ被告(30)は、2018年4月にシスコを退職。
  • 退職後である2018年9月にAWSでホスティングされていたシスコのクラウドインフラに不正アクセスした。
  • ラメシュ被告は自作のスクリプトをデプロイして、シスコのサービス(Cisco WebEx Teams)ので利用されていたVM(仮想マシン)456件を削除した。
  • この影響を受け、1万6000以上の Cisco WebEx Teams アカウントが最大で2週間にわたり使用できなくなった。
  • シスコは復旧のための追加人件費約140万ドルと、影響を受けた顧客への返金100万ドルの損害を受けてしまった。

 今回の事件に関して、今回はたまたまシスコという企業で発生してしまいましたが、他の企業も対岸の火事ではありません。似たような例でいうと、2017年にアメリカのトランプ大統領の Twitter アカウントが、Twitter の従業員によって消されるという事件が発生しました。 Twitter社の発表によるとこの事件も、この日最終出社日だった従業員が引き起こしたものだそうです。*1

 他にも、従業員や元従業員からも悪意をもった攻撃によって、企業が損害を受けてしまった事件は、ニュースになっていないか、そもそも検出されていないだけで、山ほど発生しているのではないかと思っています。

 そのため、この記事では、事件の原因や、シスコが元々どのような対策をしていたのかという点には言及せずに、このような不正アクセスの事件を未然に防ぐための「一般的な対策」に焦点を当ててお話ししてきたらと思います。(もしかすると、シスコは下記の対策をすべて実施した上で、ハッキングされてしまった可能性もありますが、あくまで基本的な対策を紹介する趣旨の記事なのでご了承ください。)

 

①アカウントの棚卸

 退職者によるアカウントの不正アクセスに対して最も実施すべきことは、「アカウントの棚卸」です。これは特別なセキュリティ製品の導入も必要ないですし、どんな組織で実施すべき対策だと考えています。

 一般的な実施方法に関して、退職の内示が出たら、人事や労務など従業員の管理をしている部門から、システム管理部門に対して事前に連絡を行い、連絡を受けたシステム管理部門は退職日に必ずアカウントを消す(もしくは自動削除の設定を行う)という運用にすることが、シンプルかつ非常に強力です。

 またこのアカウントを使用するにあたってその作業を円滑に行うために、 AD(アカウント・ディレクトリ) 導入することも非常に有効な手でしょう。ADを様々なサービスと連携しておくと、ADのユーザーを削除することで全てのサービスから一括で退職者のアカウントを消すことできます。したがって、そのようにADを使った一括管理をあの元々仕組みを作っておくと楽にこの運用が回せるかなって思います。

 しかしながら、企業ごとに様々な事情があり AD により一括管理が難しい場合も多々あると思います。その場合には利用してるサービスの一覧を作成して必ずその一覧から全てアカウントを削除してることを確認するって言わなフローを構築することが良いかなというふうに考えています。

②アカウント権限の最適化

 第2に実施すべきこととしてはアカウント権限の最適化が挙げられます。今回被害にあったのは AWS のサービスを使って構築されたサービスですので、AWSのアカウント権限管理機能(IAM)を利用することが非常に有効だと思います。

 IAMではユーザー(もしくはユーザーが所属するグループ)ごとに、権限を細く定義することはできます。なので「本番環境に関しては参照のみ」というのユーザー権限であるとか、あるいは「本番に全く入れず、開発環境のみアクセス可能」というアカウント作るのも非常に有効です。間違っても全ての人が言うルート権限(すべての機能が操作可能であるマスターアカウント)を利用できるというような設計には間違ってもしてはなりません。

 もちろん、もしかしたら今回の被告人が「インスタンス削除」の権限を持っていたユーザであった可能性は十分にあり、この対策だけで確実にブロックすることは難しいです。ただ、このようにAWSのサーバーを消すことできる人間を絞っておくと、リスクを軽減させるためにも非常に重要な対策となっています。

 ちなみに、IAMのことを詳しく学びたいなら、公式ドキュメントのほかに下記がおすすめです。

本書はIAMの機能に絞って解説するという機能特化本です。

③特権管理製品の導入

次にご紹介するのは、「特権管理製品の導入」です。特権管理製品は、決められたユーザ(システム管理者や上長)の承認がないと、特権アカウントを使うとか、あるいは本番環境に入ることを機械的に制御することができる製品です。代表的な製品で言うと、  CyberArk や iDoperation などの製品が該当します。上記①②の対策とは違い、セキュリティ対策製品の導入が必要となるため、費用が掛かってしまいますが、その分絶大に保護してくれる形となります。マーケットリーダーであるCyberArk社のホームページによると、Fortune 500の50%以上がCyberArkを導入していると記載されており、欧米では一般的な対策となっているようです。*2

 特権管理製品を導入しておくことで、本番環境を操作する際には事前承認が必要となるので、退職した人が何か本番環境で作業するという行為を事前に防ぐことができます。特権管理製品を導入している場合は、現従業員のアカウントを乗っ取るか、特権管理製品が設計ミスによってカバーできていない抜け道をつくことでしか攻撃することが事実上不可能になるので、非常に有効な対策です。

④ログの監視

 4つ目にご紹介するのは、「ログの監視」です。AWSでいうと、代表的なサービスと「Amazon CloudWatch Logs」などがありますが、これを利用することで変な動きがあった場合にすぐにアラートを上げることで問題の早期発見と被害の最小化につなげることができます。また、サードパーティーの製品でもSIEMと呼ばれるログの監視ツールも同じような役割をしてくれます。

 例えば、ログファイルを見て例えば delete 見つかった場合にはすぐに通知をするという設定にしておけば、インスタンスが削除された際には必ず気づくことだできます。ログの監視によって完全に内部不正を防ぐことは厳しいかもしれませんが、ログの監視実施しておけば、内部不正の抑止力にもつながります。

⑤UEBA製品の導入

 最後に紹介する対策としましては「UEBA製品の導入」が挙げられます。「UEBA製品」は「ログの監視」とやっていることが非常に似ているのですが、違いとしては「閾値を自分で設定してくれる」という点になります。例えば、「Amazon CloudWatch Logs」ですと、アラートの対象を自分で設定することが必要となります。しかし、それにはもちろん専門的なスキルが必要ですし、工数もそれなりに必要となります。そこで、「UEBA製品」を利用することで、機械学習を利用して、閾値を自動で設定してくれるので人の手を煩わすことなく、ログの監視を実施することができます。

 

以上5つを紹介しました。最近、外からの攻撃よりも内部犯罪の方がセキュリティインシデントの大きな割合を占めるようになっています。今回ご紹介しての対策っていうのが企業の規模によりますけども多くの中で必要になってくるんじゃないかなと考えていますので参考にしていただけたらと思います。

*1:トランプ氏のツイッターアカウント、しばし「消滅」 - BBCニュース https://www.bbc.com/japanese/41854636 

*2:あらゆるところに存在する特権を保護:CyberArk PAMソリューション https://www.cyberark.com/ja/why-cyberark/