Midnight Monologues

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

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

6月1日に緊急事態宣言が解除された。
外出の規制が緩和され店舗営業も再開されつつあり、日常が少しずつ戻りつつある。

気づくと6月に入り梅雨の時期である。
本来であれば7月はオリンピック開催期間だったと考えると
世の中何が起こるか本当に分からない。

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

前提条件

運用日時:2020年5月1日-2020年5月31日
運用期間:31日

結果

①各ハニーポットで検知したAttack件数
  • T-Potを構成する各ハニーポットへの攻撃件数の一覧を以下に記載する。
No ハニーポット 件数 先々月比
1 Dionaea 4,285,355 ▲4,247,982
2 Cowrie 3,869,490 △1,154,410
3 Heralding 2,049,720 △454,851
4 Honeytrap 239,282 ▲279,872
5 Rdpy 72,034 △31,109
6 Tanner 8,571 △4,455
7 Mailoney 5,578 △4,067
8 Adbhoney 3,797 ▲1,142
9 Ciscoasa 2,886 △1,240
10 ElasticPot 1,577 △1,089
11 ConPot 114 -
12 Medpot 5 -
  • Result
    • Dionaeaへの攻撃件数が大幅に減少し、CowrieとHeraldingへの攻撃件数が増加していた。

②攻撃元の国名と件数(Top 20)
No 攻撃元の国名 件数 先月順位
1 Russia 1,579,958 2(↑)
2 Ireland 856,508 5(↑)
3 China 789,105 1(↓)
4 Vietnam 677,299 3(↓)
5 Panama 403,694 15(↑)
6 United States 364,218 9(↑)
7 Republic of Moldova 348,450 16(↑)
8 Japan 321,746 7(↓)
9 Bulgaria 318,133 6(↓)
10 Netherlands 287,231 20(↑)
11 India 283,409 13(↑)
12 Brazil 247,433 14(↑)
13 Venezuela 243,679 17(↑)
14 Indonesia 202,545 10(↓)
15 France 182,049 10(↓)
16 Taiwan 179,869 8(↓)
17 Turkey 157,552 18(↑)
18 Ukraine 142,485 11(↓)
19 United Kingdom 123,535 圏外(↑)
20 Thailand 115,859 圏外(↑)
  • Result
    • ロシア(1位)が1位に返り咲いた。4位までは先月と比べて変わりないが、パナマ(5位)、モルドバ共和国(7位)の攻撃件数が2倍近く増加していた。
    • 中国からの攻撃件数は100万件ほど減少している。攻撃キャンペーンは下火になりつつある。(米中摩擦の影響でまた増えそうでもあるが)  

③検知したCVEの脆弱性と件数
  • Suricata(オープンIPS)にて検知した各攻撃の脆弱性の内容を以下に記載する。
No CVE ID CNT
1 CVE-2020-8515 CVE-2020-8515 98
2 CVE-2019-12263 CVE-2019-12261 CVE-2019-12260 CVE-2019-12255 65
3 CVE-2019-0708 CVE-2019-0708 39
4 CVE-2020-11651 CVE-2020-11651 4
  • Result
    • 先月より大きな変更点は無し。

④よく攻撃されるユーザ名
  • ユーザ名でよく攻撃されるキーワード(Top 20)で記載する。
No ユーザ名 件数
1 root 254,273
2 admin 126,968
3 support 9,403
4 nproc 6,080
5 user 4,338
6 test 3,118
7 postgres 2,244
8 sa 2,166
9 ubuntu 1,743
10 sh 1,348
11 enable 1,243
12 deploy 1,215
13 ping ; sh 1,029
14 default 907
15 oracle 855
16 guest 795
17 git 741
18 ftpuser 581
19 mysql 538
20 666666 536
  • Result
    • MSSQLのユーザ名であるsaの攻撃件数が減少しroot(1位),admin(2位)などのサーバログイン用のユーザ名の攻撃件数が多い傾向があった。

⑤よく攻撃されるパスワード
  • パスワードでよく攻撃されるキーワード(Top 20)を以下に記載する。
No パスワード 件数
1 admin 239,570
2 & 33,889
3 123456 23,798
4 support 9,224
5 password 7,093
6 nproc 6,080
7 6,075
8 12345678 6,050
9 123 3,188
10 user 2,401
11 Password 2,231
12 12345 1,942
13 root 1,712
14 1234 1,646
15 1q2w3e4r 1,401
16 system 1,335
17 shell 1,273
18 /bin/busybox FBOT 995
19 test 896
20 1qaz2wsx 872
  • Result
    • 攻撃件数については先月より大きな変更点は無し。
    • 18位の/bin/busybox FBOTはHajimeボットの特徴に類似している。
      mirai以外のmalwareによるIoT機器への攻撃が増加している。

最後に

  • 各国で緊急事態宣言が解除され、ポストコロナへの動きが加速している。
  • ①各ハニーポットで検知したAttack件数 ではDionaeaの攻撃件数が減少し、④よく攻撃されるユーザ名でsaユーザへの攻撃が減少したことから従来のMSSQLサーバへの攻撃からリモートワークで利用される端末やサーバなどの攻撃へ傾向が遷移していると感じた。
  • ②攻撃元の国名と件数(Top 20) で確認したパナマモルドバ共和国からの攻撃件数増加があった。Hajimeボットの攻撃件数増加と関連付けた場合、⽇本国内ではあまり普及していない機器を攻撃対象とすることから有意な関連がある可能性もある。一過性の傾向であるかは継続して確認を進めたい。

情報処理安全確保支援士を更新した

25日にも首都圏1都3県と北海道の緊急事態宣言解除の方針を政府が示している。一度リモートワークに慣れると通勤ラッシュがいかに仕事の負担になっているかを思い知らされる。全く憂鬱になる。

2020年5月15日(金)にIPAからRISSの更新制導入が通達された。今回更新手続きをしてきたので簡単に記載する。

必要書類

以下書類を揃えてIPAへ送付する。 ・ 更新申請書
・ 現状調査票
・ 誓約書
・ 登録証の原本
  →登録証の原本(コピー不可)を送付する必要がある。
   原本を送付できない場合は提出書類に理由を記載する必要がある。
・ 登録申請チェックリスト
・ 連絡先等変更届出書(連絡先の変更を併せて申請する場合のみ)

更新書類は以下のURLからダウンロード可能で、必要事項を記載した後に簡易書留で送付する。
送り状は現状調査票に付属しているのを切り取って貼り付けるのが早い。

www.ipa.go.jp

やってみた感想

・登録証の原本を返送しないといけない。更新の度に新しい登録証が発行されるのだろうか?
・更新手続きは特に難しくない。書類4点の準備(人によっては5点)で済んだ。
 無料で済むので更新費用はこのタイミングではかからない。

最後に

・今までは制度が先行して士業のメリットはほぼ何もない状態だったので、
 入札条件に含めるなどこの資格の意義が果たされる日が来てほしい。

ハニーポット構築(iptablesの設定)

5/23 に開催されたSECCON Beginners 2020は散々な成績だった。
いつものことながら硝子のハートはぼろぼろである。

合間の時間で以前から設定したかったT-PotへFirewall設定を追加した。
今回はその際の手順を簡単に記載する。

実施したこと

 ・運用ポートのFilter設定
  T-Potでは以下のPortが提供されている。

   64294:CockpitのAdmin UI用  
   64295:ssh接続用  
   64297:KibanaのWeb UI用    

  ⇒利用しているさくらのVPSではパケットフィルタに
   接続許可制限できるPort範囲が1〜32767までであり
   上記の64290番台のPortへの通信は制限できない。
   そのためiptablesを使用してFirewall設定を実施した。

vps-news.sakura.ad.jp

詳細内容

 ・自宅端末の回線IPからのみ64294、64295、64297の接続を受け付ける。
 ・自宅端末の回線IP以外からは64294、64295、64297の接続は拒否する。

手順

 iptablesの設定について調べながら設定をした。
 以下2つの手順が実施可能であり今回は手順1で設定した。

手順1.rules.shで管理する場合

 以下のQ&Aを参考にした。
  github.com

 T-Potでは今回のような特定IPからの接続を拒否する設定の
 永続化用に/opt/tpot/bin/rules.shを提供している。
 そのため今回もrules.shに必要な設定を導入してみる。

①T-Potへのログイン

 T-Potへssh接続する。その後、rootユーザへ変更する。

$ sudo su -
#
②/opt/tpot/bin/rules.shのバックアップ取得

 変更するrules.shのバックアップを取得する。

# cd /opt/tpot/bin/
# cp -p rules.sh rules.sh.org
③/opt/tpot/bin/rules.shへのiptablesルールの追加

 自宅回線の接続IPアドレスの許可設定をrules.shに追加する。
 INPUTルールに以下を追加
 ・<自宅回線の接続IPアドレス>からの64294,64295,64297のTCP/UDP通信を許可
 ・<自宅回線の接続IPアドレス>以外からの64294,64295,64297のTCP/UDP通信を拒否

# vi rules.sh

#20200524 ADD IP Filter Rule
/usr/sbin/iptables-legacy -w -A INPUT -s <自宅回線の接続IPアドレス> -p tcp --dport 64294:64295 -j ACCEPT
/usr/sbin/iptables-legacy -w -A INPUT -s <自宅回線の接続IPアドレス> -p udp --dport 64294:64295 -j ACCEPT
/usr/sbin/iptables-legacy -w -A INPUT -s <自宅回線の接続IPアドレス> -p tcp --dport 64297 -j ACCEPT
/usr/sbin/iptables-legacy -w -A INPUT -s <自宅回線の接続IPアドレス> -p udp --dport 64297 -j ACCEPT
/usr/sbin/iptables-legacy -w -A INPUT -p tcp --dport 64294:64295 -j REJECT
/usr/sbin/iptables-legacy -w -A INPUT -p udp --dport 64294:64295 -j REJECT
/usr/sbin/iptables-legacy -w -A INPUT -p tcp --dport 64297 -j REJECT
/usr/sbin/iptables-legacy -w -A INPUT -p udp --dport 64297 -j REJECT
④サーバ再起動

 サーバを再起動する。

# shutdown -r now
⑤設定値の確認

 自宅回線の利用PCで64294,64295,64297で接続し、エラーが出力されないことを確認する。
 携帯電話から公衆回線経由でアクセスし、エラーが出力されてアクセスできないことを確認する。

 ただしこの方法だとT-Potのupdateを実施した場合に設定が上書きされるため、
 更新の度に設定し直す必要がある。
 またiptablesの確認に使用するiptables -Lコマンドでの設定値の確認もできない。

# iptables -L
Chain INPUT (policy ACCEPT) ・・・★INPUTのChainに何も表示されない。
target     prot opt source               destination         

Chain FORWARD (policy DROP)
target     prot opt source               destination         
DOCKER-USER  all  --  anywhere             anywhere            
DOCKER-ISOLATION-STAGE-1  all  --  anywhere             anywhere            

     <中略>

Chain OUTPUT (policy ACCEPT)
target     prot opt source               destination         

Chain DOCKER (33 references)
target     prot opt source               destination         
ACCEPT     tcp  --  anywhere             172.20.0.2           tcp dpt:10001
ACCEPT     tcp  --  anywhere             172.18.0.2           tcp dpt:5555

     <中略>

Chain DOCKER-ISOLATION-STAGE-1 (1 references)
target     prot opt source               destination         
DOCKER-ISOLATION-STAGE-2  all  --  anywhere             anywhere            
DOCKER-ISOLATION-STAGE-2  all  --  anywhere             anywhere            

     <中略>


Chain DOCKER-USER (1 references)
target     prot opt source               destination         
RETURN     all  --  anywhere             anywhere            

Chain DOCKER-ISOLATION-STAGE-2 (17 references)
target     prot opt source               destination         
DROP       all  --  anywhere             anywhere            
DROP       all  --  anywhere             anywhere            

     <中略>

# Warning: iptables-legacy tables present, use iptables-legacy to see them

手順2.iptables-persistentで管理する場合 

 一般的に紹介されているiptables-persistentを使って、iptablesを管理する。

①T-Potへのログイン

 T-Potへssh接続する。その後、rootユーザへ変更する。

$ sudo su -
#
iptables-persistentのインストール

 iptablesの設定永続化のため、iptables-persistentをインストールする。
 (※古いOSの場合はapt-getで実施する)

# apt install iptables-persistent
ipv4.ruleのバックアップ取得

 iptables-persistentをインストールすると/etc/iptablesフォルダ配下にrules.v4とrules.v6が作成される。
 この内、rules.v4のバックアップを取得する。

# cd /etc/iptables
# cp -p rules.v4 rules.v4.org
ipv4.ruleへのiptablesルールの追加

 iptablesの定義をipv4.ruleのINPUTルールへ追加する。

# vi rules.v4

*filter
:INPUT ACCEPT [0:0]
-A INPUT -s <自宅回線の接続IPアドレス> -p tcp --dport 64294:64295 -j ACCEPT
-A INPUT -s <自宅回線の接続IPアドレス> -p udp --dport 64294:64295 -j ACCEPT
-A INPUT -s <自宅回線の接続IPアドレス> -p tcp --dport 64297 -j ACCEPT
-A INPUT -s <自宅回線の接続IPアドレス> -p udp --dport 64297 -j ACCEPT
-A INPUT -p tcp --dport 64294:64295 -j REJECT
-A INPUT -p udp --dport 64294:64295 -j REJECT
-A INPUT -p tcp --dport 64297 -j REJECT
-A INPUT -p udp --dport 64297 -j REJECT

:FORWARD DROP [0:0]

     <中略>

 設定完了後、リロードを実施して設定を反映する。

 # /etc/init.d/iptables-persistent save 
 # /etc/init.d/iptables-persistent reload
⑤サーバ再起動

 サーバを再起動する。

# shutdown -r now
⑥設定値の確認

 自宅回線の利用PCで64294,64295,64297で接続し、エラーが出力されないことを確認する。
 携帯電話から公衆回線経由でアクセスし、エラーが出力されてアクセスできないことを確認する。

 この方法だとT-Potのupdateを実施した場合でも設定が上書きされないため、設定をし直す必要がない。  またiptablesの確認に使用するiptables -Lコマンドでの設定値の確認もできるのでこちらの方が良いだろう。

# iptables -L
Chain INPUT (policy ACCEPT)
target     prot opt source               destination         
ACCEPT     tcp  --  <自宅回線の接続IPアドレス>  anywhere             tcp dpts:64294:64295
ACCEPT     udp  --  <自宅回線の接続IPアドレス> anywhere             udp dpts:64294:64295
ACCEPT     tcp  --  <自宅回線の接続IPアドレス>  anywhere             tcp dpts:64297
ACCEPT     udp  --  <自宅回線の接続IPアドレス> anywhere             udp dpts:64297
REJECT     tcp  --  anywhere             anywhere             tcp dpts:64294:64295 reject-with icmp-port-unreachable
REJECT     udp  --  anywhere             anywhere             udp dpts:64294:64295 reject-with icmp-port-unreachable
REJECT     tcp  --  anywhere             anywhere             tcp dpts:64297 reject-with icmp-port-unreachable
REJECT     udp  --  anywhere             anywhere             udp dpts:64297 reject-with icmp-port-unreachable

Chain FORWARD (policy DROP)
target     prot opt source               destination         
DOCKER-USER  all  --  anywhere             anywhere            
DOCKER-ISOLATION-STAGE-1  all  --  anywhere             anywhere              

     <中略>

最後に

・設定の開始時にiptablesで制限するPort範囲を64200-64300で設定しようとしていたが、
 KibanaやES headへのアクセスが制限されたため64294,64295,64297に絞って設定した。
 上記の設定直後に白い画面が出てきて焦ったのが今回のハマりポイントだった。
・6/1ぐらいまでの期間限定で自宅学習用にAutoSpyやKibanaの無料講習が各社様から提供されているので  この機に積極的に受講してレベルアップを図りたい。
・5/12 に開催された第42回OWASP Sendai ミーティングにオンライン参加できて良かった。
 この時に紹介されたspiderfootがT-Potにも含まれているため月次報告の際に有効利用する。

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

全国的に暖かい気温になり春から初夏への訪れを最近感じる。 5月4日に政府発表で緊急事態宣言の延長が発表される予定だが、経済への影響を鑑みてこの気温の変化が経済に少しでもプラスになってくれることを祈っている。

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

前提条件

運用日時:2020年4月1日-2020年4月30日
運用期間:30日

結果

①各ハニーポットで検知したAttack件数
  • T-Potを構成する各ハニーポットへの攻撃件数の一覧を以下に記載する。
No ハニーポット 件数 先々月比
1 Dionaea 8,533,337 △32,342
2 Cowrie 2,715,080 ▲582,156
3 Heralding 1,594,869 ▲318,432
4 Honeytrap 519,154 ▲101,599
5 Rdpy 40,925 ▲1,944
6 Adbhoney 4,939 ▲967
7 Tanner 4,116 ▲1,727
8 Ciscoasa 1,646 △238
9 Mailoney 1,511 ▲25,057
10 ElasticPot 488 △421
  • Result
    • 全体的に先月と変わらずだがMailoneyの件数が大きく減少している。

②攻撃元の国名と件数(Top 20)
No 攻撃元の国名 件数 先月順位
1 China 1,702,381 4(↑)
2 Russia 1,385,927 1(↓)
3 Vietnam 1,047,417 2(↓)
4 Republic of Korea 565,615 19(↑)
5 Ireland 559,988 6(↑)
6 Bulgaria 558,934 9(↑)
7 Japan 531,350 3(↓)
8 Taiwan 495,432 7(↓)
9 United States 495,268 10(↑)
10 Indonesia 428,725 11(↑)
11 Ukraine 316,888 14(↑)
12 France 302,971 18(↑)
13 India, 293,612 5(↓)
14 Brazil 248,575 8(↓)
15 Panama 236,282 圏外(↑)
16 Republic of Moldova 233,774 12(↓)
17 Venezuela 212,174 12(→)
18 Turkey 194,791 圏外(↑)
19 Canada 156,780 圏外(↑)
20 Netherlands 149,251 16(↓)
  • Result
    • 中国(1位)と北朝鮮(4位)の順位が大きく上がった。先月比でみると中国(2倍)と北朝鮮(5倍)の件数が大幅に増加している。国際情勢の政治的駆け引きが水面で動いているのだろうか。
    • 順位を落としたがロシア(2位)、ベトナム(3位)は安定的に順位が高い。特定の攻撃者がコロナウィルスにも負けず件数を増やしているのだろう。

③検知したCVEの脆弱性と件数
  • Suricata(オープンIPS)にて検知した各攻撃の脆弱性の内容を以下に記載する。
No CVE ID CNT
1 CVE-2019-12263 CVE-2019-12261 CVE-2019-12260 CVE-2019-12255 108
2 CVE-2020-8515 CVE-2020-8515 90
3 CVE-2019-0708 CVE-2019-0708 38
4 CVE-1999-0016 5
5 CVE-2017-0143 1
  • Result
    • No2,5で新規攻撃を検知した。
    • No2のCVE-2020-8515はDrayTek社製のルータ(Vigor3900 / Vigor2960 / Vigor300B)のWeb管理ページに対するコマンドインジェクションの脆弱性になる。すでにGithub上にもPoCが公開されており攻撃が手軽になったことで件数が増えたと考えられる。   www.draytek.com

    • No5のCVE-2017-0143はWannaCryの脆弱性になる。Windows系OSのSMB v1における複数の脆弱性が対象になるが説明記事も多いのでここでは紹介までにとどめる。


④よく攻撃されるユーザ名
  • ユーザ名でよく攻撃されるキーワード(Top 20)で記載する。
No ユーザ名 件数
1 sa 3,023,218
2 root 189,927
3 admin 91,414
4 user 9,199
5 nproc 5,751
6 support 3,701
7 sh 3,330
8 test 3,027
9 enable 2,463
10 postgresll 2,460
11 ubuntu 2,145
12 deploy 1,230
13 linuxshell 1,222
14 oracle 861
15 git 697
16 ftpuser 690
17 guest 645
18 default 565
19 666666 434
20 www 421
  • Result
    • saが1位に返り咲いた。使用される文字列の傾向は先月と変更なし。

⑤よく攻撃されるパスワード
  • パスワードでよく攻撃されるキーワード(Top 20)を以下に記載する。
No パスワード 件数
1 admin 168,457
2 & 20,346
3 123456 9,055
4 user 7,097
5 nproc 5,737
6 12345678 5,588
7 password 5,443
8 3,819
9 support 3,290
10 shell 3,235
11 123123 2,676
12 system 2,573
13 1q2w3e4r 1,815
14 1qaz2wsx 1,609
15 root 1,539
16 123456789 1,466
17 11111111 1,428
18 12345 1,402
19 qwertyui 1,212
20 development 1,206
  • Result
    • 先月より大きな変更点は無し。

最後に

  • 各国で5月以降の経済対策を含めた指針が提示されており、ハニーポットへの攻撃件数にも表れているように感じられる。
    特に中国と北朝鮮からの件数が増加していることはポストコロナを見込んだ各国の動きが4月に入り慌ただしくなったからかもしれない。この件は5月~6月も引き続き注目したい。

ハニーポット運用(Yaraルールを学ぶ}

最近は自宅でのリモートワークが増えたため運動量がめっきりと減った。 少しでもカロリー消費を思い、ランニングしたが足が釣ってしまい家にいる時間が増え更に体重がました。 デブ活待ったなしである。

仕事の空き時間にYaraルールについて学ぶことにした。Honeypotもあるのでより実態に近い攻撃の観測ができるだろう。

Yaraルールとは

・ YARAは、マルウェア研究者がマルウェアサンプルを識別し分類するのを支援することを目的としたツール。
・ YARAを使うと、テキストパターンやバイナリパターンに基づいて、マルウェアファミリーの説明文を作成することができる。
・ OpenSourceで構成されたPythonベースのツールでありマルウェア解析に有益である。

Yaraルールのフォーマット

1 rule silent_banker : banker
2 {
3     meta:
4         description = "This is just an example"
5         threat_level = 3
6         in_the_wild = true
7     strings:
8         $a = {6A 40 68 00 30 00 00 6A 14 8D 91}
9         $b = {8D 4D B0 2B C1 83 C0 27 99 6A 4E 59 F7 F9}
10       $c = "UVODFRYSIHLNWPEJXQZAKCBGMT"
11   condition:
12       $a or $b or $c
13 }

1 rule句  
 Yaraルールで設定するルール名を指定する  
3 meta句  
 Yaraルールの説明内容を指定する  
7 strings句  
 検索条件を指定する。文字列、バイナリ  
11 condition句  
 検索条件に対する論理条件(or , and)を指定する。  

Yaraルールの検知例

最近のT-Potの活動状況からYaraルールで攻撃状況を確認してみる。
※使用するのは以下のGithubのデータを利用する。   github.com

まずはheraldingから。
# yara rules-master/index.yar /data/heralding/session.csv.14.gz
rules-master/./crypto/crypto_signatures.yar(11): warning: $c0 in rule Big_Numbers0 is slowing down scanning

<中略>

CRC32c_poly_Constant /data/heralding/log/session.csv.14.gz
possible_includes_base64_packed_functions /data/heralding/log/auth.csv.14.gz
cowireには目ぼしいデータが無かった。

 (´・ω・`)ショボーン

dionaeaはwanacryばかりかと思い確認すると嬉しい発見があった。
 # ls -al /data/dionaea/binaries/
/data/dionaea/binaries/:
total 920436
drwxrwx--- 2 tpot tpot   12288 May  1 06:53 .
drwxrwx--- 8 tpot tpot    4096 May  1 06:52 ..
-rw------- 1 tpot tpot 5267459 May  1 04:01 01bdc6fb077098f4a3b60f4b0e479a7f

  <サイズ5267459のこのへんはwanacry関連のため中略>

-rw------- 1 tpot tpot 5267459 May  1 03:55 af26cb0a1db5f669ded0944f6e939a55
-rw-r--r-- 1 tpot tpot    1952 May  1 06:25 AV.lnk
-rw-r--r-- 1 tpot tpot    1952 May  1 05:10 AV.lnk.~1~
-rw-r--r-- 1 tpot tpot    1952 May  1 05:38 AV.lnk.~2~
-rw-r--r-- 1 tpot tpot    1952 May  1 05:47 AV.lnk.~3~
-rw-r--r-- 1 tpot tpot    1952 May  1 06:02 AV.lnk.~4~
-rw-r--r-- 1 tpot tpot  116416 May  1 06:52 AV.scr
-rw-r--r-- 1 tpot tpot 6165527 May  1 04:53 AV.scr.~1~
-rw-r--r-- 1 tpot tpot 3637004 May  1 06:11 AV.scr.~10~
-rw-r--r-- 1 tpot tpot  785358 May  1 06:17 AV.scr.~11~
-rw-r--r-- 1 tpot tpot 6183325 May  1 06:25 AV.scr.~12~
-rw-r--r-- 1 tpot tpot  580895 May  1 06:38 AV.scr.~13~
-rw-r--r-- 1 tpot tpot 1899407 May  1 06:46 AV.scr.~14~
-rw-r--r-- 1 tpot tpot  722030 May  1 05:00 AV.scr.~2~
-rw-r--r-- 1 tpot tpot 5249784 May  1 05:10 AV.scr.~3~
-rw-r--r-- 1 tpot tpot 6184265 May  1 05:18 AV.scr.~4~
-rw-r--r-- 1 tpot tpot 6185614 May  1 05:29 AV.scr.~5~
-rw-r--r-- 1 tpot tpot 6170342 May  1 05:38 AV.scr.~6~
-rw-r--r-- 1 tpot tpot 6183999 May  1 05:47 AV.scr.~7~
-rw-r--r-- 1 tpot tpot 6185540 May  1 05:54 AV.scr.~8~
-rw-r--r-- 1 tpot tpot 6217504 May  1 06:02 AV.scr.~9~
-rw------- 1 tpot tpot 5267459 May  1 05:45 b91b5718554c4112a004de392d608c5b

  <サイズ5267459のこのへんはwanacry関連のため中略>

-rw------- 1 tpot tpot 5267459 May  1 05:40 ffafe05991d988d69f994b0b863b32b9
-rw-r--r-- 1 tpot tpot    1952 May  1 06:52 Photo.lnk
-rw-r--r-- 1 tpot tpot    1952 May  1 04:53 Photo.lnk.~1~
-rw-r--r-- 1 tpot tpot    1952 May  1 06:25 Photo.lnk.~10~
-rw-r--r-- 1 tpot tpot    1952 May  1 06:39 Photo.lnk.~11~
-rw-r--r-- 1 tpot tpot    1952 May  1 06:46 Photo.lnk.~12~
-rw-r--r-- 1 tpot tpot    1952 May  1 05:00 Photo.lnk.~2~
-rw-r--r-- 1 tpot tpot    1952 May  1 05:10 Photo.lnk.~3~
-rw-r--r-- 1 tpot tpot    1952 May  1 05:35 Photo.lnk.~4~
-rw-r--r-- 1 tpot tpot    1952 May  1 05:38 Photo.lnk.~5~
-rw-r--r-- 1 tpot tpot    1952 May  1 05:47 Photo.lnk.~6~
-rw-r--r-- 1 tpot tpot    1952 May  1 05:54 Photo.lnk.~7~
-rw-r--r-- 1 tpot tpot    1952 May  1 06:02 Photo.lnk.~8~
-rw-r--r-- 1 tpot tpot    1952 May  1 06:11 Photo.lnk.~9~
-rw-r--r-- 1 tpot tpot  259894 May  1 06:52 Photo.scr
-rw-r--r-- 1 tpot tpot 6206815 May  1 05:36 Photo.scr.~1~
-rw-r--r-- 1 tpot tpot 6186014 May  1 05:49 Photo.scr.~10~
-rw-r--r-- 1 tpot tpot 6192379 May  1 05:56 Photo.scr.~11~
-rw-r--r-- 1 tpot tpot 6196807 May  1 06:05 Photo.scr.~12~
-rw-r--r-- 1 tpot tpot   29712 May  1 06:11 Photo.scr.~13~
-rw-r--r-- 1 tpot tpot  461070 May  1 06:20 Photo.scr.~14~
-rw-r--r-- 1 tpot tpot 6171194 May  1 06:29 Photo.scr.~15~
-rw-r--r-- 1 tpot tpot 6202331 May  1 06:33 Photo.scr.~16~
-rw-r--r-- 1 tpot tpot  233660 May  1 06:40 Photo.scr.~17~
-rw-r--r-- 1 tpot tpot 1085456 May  1 06:48 Photo.scr.~18~
-rw-r--r-- 1 tpot tpot 6186733 May  1 05:36 Photo.scr.~2~
-rw-r--r-- 1 tpot tpot   59210 May  1 05:02 Photo.scr.~3~
-rw-r--r-- 1 tpot tpot  236740 May  1 05:13 Photo.scr.~4~
-rw-r--r-- 1 tpot tpot 6191361 May  1 05:20 Photo.scr.~5~
-rw-r--r-- 1 tpot tpot 6200562 May  1 05:24 Photo.scr.~6~
-rw-r--r-- 1 tpot tpot 6197144 May  1 05:31 Photo.scr.~7~
-rw-r--r-- 1 tpot tpot 6190216 May  1 05:35 Photo.scr.~8~
-rw-r--r-- 1 tpot tpot 6181605 May  1 05:41 Photo.scr.~9~
-rw-r--r-- 1 tpot tpot    1952 May  1 06:46 Video.lnk
-rw-r--r-- 1 tpot tpot    1952 May  1 04:53 Video.lnk.~1~
-rw-r--r-- 1 tpot tpot    1952 May  1 05:00 Video.lnk.~2~
-rw-r--r-- 1 tpot tpot    1952 May  1 05:10 Video.lnk.~3~
-rw-r--r-- 1 tpot tpot    1952 May  1 05:38 Video.lnk.~4~
-rw-r--r-- 1 tpot tpot    1952 May  1 05:47 Video.lnk.~5~
-rw-r--r-- 1 tpot tpot    1952 May  1 06:02 Video.lnk.~6~
-rw-r--r-- 1 tpot tpot    1952 May  1 06:25 Video.lnk.~7~
-rw-r--r-- 1 tpot tpot   69629 May  1 06:50 Video.scr
-rw-r--r-- 1 tpot tpot 6181128 May  1 05:40 Video.scr.~1~
-rw-r--r-- 1 tpot tpot 6179167 May  1 05:59 Video.scr.~10~
-rw-r--r-- 1 tpot tpot 6203518 May  1 06:07 Video.scr.~11~
-rw-r--r-- 1 tpot tpot 1033832 May  1 06:16 Video.scr.~12~
-rw-r--r-- 1 tpot tpot  266838 May  1 06:22 Video.scr.~13~
-rw-r--r-- 1 tpot tpot 4958610 May  1 06:37 Video.scr.~14~
-rw-r--r-- 1 tpot tpot  270741 May  1 06:43 Video.scr.~15~
-rw-r--r-- 1 tpot tpot 6189680 May  1 05:40 Video.scr.~2~
-rw-r--r-- 1 tpot tpot 1157787 May  1 05:40 Video.scr.~3~
-rw-r--r-- 1 tpot tpot 6181557 May  1 05:40 Video.scr.~4~
-rw-r--r-- 1 tpot tpot 6179896 May  1 05:40 Video.scr.~5~
-rw-r--r-- 1 tpot tpot 6193504 May  1 05:40 Video.scr.~6~
-rw-r--r-- 1 tpot tpot 6194120 May  1 05:40 Video.scr.~7~
-rw-r--r-- 1 tpot tpot 6183906 May  1 05:45 Video.scr.~8~
-rw-r--r-- 1 tpot tpot 6166708 May  1 05:52 Video.scr.~9~

Photo.lnk、Photo.scr、Video.lnk.、Video.scr.から始まる見慣れないファイルがある。 Yaraスキャンで確認してみる。

 # yara rules-master/index.yar /data/dionaea/binaries/Video.scr
rules-master/./crypto/crypto_signatures.yar(11): warning: $c0 in rule Big_Numbers0 is slowing down scanning

  <中略>

rules-master/./packers/peid.yar(68951): warning: $a in rule StarForce_V1X_V5X_StarForce_Copy_Protection_System_20090906 is slowing down scanning
SEH_Save /data/dionaea/binaries/Video.scr
SEH_Init /data/dionaea/binaries/Video.scr
maldoc_find_kernel32_base_method_1 /data/dionaea/binaries/Video.scr
IsPE32 /data/dionaea/binaries/Video.scr
IsWindowsGUI /data/dionaea/binaries/Video.scr
HasDebugData /data/dionaea/binaries/Video.scr
IsBeyondImageSize /data/dionaea/binaries/Video.scr
HasRichSignature /data/dionaea/binaries/Video.scr
VC8_Microsoft_Corporation /data/dionaea/binaries/Video.scr
Microsoft_Visual_Cpp_8 /data/dionaea/binaries/Video.scr

なんか色々出ている。

SEH_Save・・・アンチデバッキング(Tactic_DefensiveEvasion Technique_AntiDebugging SubTechnique_SEH)
SEH_Init・・・アンチデバッキング(Tactic_DefensiveEvasion Technique_AntiDebugging SubTechnique_SEH)
maldoc_find_kernel32_base_method_1
IsPE32・・・PE32ファイルの確認
IsWindowsGUI・・・WindowsGUIファイルの確認
HasDebugData・・・アンチデバッキング
IsBeyondImageSize・・・画像サイズを超えたデータチェック
HasRichSignature・・・Rich Signatureの確認
VC8_Microsoft_Corporation・・・Microsoft Visual C++ 8のファイル
Microsoft_Visual_Cpp_8・・・Microsoft Visual C++ 8のファイル

よりサイズの少ないファイルも確認してみる。

# ls -alR /data/dionaea/binaries/yara rules-master/index.yar /data/dionaea/binaries/Video.scr.~3~
rules-master/./crypto/crypto_signatures.yar(11): warning: $c0 in rule Big_Numbers0 is slowing down scanning

  <中略>

rules-master/./packers/peid.yar(68951): warning: $a in rule StarForce_V1X_V5X_StarForce_Copy_Protection_System_20090906 is slowing down scanning
DebuggerException__SetConsoleCtrl /data/dionaea/binaries/Video.scr.~3~
SEH_Save /data/dionaea/binaries/Video.scr.~3~
SEH_Init /data/dionaea/binaries/Video.scr.~3~
anti_dbg /data/dionaea/binaries/Video.scr.~3~
win_files_operation /data/dionaea/binaries/Video.scr.~3~
Str_Win32_Winsock2_Library /data/dionaea/binaries/Video.scr.~3~
CRC32_poly_Constant /data/dionaea/binaries/Video.scr.~3~
CRC32_table /data/dionaea/binaries/Video.scr.~3~
maldoc_find_kernel32_base_method_1 /data/dionaea/binaries/Video.scr.~3~
PE_File_pyinstaller /data/dionaea/binaries/Video.scr.~3~
IsPE32 /data/dionaea/binaries/Video.scr.~3~
IsWindowsGUI /data/dionaea/binaries/Video.scr.~3~
IsPacked /data/dionaea/binaries/Video.scr.~3~
HasOverlay /data/dionaea/binaries/Video.scr.~3~
HasDebugData /data/dionaea/binaries/Video.scr.~3~
HasRichSignature /data/dionaea/binaries/Video.scr.~3~
VC8_Microsoft_Corporation /data/dionaea/binaries/Video.scr.~3~
Microsoft_Visual_Cpp_8 /data/dionaea/binaries/Video.scr.~3~

Packerによる圧縮処理などが追加されていた。

DebuggerException__SetConsoleCtrl・・・アンチデバッキング
SEH_Save・・・アンチデバッキング(Tactic_DefensiveEvasion Technique_AntiDebugging SubTechnique_SEH)
SEH_Init・・・アンチデバッキング(Tactic_DefensiveEvasion Technique_AntiDebugging SubTechnique_SEH)
anti_dbg・・・アンチデバッキング
win_files_operation・・・Windowsの実行形式ファイル
Str_Win32_Winsock2_Library・・・Win32_Winsock2_Libraryの使用
CRC32_poly_Constant
CRC32_table・・・CRC32 Tablesの確認
maldoc_find_kernel32_base_method_1
PE_File_pyinstaller・・・Windows形式のpythonインストーラ
IsPE32・・・PE32ファイルの確認
IsWindowsGUI・・・WindowsGUIファイルの確認
IsPacked・・・Packerによる圧縮確認
HasOverlay・・・overlay planeの確認
HasDebugData・・・アンチデバッキング
HasRichSignature・・・Rich Signatureの確認
VC8_Microsoft_Corporation・・・Microsoft Visual C++ 8のファイル
Microsoft_Visual_Cpp_8・・・Microsoft Visual C++ 8のファイル

VirusTotalで確認してみる。

f:id:SYN-ACK:20200501164553j:plain

f:id:SYN-ACK:20200501164822j:plain PE32形式のCoinMinerマルウェアだった。

f:id:SYN-ACK:20200501165407j:plain

f:id:SYN-ACK:20200501165417j:plain こちらはダウンローダだった。

VirusTotalでは何も検出されないがこのリンクを踏ませてから動くようだ。 AV.linkの下のtester1234.exeが本体だろうか。

f:id:SYN-ACK:20200501165707j:plain

世界的にリモートワークが増えているので攻撃の傾向も変わっているようにみえる。

ルールとSnortルールの違いについて

Yaraルールを勉強すると類似のルールとしてSuricataなどでも利用されるSnortルールがある。 Suricataを学ぶにあたってYaraルールとの差異を疑問に思っていたが、Googleドキュメントでその比較について分かりやすく解説されていた。

Yara vs Snort rules

Snortルールはかなり複雑です。 Yaraルールは非常にシンプルです。

Snort ルールは、検出/予防/パケットキャプチャにも有効にできます。 Yara ルールは主にマルウェアの分類に使用され、これを利用して IDS ルールを作成することができます。

Yara は文字列、正規表現、16進数を受け付けます。

主な違いは、Yaraがマルウェアの分類に役立つのに対し、snortはIDSアラートを有効にするための実際のルールを構築するのに役立ちます。

マルウェアの解析にはYaraルールの方が便利ということか。

Yaraルールの書き方は以下のURLが参考になる。

yara.readthedocs.io

最後に

調査で利用したmalwareは安全にスタッフがすべて削除しました。

ハニーポット運用(ハニーポットの運転資金}

果たしてこの投稿は日の目を見ることがあるのか?
コロナウィルスが猛威を振るう4月中旬のある日に本記事を書いている。

筆者が個人運用しているハニーポットVPSで動作しており6000円/月の費用がかかる。
はっきり言って赤字である。所属会社からの経済援助はないので、貧乏にならないためには個人で稼ぐ必要が出てくる。

運転資金の確保

何をおいてもお金は必要である。ハニーポットの運用に限らず赤字にならないためには以下2点の方法がある。
①元の支出額をなるべく抑える
②支出以上に収入を増やす

色々調べるとハニーポッター界隈で『①元の支出額をなるべく抑える』に関する記事は多くみられる。技術者の運用技術の腕の見せ所であり、大変参考になる。しかしながら、(例えば筆者のような)技術力に不安のある運用者やある程度の規模のハニーポットを運用したい場合はどうすればよいのか?

答えは簡単。金に物を言わせる『②支出以上に収入を増やす』のである。

具体的なアプローチ

世間は副業ブームである。平成30年1月に厚生労働省から「副業・兼業の促進に関するガイドライン」が提示され、副業・兼業の普及促進を図っている。

www.mhlw.go.jp

まず思いつくのはバグバウンティである。 脆弱性を見つけて報奨金をもらい、自身のスキルを磨きながらお金も貰いウハウハ生活を送りたい。と夢にみる。

しかしながら筆者のような貧乏サラリーマン(with 低スキル)に副業は可能だろうか?
ほぼ無理であろう。副業の時間がないし、仕事以外にできることもない。
そもそも土日は会社のCTF活動(with 無給)で潰れるしね。(〃'∇'〃)ゝエヘヘ

ではどうすればいいのか?
現在はコロナショックでリモートワークとなり、外に出ることさえできない ...

株だ!!

株は種銭さえあれば開始できる。ロングポジションであれば常に張り付く必要はない。
コロナショックにより株価が下がった有望株を買い集め、利回りのいい株に投資して配当金+株主優待ハニーポットの運転資金を稼ぐのである

そう言ったわけで、勤務時間外の隙間時間を利用して株投資を始めることにした。
ポートフォリオ?なにそれ、おいしいの? 今はひたすら勉強中である。

今後の活動方針

もはや本末転倒の気がしないでもないが、機会があれば月次のハニーポット報告と併せて株運用の収支報告もしたいと思う。
退職金の余剰資金を溶かして絶望する老後を過ごさない+会社に依存しないサラリーマンを目指すために今後も投資は勉強していく。

情報処理安全確保支援士制度が見直しですって!!

最近在宅勤務が続いており、通勤時間が不要な分時間に余裕ができた。
こういうときは新しいことを始めるに限る。

筆者も朝早起きして経済ニュースのチェックやランニングを始めた。
またハニーポットの運転資金を自分で稼ぐために投資も始めた。
投資については機会があれば、本ブログで紹介したいと思う。

情報処理安全確保支援士の見直しについて

2019年12月6日(金)に公布された情報処理の促進に関する法律の改正法により、以下の内容が改正された。

改正概要

(1)更新制の導入
登録された資格に有効期限が設けられ、登録を行った日から3年間となります。期限内に義務講習を受講し、登録セキスペ自ら>が更新手続きを行う必要があります。更新手続きが行われない場合には、登録が失効します。

(2)義務講習の実施事業者の追加
これまで、資格維持に必要な講習は、独立行政法人情報処理推進機構IPA)だけが実施していました。今後は、一定の条件を>満たした民間事業者等の講習(「特定講習」という)も対象となります。

(1)が支援士向け、(2)が支援士向けの義務講習実施事業者向けの内容になっている。
この内、(1)は支援士資格の更新に関する件なので登録者は特に注意したい内容である。

今後の流れ

2020年3月2日に経済産業省から以下のパブリックコメント情報が提示された。

(1)登録更新申請書の受付期限について

:情報処理安全確保支援士が登録の更新を行うためには、所定の要件を満たしたうえで、更新期限の60日前までにIPAに登録更新申請書を提出する必要があります。 2017年4月1日登録及び2017年10月1日登録の情報処理安全確保支援士においては、2020年8月1日(消印有効)が申請書の受付期限となります。また、登録更新申請書の受付開始は改正情促法施行日の5月15日を予定しております。手続きの方法や様式は、受付開始後にご案内させていただきますのでお待ちください。なお、更新手数料はかかりません。 2018年4月1日登録以降の情報処理安全確保支援士における、登録更新申請書の受付開始日につきましては、別途ご連絡させていただきます。

f:id:SYN-ACK:20200420165925p:plain

(2)特定講習の要件について

IPAが実施する講習に加えて、経済産業大臣が定める特定講習の要件が記載されました。 (第三十四条 第2項)第三十四条 第2項 改正情促法施行日以降、経済産業省から特定講習の募集要件が公表される予定です。

一旦更新手続きの詳細は5月15日以降に公開予定の詳細情報を待つ必要があるようだ。
忘れずに更新したい。