web-dev-qa-db-ja.com

ファイアウォールは、私が開発しているプログラムがインターネットに接続しようとしていると言います

プログラムは完全に私自身で開発されており、ネットワーク/インターネットに接続する手段/機能がないため、私はこれについて非常に混乱しています。

私はソフトウェアエンジニアですが、コンピューターのセキュリティに関する知識がありません。そのため、WindowsのVisual Studioのデバッガーで実行している間、XP Professionalの場合、Comodoファイアウォールは、「MyProgram .exe」がインターネットに接続しようとしています。

このプログラムがインターネットに接続する理由はないので、ブロックすることを選択します。ファイアウォールログの最後で、MyProgram.exeの5回の接続試行が数分以内に記録され、インシデント全体が「これまでに1つの侵入をファイアウォールでブロックした」と表示されます。

(ところで、プログラムの実際の名前と常駐フォルダーは非常に一意であり、別のプログラムをこれと間違えることは絶対にありません。)

完全なソースコードは、antlrによって自動生成されたパーサーとレクサーを除いて、私が作成しました。自動生成されたソースも私が作成しました。

接続しようとしたと思われる両方のIPの逆引きは、同じ大手インターネット会社に属していると表示されます。

(私は最新のウイルススキャナーを使用しており、このPCでウイルスの問題が発生したことはありません。実行中のプロセスをプロセスエクスプローラーで確認したところ、異常は見つかりませんでした。)

誤検知のように、ファイアウォールのバグでしょうか?

接続試行が実際には別のアプリケーションからのものであり、デバッガーで実行されているためにプログラムと不一致になった可能性がありますか?

そのような状況でのあなたの考え/ステップは何ですか?

これに答えるにはもっと多くの情報が必要だと思いますが、何が関連していて、何を投稿することが重要か重要かはわかりません。何が重要でしょうか?


更新

答えてくれてありがとう。

他の誰かが同様の問題を抱えている場合に備えて、これを見つけやすくするために、私の調査結果についてもう少し詳しく書いています。

私を混乱させた主なものは、次の組み合わせでした。

  • それはランダムに見えました。つまり、トリガーした可能性のある何かと一致させることができませんでした。
  • 私はそれを再現できませんでした(デバッガでもスタンドアロンexeでも)
  • 私はこのプログラムを1年以上開発していますが、これは一度も起こったことはありません
  • その少し前に、(数日前にダウンロードした)別のプログラムがインターネットに接続しようとしましたが、これは必要ではないように思われました/私によってトリガーされませんでした。

短くするために、他のプログラムの接続試行は明らかにそれと無関係であり、おそらく更新チェックだけでした。

IPが属している会社はAkamaiでしたが、再度検索したところ、 記事 が「AkamaiとMicrosoftの間のアライアンス」と「Visual Studio(R )」

したがって、その後、それがVisual Studioである可能性が非常に高いと考え、再現を再試行し、最終的に誤って+記号をクリックして時計のCommonTree変数を展開しました-デバッグ中のウィンドウ。これで常にそれを再現できるようになったので、これも最初にトリガーされたはずです。

つまり、最初に起こったのは、それをクリックして接続試行をトリガーしたことです。これらを5回試行すると、Visual Studioによる1回の接続試行に属し、後でCommonTree変数を展開または縮小します。そのような接続試行は別の接続試行をトリガーしないため、非常にランダムに見えます。
このすべてと、「クリックせずに」それ自体で「デバッグ実行」がトリガーされないという事実が、最初は非常に具体的なトリガーに割り当てられなかった理由です。
"デバッグ中に、ウォッチウィンドウのCommonTree変数を展開しています。".

8
Jennifer Owens

最初にいくつかの質問:

  1. 「同じ大手インターネット会社」とはどういう意味ですか?
  2. MyProgram.exeまたはMyProgram.vshost.exeが接続しようとしていますか?
  3. デバッガなしでリリースモードでアプリケーションを実行するとどうなりますか?

Visual StudioデバッガーがCLRアセンブリのデバッグファイルをダウンロードしようとしていて、ファイアウォールが、アプリをホストしているデバッガーではなく、アプリからのリクエストであると誤解している可能性があります。

5
Steve

プログラムに挿入されたデバッグコードとVisual Studioの間の接続はインターネットプロトコルに基づいている場合があり、ファイアウォールはこれをインターネットへの接続と混同する場合があります。ご存知のように、これらのデスクトップファイアウォールは、お金の価値があることをユーザーに示す必要があります。

Windowsファイアウォールは、Eclipse IDEを介してJavaプログラムをデバッグするときに警告を表示することが知られています。Windowsファイアウォールは、原因を明らかにするために十分な情報を提供します。

デバッグ接続が最も可能性の高い理由ですが、プログラムに感染するウイルスなどの実際の脅威が依然として存在する可能性があります。しかし、ファイアウォールが正確に発見した詳細(プロトコル、ソースIPアドレス、ターゲットIPアドレス、ソースポート、ターゲットポート)がないと、答えることはできません。

3

誤検知である可能性は十分にあります。

可能であれば、ブロックルールを無効にして実行できます(アプリケーションの開発者であるため)

netstat -anob

これは、MyProgram.extが何を使って接続しているかを示します。

実際に接続を確立している場合は、通信しているIPを検索できます(たとえば、何かがMSに属しているか、または奇妙なIPです)。

2
Bassec