安全が確認されない不安な設計(Insecure Design)とは何か | OWASP 2021
2021年に改訂されたOWASP Top 10:2021の中で、4番目の脅威として挙げられたのが、「Insecure Design」です。
日本語では、「安全が確認されない不安な設計」「インセキュアデザイン」「安全でない設計」など呼ばれています。
前回の改定時の2017年度版では、TOP10には含まれておらず2021年から新たに指摘されたカテゴリーです。
安全が確認されない不安な設計とは
その他のコード面のカテゴリーとは異なり、「Insecure Design」はより全体的な構造に焦点が当てられています。様々なケースを含む幅広いカテゴリーです。
デザイン面の安全でない設計の例として、詳細なエラーメッセージが表示される仕組みなどがあります。
開発時には詳細なエラーメッセージはトラブルシューティングに役立ちますが、悪意のあるユーザーが攻撃に利用する可能背もあります。
また、パスワードがテキストで保存されているケースなども「安全性が確認されない不安な設計」にあたります。この種の脆弱性は、暗号化実装のミスではなく、パスワードを暗号化しないという意図的な設計上の決定が問題です。
対策
セキュリティは、プログラムの手法だけではなく、データをどのように扱うかの設計段階から重要です。安全な設計をするため、Webアプリケーション開発の早い段階で、セキュリティの専門家に相談し、安全な開発ライフサイクルを確立することが対策となります。
例:
- 本番環境へリリースする際は、エラーメッセージの不要な情報・詳細な情報は取り除く
- パスワードを忘れた際の「秘密の質問と答え」による回復フローを廃止し、MFAなどを使用したより安全な設計に置き換える
インジェクション(Injection)とは何か | OWASP 2021
2021年に改訂されたOWASP Top 10:2021の中で、TOP3として挙げられたのが、「Injection」です。
日本語でも、そのまま「インジェクション」と訳されます
前回の改定時の2017年度版の、1位のインジェクションと7位のクロスサイトスクリプティングが、2021年度の「インジェクション」という項目でまとめられています。
順位は下がったものの、「94%のアプリケーションで、何らかのインジェクションに関する問題が確認されている」と言われるほど、現在も注意すべき脅威です。
インジェクションとは
プログラムの処理において、コードはデータか動作の指示(命令)かのどちらかを意味します。
インジェクション(Injection)はアプリケーションが入力値としてデータを受け取り、それを誤って、データではなく指示として処理してしまうことで発生します。
インジェクションの対策がなされていないアプリケーションでは、不正な入力・悪意のある入力によって意図しない動作をし、情報の機密性、完全性、可用性を侵害に繋がる可能性があります。
データベース内の情報への攻撃は、主にSQLでコーディングされるため「SQLインジェクション」と呼ばれます。
悪質なサイトへ誘導するスクリプトを仕掛けて、サイトに訪れるユーザーの個人情報などを得るクロスサイトスクリプティング(XSS)も、インジェクションの一種とされています。
対策
ユーザーの入力値について、想定されている形式で入力されているかの検証を、アプリケーション側とサーバー側で行います。インジェクションに利用されやすい特殊文字などは、エスケープ処理(特別な意味を持つ記号を普通の文字として解釈されるように処理)が必要です。
また、入力送信時に出るデータベース関連のエラーメッセージは詳細に表示しないことも対策に繋がります。
暗号化の失敗(Cryptographic Failures)とは何か | OWASP 2021
2021年に改訂されたOWASP Top 10:2021の中で、TOP2として挙げられたのが、「Cryptographic Failures」です。
日本語では、「暗号化の失敗」「暗号化エラー」「暗号化の不備」などと訳されています。
前回の改定時の2017年度版では、3位となっていた「機微な情報の露出(Sensitive Data Exposure)」として知られていました。2021年度版では、結果的に機微な情報の露出につながる、暗号化技術の不適切な利用などの暗号化関連の不備について指摘しています。
暗号化の失敗とは
暗号化の失敗について考えるとき、まずは対象のデータを保護(暗号化)する必要があるかの見極めが大切です。
パスワード、クレジットカード番号、健康に関する情報や企業秘密などの重要なデータは特別な保護が必要になります。
扱う機密データは保存時と転送時の両方での暗号化が必要になります。
暗号化には様々な手段があり、急速なコンピュータの性能の向上により、古い暗号化・弱い暗号化を選択すると簡単に情報が流出してしまいます。
保護対象のデータの不適切な選択、暗号化の漏れや弱い暗号化の使用などにより、機密データが危険にさらされる状況が「暗号化の失敗」です。
対策
暗号化の失敗を防止するための対策としては、まず不要に機密性の高い情報の収集・保存をしないことが大切です。
保護が必要な場合は、最新のベストプラクティスと呼ばれる暗号化を選択し、保存時・転送時のどちらも安全に保護されていることを確認します。
例:
- 支払いの処理は、既存の支払いプラットフォームを使用して、アプリケーション事態に機密情報を保存しない
- 弱いアルゴリズムと言われるMDSを使用せず、現在強いと言われるAESを使用する
アクセスコントロールの不備(Broken Access Control)とは何か | OWASP 2021
2021年に改訂されたOWASP Top 10:2021の中で、Top1と最も高い順位の脅威として挙げられたのが、「Broken Access Control」です。
日本語では、「アクセスコントロールの不備」や「壊れたアクセスコントロール」と訳されています。
前回改定があった2017年度版では、5位となっていましたが、「94%のアプリケーションで、何らかの形でアクセス盛業の不備が確認されている」と言われるほど、多く検知されている脆弱性のため、最新版(2021)では1位となりました。
アクセスコントロールの不備とは
アクセスコントロールとは、ユーザーにはアクセスすべきものにだけアクセス権を設定し、そうでないものにはアクセス権を付与しないように設定することです。
アクセスコントロールの不備(Broken Access Control)とは、上記の反対の意味、つまり、「そのデータにアクセスすべきでないユーザーがアクセスできる状態」にあることを指します。
権限のないユーザーが、プライベートなデータの閲覧、編集、削除が可能になり、情報セキュリティを考える上で大切な、ウェブアプリケーションの「機密性」、「完全性」、「可用性」を侵害する可能性があります
- 機密情報ファイルを誰でもアクセスできるフォルダに保存する
- 社外秘の資料を公共のスペースに放置する
- メールで機密情報を閲覧すべきでない人に送信する
などもアクセスコントロール不備の例として挙げられますが、特にウェブアプリケーションにおいては、以下のような問題が挙げられます。
- そもそもアクセスコントロールをしていない(誰でも閲覧・編集できる)
- 不要に多くの人に管理者権限を付与している
- 権限のないAPIアクセスが許可される設定になっている
- ULR,HTMLの変更やカスタムAPI攻撃ツールの使用により、アクセス制御を回避できる設定になっている
対策
アクセスコントロールの不備への対応としては、まずはそれぞれの情報・資産についてアクセスが必要な人を明確にし、適切にアクセス権が付与され、追加・削除・メンテナンスが定期的に行われるにポリシーを作成する必要があります。
そのようなポリシーを反映し、継続的に運用できるアクセスコントロールの設定を実現することがとても重要となっています。
例:
- アクセスコントロールの失敗を記録し、必要に応じて管理者に報告する
- 公開リソースを除き、デフォルトで拒否の設定にする
- 自動攻撃ツールによる被害を最小化するため、APIにrate limitを設ける
- webサーバのディレクトリリスティング機能を無効にし、ファイルのメタデータ(例:.git)やバックアップファイルがWebルート内に存在しないようにする
インシデントハンドラーとは何か
インシデントハンドラーとは
インシデントハンドラー(Incident handler)とは、その表記の通り、インシデント(損失・危機になりえる好ましくない事象)をハンドル(=処理・対応)する人です。
インシデントレスポンダー(Incident responder)と呼ばれることもあります。
つまりサイバーアタックや、何らかの機器の事故などのインシデントが発生した際に、関係者と連携を取りながら被害を最小化するために対応する専門化です。
脅威や攻撃に関連する証拠を収集・分析し、原因を特定後、いち早く通常の状態へのリカバリーするためにチームで動きます。
インシデントハンドラーとフォレンジックアナリストの違い
混同される名称として、(コンピューター)フォレンジックアナリストがあります。
フォレンジックアナリストは、インシデントが発生した際に、脅威・攻撃を止める目的は共通していますが、再発を防止するためにデータを徹底的に調査する点に重きを置いています。
一方、インシデントハンドラーは現在発生しているインシデントをいかに早く封じ込めるかに重点が置かれます。
インシデントハンドラーの給与
Incident Manager Salary | PayScaleによると、2022年時点で平均基本給は約1065万円/年 (640万~1600万/年)と言われています。
インシデントハンドラーになるためのスキルセット
インシデントハンドラーは、サービスの質を保ちながら、各方面への影響を最小限にするために様々な関係者と連携をし、素早く決定を下します。
そのため、インシデントハンドラーになるには、IT・セキュリティに関する深い知識はもちろん、セキュリティに詳しくない関係者への説明能力やコミュニケーション能力、冷静な決断力が求められます。
また、常に緊急事態に対応するため、そのような状況のストレスへの耐性も必要となります。
インシデントは毎日無数に発生しており、幅広い知識と経験が必要なインシデントハンドラーはまだまだ不足しています。
CompTIA Security+ と SSCP の比較(グローバルセキュリティ資格)
セキュリティ関連資格を調べると、国内外で様々な選択肢が見つかります。
以下、一部例と大まかな難易度です。
政府系の国内機関が運営
- 情報処理安全確保支援士試験(SC)ー上級
- 情報セキュリティマネジメント試験(SG)ー上級
- 情報セキュリティ管理士認定試験ー初級~中級
- 情報セキュリティ初級認定試験ー初級=中級
グローバル組織が運営
- CISSPー超上級
- CCSPー上級
- SSCPー中級
- 各種GIACー中級~超上級
- CISAー上級
- CISMー上級
- CompTIA Security+ ー中級
様々な資格の中で、「国内外で認められる」、「中級レベル」の資格の取得を目指そうとしたとき、「CompTIA Security+」と「SSCP(Systems Security Certified Practitioner)」のどちらが良いか悩んでしまいます。
それぞれの資格について基本情報や特徴を調べてみました。
CompTIA Security+とは
CompTIA Security +認定は脅威や脆弱性の分析、セキュリティを考慮したネットワーク設計、リスクマネジメントやアイデンティティ管理などの幅広いスキルを網羅する認定資格です。
2022年現在、試験番号SY0-601を日本語で受験することが可能で、以下のスキルが想定されています。
- セキュリティに重点を置いたITシステム管理の2年以上の実務経験
- テクノロジー的な情報セキュリティの実務経験
- セキュリティコンセプトに関する幅広い知識
このSecurity+認定は、サイバーセキュリティのスペシャリストとしてのキャリアをはじめようとするの人に向いている資格と言われています。有効期間は3年間で、更新するには50の継続教育(CE)クレジット(他の資格をクレジットとして換算できる)が必要となります。
試験時間:90分
問題数・出題形式:最大で90問 単一/複数選択、パフォーマンスベース(趣味レーション)テスト
受験料:¥47,816(税込)※2022年時点
SSCP(Systems Security Certified Practitioner)とは
(ISC)2のSystems Security Certified Practitioner(SSCP )認定は、経営陣や情報セキュリティのスペシャリストと適切なコミュニケーションが図れ、経験年数が少なくてもより実践に近いセキュリティ対応の内容をグローバルの規準にのっとった内容で理解していることを証明できる資格とされています。
資格を取得後の認定期間は3年間となっており、1年毎の認定継続要件および3年毎の認定継続要件を満たすことが必要です。
有効期間は3年間で、更新するには60の継続教育(CE)クレジットと年間65ドルの維持費が必要です。
試験時間:3時間
問題数・出題形式:125問(日本語・英語併記)、四者択一
受験料:249米ドル※2022年時点
CompTIA Security+ と SSCP の比較
Security +とSSCPはどちらもセキュリティを学び始めた人が目標とする資格として適していますが、両者の違いが存在します。
レベルとしては、同レベルと言われることもありますが、どちらかというとSecurity+の方がSSCPよりも簡単だと言われています。特に日本語の資料はSecurity+の方が多いようです。
Security +は、情報セキュリティアナリストなどの役割で働くことが多いエントリーレベルのセキュリティ担当者を対象としています。一方、SSCPは、セキュリティの運用と管理に関するより高度なスキルを持つITプロフェッショナルを対象としています。
SSCPの方がよりビジネスのリーダーを目指す方に選ばれると言われています。理由としては、内容がよりマネジメント面に寄っていることや、同じ(ISC)2が運営している上級資格にCISSP(世界的なビジネスリーダーが保有していることが多い)があるため、よりスムーズにCISSPの学習を進められます。
個人的にはCISSPを目指すならSSCPから受験、セキュリティの資格受験が初めての場合はSecurity+の受験が適しているのではないかとという結論となりました。
ペネトレーションテスターとは何か
ペネトレーションテスター(ペンテスター)とは
ペネトレーションテスター(penetration tester)とは、情報やネットワークに影響をおよぼすセキュリティの脆弱性を特定し、解決するための支援を行います。
ペンテスター、ホワイトハッカーとも呼ばれています。
セキュリティアナリストの仕事の一部として扱われることもあります。
ペネトレーションテストの複雑化・専門化が進み、ペネトレーションテスターは様々な高度なツールを駆使して対象のシステムの脆弱性を特定します。
ペネトレーションテスターと脆弱性テスターの違い
ペネトレーションテスト(penetration testing)と脆弱性テスト(vulnerability testing.)はよく混同されますが、これらの二つには違いがあります。
脆弱性テスターが、プログラムの設計と実装の段階で欠陥や弱点を探す一方、ペネトレーションテスターは、特に稼働中のシステムの欠陥と弱点を探します。
ペネトレーションテスターとバグハンターの違い
バグハンターとは、公開済みのプログラムの不具合や脆弱性を発見し、企業に報告することで報奨金を得る人を指します。
バグハンターは企業が公開しているプログラムの不具合を見つけた人に報酬が支払われる成果報酬であるのに対し、ペネトレーションテスターは企業に所属し、企業どうしの契約で脆弱性の調査を行います。
ペネトレーションテスターの給与
Penetration Tester Salary | PayScale によると、2022年時点で平均基本給は約1070万円/年 (700万~1600万/年)と言われています。
ペネトレーションテスターになるためのスキルセット
- 学習意欲
- チームワーク力
- 言語能力・レポート作成能力
- コーディングスキル
- ネットワーク・プロトコル・データベースの知識
以下のセキュリティ関連資格は能力を示すために多くの人が取得を目指します。
- CEH(Certified Ethical Hacker)
- CompTIA
- EC-Council
- GIAC(Global Information Assurance Certification)
- OSCP(Offensive Security Certified Professional)