# ChaoSlingr
ChaoSlingr(https://github.com/Optum/ChaoSlingr)は、[[UnitedHealth グループ]](UHG)で [[Aaron Rinehart]] の率いるチームによって作られた、セキュリティ実験とレポートのフレームワーク。カオスエンジニアリングをサイバーセキュリティに適用する価値を示した最初のオープンソースソフトウェアのツールであり、セキュリティに関するカオス実験を書くためのシンプルなフレームワークを示す意図のもと設計・導入され、オープンソースとして公開された。(Source: [[@2022__OReillyJapan__カオスエンジニアリング - Chapter 20 セキュリティカオスエンジニアリングの事例]] §20.4.1)
## 構成
フレームワークは 4 つの基本的な機能から構成される。
- **Generatr**: 障害を注入するためのオブジェクトを特定し、Slingr を呼び出す。
- **Slingr**: 障害を注入する。
- **Trackr**: 実験の進行に合わせてその詳細をログ出力する。
- **Experiment description**: Lambda 関数に対して適用される入力・出力パラメータを含む、実験のドキュメンテーションを提供する。
このほか、アプリケーション所有者がオプトインでテスト要件を指定する仕組み(Regulatr によるオプトインタグの妥当性確認・変更のドライラン)、Notifyr によるアラートメール送信、Reportr によるレポート生成、SlingrDB・CloudWatch へのトラッキング情報の記録という構成を持つ(図20-1)。
もともと AWS 上で動作するように設計されており、以下の特徴を持つ: オープンソース、緊急停止ボタン(インシデント発生中に機能していない場合に自動停止)、設定可能な時間枠と実験実行頻度、Python による実装、Lambda 関数での実行、Terraform のスクリプトによる自動設定。ChaoSlingr を利用する組織の大半は、プロジェクトを fork してフレームワークを参考にしながら自組織用のセキュリティカオス実験を構築している。(Source: [[@2022__OReillyJapan__カオスエンジニアリング - Chapter 20 セキュリティカオスエンジニアリングの事例]] §20.4.1)
## 実験事例: ポート設定ミス
UnitedHealth グループで行われた実験の一つに、ポートの設定ミスを対象としたものがあった。仮説は「設定を誤ったポートは検知されファイアウォールによってブロックされ、インシデントに関して適切にログが取られるはずだ」というものだったが、実験の半分では仮説どおりだった一方、残り半分ではファイアウォールが検知とブロックに失敗し、比較対象の商用クラウド設定ツールは常に検知・ブロックしていた。さらに実験対象のツールは、どこでインシデントが発生したのかをセキュリティチームが容易に特定できる形でログを取れていなかった。(Source: [[@2022__OReillyJapan__カオスエンジニアリング - Chapter 20 セキュリティカオスエンジニアリングの事例]] §20.4.1)
## 関連
- ソース: [[@2022__OReillyJapan__カオスエンジニアリング - Chapter 20 セキュリティカオスエンジニアリングの事例]] — 一次記録(図20-1: ChaoSlingr の概要となるコンテキストと設計)
- 実体: [[Aaron Rinehart]] — 開発を率いた人物
- 実体: [[UnitedHealth グループ]] — 開発された組織
- 概念: [[セキュリティカオスエンジニアリング]] / [[カオスエンジニアリング]] / [[障害注入]]
## 出典
- [[@2022__OReillyJapan__カオスエンジニアリング - Chapter 20 セキュリティカオスエンジニアリングの事例]] — Aaron Rinehart, 「セキュリティカオスエンジニアリングの事例」, Casey Rosenthal・Nora Jones 編『カオスエンジニアリング ― 回復力のあるシステムの実践』, オライリー・ジャパン, 2022, 20章, §20.4.