第二子の育休が終わり復職しました
引き続き10Xで頑張っております💪 よろしくお願いします!
セキュリティを勉強しようと思い3ヶ月間で読んだ本の紹介と感想
直近3ヶ月ほどセキュリティを意識的に勉強してみようと思い、いくつか本を読んでみました。その読んだ本の紹介と簡単な感想を書きました。最後におまけで積読してる本も紹介しています。少しでも誰かの参考になれば幸いです。また「これもおすすめだよ!」ってものがあれば本に限らずぜひ教えてほしいです!
まずはじめに、私の前提知識やそもそもどうしてセキュリティを意識的に勉強しようと思ったのか?を書いておきます。
筆者の前提知識
この程度の知識があった上で本を読んでます!という前提を書いておきます。本の感想はこれらをふまえた上でのものです。
- これまでモバイルアプリ開発がメインだったので、フロントエンド・サーバーサイドの脆弱性などは「徳丸本読んでなんとなくこんなのがあるの知ってる!」くらいのレベル
- モバイルアプリ開発において意識すべきセキュリティはある程度理解して実践している(セキュアコーディングガイド読んで実践に活かしてます!くらいのレベル)
- セキュリティエンジニアが利用するツールなどはほぼ知らない。Wiresharkは知ってます!BurpSuite初めて聞きました!くらのレベル
- 暗号、ネットワークの知識は基本情報で基礎学びました!くらいのレベル
どういうモチベーションや目的で本を読んできたか
セキュリティを勉強すると言っても目的次第で読む本は変わるので、私のモチベーションや目的をざっくり書いておきます。
モチベーション
- 将来的にエンジニアリングを経営目線で考える際のスキルとして、明らかにセキュリティに関するスキルが足りてないと実感し学ぶことにした
- 私が働くスタートアップではセキュリティインシデントが事業存続を困難にする可能性があるため、インシデントを起きにくくするための対策、起きた場合のいい対応などを学ぶ必要性が高い
- セキュリティに特化した技術力を身につけ、意識的に脆弱性を探すことができるようになりたい
- 今のところセキュリティエンジニアになりたいわけではないが、セキュリティを学んで実践することが市場において今後評価されると予測し学ぶことにした
目的
- 会社経営に活きるセキュリティ知識(技術力含め)を身に着け実践したい
どういう順番で本を読んだか
上記で書いたモチベーションや目的をふまえ、どういう順番で本を読んだかを書いておきます。
- まずは経営 ✕ セキュリティの一般的な知識が身につきそうな本を読んでみた
- 次はセキュリティの基礎知識を改めて学ぶために入門的な本を数冊読みつつ、気になるトピックの本も同時に読んでみた
- 入門書がさらっと読めるようになったら、代表的な脆弱性(OWASP Top 10とか)を見つける手法や対策が学べそうな本を数冊読んでみた(今も読んでいる)
上記のことをふまえて読んできた順番に本を紹介します。
読んだ本の紹介と簡単な感想
経営とサイバーセキュリティ デジタルレジリエンシー
経営 ✕ セキュリティの基礎的な考え方を学ぶのにとても良い内容でした。「最優先で守るべきもの」を定義して対策するという話があり、当たり前といえばそうですがセキュリティは守りたいものや守るための対策がいっぱいになってしまう傾向があると思ってて、その中でも優先してやるべきことをはっきりさせるのが大事と書かれててよかったです。脅威・リスク分析みたいな手法の具体的なHowではなく、考え方を学ぶことを中心とした内容になってます。この本から読み始めて良かったです。
ゼロトラスト Googleが選んだ最強のセキュリティー
Zero Trustは名前の雰囲気からこういうことかな?くらいで全く知識がなかったので読んでみました。Zero Trustの考え方が必要になった背景を知れたのが一番の収穫です。境界防御だけじゃ対策として厳しい時代になってきた理由なども記載されていて学びが多かったです。最近だとVPNの脆弱性を突いてゴニョゴニョする的な話を聞くので納得感がありました。
サイバー攻撃 ネット世界の裏側で起きていること
サイバー攻撃とはなにか?脆弱性とはなにか?をわかりやすく説明しつつ、バッファオーバーフローなどの脆弱性がなぜ起きてしまうのか?の部分はコードを交えながら解説してくれるのがとても良かったです。他にもCVSS、脆弱性報奨金制度、CTFなどセキュリティに関わるエンジニアが知っておくと良さそうな情報がいっぱい書かれています。最前線でサイバーセキュリティに取り組んでる方が書いた本でとても参考になりました。私のようにセキュリティの知識と技術力両方学びたい方にとてもおすすめできる一冊です。
企業を強くするサイバー演習
会社としてセキュリティに気をつけていてもセキュリティインシデントが起きる時は起きるのだと過去の経験から実感しています。そのため実際にインシデントが起きたらどう対応すべきか?を演習するのが大事だと思い読んでみました。演習の事前準備から実施、ふりかえりなど一連の工程が丁寧に紹介されています。「この組織でセキュリティインシデント起きたら対応できるか心配...」と思ってる方はぜひ読んでみてほしい一冊です。
徳丸浩のWebセキュリティ教室
こちらは昔読んだのですが改めて読み返してみました。脆弱性の定義として"「悪用可能なバグ(欠陥)」だと考えると分かりやすい。通常、プログラムにバグがあると、「できるはずのことができない」。だが、脆弱性はこの逆で、「できないはずのことができる」ようになる。"と書かれてて、これは説明する時に使えそうでとてもいい文でした。Webアプリケーションで起きがちな脆弱性を知りたい方におすすめできる一冊です。同じく徳丸さんが書いた『体系的に学ぶ 安全なWebアプリケーションの作り方』を合わせて読むと理解が深まると思います。
イラスト図解式 この一冊で全部わかるセキュリティの基本
セキュリティの知識は文字で理解するのが難しいこともあるなーと私は感じたので、イラストも交えて学べる本書は良かったです。書いてある内容は既知のことが多かったですが、イラストを交えると理解力上がりますし、人に説明する際の参考にもなります。イラストも交えた入門書をお探しの方にはおすすめできる一冊です。
サイバーセキュリティ入門 私たちを取り巻く光と闇 共立スマートセレクション
セキュリティの基礎知識が少しずつ身についてきたかも?と思ったので、入門書をさらっと読めるか試すために読んでみた一冊です。学生に向けた教科書っぽい作りになってますが、中身はかなりしっかりしています。ある程度知識を得た上で読んだのでさらっと読めましたが、これを最初に読んだら私は挫折しそうかも...と思いました。そのくらい中身は詰まってて丁寧な解説が書かれている本です。
ホワイトハッカー入門
入門なので「これを読めば君も今日からホワイトハッカーだ!」とはならない気もしますが、ホワイトハッカーの方々がどういうことを考えて活動してるのかイメージがつかめるいい本でした。「実際の業務でやるとなると攻撃対象の情報収集とか事前準備が相当時間かかりそうだなー」とか、いい意味で現実を知れる内容になってると思いました。
OWASP ZAPとGitHub Actionsで自動化する脆弱性診断 技術の泉シリーズ
Kindle Unlimitedにあったのでさらっと読んでみました。OWASP ZAPの存在を知らなかったので、それを知れただけで読んで良かったです。詳しい使い方は本書で扱ってないので後は自分で調べる必要があります。
フロントエンド開発のためのセキュリティ入門 知らなかったでは済まされない脆弱性対策の必須知識
Webフロントを詳しく知らない私にはとてもいい内容でした。最近出版された本なので情報が新しいのも良い点です。セキュリティのために作られた仕組みの解説、脆弱なコードの紹介、脆弱性対策が順番に書かれていてとても理解しやすかったです。この本に書いてあることが色んなサービスでどの程度行われてるのかとか今後見てみるとより参考になりそうです。気になる人は著者さんが話してるYouTubeを見てみるのがおすすめです。
ウクライナのサイバー戦争
最近新書で出てるのを知って読んでみました。知識が増えたわけではないですがサイバー戦争の生々しさが伝わってくる内容でした。国のインフラが狙われやすいようですが、場合によっては自分が働く企業が狙われるケースがあるかもしれないと考えると他人事ではないと思わされますね。
今読んでる本
この先の本は今読んでいる最中の本です。途中まで読んでみての感想を書いておきます。
ハッキングAPI
様々なツールを使ってWeb APIの脆弱性を見つける方法がいっぱい書かれています。セキュリティ関連のツールはほぼ知らないので「こんなことができるツールがあるのか、すごい!!」と思わされっぱなしです。例えば「ポートスキャンってよく聞くけど、どうやってやるのかなー?」と思ってたのですが、まさにそれを簡単に行うツールが書かれていたりして読んでて楽しです。この本で紹介されていることは実践でも使える気がします。
CISOハンドブック――業務執行のための情報セキュリティ実践ガイド
CISO(Chief Information Security Officer)ってたまに聞くけど、具体的な役割ってなんだろ?を知らないので読んでます。とにかくやることがいっぱいあり大変そうですが、それだけ大事な職務ってことですね。
AWSではじめるクラウドセキュリティ クラウドで学ぶセキュリティ設計/実装
第1部が特にAWSに限った話じゃない部分で責任共有モデルなどの話も書いてあるので読んでます。気になる人は著者さんが話してるYouTubeを見てみるのがおすすめです。
マルウエアの教科書
どんなマルウエアが存在するのかあまり知らないので知るために読んでます。400ページ以上あるので内容がぎっしり詰まってそう!
おわりに
最近では本に限らずセキュリティを学べるコンテンツがいっぱいあります。私は本と合わせてセキュリティ関係のYouTubeを見たり、Podcastを聴いたりして学びが捗ってます。これらのコンテンツを世に出してきた方々、本当にありがとうございます!この記事も少しでも誰かの参考になれば幸いです。また「これもおすすめだよ!」ってものがあれば本に限らずぜひ教えてほしいです!
(おまけ)積読してる本
おまけとして買って今後読もうと積読してる本をただただ並べてます。セキュリティに関する本って探すといっぱいありますね。買いたい本はもっといっぱいあるので、また別の機会に紹介できればと思ってます。
DeNAのサイバーセキュリティ Mobageを守った男の戦いの記録
はじめて学ぶバイナリ解析 不正なコードからコンピュータを守るサイバーセキュリティ技術
セキュアで信頼性のあるシステム構築
実践 CSIRTプレイブック
セキュリティエンジニアのための機械学習
リアルワールドバグハンティング
CISOのための情報セキュリティ戦略ーー危機から逆算して攻略せよ
ランサムウエアから会社を守る ~身代金支払いの是非から事前の防御計画まで
サイバーセキュリティ戦記
マスタリングTCP/IP 情報セキュリティ編 (第2版)
コンテナセキュリティ コンテナ化されたアプリケーションを保護する要素技術
Webブラウザセキュリティ Webアプリケーションの安全性を支える仕組みを整理する
よくわかるパーソナルデータの教科書
SlackのメッセージをNotoinに保存する自動化をZapierで組むことでフリープランのまま過去のメッセージ履歴を参照できるようにする
私は個人的なメモや考えたことを書いておく場所としてSlackを使っています。個人用途のため無料ワークスペースで使っているのですが、2022年9月からフリープランだと過去90日間のメッセージ履歴しか見れなくなる変更が行われました。
過去に書き込んだ内容を参照したい時があるため、Slackに書き込んだ内容をNotionのDBに保存することで、Slackはフリープランのまま過去のメッセージが参照できる仕組みを作ることにしました。
Slackに書き込んだら自動でNotionのBDに保存したいので、Zapierを使って自動化のワークフローを組みました。
Zapierもお金をかけずにワークフローを組みたいと思ったので、2ステップのワークフローを組んで実現しました(3ステップ以上は有料プランになる)。
今回は、この自動化を実現したZapierのワークフローを紹介します。
事前準備(NotoinのDBを作成する)
Slackに書き込んだ内容を保存するNotoinのDBを作成します。
私は下の画像のように「内容」、「URL」、「書き込んだ時のタイムスタンプ」のカラムを持つBDを作って運用してます。
Zapierのワークフローの概要
ここからZapierのワークフローの説明をしてきます。まずはワークフロー全体はこんな感じです。
とてもシンプルなワークフローです。
Slackのパブリックチャンネルで新しい投稿がされたことをワークフローのトリガーにします。あとはSlackに投稿された内容などをNotionのDBに書き込みます。
それぞれのタスクについて説明していきます
1. Slackのパブリックチャンネルで新しい投稿がされたことをトリガーにする
このタスク(トリガー)の設定はとても簡単です!
Eventで「New Public Message Posted Anywhere」を選択し、あとはBotの投稿もトリガーにするかどうかを選択するだけです。
2. Slackに投稿された内容などをNotionのDBに書き込む
Eventで「Create Database Item」を選択し、Actionでは事前準備で作成したDBを選択し、それぞれのカラムに必要な情報を埋めていきます。
ワークフローの作成はこれで終わりです😊
ワークフローをONにしてSlackで適当に書き込みをすると、その内容がNotoinのDBにも書き込まれるはずです!
おわりに
なんとかお金をかけずにSlackの過去90日間以降のメッセージ履歴を参照する仕組みを作れました。ぜひ使ってみてください!
ちょっとした補足ですが、Zapierもワークフロー自体は無料プラン内に収まっていますが、Slackに書き込む回数が多すぎると無料プランで使えるタスク数を超えてしまう可能性があります。そうなるとNotoinへの書き込みを一部諦める or 有料プランにするしかないです。そこは多少注意が必要です。