自作のプログラムがウイルスとして検出されてしまうのはなぜですか？


引数のポインタ渡しについてのプログラムなのですが、パソコンに入っているスーパーセキュリティというセキュリティソフトに引っかかってしまいました。参考書通りのプログラムなのでプログラム自体の問題かセキュリティソフトの問題なのかわかりません。プログラムの問題でウイルスが検出されるということがあるのかお教え願います。

[code]

    #include <stdio.h>
    
    void myFunc1(int a) {
        a = a * 2;
        printf("myFunc1関数を実行しました\n");
        printf("仮引数aの値は%dです\n", a);
        return;
    
    }
    
    void myFunc2(int *a) {
        *a = *a * 2;
        printf("myFunc2関数を実行しました\n");
        printf("仮引数aの値は%dです\n", *a);
        return;
    }
    
    int main(void) {
        int x = 1; 
        int y = 1;
    
        myFunc1(x);
        myFunc2(&y);
    
        printf("変数xの値は%dです\n", x);
        printf("変数yの値は%dです\n", y);
    
        return 0;
    }
    
[/code]




短い答え：今回のこの件は誤検出です。無視してよいですが、下記設定をしておくとセキュリティソフトの誤検出に悩まされなくてよいでしょう。

長い答え：

> プログラムの問題でウイルスが検出されるということがあるのか

それはもちろん「ウイルスを作っている」のであればビルドしてできた実行形式ファイルがリアルタイム検索で即時ウイルス認定されることはあるでしょう。提示のソースコードには「ウイルス」扱いされる要素は一つも含まれていないので誤検出です。

セキュリティソフトも人間が作っているので完璧ではなく、よってフツーに誤検知があります。オイラも過去に何度も誤検知されたことがあります。またリアルタイム検索とビルドシステムが喧嘩してうまくいかないこともあります。セキュリティソフトの検疫エンジン更新で挙動が変わることもしょっちゅうです。

例： [cygwin](/questions/tagged/cygwin "'cygwin' のタグが付いた質問を表示") の gcc
が作る実行形式ファイルのデフォルト名は `a.exe` ですが、これを「トラップドア」 (コマンドプロンプトで `C>a`
と誤入力するだけで起動する＝操作員の単純ミスで起動し感染することを狙ったソフト）とされた。中身は `int main() {}` のみ。

例： gcc-9.2.0 ソースコードを cygwin64 上でコンパイルしようとすると、ビルド中にウイルスバスター Corp
が脅威検出といって失敗させてくれる

例： `cvs checkout` すると `CVS/Entries` の書き換えとリアルタイム検索とが衝突してソースコードの取得に失敗する

提示ソースコードにいわゆる「脅威」はありませんので心配いりません。むしろ厳密規格合致なとても良いお題だと思います。

PC
用ソフトの開発の際には、開発用に使うディレクトリはいわゆるリアルタイム検索の対象外にしておきましょう。開発途中のソフトウエアがバグっている＝セキュリティソフトから見て脅威アリと判断されるのはごく普通のことです。それをいちいち検疫されてしまうとデバッグできません。一通りバグがなくなって対外リリースの前には一応検査してみるとよいです。

具体的にどう操作するとよいかはセキュリティソフトによって違うのでご自分で確認してください。




短い答え：今回のこの件は誤検出です。無視してよいですが、下記設定をしておくとセキュリティソフトの誤検出に悩まされなくてよいでしょう。

長い答え：

> プログラムの問題でウイルスが検出されるということがあるのか

それはもちろん「ウイルスを作っている」のであればビルドしてできた実行形式ファイルがリアルタイム検索で即時ウイルス認定されることはあるでしょう。提示のソースコードには「ウイルス」扱いされる要素は一つも含まれていないので誤検出です。

セキュリティソフトも人間が作っているので完璧ではなく、よってフツーに誤検知があります。オイラも過去に何度も誤検知されたことがあります。またリアルタイム検索とビルドシステムが喧嘩してうまくいかないこともあります。セキュリティソフトの検疫エンジン更新で挙動が変わることもしょっちゅうです。

例： [cygwin](/questions/tagged/cygwin "'cygwin' のタグが付いた質問を表示") の gcc
が作る実行形式ファイルのデフォルト名は `a.exe` ですが、これを「トラップドア」 (コマンドプロンプトで `C>a`
と誤入力するだけで起動する＝操作員の単純ミスで起動し感染することを狙ったソフト）とされた。中身は `int main() {}` のみ。

例： gcc-9.2.0 ソースコードを cygwin64 上でコンパイルしようとすると、ビルド中にウイルスバスター Corp
が脅威検出といって失敗させてくれる

例： `cvs checkout` すると `CVS/Entries` の書き換えとリアルタイム検索とが衝突してソースコードの取得に失敗する

提示ソースコードにいわゆる「脅威」はありませんので心配いりません。むしろ厳密規格合致なとても良いお題だと思います。

PC
用ソフトの開発の際には、開発用に使うディレクトリはいわゆるリアルタイム検索の対象外にしておきましょう。開発途中のソフトウエアがバグっている＝セキュリティソフトから見て脅威アリと判断されるのはごく普通のことです。それをいちいち検疫されてしまうとデバッグできません。一通りバグがなくなって対外リリースの前には一応検査してみるとよいです。

具体的にどう操作するとよいかはセキュリティソフトによって違うのでご自分で確認してください。

