ばぁど・うぉっちんぐ

セキュリティに強いWeb屋。自由と春を求めて羽ばたく渡り鳥。

このブログはGoogle Analyticsを利用しています

ばぁどのハニーポット・うぉっちんぐ - T-Potを一ヶ月運用してみて振り返り -

ハニーポットを運用して一ヶ月が立ちました。

なかなか観測の仕方が増えてきたこともあり、充実したハニーポッターライフを送っております。

今回は10月、丸々一ヶ月運用できたので諸々振り返りしてみます。

スペック

クラウドAWS

EC2インスタンス

インスタンスタイプ メモリ SSD
t2.medium 4GB 64GB

9月に一度ぶっ壊れた時にt2.largeにあげたのですが、費用がバカにならないため、t2.mediumに戻しました。 前回壊れた時はSSDを初期設定値である8GBしか確保しておらず、それが原因のようでした。

今は64GB確保して、swap領域も確保しているので安定稼働しているように思えます。

維持費用

10月:$50.84

f:id:UltraBirdTech:20181031094218p:plain

日本円で5,748円。

もう少し安くしたいというのが本音。

少しスペック下げようかな。

これからの展望

できることを増やしたい。 T-Potはたくさんのハニーポットの集合体なのでもっとできることはたくさんあるはず。一つ一つのハニーポットの特性を活かしながら徐々にできることを増やしていきたいです。

あと、費用を安く抑えたい。 まずはインスタンスSSDなどを下げてみて、手動でチューニングしてあげればいいのかな?というところ。 サーバー側の知識がいまいちないので、少し不安ですができるところまでやっていきたいです。

まずは32GBにして様子を見たい。

所感

実際に攻撃を直に感じることができるのはとても良い経験です。

現在は検知したCVEを観測するのと、マルウェアの解析などを行っております。

CVEを観測し続けていると、過去の脆弱性にどのようなものがあったかの知見を探ることができます。 割とクリティカルなものがあったりして、各ベンダーからも御達しがあるなど当時どれだけ対応が必要だったかなどが想像できます。

マルウェア解析というのも最近始めたのですが、なかなか面白いです。 特にマルウェアは今年の情報処理技術者試験でも猛威を振るった(午前問題で特定のマルウェアに関する動作に関する問いが出された)ので、なんのマルウェアがこれから採取できるかとても楽しみでございます。

これからも財布と相談しながらハニーポットの運用と観測を続けていきます。

ばぁどのハニーポット・うぉっちんぐ - マルウェア解析の練習として、C言語で書いたコードを静的解析してみる -

ばぁどです。

現在、ハニーポットで採取したマルウェアを仮想環境内で静的解析して遊んでおります。

本当はマルウェアの解析結果をアウトプットできれば面白そうなのですが、諸事情により自作したC言語ソースコードコンパイルして吐かれた実行ファイルに対して静的解析を行っていきます。

C言語

今回使うソースコード

#include<stdio.h>

int main(void)
{
    int a, b, total;
    a = 10;
    b = 5;
    total = a + b;

    printf("%d\n", total);
}

コンパイル

$ cc sample.c
$ ls -la
total 24
drwxr-xr-x 2 root root 4096 Oct 30 19:47 .
drwxr-xr-x 5 root root 4096 Oct 30 19:44 ..
-rwxr-xr-x 1 root root 8424 Oct 30 19:47 a.out
-rw-r--r-- 1 root root  114 Oct 30 19:47 sample.c

今回はこのa.outを使っていきます。

実行

$ ./a.out 
15

念の為実行結果。

まずは表層解析から

file コマンド

$ file a.out 
a.out: ELF 64-bit LSB shared object, x86-64, version 1 (SYSV), dynamically linked, interpreter /lib64/ld-linux-x86-64.so.2, for GNU/Linux 2.6.32, BuildID[sha1]=079b654a11e71cd0b8af95851abb964f267f561b, not stripped

ELF形式ですね。Linux で動く実行形式のファイルです。

strings コマンド

$strings a.out 
/lib64/ld-linux-x86-64.so.2
libc.so.6
printf
__cxa_finalize
__libc_start_main
GLIBC_2.2.5
_ITM_deregisterTMCloneTable
__gmon_start__
_ITM_registerTMCloneTable
AWAVA
AUATL
[]A\A]A^A_
;*3$"
GCC: (Debian 7.2.0-12) 7.2.1 20171025
crtstuff.c
deregister_tm_clones
__do_global_dtors_aux
completed.7001
__do_global_dtors_aux_fini_array_entry
frame_dummy
__frame_dummy_init_array_entry
sample.c
__FRAME_END__
__init_array_end
_DYNAMIC
__init_array_start
__GNU_EH_FRAME_HDR
_GLOBAL_OFFSET_TABLE_
__libc_csu_fini
_ITM_deregisterTMCloneTable
_edata
printf@@GLIBC_2.2.5
__libc_start_main@@GLIBC_2.2.5
__data_start
__gmon_start__
__dso_handle
_IO_stdin_used
__libc_csu_init
__bss_start
main
__TMC_END__
_ITM_registerTMCloneTable
__cxa_finalize@@GLIBC_2.2.5
.symtab
.strtab
.shstrtab
.interp
.note.ABI-tag
.note.gnu.build-id
.gnu.hash
.dynsym
.dynstr
.gnu.version
.gnu.version_r
.rela.dyn
.rela.plt
.init
.plt.got
.text
.fini
.rodata
.eh_frame_hdr
.eh_frame
.init_array
.fini_array
.dynamic
.got.plt
.data
.bss
.comment

おおう。。なかなか大量にあるんだな・・・

静的解析で用いるコマンドの解説

今回、利用するコマンドはobjdumpです。 オブジェクトファイルの情報を表示してくれます。

コマンドのオプション

今回使用するのは、-dオプションです。

オプション 説明
-d ( --disassemble) 機械語に対応するアセンブラニーモニックを表示する。逆アセンブルをするときに用いる。

要するに逆アセンブルするときに使われるオプションです。

もうこの時点で専門用語満載ですね。 一つ一つ解説します。

アセンブラ

アセンブリ言語機械語に変換する翻訳ソフトのこと。

アセンブリ言語

コンピュータが理解できる言葉であるマシン語を人間が理解できる言語に置き換えたもの。

ニーモニック

アセンブリ言語で用いられる英単語もしくは英単語の略語。 ADDやLD(LOAD)など様々なニーモニックコードが存在する。

アセンブル

人が理解できるプログラム言語から機械が理解できる機械語へ変換すること。

アセンブル

アセンブルの逆。 機械が理解できる機械語から人が理解できる形式へ変換すること。

objdumpの結果

※長いため省略します

$objdump -d a.out 

a.out:     file format elf64-x86-64


Disassembly of section .init:

00000000000004f0 <_init>:
 4f0:   48 83 ec 08             sub    $0x8,%rsp
 4f4:   48 8b 05 ed 0a 20 00    mov    0x200aed(%rip),%rax        # 200fe8 <__gmon_start__>
 4fb:   48 85 c0                test   %rax,%rax
 4fe:   74 02                   je     502 <_init+0x12>
 500:   ff d0                   callq  *%rax
 502:   48 83 c4 08             add    $0x8,%rsp
 506:   c3                      retq   

Disassembly of section .plt:

0000000000000510 <.plt>:
 510:   ff 35 f2 0a 20 00       pushq  0x200af2(%rip)        # 201008 <_GLOBAL_OFFSET_TABLE_+0x8>
 516:   ff 25 f4 0a 20 00       jmpq   *0x200af4(%rip)        # 201010 <_GLOBAL_OFFSET_TABLE_+0x10>
           ・
           ・
           ・
$ objdump -d > sample.txt
root@kali:~/work/c# wc -l sample.txt
189 sample.txt

全部で189行になりました。

initを調べてみる

全部解析しようとすると、時間がいくらあっても足りないのでinitメソッドのみ何をやっているかを調べてみます。

1行目 4f0: 48 83 ec 08             sub    $0x8,%rsp
2行目 4f4:    48 8b 05 ed 0a 20 00    mov    0x200aed(%rip),%rax        # 200fe8 <__gmon_start__>
3行目 4fb:    48 85 c0                test   %rax,%rax
4行目 4fe:    74 02                   je     502 <_init+0x12>
5行目 500:    ff d0                   callq  *%rax
6行目 502:    48 83 c4 08             add    $0x8,%rsp
7行目 506:    c3                      retq

1行目

4f0: 48 83 ec 08             sub    $0x8,%rsp

%rspというのが肝ですね。通常RSPと記述されるもので、レジスタと呼ばれているものです。RSPはスタックに関するレジスタでありスタックの一番上のメモリアドレスを示しているとのこと。

また、subは引き算をする時に使われるニーモニックコードです。 第一オペランド($0x8)から第二オペランド(%rsp)を引いて、第一オペランドに格納するという動きをするとのこと。

なので、この一行は変数$0x8からスタックの一番上のメモリアドレスの値を引くという動作になると読めそうです。

2行目

4f4: 48 8b 05 ed 0a 20 00    mov    0x200aed(%rip),%rax        # 200fe8 <__gmon_start__>

movが使われています。 movは値のコピーをするときに使われるもの。

%ripは次に実行される命令を指すレジスタ

%raxというのは%rsp同様レジスタであり、アキュムレーターを指しているとのこと。

アキュムレーターとは、CPUの演算回路を構成するレジスタの一種で、論理演算や四則演算などによるデータの入出力と結果の保持に用いられるレジスタのことである。

アキュムレーターとは何? Weblio辞書

3行目

4fb: 48 85 c0                test   %rax,%rax

testはビット01をテストしているとのこと。

4行目

4fe: 74 02                   je     502 <_init+0x12>

jeは条件分岐のニーモニックコードとのこと。 前の結果が0なら分岐、ゼロフラグ=1なら分岐なので、3行目のtestの結果次第で条件が分岐するということでしょうか。

5行目

ff d0                    callq  *%rax

callqは関数呼び出しのニーモニックコードです。 また、呼び出しに使われているのも*が使用されているのでポインタをさし示すことになるので、レジスタRAXの番地にある処理を実行せよという表記になるのかな・・

6行目

48 83 c4 08              add    $0x8,%rsp

今回はaddですね。 subとほぼ同じ挙動なのですが、$0x8の値と%rspの値を足して、$0x8に格納するという処理が行われます。

7行目

506: c3                      retq

retqは呼び出し元への処理の返却を表しています。

今回使われたニーモニックコードまとめ

ニーモニックコード 意味 詳細
add add 値の足し算。
sub subtract 値の引き算。
mov move 値のコピー。第一オペランドに第二オペランドの数値をコピーする。
test test ビットの01をテスト。
retq return 返り値。

まとめ

所感

今回はバイナリファイルの静的解析の真似事をしてみました。

色々と抜け落ちている知識が多々あり、コンピュータ科学の基礎の基礎が抜け落ちていることを痛感しました。大学で何を学んでいたのでしょうか・・・うう・・・

今回大学の教科書などを引っ張り出して調査しながら記事を書きました。 至らない点もあると思います。何か間違った記述などあればコメントいただけると幸いです。

ばぁどのハニーポット・うぉっちんぐ - T-Pot(Cowrie) で取得したマルウェアをローカルに持ってくる -

ばぁどです。

AWSのEC2上に構築した、T-PotのCwrieでキャプチャしたマルウェアをローカルに持ってくるのが凄い苦労しました。

今回は、その苦労話です苦笑

観察日記というよりは、トラブルシューティングです。

最終的なscpコマンド

色々と試行錯誤をしまして下記のscp コマンドにたどり着きました。 今回は、i オプションと、Pオプションを使用しました。

オプション 説明
i 接続に使用する公開鍵ファイルを指定
P 接続先のポート番号を指定
scp -i "pemのあるURL" -P [port番号] [user名]@[ドメイン]:[サーバー内のURL] [ローカルのURL]

ハマりポイント1. ポート番号を指定していなかった

初期はポート番号を指定せずにコマンドを打っていました。

結果はPermission deniedです。

Permission denied (password,publickey,keyboard-interactive).

まずはここの調査になります。

ここで気になったところは、私が構築しているハニーポットsshする時にポート番号を指定しているということ。

ssh時にポート番号を指定している理由は、 セキュリティ上ssh する時のポート番号を変更していたためです。 scpで利用するポート番号を調べたところ、指定しない場合はssh のデフォルトである22を利用するということだったので、ここはポート番号を指定することで難なく突破。

なんとなくここはエラー見たときに察しはついたんだよなー。

ハマりポイント2. フォルダ・ファイルへのアクセス権限がなかった

次になんとなくscpできるようにはなったので、Cowireで取得したマルウェアをローカルに持ってきます。

T-pot上では、Cowire で取得したマルウェアは下記ファイルパスに格納されます。

/data/cowrie

[[ユーザー名]@consciousdesert:/data/cowrie]# ls -la
total 11072
drwxrw----  6 tpot tpot    4096 Oct 29 03:28 .
drwxrw---- 18 tpot tpot    4096 Sep 22 19:41 ..
drwxrw----  2 tpot tpot    4096 Oct 29 03:28 downloads
-rwxrw----  1 tpot tpot       0 Oct 28 16:28 downloads.tgz
-rwxrw----  1 tpot tpot  285266 Oct 17 03:28 downloads.tgz.10.gz
-rwxrw----  1 tpot tpot  286941 Oct 16 03:28 downloads.tgz.11.gz
-rwxrw----  1 tpot tpot  285412 Oct 15 03:28 downloads.tgz.12.gz
-rwxrw----  1 tpot tpot  285431 Oct 14 16:28 downloads.tgz.13.gz
-rwxrw----  1 tpot tpot  285271 Oct 14 03:28 downloads.tgz.14.gz
-rwxrw----  1 tpot tpot  285497 Oct 12 03:28 downloads.tgz.15.gz
-rwxrw----  1 tpot tpot    2330 Oct 28 16:28 downloads.tgz.1.gz
-rwxrw----  1 tpot tpot  285492 Oct 27 03:28 downloads.tgz.2.gz
-rwxrw----  1 tpot tpot  285294 Oct 26 03:28 downloads.tgz.3.gz
-rwxrw----  1 tpot tpot  570910 Oct 25 03:28 downloads.tgz.4.gz
-rwxrw----  1 tpot tpot  287426 Oct 24 03:28 downloads.tgz.5.gz
-rwxrw----  1 tpot tpot  285475 Oct 21 16:28 downloads.tgz.6.gz
-rwxrw----  1 tpot tpot 1572707 Oct 21 03:28 downloads.tgz.7.gz
-rwxrw----  1 tpot tpot 5713692 Oct 20 03:28 downloads.tgz.8.gz
-rwxrw----  1 tpot tpot  572817 Oct 19 03:28 downloads.tgz.9.gz
drwxrw----  2 tpot tpot    4096 Sep 22 19:41 keys
drwxrw----  3 tpot tpot    4096 Oct 29 09:09 log
drwxrw----  2 tpot tpot    4096 Sep 22 19:40 misc

上記のように、1日ごとに圧縮して保持してくれています。

ハニーポットのログを15日まで保持するように指定しているので、15日前の分までは保持していますが、それ以降のものは削除してくれています。

また、このファイルパスはroot権限を持っているユーザーでないと見えません。今回はここがポイントでした。

$ scp -i "pemのあるURL" -P [port番号] [user名]@[ドメイン]:/data/cowire/downloads/downloads.tgz.1.gz ./
scp: /data/cowire/downloads/downloads.tgz.1.gz: Permission denied

root権限でしかアクセスできないところに、ログインユーザーで取りに行こうとしてもそりゃ権限エラーになるわ。

今回は接続しているユーザー下にフォルダ(downloadsフォルダ)を作成。 そこにroot 権限でコピー。

cp /data/cowire/downloads.tgz.1.gz /home/[ユーザー名]/downloads/
$ cd /home/[ユーザー名]/downloads/
$ ls -la
total 12
drwxr-xr-x 2 root  root  4096 Oct 29 16:17 .
drwxr-xr-x 6 honey honey 4096 Oct 29 14:39 ..
-rwxr----- 1 root  root  2330 Oct 29 16:16 downloads.tgz.1.gz

ここで注目するべきは、圧縮ファイルの権限。 rootからしか見れないところにあったため最初は710の状態。

scpで持ってくれるように権限も変更しておきます。

読み取りさえできればいいはずなので、read権限を付与。

$chmod 714 downloads.tgz.1.gz 
$ls -la
total 12
drwxr-xr-x 2 root  root  4096 Oct 29 16:17 .
drwxr-xr-x 6 honey honey 4096 Oct 29 14:39 ..
-rwx--xr-- 1 root  root  2330 Oct 29 16:16 downloads.tgz.1.gz

さぁ、scpだ!!

$scp -i "pemのあるURL" -P [port番号] [user名]@[ドメイン]:/home/[ユーザー名]/downloads/downloads.tgz.1.gz ./
downloads.tgz.1.gz                            100% 2330   132.9KB/s   00:00 

無事に成功!歓喜

ローカルに持ってこれた!!

$ ls -la
total 568
drwxr-xr-x  5 hatoritakuya  staff     160 Oct 29 16:25 .
drwxr-xr-x  3 hatoritakuya  staff      96 Oct 24 20:14 ..
-rwx--xr--  1 hatoritakuya  staff    2330 Oct 29 16:22 downloads.tgz.1.gz

あとは、解凍してマルウェアを解析できる状態にするだけです。

gzの解凍はgunzipコマンド。

$ gunzip downloads.tgz.1.gz 
$ ls -la
total 568
drwxr-xr-x  5 hatoritakuya  staff     160 Oct 29 16:27 .
drwxr-xr-x  3 hatoritakuya  staff      96 Oct 24 20:14 ..
-rwx--xr--  1 hatoritakuya  staff    2307 Oct 29 16:22 downloads.tgz.1

続いて、tgzの解凍。 使用するのは、tarコマンド。 オプションは-xzvfを使用。

結構-xzvfはおまじないみたいに使っているので、このタイミングで調査。

オプション 説明
x externalの略。ファイルを抽出する。
z 圧縮する形式としてgzip形式を利用する。圧縮、展開時両方指定可能。(拡張子は「.tar.gz」または「.tgz」)
v verbose の略。処理したファイルを詳しく出力。
f ファイル名指定

コマンドを実行。

$ tar -xzvf downloads.tgz.1
$ ls -la
total 568
drwxr-xr-x  5 hatoritakuya  staff     160 Oct 29 16:27 .
drwxr-xr-x  3 hatoritakuya  staff      96 Oct 24 20:14 ..
drwxr-xr-x  3 hatoritakuya  staff      96 Oct 29 16:25 data
-rwx--xr--  1 hatoritakuya  staff    2307 Oct 29 16:22 downloads.tgz.1

新しくdataフォルダが作成される。

data以降のファイルパスは、T-potと同じパスで展開されます。

$ cd data/cowrie/downloads/
$ ls -la
total 1224
drwxr-----  3 hatoritakuya  staff      96 Oct 29 16:33 .
drwxr-xr-x  3 hatoritakuya  staff      96 Oct 29 15:01 ..
-rwxr-----  1 hatoritakuya  staff  625867 Oct 26 03:53 tmpo3Qp_6

今回目的のマルウェアを発見!!

あとはこのマルウェアを焼くなり、煮るなりする (マルウェアの解析は仮想環境でやりましょう)

まとめ

マルウェアをscpで持ってくる方法を今回はまとめました。

やっとマルウェア解析できる。

今月、マルウェアの表層解析、動的解析、静的解析を勉強していたので、このマルウェアの調査結果もアウトプットしていきます。

ばぁどのハニーポット・うぉっちんぐ - 2018/10/25 ~ 2018/10/27 -

定期アウトプットです。

今回から観察日誌のタイトル変えます。 観察日誌だと被り多いなーと思って、独自性のあるタイトルにしてみました。 「観察日誌」だと「観察記録」や「観察日記」でタイトルつけている方々も出てし舞いますしね。

ハニーポット」と「ウォッチング」でググってくれれば出るようになりそう。

また、前回と同様に観察期間は少しずれています。 次回は土曜日に更新できそうです。

観察期間:2018年 10月25日 00:00:00 - 10月27日 00:00:00

CVE 検知した回数
CVE-2017-0143 6
CVE-2005-0045 1
CVE-2016-6563 1
CVE-2017-7269 1

CVE-2017-0143

CVE-2016-6563

CVE-2017-7269

以前紹介したCVE記事まとめはこちら

ultrabirdtech.hatenablog.com

CVE-2005-0045

CVSS Score

7.5

概要

Windows系の脆弱性

特定のパケットが正しく検査されていないため、リモート攻撃者が任意のコードを実行可能。

SMBレスポンスに脆弱性がある?のかな。 なんだ、SMBレスポンスってなったので、軽く調べたのですが、WIndows のファイル共有時に使われるプロトコルのようです。

バッファオーバーフローを用いている模様。 バッファオーバーフローは、先日催された情報処理安全確保支援士の午後問題でも出てきましたね。

ultrabirdtech.hatenablog.com

評価値

評価基準名 評価値 備考
攻撃元区分(AV) ネットワーク
攻撃条件の複雑さ(AC) 低(Low) アクセス条件や特別な権限は必要なし
攻撃前の承認要否(Au) 必要なし(Not Required) -
機密性への影響(C) 部分的(Partial) 機密ファイルの開示がされる可能性あり。
完全性への影響( I ) 部分的(Partial) システムファイルの不正な変更などを許す可能性があり。制御ファイルなどへの制限はされている。
可用性への影響(A) 部分的(Partial) パフォーマンスなどに影響する可能性あり。

www.cvedetails.com

JVN

JVNDB-2005-000095 - JVN iPedia - 脆弱性対策情報データベース

まとめ

久々に新しい脆弱性に出くわすことができました。

また、次回からマルウェア調査もできそうなので、そちらもこの定期観察の時に報告できればいいなと思っています。

以上です。

ばぁどのハニーポット観察日誌 - 2018/10/21 ~ 10/024 -

ハニーポット観察日誌です。

本当は毎週土曜日更新を目標にしていますが、明日から週末まで海外にいるため本日更新します。

他の観察日誌と違って、観察周期が一週間ではありません。

観察期間:2018年 10月21日 - 10月24日

CVE 検知した回数
CVE-2003-0818 6
CVE-2005-4050 6
CVE-2017-7269 3
CVE-1999-0183 1
CVE-2016-6563 1
CVE-2017-0143 1

全て以前の記事で紹介済みです。

以前紹介したCVE記事まとめはこちら

ultrabirdtech.hatenablog.com

まとめ

今回も新しいCVEは検知なし。 そろそろ観察し始めて一ヶ月経ちますが、だいたい攻撃が成功しやすいような観測済みのCVEが多いということでいいのかしら。

今後も同じような検知が続くのであれば、新しいものを検知した場合のみ記事にするでもありですかね。

そうなると、別の観測手法での観測を考えなきゃですが・・・

情報処理安全確保支援士2018年度秋期試験をサラッと見た

情報処理試験の時期ですね。

一年前に情報処理安全確保支援士試験に合格してから、情報処理試験はお休みしていますがなんだかんだ意識してしまいます。

情報処理安全確保支援士の試験をざっと見たので、その感想。

午前II

解いて見た結果:12 / 25

問題番号 正誤 問題番号 正誤
1 × 14
2 15
3 × 16 ×
4 × 17 ×
5 × 18
6 × 19 ×
7 20
8 × 21 ×
9 22
10 23
11 × 24 ×
12 × 25
13

ダメだこりゃ苦笑。 やっぱり、試験前の対策勉強って大事ですね。

間違えたものを復習。

1. AESの特徴

正答:ア

何度か過去問で見たことがありますね。 AESの特徴についての問題です。

私はイと答えてしまいました。アかイで迷ったんですよねー。 悔しい。

3 ブロックチェーン

正答:エ

ブロックチェーンに関して午前IIで出題されたのは初めてなんじゃないかな? 過去問で見た覚えがない。 まぁ確かにブロックチェーンがニュースとかで話題になったの仮想通貨が流行った時だと思っていて、その時期を考えると今回あたりが初出になりそうですね

ブロックチェーンに関して全く知識がなかったので誤答しました。

WIkipedia で恐縮ですが・・・

ブロックチェーンは、「ブロック」と呼ばれるデータの単位を一定時間ごとに生成し、鎖(チェーン)のように連結していくことによりデータを保管するデータベースである。つまり、ここでいうブロックはノードである。主鎖(黒)の同一性は、起源ブロック(緑色)がもつハッシュ値を究極的な拠り所とする。

ブロックチェーン - Wikipedia

ハッシュってわかりやすく書いてありますね。おそらく2018年度の参考書にはブロックチェーンに関して記述あったのでしょうか。 イメージとしてはブロックチェーンなんとなくあったのですが、言葉での説明はできなかったので今回を機に覚えます。

4 マルチベクトル型DDos攻撃

正答:ア

マルチベクトル型という単語を初めて見た。 いまいち、マルチベクトルを想像できず誤答。

5 FIPS PUB 140-2

正答:ア

FIPSはなんかのセキュリティに関する規定だなーって覚えていたけど、暗号モジュールだということを忘れていた。

FIPS 140 - Wikipedia

6 サイバーセキュリティ経営ガイドラインについて

正答:ア

あー、アかイで迷って、イを選んだパターンだ。悔しい。

8 EDSA認証

正答:ア

EDSA認証、初めて聞いたかも。勉強していたけど記憶にないだけ?かな。

www.cssc-cl.org

EDSA認証は,スキームオーナーであるISCIが運営する制御機器のセキュリティ保証に関する認証制度であり ソフトウェア開発の各フェーズにおけるセキュリティ評価 (SDSA:Software Development Security Assessment) セキュリティ機能の実装評価(FSA:Functional Security Assessment) 通信の堅牢性テスト(CRT:Communication Robustness Testing) という3つの評価項目が存在します。

11 マルウェア Mirai

正答:エ

マルウェアに関する知識がなかった。うーん、初めて知った。

techfactory.itmedia.co.jp

12 HTTP Strict Transport Security (HSTS)について

正答:エ

これをつけるとHTTPSで接続するようにしてくれるみたい。 なんか、こういう基礎部分の知識が抜け落ちてて、本当に情報処理安全確保支援士合格できたのたまたまな気がしてきた。

developer.mozilla.org

16 メール送信時のプロトコル

正答:ア

エと誤答。

SMTP over TLSはサーバー側だと確信したので、アかエの二択。 S/MIMEだけ間違っていた。。。 なんか、二択までは絞れるんだけど最後の絞り方でミスってるな・・これで二択の選択ミスりが3問目か。

17 RADIUS

正答:イ

RADIUSに関する問題。過去問で見た覚えあり。 ぶっちゃけ忘れた。短期記憶に突っ込んだだけだったんだろうな。

19 クラスDのIPアドレス

正答:ウ

これは知っているかどうかの知識だなー。 ふー。

21 SQL問題

正答:エ

やべ。これ間違えた。

Webアプリケーション作成して、SQLとかめっちゃ打ってるし、ORACLESQL資格も持っているのに恥ずかしい。

あー、てか見直したら普通にわかるじゃん。WHEREで'東京'やってるじゃん。うわー。うわー。

24 セキュリティプロセス

正答:ウ

これはわからなかったから勘で答えてダメだったやつ。

所感

ブロックチェーンとか、特定のマルウェアに対する問題があるのが新鮮でした。

過去問で見たものも何個かありますね。やはり過去問の復習は大事。

午後I

1. ソフトウェア開発

IoT機器の開発に関する問題ですね。

ソフトウェア開発の問題でIoTが出てくる時代になったか。。。 東京オリンピックなんていうホットワードも入れ込んできていますね。

内容はバッファオーバーフローに関する問題。 バッファオーバーフロー攻撃がどのように実現されるかの仕組みの部分や、メモリとかの知識が必要になってくるやつですね。

2. セキュリティインシデント

セキュリティインシデントの問題です。 とはいえ、セキュリティインシデントと見せかけて、IPアドレスとか通信の速度を計算させてくる。 これは地雷だ。

セキュリティインシデントの対応手順というよりは、ネットワークの知識が問われる問題ですね。

3. ソフトウェアの脆弱性

ソフトウェア脆弱性に関する問題です。

脆弱性が発表された時の対応を問われていますね。

つい最近まで脆弱性に対しての対応などを行なっていたりしたので、結構楽しく読めました。

所感

私が選ぶなら、1と3ですね。

ネットワークはどうしても苦手で・・・苦笑

タイミング的に、2回前くらいからバッファオーバーフローはくるかなと思っていたので、遂に来ましたねという印象。(問題が出た後の後出しジャンケン的な意見で申し訳ないですが)

午後II

1. クラウド環境のセキュリティについて

クラウドとは、まさに今風の問題ですね。

IPAなので特定のクラウドに関する問題は出せないにしても、少しぼやっとする問題ですね。

そしてまさかのGDPRについての問題が。

時事問題に関して、ここまでリアルタイムに持ってこられるとはお見それしました。

2. セキュリティインシデント

午後Iの問題より、セキュリティインシデントの対応っぽい問題な気がしました。

フォレンジックスで、ログも見なきゃいけないというなかなか興味がそそられる問題ですね。

割と解きやすい問題だなと思いました。

所感

私が選ぶなら、2です。 実際に解いてはいませんが、回答が出た後もう一度見てみようかなと思います。

まとめ

総じて、新しいワードが目を引いた試験だなと思いました。

毎回こんなに新しいワードありましたっけ。

一度受かってもまた問題解いてみると、どうなるか本当に怖い。

レベル4の知識を維持できるようにもっと頑張らなければ。

「WEBフロントエンドの歴史本」を読みました

ばぁどです。

技術書典で買った本の感想です。

techbookfest.org

最初の印象として、とてもデザインがしっかりしている本だと言うこと!!

図解なども凄いわかりやすく、デザインにこだわりを感じます。

著者の方は、「ちょっとだけ」デザインもやるとのことなのですが、デザインができるとは羨ましい限りです。。。キャラクターのみかんも可愛い。

歴史解説

JavaScriptの歴史について、時系列でまとまっています。 こう言う歴史を解説してくれる本って貴重ですよね。

技術を学ぶやり方の一つに、歴史から探ると言う手法があります。 なぜ、この技術は開発されたのか?誰が必要だと思い開発したのか?必ず、技術が開発された場合それらの理由があります。そして必要だと思った裏には必ず歴史的な背景があります。

この歴史的な背景ってあまりどこにも情報がまとまっていなくて、このような歴史解説をしてくれているのはとてもありがたいです。

なので、qiitaなどに歴史的な背景を説明してくれる記事が投稿されると、思わず読みふけてしまうのです・・・

どこかのタイミングでITの歴史がまとまった本とか出て欲しいなと思っている次第です。

フロントエンドの技術領域

こちらも大変参考になりました。

私はWebアプリケーションの開発者として、今まで働いてきており直近の1年はフロント側のエンジニアとして試行錯誤しておりました。

デザイナーでもないのにデザイン色々考えなきゃだし、デザインというよりはUI/UXの知識が必要だったり色々大変だったなー。

まとめ

「WEBフロントエンドの歴史」とても参考になりました。

私が新人時代だった2014年頃はちょうど、Ajax活用してページングせずともコンテンツを表示できるようにするという案件任されていたっけ・・・

少し前はJavaScriptはセキュリティ的にも悪だった時代があると知って驚いたり、本書にも記述があるのですが、Google マップがその印象をガラリと変えたというのもその時知りました。

Webフロントエンドの歴史を探りたい人にはオススメの一冊です。