ホームページ  >  記事  >  バックエンド開発  >  商用レベルの Fortify ホワイト ボックス アーティファクトの導入と使用分析

商用レベルの Fortify ホワイト ボックス アーティファクトの導入と使用分析

WBOY
WBOYオリジナル
2016-06-20 12:37:253227ブラウズ

1. Fortify とは何ですか?何ができるのですか?

答え: fottify の正式名は: Fortify SCA で、HP の製品です。これは静的なホワイトボックス ソフトウェア ソース コード セキュリティ テスト ツールです。データ フロー、セマンティクス、構造、制御フロー、構成フローなどの 5 つの主要な組み込み分析エンジンを通じて、アプリケーション ソフトウェアのソース コードを静的に分析します。分析プロセス中に、独自のソフトウェア セキュリティ脆弱性ルール セットと包括的に照合します。 、ソース コードに存在するセキュリティの脆弱性をスキャンし、レポートを提供するために検索します。

2. スキャンは何ヶ国語をサポートしていますか?

答え: FortifySCA でサポートされている 21 言語は次のとおりです:

1. asp.net     2. VB.Net     3. c#.Net     4. ASP     5. VBscript     6. VS6     7.java     8.JSP     9.javascript     10. HTML     11. XML     12. C/C++     13.PHP     14.T-SQL     15.PL/SQL     16. Action script      17. Object-C (iphone-2012/5)     18. ColdFusion5.0 - 选购     19. python -选购     20. COBOL - 选购     21.SAP-ABAP -选购

3. 無料ですか?

答え: いいえ、料金がかかります。もちろん、インターネットには亀裂はありません。月々10万も請求されているようです。

4. 使い方は?

Fortify をインストールした後、

インターフェース:

高度なスキャンを選択します

彼は更新したいかどうか尋ねました? 私は個人的なものなので、2015 年 7 月に 1 か月の試用期間付きで購入したので、[いいえ] を選択しました。 アップデート後は使えなくなると思います。購入する場合は「はい」を選択してください。

選択後、次のインターフェースが表示されます。

参照とは、スキャン後の保存結果が保存されるパスを意味します。

次に、「次へ」をクリックします。

パラメータの説明:

enable clean :把上一次的扫描结果清楚,除非换一个build ID,不然中间文件可能对下一次扫描产生影响。enable translation: 转换,把源码代码转换成nst文件-64: 是扫描64位的模式,sca默认扫描是32位模式。-Xmx4000m:4000M大概是4G,制定内存数-Xmx4G :也可以用G定义这个参数建议加-encoding: 定制编码,UTF-8比较全,工具解析代码的时候指定字符集转换的比较好,建议加,如果中文注释不加会是乱码。-diable-source-:rendering:不加载与漏洞无关的代码到审计平台上,不建议加,这样代码显示不全。

次に「次へ」をクリックします

次のように表示されます: これは J2EE Web アプリケーションです

「いいえ」を選択します (PHP をスキャンしているため)

次にスキャン (スキャンを開始します)

常にバックグラウンドで実行 意味: 常にバックグラウンドで実行

バックグラウンドで実行 意味: バックグラウンドで実行

キャンセル 意味: キャンセル

詳細 意味: 詳細

スキャン後:

なしは他の 1 つを表します

A1 挿入 7

A3 xss 37

A4 35 安全でない直接オブジェクト参照

A6 機密データ4 回公開

A10 未検証のリダイレクトと転送 2 回

英語で見つかった場合は、次のように中国語に変更したいと思います:

以下は公式 Web サイトが提供する分析チャートです。

脆弱性の分析:

なし 脆弱性:

これは可変変数であり、中国語では「可変範囲」と呼ばれます。

この脆弱性の原理について話しましょう:

Variable 変数

$first ="hello";$hello ="world";echo $first." ".$$first;

結果は hello world です

$$first は $hello,なぜなら $ first の値は hello

——————————しかし foreach では異なります————————————————————

<?php$a = 'sss';foreach ($_GET as $key => $value) {     //如果在foreach那就不一样了     echo $$key;  //将$$区分开 然后$key 等于键 然后开始合并 比如打开http://www.com.com/demo.php?a=值 就变成了$a  因为$key的键是a 所以就变成了$a     $$key = $value;//$a = 值  替换变量    }echo '<hr '>';echo $a;?>

A1 インジェクションの脆弱性:

$c 変数がクライアントによって制御されていることが判明しましたGETリクエストを行っています。

safe_replace 関数は次の文字をフィルタリングします:

function safe_replace($string) {$string = str_replace('%20','',$string);$string = str_replace('%27','',$string);$string = str_replace('%2527','',$string);$string = str_replace('*','',$string);$string = str_replace('"','"',$string);$string = str_replace("'",'',$string);$string = str_replace('"','',$string);$string = str_replace(';','',$string);$string = str_replace('<','<',$string);$string = str_replace('>','>',$string);$string = str_replace("{",'',$string);$string = str_replace('}','',$string);$string = str_replace('//','',$string);return $string;}

include $c.".php"; ただし、最後に結合された .php があります。

ただし、PHP バージョンが 5.3.40 未満の場合は、%00 のバイナリ表現である null バイトを文字列の末尾として使用できます。他の説明によれば、それは切り詰められます。 。 。 。 。

A3 xss 脆弱性

$field_sql="update ".DB_PRE."member set {$field_sql} where userid={$last_id}";$query=$this->mysql->query($field_sql);

データベースへの書き込みには制限がありません、またはデータベースへの書き込み時に何も行われません出力 フィルタリングは直接出力するため、XSS が発生します。 (一つ一つ説明はしません)

A4 安全でない直接オブジェクト参照の脆弱性

ファイルアップロード数の管理に失敗しました。それは攻撃につながる可能性があります。

A6 機密データ漏洩の脆弱性:

A10 認証されていないリダイレクトおよび転送の脆弱性:

ここでは触れませんPHP をある程度知っている人なら誰でも理解できるでしょう。 。

これで基本的にすべてのプロセスは終了しましたが、メモリを設定するときにメモリを設定しないと、自動的に設定されることを皆さんに思い出していただきたいと思います。コンピュータのメモリは 8G です。自動的に 8G に設定され、メモリの 8G が占有されるため、コンピュータの動作が遅くなります。次回スキャンする前に必ずメモリを設定してください。コンピュータに 8G のメモリがある場合は、1G 残っている場合は 4399 個のミニ ゲームをプレイできます。 ~_~

* 寄稿 著者: Xindong、 FreeBuf Hackers and Geeks (FreeBuf.COM) から転載

声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。