← 他の記事もよんでみる
Available languages:
日本語

2025年のふりかえり

目次

振り返って思ったこと

ざっくり全体的に

セキュリティの世界に飛び込んだ

転職をしてセキュリティの世界に飛び込んだ。前から興味がある領域だった(実はエンジニアになるときにセキュリティか開発かで迷っていた)のだが、いざやってみるとこれが本当に面白い。技術的にも面白いし、いる人たちも開発の世界とは一味違うことが多いように感じる。なんだか新しい冒険が始まったような気持ちの1年だった。いろいろなことが新鮮で、本当に面白かった!ここには書ききれないくらい面白いことが多い1年になったのは、セキュリティの世界のおかげが1つ絶対にあると思う。

バグハントをがんばった

バグハントを趣味でやるようになった。最初はWebアプリや拡張機能を見ていたのだけど、途中からはブラウザに集中するようになった。最近はChromiumを見ている。

すでにdiscloseされているのは、下記2つだけ。

EdgeのUI Spoofing(CVE-2025-26643)。
横展開なんだけど、ブラウザで初めて報告ができたバグなので感慨深い。

https://msrc.microsoft.com/update-guide/vulnerability/CVE-2025-26643

Braveのcrash(ただしunexploitable)。
本当にたいしたことないんだけど、横展開ではない脆弱性をブラウザで初めて見つけることができてめちゃくちゃ嬉しかった。

https://hackerone.com/reports/2958097

実は他にももっと面白い報告をいくつかできた。そのあたりはまた公開されたら記事にしていきたいなと思う。

最近、バグハントではメモリ系のバグだけを見ている。なんかロマンを感じるというか面白い気がするというだけのことなんだけど。C++やメモリについて詳しくなれた1年だなと思う。

仕事の時間の多くがコードリーディングであることも相まって、今年はコードリーディングをする時間がいままでのエンジニア人生で一番多かったのではないかと思う。色々なコードを読んだ。
思ったのは、コードリーディングは、ものに光を当てて観察するような作業だなということ。光の当て方次第で見える部分が変わる。ある部分が目に飛び込むようになる一方で、他の部分は影になって隠れてしまう。セキュリティの角度で光を当てれば、IDORでもUaFでも色々なものが目につくけど、設計の妙や処理の効率性(DoSの検討をする際には考えることもあるけれど)はこぼれ落ちることがある。こんな感じでコードの色々な読み方ができるようになっていくと楽しそうだなと思う。
あとこれはTips的な話なんだけど、コードリーディングは全体をざっと眺めて、強弱をうまくつけながら読むのが大事だなと改めて思った。

来年はChromiumのJSエンジンまわりを掘っていこうと思う。ブラウザでいま一番アツい領域だとは思うので、がんばってやっていきたい👶

ブラウザ開発をがんばった

特にAnimation周りで、Firefoxのいくつかの機能実装やバグ修正をやらせてもらえた。

canalunのアイコンがauthorになったメールで、Intent to Ship: endopoint-inclusive commitStylesという題名のものがmozillaのメーリスに投稿されている様子
intent to shipメールを送ることができて感動した

Animation.prototype.overallProgressの実装については下記にある。日本語版の記事もあるよ。

https://canalun.company/posts/release_overall_progress_en

こっちはCommitStylesのエンドポイント挙動の変更について。

https://canalun.company/posts/log_20250208_en

interventionの実装もやった。「interventionって何?」という人は、Firefoxでabout:compatページを見つつ、このwikiを眺めてみると良いと思う。下記はPhabricatorのパッチへのリンク。

https://phabricator.services.mozilla.com/D276965

ChromiumでCommitStylesの挙動変更が実装できたことも、正直めちゃくちゃ大変だったけど良かったと思う。下記はGerritへのリンク。

https://chromium-review.googlesource.com/c/chromium/src/+/6904038

来年はFirefoxでもう少し大きめの機能を実装することを頑張りたい。
あと、Chromiumでがんばってコミッターになることも目指してみたいな。

たくさんのイベントに参加した

いろいろなイベントで登壇させてもらえた。
chotさんのイベントに始まり、Hardening、Sapporo Engineer Baseのイベント、みんな大好きフロントエンドカンファレンス北海道からJSConfまで。すごくありがたいことだと思う。感謝しています。ひたすらセキュリティかブラウザの話をしていたと思う。宇宙人のやつもやらせてもらった👽️

また、TPACに参加させてもらえたのもすごく恵まれた機会だったと思う。Mozillaの人たち、出版業界で電子書籍などを牽引されている方々、いろいろな人たちに会って、いろいろなお話を伺うことができた。mozaic.fmにまで出してもらえたのは本当にラッキーだったなと思う。

https://mozaic.fm/episodes/189/tpac2025.html

あとは自分でブラウザバグハントのイベントをやれたのもよかった。Azaraさんのようなベテラン、そしてmasatokinugawaさんやAlesandro Ortizさんのようなハイパーレジェンド級のハンターが登壇してくれて嬉しかった!

https://browsercrashclub.connpass.com/event/350203/

新しいことが色々できるようになった

新しいことが色々できるようになったと思う。
まず、ぶち壊れたゲームボーイを買ってきてハンダ付けして直せるようになったり、謎のハードウェアハック(ここにはあまり書かないが)が一定できるようになったり。バグハントも含めて、いつか憧れていた世界に入り込めた気がする。本当に仲間に恵まれたと思う。
ブラウザの開発もとりあえず開発フローには慣れてきた気がするし、パッチを送ること自体では自分が感動しなくなっていることが感慨深い。1年前はパッチを送るだけで、うお〜ってなってたと思う。
また、記事の執筆や書籍のレビューのご機会をいただけて本当に良かった。めちゃくちゃ嬉しい。

海外カンファレンスにたくさん行った

海外のカンファレンスに行く機会が多かった。Google I/OやBlackHatにDEFCON。海外の人たちと話す機会という意味ではTPACもそうだった。
結果、やはり英語に課題があるなと思う。1社目は戦略コンサルでコンサルタントをしていた関係で英語を使うことも多かったけど、それでもガヤガヤしたところで雑談するとか、日本語でも難しめの技術的な議論をするとか、やはり難しい。ここは本当に課題を感じる。悔しいです。色々な人たちと話せたほうが面白いと思うのでがんばっていきたい。

来年がんばりたいこと

やったこと

最後に今年やったことを下記にバーっと書き出して終わりにする👶

1月

ハイライト: ChromiumのUIコンポーネントにおけるUaFの分析
https://canalun.company/posts/uaf_in_chromium_1_en

2月

ハイライト: Brave Null Pointer Dereference by Crafted Response from AI Model
https://hackerone.com/reports/2958097

3月

ハイライト: 「Chromiumはテキストをどのように描画しているのか(佐藤可奈留)」執筆
https://www.lambdanote.com/products/n-vol-5-no-1

4月

ハイライト: Browser Crash Club開催
https://browsercrashclub.connpass.com/event/350203/

5月

ハイライト: Google I/O
https://canalun.company/posts/google_io_day1_ja

6月

ハイライト: Prototype-based Data Skimming
https://cheatsheetseries.owasp.org/cheatsheets/Browser_Extension_Vulnerabilities_Cheat_Sheet.html#12-prototype-based-data-skimming

7月

ハイライト: FirefoxでAnimation.overallprogressを実装してリリース
https://groups.google.com/a/mozilla.org/g/dev-platform/c/_vMp7q8N0HE

8月

ハイライト: Hacker KaraokeでZANKOKUを決めた
https://blog.flatt.tech/entry/lasvegas_2025#小ネタHacker-Karaoke

9月

ハイライト: 「ブラウザは「フロントエンド」を何から守っているのか」
https://docs.google.com/presentation/d/1SRlqYR7m4a9JcN9GblnByeQP7Mmwwoe8zTlQQDhqMJc

10月

ハイライト: Firefoxで実装した挙動変更をChromiumでも実装してリリース(Make commitStyles endpoint-inclusive)
https://chromium-review.googlesource.com/c/chromium/src/+/6904038

11月

ハイライト: Tragedy or Hope in the Commons: The Race for JavaScript Prototype Override
https://docs.google.com/presentation/d/1e1waxYgzcrH0YhgFXDDiyk2iVQVUw7-l7S4tDiP7s0o

12月

ハイライト: add a CSS webcompat intervention for tjoy.jp zoom-in on Android
https://phabricator.services.mozilla.com/D276965

さいごに

来年も良いお年になりますように👶

← 他の記事もよんでみる