機雷がなんだ! 全速前進!

SEというかプログラマというか、日々のエンジニア生活の中で体験したことなどを中心に書きためていくことにする。

脆弱性診断ツールTrivy(トリビー)を触ってみた

コンテナを前提としたDevSecOpsを実現する手段について調べていたらTrivy(トリビー)に出会った。

Trivy(トリビー)とは?

Trivy(トリビー)は、GitHubでソースコードが公開されているOSSのコンテナイメージ脆弱性診断ツールです。 もともとイスラエルいくべぇ@knqyf263さんが趣味で作ったツールをイスラエル企業のAqua Security Software Ltd.(以降「Aqua社」と呼ぶ)が買収した経緯があるそうです。 ツールも進化してコンテナイメージの脆弱性スキャンだけでなくファイルシステムのスキャンもできるようです(※未検証)

公式情報

作者の情報

イスラエルいくべぇ(福田鉄平)さん
Aqua社で唯一の日本人。Trivyの開発者。Aqua Open Source Team所属。


作者は、現在Aqua社へ入社して唯一の日本人エンジニアとして活躍しているということらしく、物語としても胸アツです。(※以下、作者ブログ参照)

作者のストーリー


やったこと

セットアップの手間を省き、かつ、どの環境でも同じく実行できるようTrivyの公開コンテナイメージ

https://hub.docker.com/r/aquasec/trivy/

を使用した脆弱性スキャンを試してみました。

その1:最新Dockerhub公式イメージをスキャン

Linux系の最新の公式イメージが安全なのか調べてみます。(※下記URL参照)

https://hub.docker.com/search?type=image&image_filter=official&operating_system=linux

docker run aquasec/trivy image ubuntu:latest
docker run aquasec/trivy image alpine:latest
docker run aquasec/trivy image debian:latest
:(※省略)

デフォだと脆弱性レベルが高いものから低いものまで全て表示されて見にくいのでフィルタしてみる。(CRITICAL,HIGHのみ)

docker run aquasec/trivy image --severity CRITICAL,HIGH ubuntu:latest
:(※中略)
ubuntu:latest (ubuntu 22.04)
===========================
Total: 0 (HIGH: 0, CRITICAL: 0)

docker run aquasec/trivy image --severity CRITICAL,HIGH alpine:latest
:(※中略)
alpine:latest (alpine 3.15.4)
=============================
Total: 0 (HIGH: 0, CRITICAL: 0)

docker run aquasec/trivy image --severity CRITICAL,HIGH debian:latest
:(※中略)
debian:latest (debian 11.3)
===========================
Total: 14 (HIGH: 14, CRITICAL: 0)

+--------------+------------------+----------+-------------------+-------------------+---------------------------------------+
|   LIBRARY    | VULNERABILITY ID | SEVERITY | INSTALLED VERSION |   FIXED VERSION   |                 TITLE                 |
+--------------+------------------+----------+-------------------+-------------------+---------------------------------------+
| e2fsprogs    | CVE-2022-1304    | HIGH     | 1.46.2-2          |                   | e2fsprogs: out-of-bounds              |
|              |                  |          |                   |                   | read/write via crafted filesystem     |
|              |                  |          |                   |                   | -->avd.aquasec.com/nvd/cve-2022-1304  |
+--------------+------------------+          +-------------------+-------------------+---------------------------------------+
| gzip         | CVE-2022-1271    |          | 1.10-4            | 1.10-4+deb11u1    | gzip: arbitrary-file-write            |
|              |                  |          |                   |                   | vulnerability                         |
|              |                  |          |                   |                   | -->avd.aquasec.com/nvd/cve-2022-1271  |
+--------------+------------------+          +-------------------+-------------------+---------------------------------------+
| libc-bin     | CVE-2021-3999    |          | 2.31-13+deb11u3   |                   | glibc: Off-by-one buffer              |
|              |                  |          |                   |                   | overflow/underflow in getcwd()        |
|              |                  |          |                   |                   | -->avd.aquasec.com/nvd/cve-2021-3999  |
+--------------+                  +          +                   +-------------------+                                       +
| libc6        |                  |          |                   |                   |                                       |
|              |                  |          |                   |                   |                                       |
|              |                  |          |                   |                   |                                       |
+--------------+------------------+          +-------------------+-------------------+---------------------------------------+
| libcom-err2  | CVE-2022-1304    |          | 1.46.2-2          |                   | e2fsprogs: out-of-bounds              |
|              |                  |          |                   |                   | read/write via crafted filesystem     |
|              |                  |          |                   |                   | -->avd.aquasec.com/nvd/cve-2022-1304  |
+--------------+                  +          +                   +-------------------+                                       +
| libext2fs2   |                  |          |                   |                   |                                       |
|              |                  |          |                   |                   |                                       |
|              |                  |          |                   |                   |                                       |
+--------------+------------------+          +-------------------+-------------------+---------------------------------------+
| libgcrypt20  | CVE-2021-33560   |          | 1.8.7-6           |                   | libgcrypt: mishandles ElGamal         |
|              |                  |          |                   |                   | encryption because it lacks           |
|              |                  |          |                   |                   | exponent blinding to address a...     |
|              |                  |          |                   |                   | -->avd.aquasec.com/nvd/cve-2021-33560 |
+--------------+------------------+          +-------------------+-------------------+---------------------------------------+
| liblzma5     | CVE-2022-1271    |          | 5.2.5-2           | 5.2.5-2.1~deb11u1 | gzip: arbitrary-file-write            |
|              |                  |          |                   |                   | vulnerability                         |
|              |                  |          |                   |                   | -->avd.aquasec.com/nvd/cve-2022-1271  |
+--------------+------------------+          +-------------------+-------------------+---------------------------------------+
| libss2       | CVE-2022-1304    |          | 1.46.2-2          |                   | e2fsprogs: out-of-bounds              |
|              |                  |          |                   |                   | read/write via crafted filesystem     |
|              |                  |          |                   |                   | -->avd.aquasec.com/nvd/cve-2022-1304  |
+--------------+------------------+          +-------------------+-------------------+---------------------------------------+
| libtinfo6    | CVE-2022-29458   |          | 6.2+20201114-2    |                   | ncurses: segfaulting OOB read         |
|              |                  |          |                   |                   | -->avd.aquasec.com/nvd/cve-2022-29458 |
+--------------+------------------+          +-------------------+-------------------+---------------------------------------+
| logsave      | CVE-2022-1304    |          | 1.46.2-2          |                   | e2fsprogs: out-of-bounds              |
|              |                  |          |                   |                   | read/write via crafted filesystem     |
|              |                  |          |                   |                   | -->avd.aquasec.com/nvd/cve-2022-1304  |
+--------------+------------------+          +-------------------+-------------------+---------------------------------------+
| ncurses-base | CVE-2022-29458   |          | 6.2+20201114-2    |                   | ncurses: segfaulting OOB read         |
|              |                  |          |                   |                   | -->avd.aquasec.com/nvd/cve-2022-29458 |
+--------------+                  +          +                   +-------------------+                                       +
| ncurses-bin  |                  |          |                   |                   |                                       |
|              |                  |          |                   |                   |                                       |
+--------------+------------------+          +-------------------+-------------------+---------------------------------------+
| perl-base    | CVE-2020-16156   |          | 5.32.1-4+deb11u2  |                   | perl-CPAN: Bypass of verification     |
|              |                  |          |                   |                   | of signatures in CHECKSUMS files      |
|              |                  |          |                   |                   | -->avd.aquasec.com/nvd/cve-2020-16156 |
+--------------+------------------+----------+-------------------+-------------------+---------------------------------------+

さすがに最新の公式イメージにCRITICALはありませんでしたが、debianにはHIGHの脆弱性が14 件あるようでした。(※2022/05/06時点)

その2:古いDockerhub公式イメージをスキャン

Linux系の古い公式イメージが安全なのかをいくつか調べてみます。

docker run aquasec/trivy image --severity CRITICAL,HIGH debian:10.12
:(※中略)
debian:10.12 (debian 10.12)
===========================
Total: 39 (HIGH: 31, CRITICAL: 8)
:(※省略)

docker run aquasec/trivy image --severity CRITICAL,HIGH debian:10.12-slim
:(※中略)
debian:10.12-slim (debian 10.12)
================================
Total: 39 (HIGH: 31, CRITICAL: 8)
:(※省略)

やはり古いコンテナイメージだとHIGHだけでなくCRITICALの脆弱性が多数含まれているようです。

その3:Trivyの公開コンテナイメージをスキャン

そもそもTrivyの公開コンテナイメージに脆弱性がないのか気になったので、TrivyでTrivyの公開コンテナイメージをスキャンしてみました。

docker run aquasec/trivy image aquasec/trivy
aquasec/trivy (alpine 3.15.4)
=============================
Total: 4 (UNKNOWN: 0, LOW: 1, MEDIUM: 3, HIGH: 0, CRITICAL: 0)

+---------+------------------+----------+-------------------+---------------+---------------------------------------+
| LIBRARY | VULNERABILITY ID | SEVERITY | INSTALLED VERSION | FIXED VERSION |                 TITLE                 |
+---------+------------------+----------+-------------------+---------------+---------------------------------------+
| libcurl | CVE-2022-22576   | MEDIUM   | 7.80.0-r0         | 7.80.0-r1     | curl: OAUTH2 bearer bypass            |
|         |                  |          |                   |               | in connection re-use                  |
|         |                  |          |                   |               | -->avd.aquasec.com/nvd/cve-2022-22576 |
+         +------------------+          +                   +               +---------------------------------------+
|         | CVE-2022-27774   |          |                   |               | curl: credential leak on redirect     |
|         |                  |          |                   |               | -->avd.aquasec.com/nvd/cve-2022-27774 |
+         +------------------+          +                   +               +---------------------------------------+
|         | CVE-2022-27776   |          |                   |               | curl: auth/cookie leak on redirect    |
|         |                  |          |                   |               | -->avd.aquasec.com/nvd/cve-2022-27776 |
+         +------------------+----------+                   +               +---------------------------------------+
|         | CVE-2022-27775   | LOW      |                   |               | curl: bad local IPv6 connection reuse |
|         |                  |          |                   |               | -->avd.aquasec.com/nvd/cve-2022-27775 |
+---------+------------------+----------+-------------------+---------------+---------------------------------------+

さすが、HIGH以上の脆弱性はありませんでした。素晴らしいですね。(※2022/05/06時点)

その4:ArgoCDの公開コンテナイメージをスキャン

もともとやりたかったことがこれです。k8sで運用中のコンテナイメージの脆弱性に自動で気付ける仕組みが欲しかったので、、、 例えば以前デモ用に作成したArgoCD

blog.orinbou.info

がいい感じで古くなっているのですが、このデモの中で古いArgoCDのコンテナイメージを参照しています。

https://github.com/orinbou/argocd-demo/blob/main/argocd/install.yaml

上記k8sマニフェストから参照しているコンテナイメージをスキャンしてみました。

docker run aquasec/trivy image --severity CRITICAL,HIGH argoproj/argocd:v1.7.9
argoproj/argocd:v1.7.9 (debian 10.6)
====================================
Total: 346 (HIGH: 290, CRITICAL: 56)
:(※中略)
Python (python-pkg)
===================
Total: 3 (HIGH: 2, CRITICAL: 1)
:(※中略)
usr/local/bin/argocd (gobinary)
===============================
Total: 5 (HIGH: 5, CRITICAL: 0)
:(※中略)
usr/local/bin/argocd-application-controller (gobinary)
======================================================
Total: 5 (HIGH: 5, CRITICAL: 0)
:(※中略)
usr/local/bin/argocd-darwin-amd64 (gobinary)
============================================
Total: 5 (HIGH: 5, CRITICAL: 0)
:(※中略)
usr/local/bin/argocd-repo-server (gobinary)
===========================================
Total: 4 (HIGH: 4, CRITICAL: 0)
:(※中略)
usr/local/bin/argocd-server (gobinary)
======================================
Total: 6 (HIGH: 6, CRITICAL: 0)
:(※中略)
usr/local/bin/argocd-util (gobinary)
====================================
Total: 5 (HIGH: 5, CRITICAL: 0)
:(※中略)
usr/local/bin/argocd-windows-amd64.exe (gobinary)
=================================================
Total: 5 (HIGH: 5, CRITICAL: 0)
:(※中略)
usr/local/bin/helm (gobinary)
=============================
Total: 12 (HIGH: 12, CRITICAL: 0)
:(※中略)
usr/local/bin/kustomize (gobinary)
==================================
Total: 11 (HIGH: 11, CRITICAL: 0)
:(※省略)

エグイほどの数の脆弱性が検出されました。が、気付きたかった下記の脆弱性が検出できませんでした。何故だ、、、


まとめ

コマンドラインで実行可能なシンプルなツールなので、CI/CDパイプラインへ簡単に組み込むことができそうです。 しかし、デプロイ時に気付けてもあまり意味がないので、利用しているコンテナイメージを対象にした脆弱性スキャンを定期実行(1日1回くらい)するのが良さげです。 あとは、誤検知や同じ脆弱性が複数回通知されないような仕組みも必要かと思いますが、その辺の自作はそこまで大変ではなさそう。(でもマネージドサービス欲しい)

また、実運用を考えると今回気付きたかったArgoCDの脆弱性(CVE-2022-24348)が何故検出できなかったか、などについてもう少し調べてみる必要がありそうです。


参考

フロントエンドフレームワーク関連で読み方が怪しい子達

フロントエンドフレームワーク関連で、人によって読み方に揺らぎがある子達。
会話していて本当に同じものを指しているのか不安になったので一般的な読み方と用途を整理しておく


Next.js:ネクスト.ジェーエス(React系)

OSSのSPA/SSR開発用Webアプリケーションフレームワーク。TypeScriptで書ける。


Nuxt.js :ナクスト.ジェーエス(Vue.js系)

OSSのSPA/SSR開発用Webアプリケーションフレームワーク。TypeScriptで書ける。

Nuxt2(for Vue2)

Nuxt3(for Vue3)


Vite:ヴィート

フランス語で「速い」の意味。高速なビルドツール。
JavaScript(vanillaJS)Vue.js、React、SvelteなどのフレームワークやTypeScriptにも対応しており、Nuxt3でも採用されている。


Svelte:スヴェルト

Web上で動作するユーザーインターフェースを構築することができるフレームワーク


補足

2022/05/26[木]追記

後日また間違えそうなキーワードを見つけたので追記しておく

Nest.js:ネスト.ジェーエス

サーバーサイドアプリケーション開発に使用される Node.jsのフレームワーク
TypeScript(もしくはJavaScript)で記述可能

Daggerを触ってみた🗡

Daggerは、日本語に訳すと短剣という意味です。

由来は短剣のように使い勝手が良いツールだからですかね?(知らんけど、、、)

ソフトウェアのビルド、テスト、デプロイを行う一連のCI/CDパイプラインをポータブルな開発キットです。

そんな訳でGWの隙間時間で軽く触ってみました。(といってもGetting Started を流しただけですが)

今回も例に漏れずドキュメントのとおり軽く流すだけでも、ハマりポイントがないこともない感じだったので、とりま試した手順をGitHubにあげて【↓】おきました。

github.com

新たにCUEの書き方を覚える必要はあるけれど、どの環境でも同じようにビルドできるのはありがたい。なによりローカルで試せて同じ結果になることが保証されるのはうれしいですよね。うまく流行ればCI/CDのポータビリティが確保されロックインを避けられそうです。現時点で正式リリース時期が未定(ロードマップやリリース予定の情報が公式サイトやTwitter公式アカウントからも見つけられず、、、)のようなので続報に期待したいところです。

*[本]「いいひと」戦略@岡田斗司夫

久々にとても面白い本に出会った気がする。

忘れないうちに、気になった箇所をメモしておきます。

情報化社会におけるサバイバル術 「いいひと」戦略

ちなみにアマプラ会員ならKindle版を無料で読めます。

第1章:評価経済社会の到来

人類の歴史の大部分は「評価社会」

才能は、判別するのに時間がかかりません。武術や医術に優れていれば、すぐに見分けがつきます。武術家なら戦場で活躍すればいい、医者なら患者を治せばいい。
でも、人格というのはすぐに分かりません。一緒に過ごしているふとした瞬間に見えるものです。つまり、判別に時間がすごくかかる。

第2章:自己啓発の格付け

Good natured person(グッド・ネイチャード・パーソン)

Google, Facebookが求める人材
つまり「いいひと」
スキルが高い人なんて、外注で充分です。
:(※中略)
性格は「戦略」の結果に過ぎません。性格というのは、生まれつきのものであって、癖のようなものだと考えられています。が、それは誤解です。毎日毎日、楽観的あるいは悲観的に考えたり、行動したりするように努力した結果、自分で作りあげた思考パターンを、私たちは「性格」と呼んでいるのです。
何事も悲観的に考えている人は、悲観的思考とそれに基づいた行動こそが自分の利益を最大化しダメージを最小化する唯一の方法だと考えます。ぎゃくに、楽観的に考えている人は、楽観的思考や行動が李益を最大化しダメージを最小化すると考えています。どちらの「性格」も、自分が選択している「戦略」の方がトクだと考えている点で同じです。ただ、悲観的戦略をとることは、精神的に損だという違いがあります。
:(※中略)
 これまで悲観的性格や楽観的性格は、単に人生に対する戦略であり、生き方の選択でした。どちらを選択しても、それほど大きなちがいはなかった。でも今後、悲観的戦略はより損な戦略になっていきます。世界中の人に、悲観的なキャラだと認知されてしまうからです。
悲観的な人と仲良くなりたい人は稀です。イヤな人と同じように、悲観的なことばかり言う人と付き合うのはしんどいものです。こちらのやる気や精神的余裕がどんどん失われていきます。たとえ馬鹿だとしても、楽観的な人の方が付き合いやすいし、モテるのが現実じゃないですか。誰だって、会話しているだけで元気になってくるような人と付き合いたいですよね。悲観的なキャラは、これからどんどん割に合わなくなってくるはずです。

第3章:評価戦略

「評価戦略」は現代の武道

Appleの元CEOスティーブ・ジョブズ 「現実歪曲空間」を発生させる能力がある。

第4章:「いいひと戦略」への反論

「いいひと」は損をする

ストレスの原因のほとんどは、毎日顔を合わせているごく一部の「イヤな人」によって生じています。どうしても嫌みを言わなければ気が済まない人、みんなの過ごしやすさよりも自分の保身を優先する人……そういった人たちです。

第5章:いいひと戦略

イヤな人になる努力

  • A:欠点を探す
  • B:改善点を見つけて提案する
  • C:陰で言う
  • D:悪口で盛り上がる
  • E:悲観的・否定的になる
  • F:面白い人、頭の良い人、気の合う人だけで集まる

以下がキニナリポイント

B 改善点を見つけて提案する

でも、人は正しさだけでは動きません。そこに「共感」がないと、人の心や体は1ミリも動かない。

C 陰で言う

(評価経済社会、あるいは、ハイパー情報化社会では)表のキャラと裏のキャラに大きなギャップがある人は信頼されません。どちらが本当のキャラか判別がつかないからです。
:(※中略)
表での活動と同じように、裏でこっそりやっていた行為もいずれはバレてしまうのです。これからは、「本音と建前を一致させる」生き方にシフトチェンジしたほうが、ずっと生きやすくなるはずです。

F 面白い人、頭の良い人、気の合う人だけで集まる

面白く、頭が良く、気の合う人。 こんな人ばかりで集まっていると、だんだん「ヤンキー化」が進みます。 所属しているコミュニティに、頭の良い人によって面白いコンテンツがアップされる。そこには気の合う人しかいないから、とても居心地がいい。だから次第に、外野のコミュニティを必要としなくなる。すると、だんだん「ヤンキー化」が始まる。人を「仲間」と「敵」にカテゴライズするようになる。仲間への批判には過敏になり、独自の論理を組んで反撃してしまう。 面白く、頭が良く、気の合う人しかいないコミュニティ。
本来ならこれは素晴らしいことだし、理想的な関係にも見えます。 しかし、クローズドなコミュニティで集まっていると、「ヤンキー化」に伴って「伝える力」も失いやすくなります。

「いいひと戦略」

以下の6つのフェーズからなっています。(メソッド論)

  • 助走:フォローする
  • 離陸:共感する
  • 上昇:褒める
  • 巡航:手伝う、助ける、応援する
  • 再加速:教える
  • 軌道到達:マネー経済けら抜け出す
再加速:教える

弟や妹ができた時、兄としてしっかりしなきゃと思う。
後輩ができた時、先輩としてしっかりしなきゃと思う。
部下を持った時、上司としてしっかりしなきゃと思う。
私たちは自分の意志とは関係なく、ある日突然、兄や先輩、上司といった「立場」に立たされます。

第6章:評価経済社会で生きる

3C:「コンテンツ(Content)」「コミュニティ(Community)」「キャラクター(Character)」という3つの単語の頭文字を取ったもの。この3つが互いに影響を及ぼし合い、支え合うとき、月3万円ビジネスが上手く回るようになります。

*[本]オードリー・タン デジタルとAIの未来を語る

なんとなく気になった所をメモしておく。。。

オードリー・タン デジタルとAIの未来を語る

5章:プログラミング思考

デジタル社会で求められる三つの素養

  • 自発性
  • 相互理解
  • 共好

(※中略)三つ目の条件は「共好」です。お互いに交流し共通の価値を探し出すことを、中国語で「共好(ゴンハオ)」と言います。これはもともとアメリカ・インディアンの「共同で仕事をする」という意味の「Gung Ho」の発音を中国語化したものです。相互理解のプロセスにおいて、相手には相手の価値観があり、自分には自分の価値観があります。それを常に頭の片隅において、どうやって皆が受け入れることのできる価値観を見つけ出せるのかを考えながら共同で作業する。それが「共好」です。

科学技術では解決できない問題に対処するために美意識を養う

私が非常に尊敬するプログラマーの先輩がいます。その人は「プログラムをどれだけ上手にかけるかどうかは、母国語の運用能力がどれだけ優れているかにかかっている」「文才があればあるほど、プログラムがうまく書ける」と断言していました。理想的なプログラムを書き上げるためには、頭の中にある概念を文字に変換していかなければいけません。これは文学と同じです。プログラミングのコードと、文学における韻を踏むことが異なるだけです。

ゲーテは、『ファウスト』のように大きな戯曲を書き上げましたが、一つひとつの文章を見れば、長編詩やオペラのように韻が踏まれています。母国語を自在に使いこなせるような人でなければ、『ファウスト』のような大きなプログラムは、書くことができないでしょう。ですから、デジタルの時代になればなるほど、文学的素養は欠かせず、重要性を増すのです。

普遍的価値を見つけるために異なる考え方をする人たちと交わる

自分と似たような経験をした人たち、自分と同じような考え方を持つ人たちのみと交流し、一緒に働くことは、仕事を進める上で一見、理に適っていると思うかもしれません。しかし、結局それは「エコーチェンバー現象」に陥ることになります。つまり、閉じたコミュニティの内部にいて、自分と似たような意見を持った人々の間でコミュニケーションが行われても、結局は同じ意見がどこまでも反復され続けるだけです。

それとは反対に、自分とはまったく異なる文化、異なる世代、異なる場所にいる人の話を聞き続けることで、自ずと「世界共通の普遍的な真実、普遍的な意見というものがある」ことを発見するでしょう。すると、この地球や世界のどの場所にいてもコミュニケーションをすることが可能ということがわかります。

Bottlerocketを使用したEKSクラスタ構築のデモ🚀

2022/2/24(木) にAWSをテーマにしたLT会【↓】に参加してきました。

btc.connpass.com

ネタに困って)単にEKSクラスタつくってデモアプリを動かすだけのデモをしてきました。LTスライドはコチラです。(※90%くらいネタなので内容はほぼありませんw)

speakerdeck.com

とはいえ、久々に手を動かしてみたら、いくつか躓きもあったので、同じ苦しみを再び味わいたくなかったので、手順とソースをGitHubに置いておくことにします。

github.com

昨年2021年10月に正式に発表された、Amazon EKSのマネージド型ノードグループでの Bottlerocket のネイティブサポート【↓】ですが、

aws.amazon.com

実はAWSの公式マニュアル【↓】を見てみても

Creating a managed node group - Amazon EKS

Launching self-managed Bottlerocket nodes - Amazon EKS

まだBottlerocketを使用したマネージド型ノードグループのクラスタ構築手順は記載されていなかったので、ワンパス通った上記のデモサンプルは今なら1mmくらいは役に立つことがあるかも。

 

Shellすら持たないBottlerocket OSは軽量で安全な反面、直接中に入って操作することができないので実運用上は困ることがあるかもしれません。そこで管理用コンテナ(Control、Admin)が用意されているようなのですが、今回はそこまで試せていません。今後この子🚀を実戦投入していくにあたり、そのあたりの痒い所も含めて理解しておく必要がありそうです。

読書の秋@2021~新しい読書習慣とLIBRON~

読書の秋ですね。

f:id:orinbou:20211021004125p:plain

コロナ渦が続く昨今、在宅勤務の機会が増え、物理的な移動機会が激減しました。以前は、移動中の電車内や出先でのちょっとした隙間時間に読書するのが習慣になっていたのですが、在宅勤務がはじまってからは本を読むきっかけをすっかり失ってしまいました。興味のある本を買ってはみるものの、自宅だとなかなか集中して読めず、積読が増えるばかりです。毎日の移動時間がなくなり、自由な時間が増えた【ハズ】なんですが、あらためて人間は習慣の生き物なんだなぁ、と思うばかりです。

 

あの手この手を色々と試してみた結果【LIBRON(リブロン)】を使った新しい読書習慣が見つかったので紹介します。

 

新しい読書習慣

新しい読書習慣の流れはこんな【↓】感じです。

  1. Amazonで本を検索する
  2. LIBRONを使って本を借りる(登録した図書館)
  3. 近所の受取所で本を受け取る
  4. 借りた本を読む(※2week中)
  5. 近所の受取所で本を返却する
  6. 手元に置いておきたい本は買う(※オプション)

最近は、自治体の図書館もネットで本を予約できるようになっており、しかも、最寄りの出張施設へ配送した本を受け取ることもできます。最寄りの図書館などで会員登録をして図書カードをつくっておけば、あとはWebブラウザ(Chrome or Firefox)にLIBRON(リブロン)の機能拡張を追加して予約する図書館をセットしておくだけです。

 

メリット

この方法には下記のようなメリットがあります。

  • Amazonで検索した本をそのまますぐ図書館で予約できる
  • 予約した本を近所で受け取れる(図書館まで行かなくて良い)
  • レンタル期間(2week)というタイムボックスが本を読む動機付けになる
  • 部屋の中が本だらけになりにくい(手元に置きたい本だけになる

デメリット

この方法には下記のようなデメリットがあります。

  • 図書館にない本は借りれません(当たり前ですが)
  • 貸出中の本もすぐには借りれません(予約はできます)

 

LIBRONとは?

Libron は Amazon のページから最寄りの図書館の蔵書を検索できる便利なツールです。図書館蔵書検索サイト「カーリル」( http://calil.jp/ )の提供するAPIを利用することで、全国6000以上の図書館(700館以上の大学図書館を含む)に対応しています。

http://www.libron.net/

 

こちらの本家サイトに「つかいかた」や「インストール方法」が掲載されいています。動画や画像をつかって分かりやすく説明されているので、迷うことはあまりないと思います。

 

予約の流れ

予約は簡単でAmazonの画面にあるボタンを押すだけです。

f:id:orinbou:20211021003416p:plain

指定した図書館の予約画面へ遷移するので予約(カートに入れる)します。

f:id:orinbou:20211021003645p:plain

 

その他

昨年 GIGAZINE でも紹介されてました。

Amazonで検索した本が最寄りの図書館にあるかサクッと検索できるiOSアプリ&ブラウザ拡張機能「Libron」 - GIGAZINE