さわらブログ

さわら(@xhiroga)の技術ブログ

書評 - CSIRT 構築から運用まで

SREチームとしてプロダクト横断的な仕事が増えるに従って、CSIRTを参考にしようと思って手にとった本の一冊です。

TL;DR

  • どちらかというと大企業の役員・部長クラス向けに書かれている本
  • 運用における対外連携は規模に関わらずあり得る、参考になった
  • ケーススタディが具体的で参考になった。もっとあっても良い

本書について

NTT関連会社に勤めるセキュリティ関係者が書いた本です。他の方のレビューにもありましたが、教科書的な印象があります。

セキュリティインシデントの分類はありがたいのですが、やや古い上に粒度が揃っていない印象を受けました。

2021年現在、JPCERT/CCの分類で用いられているのは以下の7種類です。

  • フィッシングサイト
  • Webサイト改ざん
  • マルウェアサイト
  • スキャン
  • DoS/DDoS
  • 制御システム関連インシデント
  • 標的型攻撃
  • その他

しかし、分類方法に攻撃手法と攻撃対象の2軸があることが気になります。また、エディタやライブラリの汚染、SaaS脆弱性によるトークンの窃取などをどこに分類するか(マルウェアサイト?)も疑問が残ると思いました。オンプレで開発・運用が完結する業界ならこれでいいのかもしれません。

インシデント発生時の対外連携

スタートアップの規模でゼロデイや日本初の脆弱性を突かれるケース、あるいはフィッシングサイトを作られるケースは多くないのかな?と考えています。

(もっとも、暗号資産の取引所はガンガン攻撃されていそうですが)

特にフィッシングサイトが海外に建てられているようなケースは、言われてみればどうやって対応するのか分かりませんでした。本書を読み、フィッシング対策協議会やJPCERT/CCに相談して停止を調整すればいいことが分かりました。

ケーススタディ

セキュリティインシデント発生時の組織内でのシーケンス図が載っており、対応の実感がわきました。

2016年の本にも拘らずランサムウェア感染時のケーススタディが載っているのは先進的かもしれないです。

それまではセキュリティインシデント発生時の対応といっても(アプリケーションチームが主役なのでは?)という感じでしたが、たしかに脆弱性アクセスログの横串調査は誰かが旗を振らないと難しいな、と思った次第です。

まとめ

やや古い感はありましたが、特に対外組織との連携など会社の規模が大きくなったときに発生するプロセスを知ることができたので良かったです。

RSSリーダーと「後で読む」の再選定 (2012)

TL;DR

RSSリーダーおよび「後で読む」として、Inoreaderを選定しました。

f:id:hiroga_cc:20211226181219p:plain
Inoreader

動機

勤務先のjustinCaseで、SREのメンバーと #justInCaseWeeklySRE を始めました。先輩の @laplace1984 さんの情報量が圧倒的なので、これは負けてられないと思い体制を整えています。

また、Log4J脆弱性についてTwitterで知ったことにも不安を覚えました。もしTwitterで知らなかったら...と思うと怖いので、JPCERT/CCを正しく購読しようと思ったのです。

比較表

FeedlyとInoreaderを比較しました。

Feedly Inoreader
Initial Release 2008 2013
❤️ at alternative.io (2012-12-26) ❤️1805 ❤️1393
AppStore Rating ⭐️4.6 (7643) ⭐️4.5 (3631)
Read it later from Chrome Offical: 🙅‍♂️ 🤔(Webページの保存は可能だが、後で読むへの追加は不可能)
Read it later from iOS app 🙆‍♂️ 🤔(Webページの保存は可能だが、後で読むへの追加は不可能)
Subscribe without RSS 🙆‍♂️ 🙆‍♂️
Idempotent import 🙆‍♂️ 🙆‍♂️
Googleアラート $12で購読可能 無料で購読可能
Auto mark as read 30日 30日
Feed limit of free plan 100 150

大差はないものの、Googleアラートが無料で購読可能なこと、いくつかブログを読んでFeedly → Inforeaderへの乗り換えが多く見られたことなどから選定しています。

後で読む機能が無い点のみ惜しいのですが、Webページの保存機能を代わりに使うことにしました。それによって、Pocketを廃止してツールをまとめられるのも嬉しいです。

まとめ

ニュースを確実にインプットしつつ、実質ゴミ箱だった「あとで読む」もうまく運用できることを期待しています。

書評 - Property Lists, Preferences and Profiles for Apple Administrators

dotfiles 好きが高じて、plistファイルとdefaultsコマンドの歴史に興味を持つようになりました。

なかなか体系的に学ぶための情報を見つけられずにいたのですが、この本はまさにピッタリの一冊です(ちなみに洋書です)

books.apple.com

Appleでのソフトウェア開発経験を持ち、かつ現在は情シスとしてApple製端末の管理に情熱を燃やしている方が書かれた本です。

TL;DR

  • タイトルの通り、plist, preferences, profileの3部に分類できる
  • iOS/macOSアプリ開発者以外には馴染みのない plist ファイルについて、エコシステムと合わせた紹介
  • アプリケーションが設定を読み込む仕組みについて(defaults や cfprefsdの挙動)
  • WiFi設定などで目にするProfileの設定方法や作り方

Property Lists

そもそも .plist ファイルって何?という方に説明すると、macOSで動くアプリケーションがユーザーごとに個別の設定を持つためのファイルの一般的な形式です。

本の中でも解説されていますが、例えばアプリバンドル内の info.plist など、様々な用途で使われています。

しかしながら、同じ .plist 拡張子のファイルだとしてもファイルごとに形式が異なります。NeXTSTEP時代のASCIIテキスト形式や、OS X初期のXML形式、その後のバイナリ形式など。

plistを読み書きするユーティリティはたくさんありますが、本章では読み書き可能な形式などに注目してそれらを整理しています。

個人的な発見は以下の通り。

  • PlistBuddy で対話実行ができること
  • /usr/libexec には様々なライブラリが含まれるので、うかつにパスを通してはいけないこと
  • file コマンドでファイル形式が確認できること

Preferences

macOSの設定を管理するデーモン cfprefsd について初めて知りました。cfが気になって調べたところ、Core Foundation の略のようです。

前章までの内容と合わせ、 defaults, PlistBuddy, plutil の使い分けが整理できたのが良かったです。

  • 基本的に defaults を用いる。defaults だけが cfprefsd にも設定変更を通知するため、アプリ側の変更のファイル書き込みキューに後から設定ファイルを上書きされる心配がない。
  • 2階層以上ネストしている項目を編集したい場合、PlistBuddy を用いる。
  • plistファイルを丸ごと変換するようなケースでは plutil を用いる。

なお、この本では取り上げられていないものの、他に pl というコマンドもあるようです(NeSTSTEP時代の形式を表示するためのコマンド)

また、なぜdefaults コマンドだけはplistファイルのパスを指定しないでも設定を編集できるかについても解説がありました。

Profiles

この章は現時点では私の興味の範疇ではないものの、いずれはProfileを使って管理することもあるのかな、と思って眺めました。

会社などでDEP(Device Enrollment Program)を使うことになるような場合、Profileからシェルスクリプトを実行してplistを編集できることを知っているのは嬉しいかもしれません。

まとめ

断片的な知識しかなかったplistについて、Apple端末の管理者という観点と確かなバックグラウンドから書かれた良書でした。dotfilesやdefaultsコマンドのオプションの解析が好きな人は読んで損しないと思います。

Synology NASにおける暗号化の挙動の整理

Synology NASには、ボリュームを暗号化するオプションがあります。ドキュメントだけでは挙動が分かりづらかった部分を実際に試して整理しました。

TL;DR

  • 暗号化キーを知らない人間による暗号化ボリュームへのアクセス → ボリュームがマウントされているかどうかによる
  • 暗号化ボリュームの非暗号化とその逆 → できる。ただし、ファイルまたはフォルダの名前の文字数が143文字の英語文字または47文字のアジア文字を超過できない
  • キーマネージャーを外部USBデバイスに設定してUSBを紛失した場合の暗号化ボリュームの読み書き → できる(ボリュームの暗号化キーを覚えていれば)

Synology NASの暗号化とは

Synology NASにおける暗号化とは、Windowsのファイルまたはフォルダの暗号化のような機能ではなくHDDのボリュームの暗号化です。

macOSにおける FileVault に近いと思います。

したがって、暗号化キー(パスワード)を尋ねられるタイミングはボリュームのマウントのタイミングです。一度マウントすれば、アンマウントするまで暗号化キーは不要です。

暗号化・非暗号化の切り替え

いつでも可能です。ただし、暗号化したい共有フォルダに長い名前のファイル・フォルダが含まれていると失敗します。

また、それなりに時間がかかります。次のようなポップアップが表示されました。

f:id:hiroga_cc:20211225162015p:plain
Synology NAS 共有フォルダ暗号化

キーマネージャーの役割

キーマネージャーの役割は、HDDを暗号化するキーを自動で指定してくれるものではありません

どちらかというと1Passwordのようなパスワードマネージャーに近いです。つまり、複数の暗号化されたボリュームがある場合でも、キーマネージャーがあれば覚えておくのはキーマネージャーのパスフレーズでOK、というもの。

実際のユースケースでは、ボリュームの暗号化キーを超複雑にし、かつキーマネージャーのパスフレーズを覚えやすくしておく。そしてキーマネージャーはUSBなどに保存し、必要な場合に取り出す、というのが一番セキュアかもしれません。

まとめ

HDDのボリュームの暗号化についての知識がないとなんだろう?と思ってしまう仕様でした。Synology NASにはSSHでのログインも可能なので、CUIでも確認して理解を深めたいです。

付録 Synology NASのドキュメント

3種類あり、どれがどれか分からなくなりました。簡単な順に並べると以下の通り(主観です)

ドキュメントは Synology ナレッジセンターの検索で見つけました。

PCのフォルダ整理法(2021年12月版)

PCのフォルダ構成を定期的に見直しています。今回1年半ぶりに見直したので、構成を共有します。

1年半前の投稿 hiroga.hatenablog.com

TL;DR

hiroga/                 # トップレベルのフォルダ。私用・会社用など複数ある。
├ communication/        # 領収書や契約書、お問い合わせ内容などのフォルダ
│ ├ company/            # Webサービスの申込み、保険の申込み、飛行機のフライト、etc...
│ ├ government/         # コロナワクチンの接種記録、水道の口座振替依頼、etc...
│ └ people/             # 人からもらった手紙などをスキャンして保存する場合など
│
├ files/                # もらう・買う・アプリが生成するなどしたファイルはここ。種類によって分ける。多いので割愛。
│ ├ applications/
│ ├ books/
│ ...
│ 
└ works/                # 自分の作品はここ(ただしGitHubで管理するもの以外)
  ├ collab/             # 必要に応じて公開できるもの
  │ ├ discussions/      # 意思決定のメモ。新居の選定、自転車の選定、クラウドストレージの選定、etc...
  │ ├ releases/         # 実際の成果物。LT資料が多い。
  │ ├ issues/           # ToDo一覧。
  │ └ wiki/             # 調べたことをまとめるメモ。はてなブログやZenn.devの記事の予備軍といえる。
  │
  └ private/
    ├ diary/            # 日記というか、なぐり書き。その日気になっていることなど。
    └ karte/            # 周りの人・会社などについて自由に感じたこと。こういうのがあるといきなり360度評価の依頼が来ても安心。

前提

  • MacBookおよびNASサーバーをクラウドストレージと同期しています。
  • テキストはVSCodeで読み書きしています。

2021年12月版について

2020年4月版から、特に work/ 以下の使いづらさを見直しました。 特にGoogle Driveにおけるフォルダ単位での共有を前提に、共有可能なものとそうでないものをフォルダで区切ったのが大きな発見でした。これは、RedashからSpreadSheetにアクセスしようとして気がついたことです。

collab/ 以下は GitHubを意識した構成にしています。この手のマイルール、自分の中に理由がないと運用方法を忘れてしまうのですよね。GitHubなら毎日使っているので安心です。

既知の問題

wiki/ 以下の整理ができていません。現在は日本十進分類法に従って、図書館のように並べています。

ただ、IT関連が圧倒的に多いので見やすいか疑問があることと、なにかファイルを作るたびにフォルダをたくさん作る点が面倒です。

それ以外だと、マークダウンの画像をどこに保存するかが悩ましいです。頻繁にフォルダの整理をしているので、画像とのリンク切れがよく起きるのですよね。

まとめ

RedashやNASサーバーなど、新しいテクノロジーを生活に取り入れてフォルダ構成が進化しました。また数年後の進化も楽しみです。

個人用クラウドストレージの再選定と移行(2021)

TL;DR

再選定

2018年から3年利用した OneDrive for Business 2 をやめることにしました。 もともと 無制限の個人用クラウド ストレージ* に惹かれて契約したのですが、実はユーザーが5名以上いる場合に限られています。 (個人で無制限のストレージとして利用するユーザーがいると困るのでしょうね)

www.microsoft.com web.archive.org

よい機会なので、1TBを超える分はNASサーバー&S3などのバックアップに置くようにして、新たにクラウドストレージを選定しました。

docs.google.com

結果、個人向けとして最もベーシックであろう Microsoft 365 Personal を選定しました。1TB利用でき、Officeも使えるのがポイントです。

移行作業(マイグレーション

当初の想定では、個人用PCと外付けHDDを活用した移行を検討していました。

f:id:hiroga_cc:20211225081720p:plain
クラウドストレージ移行 当初案

この方法には2つデメリットがあります。

  1. OneDriveアプリは外付けドライブと同期できないので、ブラウザから巨大Zipファイルを落とす必要がある
  2. 外付けHDDをアンマウントできないため、作業中MacBookを持ち歩けない

巨大Zipファイルのダウンロードは失敗すると1からになってしまうリスクもあり、別の方法を検討しました。

Synology NASクラウド同期について

新たに購入したSynologyのNASサーバーの Cloud Sync を活用して移行しました。

SynologyのNASサーバーにはクラウド同期機能が2種類あります。

  1. 標準のFile Stationのリモート接続機能
  2. パッケージセンターのアプリ Cloud Sync

f:id:hiroga_cc:20211225082257p:plain
Synology File Station リモート接続

f:id:hiroga_cc:20211225082123p:plain
Synology Cloud Sync

(エラーが出ていますが、気にしないで下さい)

Cloud Syncの汎用性は素晴らしく、複数のクラウドストレージを同時に同期できます。 また、1種類に付き複数のアカウントでログインすることも可能です。

f:id:hiroga_cc:20211225082503p:plain
Synology Cloud Sync 対応プロバイダー(一部)

こちらを利用し、新旧のOneDriveをいったんローカルに同期した後、NASサーバー内でファイルを移動することで移行作業を完了できました。

まとめ

クラウドストレージとNASサーバーの棲み分け・クラウドストレージのローカル同期に特化したアプリなど、適材適所を考えさせられました。 NASサーバーは当初自作も考えましたが、Synologyのパッケージセンターの様々なアプリを試すのも楽しいです。しばらくはSynologyに浸かろうと思います。

ロボット掃除機(Anker Eufy)をジャンクでお迎えしてバッテリーを交換する

ロボット掃除機をジャンクでお迎えし、修理して使っています。

TL;DR

  • Anker Eufy Robovac L70 Hybrid をお迎えした
  • 公式は電池単体では販売していない
  • リチウムイオン電池の交換専門の業者がいる
  • スロープを自作した
  • 日本語音声がアップデートされた

注意 バッテリー交換は自己責任で行ってください

ロボット掃除機の選定

ロボット掃除機といえばルンバが有名ですが、それ以外のメーカーからも販売されています。 私はモバイルバッテリーでも有名なAnkerのEufyシリーズを購入しました。

選定基準は2つありました。

  1. 部屋を学習すること
  2. 水拭きがあること

部屋の学習は、BetterではなくMust要件です。部屋を学習しないということはランダムに一定時間走り回るということで、実は当初そうしたモデルを購入したのですが(ちゃんと掃除できているのか...)と不安になってしまいました。 スマホから掃除禁止エリアを指定できるのも嬉しく、玄関の段差に落ちないように地図で指定したりしました。

f:id:hiroga_cc:20211225071653j:plain
Eufy 部屋マップ

電池の入れ替え

Eufy L70をメルカリで購入しました。新品で50,000円ほど、中古でも40,000円前後しますが、バッテリー劣化の場合はジャンクとして1万円程度で購入できます。 どうしてそんなことになるかというと、Ankerのサポート期限が18ヶ月&サポート終了後のバッテリー交換に非対応だからなんですね。 さらに、2021年現在バッテリー単体の販売もありません。

f:id:hiroga_cc:20211225072344p:plain
カスタマーサポートお問い合わせ

(お問い合わせの内容を公開してよいかはケースバイケースだと思いますが、今回は公式レビューなどでも言われていることなので問題ないでしょう)

もったいないですね。そこでまず、自分でバッテリー交換をすることを検討しました。 海外に先駆者の方がいらっしゃいます。

hackaday.io

しかし、単に電池を買ってきて入れ替えればいいものでもないんですね。SHA1認証なるロックがあり、うかつに交換すると認証に失敗するようになってしまうようです。 また、同じ型番のバッテリーを中国から輸入しようかと考えたのですが、リチウムイオン電池は安全性の問題から輸出入が禁止されています。

自分で勉強して電池交換業者になることまで考えたのですが、そこで(専門の業者がいるのでは?)と気づきました。

バッテリーのセル交換専門業者

以下の2つの業者にお問い合わせしました。当初はEufy L70の取り扱いはなかったものの、お問い合わせ次第すぐにラインナップに加えてくれました。

株式会社RecellOnline 様 batt.co.jp

茂原産業株式会社 様 www.battery-refresh.com

茂原産業の方は営業の方は丁寧にメッセージを下さった一方で、RecellOnlineはWebサイトに運営会社名が無いなど不安でしたがレスは爆速でした。 私自身すぐにEufyを使いたかったのと、レスが早いのは技術力に自信があるからでは、と考えてRecellOnlineに発注しました。

f:id:hiroga_cc:20211225073619p:plain
RecellOnline Eufy L70 バッテリー交換

結果、なんと9月10日に送って9月13日に修理が完了しました。 修理費用は1万円以上ですが、ジャンクは中古動作品より3万円近く安いので大儲けです。

バッテリーの認証が破壊されるようなこともなく、安心して使えています。

段差の問題

Anker Eufyは、体感として1cm程度の段差なら乗り越えてくれます。

ただ、その様子が結構しんどそうだったのでスロープを設けました。

f:id:hiroga_cc:20211225074236j:plain
ロボット掃除機のためのスロープをダンボールで作る

ダンボールを三角柱状にして養生テープで貼っただけですが、へたることもなく4ヶ月問題なく運用できています。

日本語音声の問題

Anker Eufyの水拭きモデルは、水タンクが空になると音声とプッシュ通知で教えてくれます。 この音声がしばらく間違っていました。

www.youtube.com

この件についてお問い合わせしたところ、日本語音声がアップデートされていますとのこと。 更新すると、無事正しい音声になりました。

www.youtube.com

まとめ

Eufy L70を格安で購入し、毎日便利に使っています。 床の小さいゴミを拾うのってMP使いますよね。Eufyが肩代わりしてくれて本当に助かっています。

(正直なところ水拭きはウォータータンクの補充が面倒なのでなくてもいいかなと思いました)

このブログがどなたかの参考になれば幸いです。