ウェブ・セキュリティ基礎試験のススメ

PHPカンファレンス2021をきっかけに、ウェブ・セキュリティ基礎試験に興味を持ちました。先日受験して合格することができましたが、とても良い試験だと思いましたので、ここでWebエンジニア向けに布教してみます。

どんな試験?

ウェブ・セキュリティ基礎試験では、Webエンジニア必読と言われる「体系的に学ぶ 安全なWebアプリケーションの作り方 第2版」からそのまま出題されます。Webエンジニアとして必要なセキュリティに関する基礎的な知識があるかを問われます。

誰に受験をお勧めできるか?

Webエンジニアとして、セキュリティを保つためにやるべき事、やってはならない事を知らないと、危険なシステムを作ってしまう可能性があります。また、開発チーム全員が基本的な知識水準を保たないと、コードレビューも大変です。なので、もし以下に自分は該当するなと思った人には、この試験を受験し勉強することをお勧めします。

  • 自分の開発するWebアプリケーションで、どこが脆弱になりやすいポイントなのか説明できない。
  • 一般的な脆弱性の原因と対策を一通り説明できない。

勉強方法は?

主教材「体系的に学ぶ 安全なWebアプリケーションの作り方 第2版」を読み込むのが基本になります。特に、各脆弱性の原因と影響範囲、対策をすべて納得した状態で覚え込むのが大事です。

副教材として「Webブラウザセキュリティ Webアプリケーションの安全性を支える仕組みを整理する」が良かったです。HTTPやCookieなどの基本的な知識が既にあるなら、この本から読んでもいいかもしれない。Webを構成する各領域における関心事が整理されているため、納得しながら理解を深めることができました。

その他合格のためのTips:

  • 受験者の合格期を読むと分かりますが、章によって出題される問題数に偏りがあります。
  • 試験は1時間ですが、結構時間が余ります。何回か見直すつもりでどんどん進めると良いかと思います。
  • 少なくとも自分の受験時は、教材の各脆弱性まとめ欄に書かれている「影響を受けるページ」をよく聞かれ、悩んだ覚えがあります。あまり重視していませんでした😢

最後に

さて、無事合格でき、知識の棚卸しができたのはいいのですが。脆弱性のトレンドは変化していきます。今後も知識をアップデートし続けることが必要です。このブログでは各ブラウザのリリースノートを追っていますが、これもキャッチアップ方法の一つになります。実務につながる勉強は楽しいものですし、今後も積極的に取り組んでいきたいです。

Chrome 95

Chrome 95 が 10 月 19 日にリリースされました。

Chrome 95 release note

以下のリンクに主な変更点の情報が記載されています。

https://www.chromestatus.com/features/schedule

Pickup for WebClass

WebClass に影響ある変更はありませんでした。

気になる変更点

私が気になった変更点をあげます。

URLPattern の実装

URLPatternという WebAPI を用いることで JavaScript 内で URL のパースが簡単に出来るようになりました。

簡単な例を掲載します。

const p = new URLPattern("https://example.com/:id");
const id = p.exec("https://example.com/123456").pathname.groups.id;
console.log(id);
// 123456

この変更の詳細は googleが掲載しているブログ をご覧ください。

今後の Chrome リリースについて

次回のリリースは 2021 年 11 月 16 日に予定されています。

Chrome Platform Status

その他ブラウザのリリースはこちらにまとめています。

Firefox 93

Firefox 93 が 10 月 5 日にリリースされました。

Firefox 93 release note

以下のリンクに主な変更点の情報が記載されています。

Firefox Release Notes

Firefox 93 for developers

Pickup for WebClass

Firefox now blocks downloads that rely on insecure connections, protecting against potentially malicious or unsafe downloads.

以前より、Firefox は潜在的に不審なダウンロードをブロックしています。
今回のアップデートにより、ダウンロードブロック機能が強化されました。

今回、HTTPS で接続されたサイト内で HTTP 経由でのダウンロードが行われたときにダウンロードを拒否する機能が追加されました。

以下のリンクが詳しいです。

https://blog.mozilla.org/security/2021/10/05/firefox-93-protects-against-insecure-downloads/

手元の WebClass 開発用サーバで調査しましたが、問題はありませんでした。

気になる変更点

Firefox now supports the new AVIF image format

新たな画像フォーマットである AVIF が Firefox で使用できるようになった変更です。

AVIF はオープンソースでロイヤリティーフリーのコーデックを採用している画像フォーマットで、webP よりも圧縮効率に優れているとされています。

現在 AVIF は Chrome, Firefox, Opera で使用出来ますが、Edge, Safari での対応が進めば、AVIF は採用されるようになるのでしょうか。

MozillaによるAVIFの説明

今後の Firefox リリースについて

次回のリリースは 11 月 2 日に予定されています。

Firefox Release Calendar

その他ブラウザのリリースはこちらにまとめています。

Chrome 94

Chrome 94 が 9 月 21 日にリリースされました。

Chrome 94 release note

以下のリンクに主な変更点の情報が記載されています。

https://www.chromestatus.com/features/schedule

Pickup for WebClass

WebClass に影響ある変更はありませんでした。

気になる変更点

私が気になった変更点をあげます。

Idle Detection API の追加

Idle Detection APIの追加により、ユーザやブラウザ画面がアイドル状態になったことをトリガーにしてイベントが実行出来るようになりました。

web.dev の解説記事中ではチャットアプリケーションにおける、ユーザのアクティブ状態の判定が使用例として取り上げられています。
その他の使用例やデモなどは以下の解説記事へのリンクからどうぞ。

web.dev の解説記事

Chrome リリースノート該当ページ

今後の Chrome リリースについて

次回のリリースは 2021 年 10 月 19 日に予定されています。

Chrome Platform Status

その他ブラウザのリリースはこちらにまとめています。

iOS & iPad OS 15

Mac では Safari 15 がリリースされていますが、iPhone と iPad ではそれぞれ iOS 15 と iPadOS 15 も同時にリリースされています。

Safari 15 での WebClass 動作状況は先日に以下で紹介しました。

https://webclass.jp/blog/2021/09/29/safari-15/

ここでは iOS と iPad OS 15 にフォーカスします。

Release notes

ユーザ向けリリースノートは以下です

開発者向けの情報は以下です

ピックアップ

WebClass はWebのシステムなため、OSの機能をフルには使いません。ですが、現実的には iCloud の機能はレポートなどファイルの準備とアップロードに関係しますし、Notes や Apple Pencil あたりはメモをとったりする使い方に影響があります。

いくつか気になる変更をピックアップしました。

集中モード

集中モードというのが追加されています。睡眠中や仕事中などのいくつかのモードを定義でき、それぞれのモードではどのアプリからの通知だけ許可するか、誰からの通知だけ許可するか、など設定できます。

Wifi とかの設定の画面にFocusモードの枠が加わっています。


DoNotDisturb は私は解除し忘れたりするので時刻設定して自動でON/OFFしてもらえる機能は助かります。Sleep モードについては 寝る時間と起きる時間を設定していると反映してくれます。仕事などの日中の集中モードも、時刻と場所(位置情報)および使っているアプリで自動的に発動するようにできます。

大学生だと、授業中にサークルのLINEグループが盛り上がってて通知うるさい、みたいなのに対応できるんでしょうか。

ウィジェット(iPadOS)

私は Android も使っていて、ホームスクリーンのウィジェットもしばらく使っていました。ウィジェットの使い勝手はアプリと自分の使い方に依存するところが多く、最近はむしろ使わなくなりました。と思ったら、iPadOS に実装されたみたいです。

マルチタスクとクイックメモ(iPadOS)

iPad OSではマルチタスクのための操作体系が拡張されたようです。

ブラウザとノートを半々に開いて、調べたメモをノートにコピーしていくことができました。分割具合を調整したりするのはどうしても指だと不器用な感じが出ますが、全画面アプリ切り替えるよりはいいかなと思いました。

クイックメモは Chrome ではうまくいきませんでしたが、Safari でテキストを選択するとクイックノートのメニューが出てきました。メモ画面は画面を区切らず浮かせて表示できます。メモをとるのは標準アプリのNotes ですが、他のアプリに差し替えたりできないですかね。

まとめ

特に iPad は、個人的に注目しています。アルバイトの学生に話を聞いてみると、授業のノートを取るのに使っている学生もでてきているようです。話を聞いた子もそうでした。ノートを分けないので「あの科目のノート持ってくるの忘れた」も起きず、板書も記号や図、数式などそのまま書き着込めます。PDF の資料も取り込んで、その上から書き込みとかもできます。研究室配属されている子も、すでに論文を上でいちいち印刷することは無くなってきているようで、iPad 等で読みながらその上に線引いたりしているようです。

私も英語の勉強をするのに iPad + Apple Pencil を使うようになりました。ノートはワープロで取りにくいのは以前からわかっていましたが、ノートアプリにペンで手書きを実際にやってみると記入位置を入れ替えたりして途中に追加で書き込むスペースを作ったりもできて、便利です。文字は自動認識させずに、手書き文字のまま書いています。

引き続き、今の学生がどんなふうに勉強しているのか、できてしまうのか、ウォッチしていきたいと思います。