問題タブ [fuzzing]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
standards - H.264 規格はどこにありますか?
H.264 用のファザーを少し書きたいのですが、ファイル形式がわかりません。正しい (したがって正しくない) h.264 ファイルを偽造するための標準を教えてください。
ありがとうマティアス
mpeg-4 - MPEG4 AVCヘッダーサイズ?
たった1つの質問:.mp4ファイルのヘッダーのサイズは何バイトですか?
目標は、このヘッダーだけをファジー化することです。
ありがとうカール
security - テスト駆動開発で安全なコーディングをどのように保証できますか?
私は、テスト駆動開発(TDD)という最新のトレンドについて理解を深めてきました。私が行う開発のほとんどはCまたはC++です。一般的なTDDプラクティスと一般的な安全なコーディングプラクティスの間には非常に明白な矛盾があることに気づきました。本質的に、TDDは、失敗したテストがないもののために新しいコードを書くべきではないとあなたに言います。私にとって、それは、コードが安全かどうかを確認するための単体テストがない限り、安全なコードを書くべきではないことを意味します。
それは2つの問題を引き起こします:
バッファオーバーフロー、スタックオーバーラン、ヒープオーバーラン、配列インデックスエラー、フォーマット文字列のバグ、ANSIとUnicodeとMBCSの文字列サイズの不一致、安全な文字列処理(HowardとLeBlancの「WritingSecureCode」から)をテストするユニットテストを効果的に作成するにはどうすればよいですか。 )?
セキュリティの多くは機能しないため、標準のTDDプラクティスのどの時点でこれらのテストを含める必要があります。
驚いたことに、TDDとセキュリティについて議論している研究はほとんど見つかりませんでした。私が出くわすもののほとんどは、TDDが「コードをより安全にする」と非常に高いレベルで言及しているTDDの論文です。
上記の問題に対する直接的な答え、これに関連する調査(私はすでに調べたがあまり見つかりませんでした)、またはTDDの第一人者が住んでいる場所を探しているので、彼らのドアを(事実上)ノックすることができます。彼らが良い答えを持っているかどうかを確認してください。
ありがとう!
編集:
ファジングのトピックが出てきましたが、これはこの問題への優れたアプローチだと思います(一般的に)。これは疑問を投げかけます:ファジングはTDDに適合しますか?TDDプロセスのどこにファジングが適合しますか?
パラメータ化された単体テスト(おそらく自動化されたもの)も私の頭をよぎりました。これは、テストプロセスの早い段階でファジングのような結果を得る方法かもしれません。それがTDDのどこに当てはまるのか正確にはわかりません。
編集2:
これまでの回答ありがとうございました。この時点で、パラメーター化されたテストを活用して関数の疑似ファザーとして機能させる方法に非常に興味があります。しかし、セキュリティをテストするためにどのテストを作成するかをどのように決定するのでしょうか。そして、どうすれば攻撃スペースを適切にカバーできるかを確認できますか?
ソフトウェアセキュリティでよく知られている問題は、5つの攻撃シナリオから保護すると、攻撃者は6番目の攻撃を探して使用するだけです。それは非常に難しい猫とネズミのゲームです。TDDはこれに対して何か利点がありますか?
junit - Junit-プログラムの検証とホワイトボックスのファジング?
プログラム検証はコンピュータエンジニアリングの一分野であることを理解していますが、実際のコードベースへの実際の適用は、組み合わせ爆発によって制限されています。
また、ソフトウェア変更の設計の一環として、既存のJavaフレームワークを変更する場合は、アルゴリズムのホワイトボックス、境界、およびブラックボックステストについて事前に検討しておくと役立つことも理解しています。(このハンモック主導の開発と呼ぶ人もいます-コーディングする前に考えてください。)
この考えを取り入れてjunitスタイルのテストに組み込むと仮定すると、コンテンツのコンピュータサイエンスの名前は厳密に「ホワイトボックステスト/ファジング」であり、「プログラム検証」を構成するには不十分であると想定しています。
だから私の質問は-junitテスト-ホワイトボックスのファジングまたはプログラムの検証ですか?
ruby - Rubyを使用してFTPサーバーをファズする
ねえ、私はRubyに不慣れで、ある言語から別の言語にいくつかのプログラムを移植することによって学ぼうとしています。現在、私はこのperlスクリプトを反映したRubyのFTPファザーに取り組んでいます。
これは私のRubyに相当します:
プログラムを実行すると、次のエラーが発生します。
私は問題をその行までたどりましたが、perlのものでftp.list(buffer)
何をするかを達成するRubyソリューションを思い付くことができません。$ftp->list($buffer)
提案?
security - Linux KVM に対してファジング テストを作成する方法は?
Linux カーネルがホスト カーネルである場合、ゲスト カーネルが仮想マシン内で実行する内容によって悪影響を受けないようにする必要があります。
ゲスト カーネルからホスト カーネルへのインターフェイスをファジングして、そのプロパティをテストしたいと思います。テストをゲスト カーネル内 (たとえば、カーネル モジュール内) で実行し、任意のコードを生成してから、そのコードを実行する必要があることは明らかです。ホスト カーネルがクラッシュした (または何か「興味深い」ことをした) 場合、テストは失敗します。
だから、私の質問は次のとおりです。
- すでにこれを達成しているテストを知っていますか?
- 回避する必要があるホスト カーネルをクラッシュさせると予想される命令はありますか?
- Linuxカーネル内でガベージを生成する最良の方法は何ですか?
- ガベージを生成したら、どうすれば実行できますか?
とりあえず、一般的なファジング アプローチに焦点を当てたいと思います。後でこのテストが機能するようになったら、カーネル内のさまざまな仮想化された命令とドライバーを外科的にファジングするように変更します。
更新:さらに考えてみると、完全なガベージを使用したファジングは機能しません。ホストをクラッシュさせると予想されるよりも頻繁にゲスト マシンをクラッシュさせるからです。ですから、最初から外科的にアプローチする必要があると思います。何かアドバイス?
xml - ファズテスト XML パーサー
XML パーサーのファズ テストを行い、適切なファザーがあるかどうかを知りたいと考えています。
ランダムなガベージを生成するだけでなく、XSD や DTD などの既存のスキーマ仕様を利用できると便利です。
security - 仮想マシンのファジング/リバース エンジニアリング
私はリバース エンジニアリングの初心者/中級者で、専門家への飛躍を目指しています。特に仮想マシンをエスケープするプロジェクトを仮想マシンで実行したいと考えており、それらにファジングを適用できるかどうか疑問に思っていました。VM 内のネットワークと I/O デバイスをファジングするなどして、結果を評価します。これは、VM の脆弱性を見つける有効な方法でしょうか?
また、VM とハイパーバイザーをデバッグするにはどうすればよいですか?
うまくいけば、参照と良い指針を探しています。
まさに私が探していたものに感謝します。もう 1 つの質問は、vbox や qemu などをデバッグする方法です。これは仮想マシンまたはホストで行われますか、それとも提供されるツールはありますか? それは私が確信していない唯一の部分です。
android - ユーザー インターフェースのファジング - Android
アプリケーションの UI 部分をファズ テストできる方法はありますか? 基本的に、ランダムなユーザー入力データ (つまり、ボタンを押す、ツールを選択する、クエリをテキスト ボックスに挿入するなど) をアプリにスローし、ある時点でエラーがスローされるかどうかを確認したいだけです。
これはまったく可能で、Android SDK で実行できますか?
linux - Linux カーネルのファジング: 危険にさらされている学生。
私は現在、コンピューティング関連の学位を取得している大学の学生であり、現在のプロジェクトは Linux カーネルの脆弱性を見つけることに重点を置いています。私の目的は、脆弱性を見つけるために、カーネル (バージョン 3.0 をターゲット) を静的に監査することと「ファズ」することの両方を行うことです。
私の最初の質問は、Linux カーネルの「ファジング」は可能ですか? ということです。多くのプロトコルなどをファジングしている人は聞いたことがありますが、カーネルモジュールについてはあまり知りません。また、Linuxシステムではすべてがファイルとして表示されるため、そのインターフェイスを介してカーネルモジュールへの入力が確実に可能であるべきであることも理解しています。
2 番目の質問は、どのファザーをお勧めしますか? 前述のように、ファジング プロトコルには多くのファザーが存在しますが、カーネル モジュールを攻撃するときにこれらの多くが役立つとは思いません。明らかに、独自のファザーをゼロから「作成」できる Peach ファザーなどのフレームワークがあり、おそらく優れていると思われますが、Peach を何度もインストールしようとしても無駄でした。インストールするだけですでに経験した困難を考えると(誰かがまともなインストールチュートリアルを知っているなら、私に知らせてください:P)。
この問題について、ご提供いただける情報をいただければ幸いです。私が選んだトピックの幅を考えると、方向性についてのアイデアはいつでも大歓迎です。同様に、他の場所から始めるように言わないようにお願いしたいと思います。目の前のタスクのサイズは理解していますが、とにかく挑戦します (私は青空の思想家です:P AKA 牛のように頑固です)
乾杯
A.スミス