📗
owasp-sqm-ja
  • OWASP Security Qualitative Metrics ja
  • OWASP セキュリティ定性メトリクス 日本語版
    • OWASP セキュリティ定性メトリクス
    • メトリクス
    • 方法論と背景
    • FAQ
    • 寄稿
    • 参考情報
Powered by GitBook
On this page
  • アプリケーションアーキテクチャ、設計、実装で重要となる事柄に関連するメトリクス
  • テクノロジで重要となる事柄に関連するメトリクス
  • 環境で重要となる事柄に関連するメトリクス
  • コード生成で重要となる事柄に関連するメトリクス
  • 開発方法論で重要となる事柄に関連するメトリクス
  • ビジネスロジックで重要となる事柄に関連するメトリクス

Was this helpful?

  1. OWASP セキュリティ定性メトリクス 日本語版

メトリクス

PreviousOWASP セキュリティ定性メトリクスNext方法論と背景

Last updated 4 years ago

Was this helpful?

アプリケーションアーキテクチャ、設計、実装で重要となる事柄に関連するメトリクス

第一グループでは、主に技術的な決定に関する詳細がウェブアプリケーションソフトウェアに対して評価されます。これらの決定はアプリケーションアーキテクチャ、設計、実装に関連していることがあります。ソフトウェア開発者、アーキテクトなどの技術スタッフはソフトウェアを設計および実装する際にこのリストを利用できます。

#

G

説明

O W A S P

1

A

ビジネス要件のグループ化と階層に適したメニュー構造の使用

1.4

2

A

階層化アーキテクチャの使用

1.9

3

A

シングルサインオンの使用

2.1

4

A

メニュー作成時だけではなくリクエストベースの認可と真正性の制御

2.1

5

A

ユーザーフォームの自動入力の防止

2.2

6

A

サーバーサイドの認証トークンをベースとしたサービスコールの停止

2.4, 4.9

7

A

https の常用をベースとした基本認証

2.4

8

A

安全な例外処理、安全な失敗

2.6, 4.8

9

A

最小最大長とヌル値ではないことについてユーザーフォームの妥当性確認

2.7

10

A

パスワード忘れと変更の安全な二次認証メカニズム

2.8, 2.9

11

A

危険な機能を特権ユーザーに制限 (アカウント停止など)

2.8

12

A

機密情報なしの安全なログ記録

2.12

13

A

一方向ハッシュパスワード

2.13

14

A

暗号化されたリンクと URL の使用

2.16, 3.6

15

A

パスワード削除時における複数経路の使用

2.17

16

A

パスワード削除時におけるランダムに生成されたデータの使用

2.17, 2.22

17

A

認証情報のない認証エラーメッセージ

2.18

18

A

デフォルトパスワードの使用なし

2.19

19

A

ブルートフォース攻撃を防ぐための CAPTCHA の使用

2.2

20

A

一元化された安全な認証データの使用

2.21

21

A

アカウントソフトロックおよびハードロック機構の使用

2.23

22

A

回復のための信頼できる秘密の質問セットの使用

2.24

23

A

最近使用された (直近 N 世代) 古いパスワードの使用防止

2.25

24

A

リスクの高い機能に対する二要素認証の使用

2.26

25

A

適切なパスワード制約の使用

2.27

26

A

認証成功と失敗の時間が平均して同じ

2.28

27

A

コードからシークレットコード、API キー、パスワードの除去

2.29

28

A

二要素認証または同様の強力な認証機構の使用

2.31

29

A

管理インタフェースの保護

2.32

30

A

個別のウェブ/イントラネットアプリケーションとしての管理インタフェースの設計

2.32

31

A

ブラウザのオートコンプリートやパスワードマネージャとの統合の無効化

2.33

32

A

新しい認証には新しいセッションを開き、セッション ID のオリジンを確認

3.1, 3.7, 3.10

33

A

すべてのユーザーセッションを終了する適切なログアウト機能

3.2

34

A

タイムアウト後または一定の非アクティブ期間後の自動的なセッションの終了

3.3, 3.4

35

A

認証されたすべてのページからログアウト機能に簡単アクセス

3.5

36

A

HttpOnly と Secure クッキーパラメータを設定する中核となるクッキージェネレータの採用

3.12

37

A

アクティブセッション数の制限

3.16

38

A

アクティブセッションの可視化

3.17

39

A

パスワード変更時にすべてのアクティブセッションの終了

3.18

40

A

RBAC 原則の適用

4.1

41

A

データアクセス制御の使用

4.4

42

A

アクセス制御の一元化とアクセス制御データの保護

4.8, 4.10, 4.11

43

A

ソースコードライブラリおよびあらゆる種類のリソースに対するソース管理の使用

4.11

44

A

アクセス制御成功と失敗の両方のログ記録

4.12

45

A

価値が低いシステムや重要度が低いシステムのための安全な二次的アクセス制御

4.15

46

A

状況に応じた認可

4.16

47

A

入力フィールドに対するサーバーサイドの妥当性確認

5.3, 5.5

48

A

リモートファイルインクルードを防止するためにすべてのファイルインクルードを確認

5.13

49

A

ウェブページでスクリプトコードの直接使用なし

5.14

50

A

ウェブページでスタイルコードの直接使用なし

5.14

51

A

すべての文字列変数に対するリソースファイルの使用

5.15

52

A

サーバーサイドの妥当性確認とともにクライアントサイドの妥当性確認を使用

5.18

53

A

REST サービスに独自の妥当性確認

5.19

54

A

RSS、クッキー、バッチファイルなどのすべてのタイプの入力を妥当性確認

5.19

55

A

非構造化データをクリーンにするためのサーブレットフィルタの使用

5.21

56

A

HTML エディタを注意して使用および不必要な使用を回避

5.22

57

A

HTML 無害化の使用

5.23

58

A

安全なログアウト機能の使用

5.26

59

A

ログアウト時にログイン情報を削除

5.26

60

A

安全に失敗するセキュアな暗号化モジュール

7.2

61

A

暗号文の完全性を確認

7.2

62

A

暗号機能のセキュアな動作モードを選択

7.8

63

A

暗号鍵のセキュアなライフサイクルを実施

7.9, 7.11

64

A

鍵なしハッシュ関数の使用

7.9, 7.11

65

A

物理鍵の使用

7.11

66

A

暗号化されたユーザーパスワードをデータベースに保存

7.12

67

A

ソフト削除の際、重要なデータは 00 で置換

7.13

68

A

すべての鍵とパスワードはインストール時に置換

7.14

69

A

機密データ (セッション識別子、パスワード、ハッシュ、または API トークン) のログ記録なし

8.7

70

A

印字不可能な文字の文字エンコーディングおよび固定ファイル形式を用いたログ設計によりログインジェクションを防止

8.8

71

A

プロパティファイルからエラーメッセージおよびユーザーアラートを取得することによりログインジェクションを防止

8.8

72

A

サードパーティサービスなどの外部リソースからのログエントリをフィールドでマーク

8.9

73

A

ログファイルの自動処理の前に外部から発信されたログエントリをフィルタ

8.9

74

A

イベントの否認防止のためにすべてのユーザーアクティビティをユーザー ID でログに記録

8.10

75

A

ユーザーアクティビティの否認防止のためにソフト削除の使用

8.10

76

A

ログファイルをアプリケーションファイルとは異なるディスクパーティションに保存

8.12

77

A

複数のウェブサーバー間での共通クロックの使用

8.13

78

A

HTTP ヘッダパラメータとキャッシュを使用してクライアントサイドのキャッシュを防止 (Cache Control, Pragma)

9.1, 9.4

79

A

アプリケーションに対する機密データのリスト化 (金銭データなど)

9.2

80

A

機密データを持つアプリケーションパーツに対して制限されたユーザーグループを認可

9.2

81

A

機密データを持つパーツに対して二次認証を使用

9.2

82

A

機密データの転送に URL パラメータの使用なし

9.3

83

A

HTTP ページの body セクション外に機密データなし

9.3

84

A

重要なクエリページでの CAPTCHA の使用

9.8

85

A

クライアントサイドで保持されるデータは最低限であり、ユーザーセッション終了時に削除

9.9

86

A

すべてのデータテーブルに対して作成および更新情報を保持

9.10

87

A

重要なデータに対するアクセス情報履歴を格納するための構造の使用

9.10

88

A

データの寿命を制限するために文字データを String ではなく char [] に保持

9.11

89

A

重要なデータをメモリで使用後にゼロで置換

9.11

90

A

HTTPS の強制使用を実施するための HTTP ヘッダでの Http Strict Transport Security (HSTS)

10.3, 10.11

91

A

TLS 接続失敗をログ記録

10.4

92

A

クライアントサイドで証明書の使用なし

10.5

93

A

クライアントでの信頼できる証明書の使用

10.5

94

A

TLS と非 TLS ページの混在なし

10.6

95

A

MITM 攻撃を防ぐために Public-Key-Pins HTTP ヘッダを設定

10.1

96

A

web.xml で望ましくない HTTP メソッドを定義

11.1

97

A

望ましくない HTTP メソッドに対するロガーをコントローラに定義

11.1

98

A

XHTML コードに文字セット定義を組込

11.2

99

A

クライアントアプリケーションでの認証トークンの使用

11.3

100

A

サードパーティに表示してはならないページに対する X-FRAME-OPTIONS の使用

11.4

101

A

ヘッダにアプリケーションバージョン (powered by, server, MVC) なし

11.5

102

A

リクエストとレスポンスに対してコンテンツと MIME タイプを確認

11.6

103

A

REST アプリケーションにレスポンス定義タイプを組込

11.6

104

A

XML, JSON タイプの入力を伴うサービスメソッドに対して処理する前にコンテンツチェックを実行

11.7

105

A

XSS 攻撃を防ぐために X-XSS-Protection ヘッダを有効化

11.8

106

A

セキュリティ上の問題となる可能性があるコードに対してサンドボックスを使用

13.1

107

A

エラー処理が正しく機能することを確認

13.1

108

A

重要なコードが複数の開発者により検査されていることを確認するために頻繁なコードレビューを実施

13.1

109

A

ネガティブテストの使用

13.2

110

A

ブルートフォース攻撃に対する重要な操作での CAPTCHA の使用

15.2

111

A

URL 書き換えに対してフィルタをするための web.xml ファイルの使用

16.1

112

A

ファイルアップロード時の禁止の代わりに特定ファイルを許可

16.4

113

A

実行可能ファイルのアップロードの許可なし

16.8

114

A

検証情報から UDID, IMEI および同様のモバイルデバイスデータを削除

17.1

115

A

モバイルデバイスからのファイルダウンロードを防止

17.2

116

A

キーチェーンや認証データなどの機密データをモバイルデバイスに保存なし

17.3

117

A

認証データ (ワンタイムパスワード、API キー、トークン) を動的に生成

17.4

118

A

モバイルデバイスでの画面キャプチャに機密データなし

17.5

119

A

認可は最小限の資産にのみ付与

17.6

120

A

モバイルデバイスでの制限されたファイルダウンロードおよびアップロード

17.9

121

A

クライアントおよびサーバーコードで UTF8 を使用

18.1

122

A

REST サービスに対して受信コンテンツタイプを確認

18.8

123

A

クライアントとサーバー間でペイロード署名を使用

18.9

124

A

外部ウェブサービスと内部サービス機能を分離

18.9, 18.10

125

A

単一のサーバーを共有する複数のアプリケーションに対してサンドボックスを使用

19.4

126

A

すべてのシステムレベル言語に対してセキュリティチェックフラグを組込

19.9

127

A

アプリケーション資産 (JavaScript やスタイルシートファイルなど) はインターネットに依存なし

19.10

テクノロジで重要となる事柄に関連するメトリクス

第二グループには、テクノロジに関連する詳細があります。これらのテクノロジは開発環境に関連している場合もあれば、フレームワークソフトウェアなどのソフトウェアの一部である場合もあります。このリストはプロジェクトマネージャやプロダクトオーナーだけでなく技術スタッフにも恩恵を受ける可能性があります。提示される情報はプロジェクトの遂行に影響を与える可能性があります。これらのテクノロジ上の決定はアーキテクチャ上の決定につながる可能性さえあります。セキュリティ定性メトリクスの他のパートはテクノロジの選択に影響されませんが、このパートではユーザーがテクノロジに依存する提示に遭遇する可能性があります。選択したテクノロジが提示されたものと一致する場合、ユーザーはこれらの提示をそのまま受け取ることができます。そうではない場合、ユーザーは選択したテクノロジでの同様のプロパティやソリューションについて確認します。

#

G

説明

O W A S P

128

B

一元化されたセキュリティ管理策として Spring Security を使用

1.7

129

B

データ、ビュー、コントローラコンポーネントを明確に分離するための Spring MVC の使用

1.9

130

B

クライアントコードからシークレットコードおよびビジネスロジックを除くために Spring MVC を使用

1.10

131

B

信頼できるリファレンスを持つバグのないテクノロジを使用

1.11

132

B

新しく登場したテクノロジ、ライブラリ、サードパーティツールなどには懐疑的

1.11

133

B

CSRF 攻撃から保護するために Spring CSRF 対策トークンを使用

4.13

134

B

集中的な更新を防止するためにデータベースリソースガバナーを使用

4.14

135

B

Java ネイティブライブラリの使用なし

5.1

136

B

一元化されたバリデーションとして JSF または同様のフレームワークを使用

5.6

137

B

SQL インジェクションを防止するために ORM (Hibernate など) を使用

5.10

138

B

Spring バリデータの使用

5.16

139

B

Spring InitBinder の使用

5.16

140

B

Java Spring フレームワークによるリクエストパラメータの区別

5.17

141

B

電子メール、電話または同様のフィールドに対する Java Regex の使用

5.20

142

B

Javascript では innerHTML ではなく InnerText を使用

5.24

143

B

Javascript では eval 関数ではなく json.parse を使用

5.25

144

B

java.util.random ではなく java.security.SecureRandom を使用

7.6, 7.15

145

B

FIPS-140-2 または同等のものに対して Bcrypt ではなく SHA-256/SHA-512, PBKDF2-HMAC を使用

7.7

146

B

エラーメッセージには機密データの含有なし

8.1

147

B

一元化されたエラー処理メカニズムおよびコード

8.2

148

B

ライブラリファイルを使用することにより重要な中央ロジックを隠蔽

8.2

149

B

セキュリティ関連機能の成功と失敗の両方をログに記録

8.3

150

B

ログにはイベントのタイムラインを形成するために必要なデータを組込

8.4

151

B

データベースに保存されている重要なデータを不正アクセスから保護

9.5

152

B

すべての認証された接続に対する TLS の使用

10.3

153

B

機密データを伴う転送に対する TLS の使用

10.3

154

B

ウェブサーバーと互換性のある最新の TLS バージョンの使用

10.16

155

B

Java SecurityManager の使用

13.1

156

B

カスタム書き換えルールに対する Apache Tomcat での mod-rewrite の使用

16.1

157

B

URL 書き換えをフィルタするための URLRewritingFilter の使用

16.1

158

B

外部ファイルのロードのためのドキュメント管理システムの使用

16.2

159

B

外部ファイルをディスクファイルではなくバイト配列として保存

16.2

160

B

クロスドメインリソース共有を制限するために Spring を使用

16.5, 18.7

161

B

Flash の使用なし

16.9

162

B

非ネイティブ Java テクノロジ (Silverlight など) の使用なし

16.9

163

B

モバイルアプリに対してスクリーンキャプチャ防止をインストール

17.5

164

B

モバイルデバイスでの ASLR テクノロジの使用

17.7

165

B

クライアントサイドでのリモートデバッグアプリの存在と実行可能性を確認

17.8

166

B

ウェブサービススキーマ形式 (JSON など) のアノテーション

18.3

167

B

Spring 入力バリデーションを使用

18.4

168

B

静的 API キーの使用なし

18.6

環境で重要となる事柄に関連するメトリクス

第三グループ

#

G

説明

O W A S P

169

C

ネットワークの分離

1.8

170

C

ファイアウォールルールの使用

1.8, 17.11

171

C

アプリケーションやウェブサーバーでの URL 書き換えを無効化

3.6

172

C

ウェブサーバーで十分に長いセッション ID を構成

3.11

173

C

ウェブサーバーでディレクトリブラウジングを無効化

4.5

174

C

ウェブサーバー上に SVN/Git ファイルの保存なし

4.5

175

C

SonarQube などの静的コード解析ツールの使用

5.12, 5.13, 5.14

176

C

信頼できるログ閲覧ソフトウェアの使用

8.5

177

C

ログファイルを不正アクセスから保護

8.6

178

C

システム管理室に物理的セキュリティを使用

8.6

179

C

ネットワークデバイスからアクセスできないシステムルーム

8.6

180

C

不正な改変を防ぐために別の場所でログファイルを取得

8.11

181

C

信頼できる証明書をサーバーにインストール

10.1

182

C

運用開始前に各ブラウザタイプの TLS バージョンを確認

10.8

183

C

ウェブサーバー構成ファイルから forward secrecy 暗号を削除

10.10

184

C

ウェブサーバーで適切な証明書失効を有効化 (Apache の OCSP ステープリング)

10.10

185

C

IDE により与えられる警告を考慮

13.1

186

C

テストカバレッジ分析のための SonarQube の使用

13.1

187

C

URL リダイレクトをサーバーからチェックまたはフィルタ

16.1

188

C

外部ファイル入力に対してウェブサーバーでアンチウィルス保護を使用

16.3

189

C

ドキュメント管理の一部として権益システムを使用

16.3

190

C

ドキュメント管理システムを別のサーバーに配置

16.6

191

C

クロスドメインリクエストに対してウェブサーバーが閉じている (これはデフォルトの動作である) ことを検証

16.7

192

C

クライアントサイドでコードを実行している場合にはクライアントでのクライアントデバッグを防止

17.8

193

C

メモリデータ漏洩を防ぐために頻繁に収集するよう JVM を構成

17.10

194

C

IDE で UTF-8 を構成

18.1

195

C

サードパーティに公開されているウェブサービスに対してウェブサービス管理チームを割り当て

18.2

196

C

TLS の使用を構成

18.5

197

C

各デプロイの前にウェブサービスのデプロイメントパスをクリア

19.1

198

C

アプリサーバーとデータベースサーバーを同じネットワークコンパートメントに保持。そうでなければそれらの間の変換を暗号化

19.2

199

C

アプリサーバーデータベースユーザーに DML (DDL ではない) アクセス権のみを付与

19.3

200

C

ウェブアプリケーションに対して専用サーバーまたは専用仮想サーバーを使用

19.4

201

C

コンパイル、ビルド、デプロイメントに対して自動化されたプロセスとツールを使用

19.5

202

C

システム管理機能には許可された担当者のみがアクセス可

19.5, 19.6

203

C

自動ビルド/デプロイツールにファイル整合性チェッカを追加

19.6

204

C

署名付き Jar のみを実行するようにウェブサーバーを構成

19.7

205

C

自動デプロイの一部として Jar Signer を使用

19.7

206

C

信頼できるサーバーからサードパーティライブラリをダウンロードするようにビルド自動化ツールを構成

19.8

コード生成で重要となる事柄に関連するメトリクス

第四グループには、プロジェクトのセキュリティに関連して自動コード生成に関連する特性が含まれています。細部およびより詳細なセキュリティ問題は自動コードジェネレータに依存するため、このパートでは、重要で一般的な原則のみが含まれています。

#

G

説明

O W A S P

207

D

クライアントにビジネスロジックなしでの自動コード生成

1.10

208

D

RFI のリスクを排除するための標準化されたコードの使用

5.13

開発方法論で重要となる事柄に関連するメトリクス

第五グループには、自動コード生成に加えて、すべてのチームが採用するいくつかの開発方法論と原則があります。このパートのメトリクスは主にトップレベルの設計上の決定に関連しています。このパートでは、ユーザーは非常に初期のプロジェクト管理関連の決定に関連する項目を見つけることもあります。

#

G

説明

O W A S P

209

E

非表示フィールド、Cookie、および ajax の数を最小限にするために標準化されたフロントエンドを用意

9.7

210

E

自動コード生成での括弧の使用

13.1

211

E

資産をより適切に識別するためにすべての関数、ライブラリ、依存関係を文書化

1.1 ,1.2, 1.5

212

E

高レベルアーキテクチャの文書化

1.3

213

E

よく知られている脅威を含むアプリケーション固有の脅威モデルを準備

1.6

214

E

機密情報ログをクリーンにするために運用開始前にコードを手動検査

8.7

215

E

保持ポリシーの一部として破棄するデータを決定

9.6

216

E

顧客による CA の選択責任

10.1

217

E

サーバー認証のための顧客による認証済み CA の選択

10.1

218

E

各ブラウザごとに保守されている Strict Transport Security ドメインリストに URL を送信

10.2

219

E

digicert で OCSP ステープリングが有効化されていることを検証

10.15

220

E

プロジェクトパッケージ構造ドキュメントを作成

19.1

ビジネスロジックで重要となる事柄に関連するメトリクス

OWASP はビジネスロジック関連の問題の重要性を指摘しています。第六グループには、ソフトウェアプログラムに一般的に存在する主要なビジネス機能に関連するセキュリティチェックが含まれています。

#

G

説明

O W A S P

221

F

金銭的価値に関連するトランザクションを確認

15.1

222

F

日付エントリを伴うトランザクションを確認

15.1

223

F

シーケンシャルイベントに対するトランザクションを確認

15.1

224

F

外部ユーザーに関連するトランザクションを確認

15.1

225

F

ユーザーのグループに関連するトランザクションを確認

15.1

226

F

契約情報にかかわるトランザクションを確認

15.1

227

F

ビジネスの崩壊によりトランザクションを中断

15.2

228

F

互換性のないトランザクションを中断

15.2

229

F

モバイルデバイスではユーザーにファイルダウンロード責任を付与

17.2

230

F

モバイルデバイスからファイルおよびその他の重要な資産にアクセスするために RBAC 制限を使用

17.2

OWASP Incubator
GitHub License
GitHub Release