• 検索結果がありません。

Rails に対応した CWE, CAPEC のサブグラフの作成

第 4 章 提案手法のツール化と実験

4.5 機能評価 (4) セキュリティ知識との連携

4.5.1 Rails に対応した CWE, CAPEC のサブグラフの作成

4.5.1.4 コマンド抽象化ライブラリの更新

コマンド抽象化ライブラリのSC,RCと、選択されたCWE,CAPECとを対応付 ける。CVEに登録されたRailsに関する脆弱性で、実装コードの問題箇所とCWE の関係が特定できる場合は、その関係を登録する。この段階で、分類対象となる コマンドを表4.14に示す。対象となるコマンドの数は、SCで33個、RCで15個 であり、それはツールの開発者で十分に分類可能な数である。また、Railsの実装 コードを関連付けられたCWEは31、CAPECは8となった。

Railsなどに固有なMass Assignmentの脆弱性については、CWE-915が該当 するが、ドメイン選択、フレームワーク選択で選択したCWEには含まれていな い。そのため、選択でもれたCWEについては個別に追加する。

表4.14: コマンド抽象化ライブラリのコマンド数とSC,RC数

Lib. Total SC RC SC example RC example

Ruby 29 1 5 escapeHTML eval, system

Rails 145 15 10 html_escape html_safe, raw, redirect_to Devise 44 9 0 sign_in, sign_out, sign_up

CanCan 9 8 0 authorize!, can, cannot

こうして得られたCWE、CAPECとコマンド抽象化ライブラリのSC,RCとの 関係をグラフで表示すると、図4.12のようになる。ここで、SCを緑の楕円、RC を赤の楕円で示す。CWEのタイプを、Viewは白色の四角、Categoryをシアン色

の四角、Weaknessをピンク色の四角で示す。枠線の色は、関連するコマンドが

SCの場合は緑、RCの場合は赤、両方の場合は青となる。ノード間の接続線も同 様の配色としている。CAPECについても、Categoryをシアン色の四角、Attack

Patternをピンク色の四角で示す。アクセス制御に関するSCと、クロスサイトス

クリプティングに関係する、SCとRCが多い事がわかる。

比較のため、図4.13にRailsのコマンドと対応できなかったCWE、CAPECも 含めた関係図を示す。関連がなかったCWE,CAPECはグレーで表示する。CWEに は400近いエントリが残っており、その全体からみると、Railsのコード実装と対 応するCWEの数、31は全体の1割弱であった。

表4.15: CWE,CAPECの選択数の推移

Reduction Rails sample_app_3rd_edition Railsgoat Type ALL Web app. Rails CALib SC RC CALib SC RC CALib SC RC

CWE View 32 2 2 2 2 2 2 2 2 2 2 2

Category 244 47 36 15 12 9 13 5 9 17 9 16

Weakness 719 418 342 13 8 10 10 5 0 21 15 10

C. E. 8 7 5 1 1 0 0 0 0 0 0 0

total 1003 474 383 31 23 21 25 12 11 40 26 28

CAPEC View 8 0 0 0 0 0 0 0 0 0 0 0

Category 73 20 16 1 1 0 2 2 0 1 1 0

Attack P. 463 267 191 8 5 5 9 6 3 10 7 3

CWE-809

CWE-810 CWE-811 CWE-812

CWE-813 CWE-814 CWE-817

CWE-928

CWE-929 CWE-930

CWE-931 CWE-932 CWE-935

CWE-936

CWE-19 CWE-20

CWE-21 CWE-22

CWE-442

CWE-79

CWE-352

CWE-78

CWE-89 CWE-287

CWE-285

CWE-77

CWE-74

CAPEC-139

CAPEC-18

CAPEC-66 CAPEC-88 validates

redirect_to load_resource load_and_authorize_resource

skip_authorize_resource authorize!

can cannot

can?

has_role?

CWE-521

CAPEC-114

authenticate_user!

authenticate_scope!

allow_params_authentication!

require_no_authentication

sign_up sign_in sign_out

CAPEC-16 CAPEC-49

CAPEC-55 CAPEC-70

CWE-94 CWE-943

system

Kernel.exec xstring_literal CAPEC-232

escapeHTML h html_escape html_escape_once

json_escape sanitize link_to raw content_tag html_safe

sanitize_sql_for_conditions find where constantize

CWE-915 attr_accessible

CWE-95 CAPEC-35

eval

CAPEC-467 CAPEC-62

protect_from_forgery CAPEC-225

CAPEC-21 CAPEC-122

CAPEC-342 File.umask

図 4.12: Railsに関連するCWEとCAPECのグラフ表現

CWE-809

CWE-810 CWE-811 CWE-812

CWE-813

CWE-814 CWE-815

CWE-816 CWE-817

CWE-818

CWE-819

CWE-928

CWE-929 CWE-930

CWE-931 CWE-932 CWE-933

CWE-934

CWE-935

CWE-936

CWE-937 CWE-938

CWE-133

CWE-251 CWE-134

CWE-135

CWE-597 CAPEC-135

CWE-137 CWE-171

CWE-138

CWE-188

CWE-228 CWE-16

CWE-169 CWE-170

CWE-172

CWE-178

CWE-179 CWE-180

CWE-181 CWE-182

CWE-183 CWE-184

CWE-185

CWE-187 CWE-478

CWE-486

CWE-595 CWE-596 CWE-697

CWE-768

CAPEC-267

CAPEC-3 CAPEC-43 CAPEC-52

CAPEC-53 CAPEC-64

CAPEC-71 CAPEC-72

CAPEC-78 CAPEC-79 CAPEC-80

CWE-189

CWE-128 CWE-190

CWE-198

CWE-682

CWE-839 CWE-19

CWE-199

CWE-461

CWE-116 CWE-118

CWE-20

CWE-471

CAPEC-230 CAPEC-231

CAPEC-484 CAPEC-99

CWE-200

CWE-216 CWE-221

CWE-779 CWE-2

CWE-15 CWE-435

CWE-552

CWE-650

CWE-21 CWE-22

CWE-41 CWE-59

CWE-66 CWE-310

CWE-320 CWE-311

CWE-325

CWE-326 CWE-327

CWE-328 CWE-329

CWE-780

CAPEC-485 CWE-321

CWE-322 CWE-323 CWE-324

CWE-442

CWE-113

CWE-425

CWE-444

CWE-601 CWE-611

CWE-644 CWE-646

CWE-647

CWE-776 CWE-784

CWE-79 CWE-827

CWE-352

CWE-462 CWE-463

CWE-464

CWE-60

CWE-62 CWE-61

CWE-78

CWE-88 CWE-89

CWE-90

CWE-91 CWE-287

CWE-306 CWE-307 CWE-798

CWE-434 CWE-639 CWE-829

CWE-862

CWE-863

CWE-99 CWE-209

CWE-219

CWE-250

CWE-538 CWE-732

CWE-312

CWE-759 CWE-285

CWE-319

CWE-77 CWE-256 CWE-522

CWE-523

CWE-613 CWE-620

CWE-640

CWE-384

CWE-215 CWE-548

CWE-112

CAPEC-31

CAPEC-34 CAPEC-63 CWE-114

CAPEC-108 CWE-115

CWE-117

CWE-838

CAPEC-104

CAPEC-18

CAPEC-73

CAPEC-81

CAPEC-86 CAPEC-106

CAPEC-93

CAPEC-92

CWE-131 CWE-140

CWE-147 CWE-148

CWE-149 CWE-150

CWE-151 CWE-152 CWE-153

CWE-154 CWE-155

CWE-156

CWE-157

CWE-158 CWE-159

CWE-790

CAPEC-15 CWE-141 CWE-142 CWE-143 CWE-144 CWE-145

CWE-146

CAPEC-6

CAPEC-460 CAPEC-468

CAPEC-13 CAPEC-146

CAPEC-76 CAPEC-77 CAPEC-41

CWE-56 CWE-160

CWE-162

CWE-164

CWE-166 CWE-167 CWE-168

CWE-161 CWE-37

CWE-50

CWE-163 CWE-42 CWE-46 CWE-49 CWE-54

CWE-43 CWE-52

CWE-165 CWE-45 CWE-53

CWE-173

CWE-174 CWE-175

CWE-176 CWE-177

CAPEC-4

CWE-942 CAPEC-174 CAPEC-182

CWE-186 CWE-625

CWE-191 CWE-193 CWE-470 CWE-606 CWE-622

CWE-626

CWE-73 CWE-74

CWE-692

CAPEC-101 CAPEC-109 CAPEC-110

CAPEC-136 CAPEC-139

CAPEC-171

CAPEC-199 CAPEC-22

CAPEC-244

CAPEC-250 CAPEC-264 CAPEC-265 CAPEC-28

CAPEC-32 CAPEC-473

CAPEC-66

CAPEC-7

CAPEC-83 CAPEC-88

CAPEC-91 validates

CWE-201

CWE-202 CWE-203

CWE-212 CWE-213 CWE-214 CWE-226

CWE-359 CWE-497 CWE-524

CWE-526 CWE-598 CWE-612

CAPEC-59 CAPEC-60

CAPEC-12

CAPEC-217

CWE-204

CWE-205 CWE-208

CWE-206 CWE-207 CAPEC-224 CAPEC-462 CWE-210

CWE-211 CWE-550

CAPEC-215

CAPEC-463

CAPEC-54 CWE-535 CWE-536

CWE-220 CWE-493

CAPEC-474 CWE-433

CWE-23 CWE-36

CAPEC-213

CAPEC-23 redirect_to

CWE-222

CWE-223 CWE-224 CWE-356 CWE-396 CWE-397 CWE-451

CWE-778 CWE-244 CWE-229

CWE-233 CWE-237

CWE-241 CWE-230 CWE-231 CWE-232

CWE-24 CWE-25 CWE-26 CWE-27 CWE-28 CWE-29 CWE-30 CWE-31 CWE-32 CWE-33 CWE-34 CWE-35

CWE-234 CWE-235

CWE-236 CAPEC-39

CWE-238 CWE-239 CWE-240

CAPEC-48

CAPEC-470 CWE-257

CAPEC-49

CWE-258

CWE-259 CAPEC-188

CAPEC-189 CAPEC-190

CAPEC-191

CAPEC-192

CAPEC-205

CWE-260 CWE-261

CAPEC-55 CWE-262

CAPEC-16 CAPEC-70

CWE-263 CWE-276

CAPEC-1 CAPEC-127

CAPEC-19 CWE-277 CWE-278

CWE-279 CWE-281 CWE-926 CWE-927

CAPEC-17

CAPEC-51

CAPEC-87

load_resource load_and_authorize_resource

skip_authorize_resource authorize!

can cannot

can?

has_role?

CWE-301

CWE-303

CWE-304 CWE-308 CWE-309

CWE-521

CWE-592 CWE-603 CWE-645

CWE-804

CWE-836

CAPEC-114

CAPEC-57

CAPEC-94 authenticate_user!

authenticate_scope!

allow_params_authentication!

require_no_authentication

sign_up sign_in

sign_out

CWE-288

CAPEC-56 CWE-289

CWE-290

CWE-291 CWE-293

CWE-350 CAPEC-21

CAPEC-459 CAPEC-461

CWE-294

CAPEC-102

CAPEC-90

CWE-302

CAPEC-274 CWE-305 CAPEC-225

CAPEC-36

CAPEC-40

CAPEC-62 CWE-614 CAPEC-117

CAPEC-155 CAPEC-157

CAPEC-158 CAPEC-167

CAPEC-204 CAPEC-258

CAPEC-259

CAPEC-260 CAPEC-37

CAPEC-383

CAPEC-384

CAPEC-385 CAPEC-386

CAPEC-387

CAPEC-388 CAPEC-389 CAPEC-477

CAPEC-65 CWE-313

CWE-314

CWE-315 CWE-316 CWE-317

CWE-318

CAPEC-74 CAPEC-68

CAPEC-112 CAPEC-20 CWE-916

CAPEC-97

CAPEC-142

CAPEC-464

CAPEC-467 CWE-38 CWE-39 CWE-40

CWE-369

CWE-372

CWE-44 CWE-47 CWE-48 CWE-51 CWE-55 CWE-57 CWE-58 CWE-424

CAPEC-122

CWE-436

CWE-439 CWE-437

CWE-86 CAPEC-105

CAPEC-273 CAPEC-33

CWE-467 CWE-468 CWE-469

CWE-472

CWE-607

CWE-500 CWE-502

CWE-549 CAPEC-50

CWE-525

CWE-527 CWE-528

CWE-529

CWE-530 CWE-531 CWE-532

CWE-533 CWE-534 CWE-542 CWE-539

CWE-540

CWE-651 CAPEC-95

CWE-541 CWE-615 CWE-551

CWE-553

CWE-564 CWE-566

CAPEC-132 CAPEC-35 CWE-593

CAPEC-115

CAPEC-194

CWE-621

CWE-624

CWE-777 CWE-627 CWE-638

CWE-641

CWE-643

CAPEC-209

CWE-652

CAPEC-124

CAPEC-128 CAPEC-129

CWE-694 CWE-689

CAPEC-232

CAPEC-180

CAPEC-234

CAPEC-61

CWE-75 CWE-93

CWE-94 CWE-943

CAPEC-84 CWE-76

CWE-760

CWE-917 CAPEC-11

CAPEC-75 system Kernel.exec

xstring_literal CWE-80

CWE-81

CWE-83

CWE-84 CWE-85 CWE-87

CAPEC-198

CAPEC-243

CAPEC-245

CAPEC-246 CAPEC-247

escapeHTML h html_escape html_escape_once json_escape

sanitize link_to raw content_tag html_safe

CWE-791 CWE-792 CWE-795

CWE-793 CWE-794

CWE-796 CWE-797 CWE-82 CWE-830 CWE-939

CAPEC-133 sanitize_sql_for_conditions

find where constantize

CWE-914 CWE-915 attr_accessible

CWE-95 CWE-96

eval

CWE-97 CAPEC-111

protect_from_forgery

CAPEC-196

CAPEC-27 CAPEC-26

CAPEC-233

CAPEC-236 CAPEC-30

CAPEC-58

CAPEC-341 CAPEC-342 CAPEC-344

CAPEC-351 CAPEC-357

CAPEC-358 CAPEC-359

CAPEC-360

CAPEC-361 CAPEC-367

CAPEC-370

CAPEC-374 CAPEC-376

CAPEC-378 CAPEC-187

CAPEC-107 CAPEC-237 CAPEC-499

CAPEC-120 CAPEC-221 CAPEC-503

CAPEC-140 CAPEC-143 CAPEC-144

CAPEC-166

CAPEC-178 CAPEC-543

CAPEC-544

CAPEC-226

CAPEC-197

CAPEC-200 CAPEC-201

CAPEC-202 CAPEC-206

CAPEC-207

CAPEC-208 CAPEC-510

CAPEC-219

CAPEC-228 CAPEC-229 CAPEC-491

CAPEC-235

CAPEC-238

CAPEC-239 CAPEC-29

CAPEC-466

CAPEC-475 CAPEC-476

CAPEC-501 File.umask

図4.13: Railsに関連するCWEとCAPECのグラフ表現(SC,RCと関連しな いCWE、CAPECを表示)

Outline

関連したドキュメント