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

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

どんな試験?

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

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

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

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

勉強方法は?

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

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

その他合格のためのTips:

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

最後に

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

Safari 15

Safari 15 がリリースされました。

大きな変更点としては、UI、特にタブ周りですね。タブのグルーピングなど大胆に変更しており、まず使い慣れる必要がありそう。

あとは、iCloud キーチェーンとの連携強化などがあります。

WebClassに関係のある変更

テストや資料教材に PDF をとりこんで画面表示する際、ごく一部の PDF では、ページの途中でロードが止まってしまう問題を確認しています。PDF を表示するために使用している PDF.js と Safari 新バージョンの相性が悪いようで、この組み合わせでのみ問題が起こります。問題の解消には Safari の更新を待たないといけないかもしれません。続報があり次第このページを更新します。

--- 2021/11/4 追記 ここから ---
Safari 15.1 がリリースされましたが、状況に変わりありません。PDF.js に関係ありそうな Issue がありましたが、Safari 側の問題として Close されました。
--- ここまで ---

また、Redesigned form controls in iOS. とあるので、念のため iPhone でテスト回答まわりを動作確認しましたが、問題ありませんでした。

最後に

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

Dockerコンテナ内で make: /bin/sh: Operation not permitted

GitLab CI のジョブ実行環境として Docker イメージ composer:2 を使っていたのですが、 make: /bin/sh: Operation not permitted というエラーによりジョブの途中で停止していました。単純な make コマンドが実行できないようです。

この問題に関係するのは以下のようでした。

https://github.com/alpinelinux/docker-alpine/issues/146
https://wiki.alpinelinux.org/wiki/Release_Notes_for_Alpine_3.14.0#faccessat2

まとめると以下の状況です。

  • Alpine 3.14.0 からシステムコール faccessat2 を使うようになったため、ホストOSで以下を必要とするようになった
    • runc v1.0.0-rc93
      • containerd.io 1.4.3-2 (DebianリポジトリのDockerの場合)か、Docker Desktop 3.3.0 (WindowsかMacのDockerの場合)に含まれる
    • Docker 20.10.0 以上
    • libseccomp 2.4.4 以上

弊社では、GitLab runner が動作しているサーバーの Docker バージョンを最新にしたらエラーが起きなくなりました。

Firefox 89

Firefox Desktop Browser 89 が6月1日にリリースされました。

Release notes

Firefox 89 release notes

Firefox 89 release notes for developers

Pickup for WebClass

タブやメニューのデザインが変更された

https://www.mozilla.org/media/img/firefox/releasenotes/note-images/proton_inspired_tab_design.png

https://www.mozilla.org/en-US/firefox/89.0/releasenotes/ より

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

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

Firefox Release Calendar

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

Chrome 91

Chrome 91 が5月25日にリリースされました。

Chrome 90 release note

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

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

https://chromereleases.googleblog.com/2021/05/stable-channel-update-for-desktop_25.html

Pickup for WebClass

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

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

次回は 8/20 のリリース予定です。
https://www.chromestatus.com/features/schedule
その他ブラウザのリリースはこちらにまとめています。
https://webclass.jp/documents/system-admin/browser-releases