DevSecOpsによるサイバーレジリエンス
はじめに
DevSecOpsは、Development(開発)、Security(セキュリティ)、Operations(運用)の3つの要素を組み合わせた言葉で、ソフトウェア開発全体のプロセスにセキュリティを取り込みます。
近年、サイバーセキュリティという言葉よりも、サイバーレジリエンスという言葉をよく聞くようになったため、DevSecOpsによるサイバーレジリエンスへの対応についてまとめてみました。
サイバーレジリエンスについて
サイバーセキュリティが防御線を張ることに注力した考え方であることに対して、サイバーレジリエンスはシステムを乗っ取られることを前提としたセキュリティ対策です。
Firewallによるネットワーク対策やID認証によるアクセス制御対策、アンチウイルスソフトによるウイルス対策といったものがサイバーセキュリティに該当しますが、サイバーレジリエンスはセキュリティインシデントの迅速な検出やシステム健全性の管理、被害の局所化、事業再開の回復力といった対策が該当します。
サイバーセキュリティとレジリエンスの対策
ざっくりとした、サイバーセキュリティとレジリエンス対策の比較を以下に示します。
# | サイバーセキュリティ | サイバーレジリエンス |
---|---|---|
1 | 認証・認可によるアクセス制御 | セキュリティインシデントの検出 |
2 | Firewallなどのネットワーク対策 | システム健全性の管理 |
3 | アンチウイルスソフトによるウイルス対策 | システム被害の局所化 |
4 | DDoSなどのサイバー攻撃対策 | 事業再開の回復力(BCP対策) |
防ぎきれないサイバー攻撃
そもそもサイバー攻撃とは、サーバーやパソコン、スマートフォンなどの端末に対して、インターネットなどのネットワークを通じてシステムのハッキングやクラッキング、データの窃取、改ざんを行う行為のことを指します。
これらは、外部の人間が悪意をもって不正アクセスを行うこともありますが、内部の人間が重要な情報を持ち出したり、メールやUSBメモリなどから持ち込んだファイルからウイルス感染することで外部に情報が送信される、といった事態に陥る場合があります。
この場合、内部の人間による操作はサイバーセキュリティを通過した状態にあるため防ぎようがありません。そのため、近年ではサイバーレジリエンス(回復力)が注目されています。
セキュリティ動向調査(トレンドマイクロ社)
トレンドマイクロ社が調査した法人組織のセキュリティ動向を紹介します。「フィッシングメールの受信」、「ビジネスメール詐欺のメール受信」、「不正サイトへのアクセス」といった上位3つは、人的エラーとなりサイバーセキュリティで防ぐことは困難です。
外部からのサイバー攻撃
サイバー攻撃の被害に遭う要因として、OSやアプリケーションなどソフトウェアのバグが挙げられます。これは開発コストを抑えるために、既成のOSやオープンソースを利用した開発が行われているため、何らかの形で脆弱性が発見されると、その修正パッチが配布されるまでの間にサイバー攻撃がしかけられる(ゼロデイ攻撃)、あるいは修正パッチの案内と共に脆弱性も公開されるため、修正パッチの適用ができていない企業がターゲットとなって、サイバー攻撃に遭います。
ゼロトラスト
このようにサイバー攻撃は不可避で必ず起きるもの、という前提から「ゼロトラスト」と呼ばれています。このゼロトラストの考え方から、IDとパスワードを知っているくらいでは信頼しない、多段階認証を行うサービスが提供されています。
「ゼロトラストネットワーク」は、ユーザーやデバイスを信頼せず、必ず認証を行うといったネットワーク構成の仕組みを指します。
DevSecOpsによるサイバーレジリエンス対策
DevSecOpsでは、Develop(開発)、Operations(運用)の中でセキュリティ対策を講じます。考慮すべき脅威モデルと、開発、運用段階におけるセキュリティ対策について以下に記載します。
STRIDEモデル
Microsoft社では、外部からのサイバー攻撃に対する脅威モデルとして、「STRIDEモデル」を提唱しています。どこが攻撃ポイントになりそうか、脅威となり得る箇所を洗い、未然に防止策を取ります。
# | 項目 | 説明 |
---|---|---|
1 | Spoofing | 正当なユーザーになりすます余地はないか |
2 | Tampering | データの改ざんが行われる可能性はないか |
3 | Repudiation | 悪意ある行為を行ったにもかかわらず、それを自分ではないと否認する余地はないか |
4 | Information Disclosure | 秘匿されるべき重要な情報が漏洩し得ないか |
5 | Denial of Service | DoS攻撃に遭ってサービスが停止しないか |
6 | Elevation of Privilege | 権限を管理者に昇格されて、システム全体が乗っ取られるようなことはできないか |
Develop(開発)におけるサイバーレジリエンス対策
Develop(開発)における対策には、セキュアコーディングとセキュリティテストが挙げられます。
セキュアコーディング
メモリーのバッファオーバーフローを誘発するコーディングを排除したり、データ入力時に脆弱性につながる文字を別の表記に置き換えて無害化する(サニタイズ)、などが挙げられます。
セキュリティテスト
ソースコードをチェックして、セキュアコーディングがされているかをテストする SAST(Static Application Security Testing) と、実際にプログラムを実行することによって脆弱性を判定するテストの DAST(Dynamic Application Security Testing) があります。
Operations(運用)におけるサイバーレジリエンス対策
Operations(運用)における対策には、セキュリティ監査・監視・分析とセキュリティパッチの適用が挙げられます。
セキュリティ監査・監視・分析
- 「セキュリティ監査」では、本番運用中のシステムや実行体制のセキュリティについて、ポリシーに準拠しているかなど定期的に監査を行います。
- 「セキュリティ監視」では、不正なアクセスや異常な行動を取るユーザーがいないか、といったことを監視します。DevSecOpsでは怪しいログを自動で検出します。
- 「セキュリティ分析」では、自動検出されたインシデントに対して何が起きているのかを分析します。(どこの国からのアクセスか、不審な行動をしていないか、データが改ざんされていないか)
Microsoft社では、Microsoft Defender for Cloud や Microsoft Sentinel が上記に該当するサービスとして提供されています。
セキュリティパッチ
公表された脆弱性を修正するパッチを適用する運用を指します。これを即座に実施しないと、公表された脆弱性を突いた攻撃が仕掛けられるリスクがあります。
まとめ
サイバーレジリエンスとは、防ぎきれないサイバー攻撃に対して防御線を張るのとは別に、レジリエンス(回復力)を持たせます。常にシステムの健全性を管理することで、セキュリティインシデントが発生したら迅速に被害箇所を特定、局所化して、対策を講じます。
すべてのデータが暗号化される、改ざんされる、などシステム運営が困難となった場合には、システムバックアップやサイトリカバリーなど、BCP対策を行っておくことで回復を可能にします。
おわりに
ソースコードのセキュアコーディングやSAST(Static Application Security Testing)は、すでにAIで自動化されているため、AIによるハッキングに対するAIによるセキュリティ対策といった、AI対AIの世界が始まってきているのだと理解しました。
Discussion