web-dev-qa-db-ja.com

IDE対ファットアプリ対ウェブアプリでの安全なコードレビューの利点

次のような商用の安全なコードレビューツールを使用したことがある方のために:

  • Klocwork
  • コベリティ
  • 装甲
  • Fortify
  • Checkmarx
  • Appscan Source Edition(以前のOunce)

または、次のようなフリーまたはオープンソースの同等物:

  • CAT.NET
  • FindBugs
  • Klocwork Solo
  • 装甲デモ
  • Fotify Teamserverデモ(または本に付属するAudit Workbench)
  • OWASP O2(オンスオープン)

一般に、DE内のプラグイン/アドオン(例:Fortify Secure Coding Plugin for Eclipse)、スタンドアロンのファットアプリ(例:Audit Workbench)、Webアプリケーション(例:Armorize、Fortify Teamserver)、完全なビルドサーバーソリューションなどを好みますか?どうして?

7
atdre

答えはそれほど多くありませんが、各製品の機能セットと各インターフェイスの使用可能性に大きく依存すると思います。
例えば。 FortifyのIDEプラグイン、fatapp、およびwebappは、サポートされている機能では同等ではありません。さらに、FortifyのEclipseプラグインは、独自のVisualStudioプラグインと同等ではありません。

ただし、原則として、他のすべてが等しいと仮定すると、私の好みは次のようになります。

  • 監査人/セキュリティコンサルタントとして、私はスタンドアロンを好みます。彼らの環境をいじり始める必要はありません。
  • 開発者として(そして私のクライアント/開発者にとって)、IDEプラグインを好むので、すべてをそれらの前に置くため、別のツールを開く必要がないので、彼らは忘れません。それ、彼らの開発/コンパイルの一部にするなど.
  • 統計用のWebアプリ(Fortify triedが360サーバーで何をすべきか、IMOではない)は、管理などに最適です。

注、上記は主に、手動のコードレビューではなく、自動化されたコードスキャナーに依存していることに注意してください。それが必要な場合もありますが、通常は通常十分ではありません。

3
AviD

開発ライフサイクルのアプローチに応じて、どちらか一方を選択する必要があります。たとえば、通常、スクラムプロジェクトでは、IDEベースのものは、バックログアイテムを追加して、コードをスプリントごとに1回、または1日1回スキャンすることは非常に有用です。

一方、WaterfallまたはSpiralで開発している場合は、スタンドアロンバージョンのツールを使用する方が、多くのパッケージを統合するための賢い選択になります。

AviDが開発者以外に言及したように、スタンドアロンバージョンの方が良いでしょう

3

MavenプラグインとTeam Foundationプラグインの簡単なタッチを使用して、スタンドアロンとしてFortifyを操作したことで、AviDと同様の設定ができました。

  • スタンドアロンは、完全なコードベースを提供できる場合は非常に便利です。スタンドアロンは、すべての依存関係がある限り、すばやく動作します。

  • 定期的なテストシナリオを実装するには、プラグインが最適です。プラグインを組み込んで、コンパイルとビルドでセキュリティの問題を自動的にレビューします。

  • 管理にはレポートと傾向分析が必要なので、管理サーバーが必要です。

tl; dr-AviDが言ったこと、かなり:-)

3
Rory Alsop

私の経験に基づくと、スタンドアロンアプリはおそらくコード監査人やコードレビュー担当者にとって最も素晴らしいものになるでしょう。

Webベースのインターフェースの利点はコラボレーションにあります。アプリケーションをすべて監査し、静的分析の警告をトリアージして分析し、警告がバグであるかどうかの分析とその重大度を入力するチームがある場合など。Webベースのインターフェースは、そのために最適です。

私は個人的に開発者が何を好むのかわかりません。 IDEプラグインは、迅速なフィードバックを提供する機能と、開発者がすでに使用しているワークフローとの統合のため、利点があると思いますが、私はここで推測しています。

1
D.W.