tyoshikawa1106のブログ

- Force.com Developer Blog -

Force.com Security Source Code Scannerを活用しよう

開発したコードのセキュリティをチェックするのに

Force.com Security Source Code Scanner というサイトがあります。

 

Salseforce環境のユーザ名などを入力してSubmitボタンをクリックするだけで

チェック処理が実行されます。

 

実行結果はメールにてPDFファイルが送付されます。

このPDFファイルは問題のある処理がわかりやすく指摘されており、

どのように対応すれば良いかまで細かく記載してもらえます。

 

ということで、今回はForce.com Security Source Code Scanner の使い方を

まとめてみたいと思います。

 

① Force.com Security Source Code Scanner を表示


このサイトは次のURLで表示できます。
http://security.force.com/security/tools/forcecom/scanner 

 

このような画面が表示されます。

f:id:tyoshikawa1106:20121218011044p:plain

 

② 必要事項を入力


入力する内容は次のようになります。

 

1. Username

Salseforce環境にログインする際のユーザ名です。

Developer環境のユーザでも実行できました。 

 

2. Description

実行時の説明です。実行結果のメールに表示されていました。

 

3. Scan Profile 

実行種別と思われます。

All Rulesを選択しておけば全ての処理が対象となると思います。

 

③ Submit ボタンでチェック開始


必要事項を入力してSubmitボタンをクリックすると

次の確認メッセージが表示されます。

f:id:tyoshikawa1106:20121218012643j:plain

 

利用規約に同意しますかという内容です。

 

訳してみて気になったところは

"Security Scannerは、Salesforce.comのサービスの一部ではありません。"

というあたりですね。

 

どうやら"Cherkmarx"という会社が提供してくれているようです。

 

利用規約に問題がない場合は、Acceptボタンをクリックして下さい。

チェック処理が実行されます。

 

無事に実行されると「Scan scheduled succesfully」と表示されます。

f:id:tyoshikawa1106:20121218013901p:plain

 

これで実行結果がメールで送付されます。

チェック対象が多いとメールが届くまで少し時間がかかることがあります。

 

また、実行に失敗すると次のようなエラーメッセージが表示されます。

f:id:tyoshikawa1106:20121218020545p:plain

 

"アプリケーションは2時間ごとにスキャンできます"といった内容でした。

 一回実行したら少し時間をあけてくださいということですね。

 

④ メールの確認


正常に実行が完了すると次のようなメールが届きます。

f:id:tyoshikawa1106:20121218021015p:plain

 

タイトルのところに Descriptionで入力した内容が表示されていますね。

 添付ファイルが2つありますが、PDFファイルの方が判定結果になります。

 

ちなみにメールの内容はこんな感じだと思われます。

------------------------------------------------------------------------------------------------------------------
要求されたセキュリティスキャンの結果が添付されています。
結果はCheckmarxとの提携を通じて提供されます。
Checkmarxは、ソースコード解析ツールのスイートを通じて、識別、追跡、
および技術的および論理的なセキュリティ上の欠陥を修正するための
強力なソリューションを提供しています。
Checkmarxは、Force.comプラットフォームのソースコードの解析を提供する
最初で唯一の会社です。
http://www.checkmarx.com - その他の詳細および他の対応言語は
Checkmarxのウェブサイトでご覧になれます。
------------------------------------------------------------------------------------------------------------------ 

 

⑤ PDFファイルで結果の確認


PDFファイルの1ページ目は結果をグラフで確認できます。

f:id:tyoshikawa1106:20121218021928j:plain

 

2ページ目以降はいくつかのカテゴリに分けて検証した結果がまとめられています。

左の列のリンクからそれぞれの概要ページに遷移できます。

f:id:tyoshikawa1106:20121218022727j:plain

 

検証カテゴリは次のとおりです。

 

1. Cross-site Scripting (XSS)

XSS対策ができているか検証。

例)必要に応じてJSENCODEをつけていること。

f:id:tyoshikawa1106:20121218025532j:plain

※他にもHTMLENCODEなどが用意されています。

 

2. SOQL SOSL Injection

Injection対策ができているか検証。

 

3. Queryes with no Where chause or no Limit clause

クエリに対してLimitが指定されているか検証。

 

4. Test Methods with Asserts

テストメソッドでSystem.assertEquals等が使用されているか検証。

 

上記の内容で検証が行われます。

 

このサイトの使い方はだいたいこんな感じになります。

まだ使ったことがない方はDeveloper環境のユーザなどで試してみると

なかなか面白いと思います。

 

 

このエントリーはForce.com Advent Calendarに参加しています。

http://atnd.org/events/33649