「実践bashによるサイバーセキュリティ対策」という本を読んだ。
結論から言うと、良本だった。
本を読む前の自分
「どういう人がこの本を読んだのか」が気になる人もいると思うので、書いておきます。
- Linuxについて少しかじったことがあるレベル
- メジャーなコマンドはそこそこ知ってて、ディレクトリ構造とかもザックリ知ってて、プロセスとかジョブとかもちょっと知ってて、環境変数とかシェル変数の違いもわかる・・・みたいなレベル。
- カーネルの仕組みとかはさっぱり分からない。
- Linuxの本を数冊(Linuxの)読んだことがあって、YoutubeのLPICの解説動画とかも色々見て、分からない部分をひたすらググりまくったりした。
書評
学べた内容:
- bashの文法にかなり詳しくなれた(気がする)。
- ログの収集方法、ログの解析方法
- 実際のApacheのログファイルを「どうやって収集するか」「どうやって解析するか」などをシェルスクリプトの実例とともに解説されていて、「ははーん、ログファイルはこういう風に役立つんだな」と改めて実感できた。
- ネットワーク監視、ファイルシステム監視方法
- ポートを一定時間毎に監視して、不正に使用されていないかチェックする方法
- ファイルシステムの魚拓(ベースラインと呼ぶらしい)のようなものを取って、それを一定時間毎にチェックして改ざんされていないかチェックするなど
- スクリプト難読化
- こういうふうにしたらシェルスクリプト自体を暗号化できるよーな方法
- その他いろいろ
思った点:
- 初級者以上向けの本で、初心者向けではない。おそらく完全初心者のころの自分が読んだら最初の数ページで詰んでた自信がある。
- わざわざ外国の本を和訳した本だけあって、中身はかなり濃い。
良かった点:
- Linux初心者本にありがちな超基礎的な解説がない。「実践」に名を恥じない内容。初心者本だと数ページにわたって説明するような内容を数行でサラッと説明してたりするので、テンポがよい。
3章までは「bashによるサイバーセキュリティ対策」を実践するためのbash(というかシェル)の基礎知識を最低限復習するみたいな内容らしいので、本当にサラッと説明してるだけ。あと他の章でも、その章でメインに使うコマンドについての解説があるけど、本当にサラッと触れるだけって感じ。それがいい。
悪かった点:
- 章の最後にある問題の解答がHP上にしかない上に、HPにもすべての解答が載っていなかった。例えば「問1~5まであったとして、問1,2,4の解答しか載ってなくて問3,5の解答がない」みたいな感じ。いや全部載せろよ!
bash、文法が独自すぎる
読み終わって強く思ったのですが
bashって本当に独自のマイナーな記法が多いですね。。
例えば、以下の記述を見てください。
LOGDIR=${1:-/tmp/${SYSNAM}_logs}
これ、どういう意味かわかりますか?
正解は
LOGDIRという変数に、シェルスクリプトを実行した際の1つ目の引数($1)を代入せよ。
もし$1が空なら「/tmp/${SYSNAM}_logs」を代わりに代入せよ。
という意味です。
いやまぁ、読み終わった今となっては「こんなの基本中の基本だよね」と思えるようになったんですけど、この書き方って結構特殊ですよねたぶん。。
次にこれ。
ALOG="${ALOG%$'\r'}"
これは
ALOG変数の中にあるテキストの後方にある、改行コード(\r)を削除して、ALOG変数に代入せよ
という意味です。
まず、%の部分は以下のとおりで
${変数名#パターン} → 前方一致でのマッチ部分削除(最短マッチ) ${変数名##パターン} → 前方一致でのマッチ部分削除(最長マッチ) ${変数名%パターン} → 後方一致でのマッチ部分削除(最短マッチ) ${変数名%%パターン} → 後方一致でのマッチ部分削除(最長マッチ) ${変数名/置換前文字列/置換後文字列} → 文字列置換(最初にマッチしたもののみ) ${変数名//置換前文字列/置換後文字列} → 文字列置換(マッチしたものすべて) 引用:https://ozuma.hatenablog.jp/entry/20130928/1380380390
$’ ‘ の部分は以下のとおり。
bashでは、$’<文字列>’という指定をすると、それがバックスラッシュでエスケープされている文字に置き換えられる。これにより、各種制御コードを検索できる。
引用:https://www.atmarkit.co.jp/flinux/rensai/linuxtips/a018bashhexcode.html
というわけで
この本を読むことでサイバーセキュリティについての知識がちょっと付いたし、bashの文法についてもそこそこ詳しくなれたので、読んだ価値があったかな
・・・という感じです。
おわり
コメント