セキュリティキャンプ修了後に始めたこと。
キュリティキャンプのグループワークで始めた月一記事投稿、最初の記事は「セキュリティキャンプ修了後にはじめたこと」です。
やったことは、
Webデバッガの開発
OS自作開始
です。
Webデバッガの開発
Web周りの低レイヤーな技術を身につけるためにBurpsuiteのようなローカルプロキシを用いたデバッガーの開発を始めました。 ソースコード
使用技術
バックエンド: Tauri
RustとWebフロントエンド技術を利用してデスクトップアプリケーションを開発するためのツールキット
フロントエンド: Svelte
Webフロントエンドフレームワークのうちの一つ
仕組み
RustでプロキシサーバーとTauriアプリケーションを並行で実行して、Webブラウザと外部サーバーの通信をフロントエンドに送って編集したり改変したりできるようにする。
実現したいこと
プロキシサーバーを経由した通信の閲覧
通信の編集機能
TLSに対応
Web Socketへの対応
プロキシサーバーに利用しているHttpを自分で実装
拡張機能
今実現できていること
プロキシサーバーを経由した通信の閲覧
まだこれしか実現できていないですね。Rustでの並行プログラミングが初めてだったことなどが原因でロジックではなく言語や周辺技術をデバッグすることが多かったので結構開発速度は遅くなりました。(本来の目的は言語や周辺技術の学習なので特に問題はないが)
現段階で得た知識や技術
RustのTokioを使用した並行プログラミング
RustのHyperという低レイヤーなHttpライブラリの使用法
これからすること1
実現したいことを見て気付いたことがあります。Web周りの低レイヤーな技術を得たいのであれば、デバッガーよりもブラウザとかWebサーバーを自作したほうが手っ取り早いのでは?
よしデバッガーじゃなくてWebブラウザを自作しよう。Webブラウザの方から自作すれば、それをそのままデバッガーの方にも流用できるし、GUIをつける作業を最初のほうに始めてしまうと本来の目的とは異なるものに労力を使ってしまいそうです。(というか実際フロントエンドにもかなり時間や労力をさいている)
Webサーバー自作は具体的には、TCPよりも上のレイヤーをフルスクラッチで実装するというものです。これならすぐにでも始められそうですが、OSやネットワークなどの低レイヤーな技術や知識を会得したいという欲求が以前からあり、そういった技術はWebサーバー自作や趣味ハッキングにもとても役に立つと思います。ですからいっそのことシステムプログラミングを一通り経験してみようではないか、ということになり、記事の最初のほうで列挙したものの一つである、OS自作を始めようということになりました。
OS自作
これはWebデバッガー自作のところでも語ったように、システムプログラミングの経験や知識を得たいという欲求と、Webサーバー自作をするときにスムーズになるかもという動機に突き動かされて始めました。
みかん本を使って勉強をしています。
この記事を書いている現時点では始めてから2日でまだ記事に書くこともないため、一通り読み終わったら得た知見や技術をまとめた記事を書きたいと思います。
これからすること2
ただ闇雲に興味を持ったことに食いついているだけでは中途半端な人間の出来上がりなので、これからどういったものを実装して行きたいのかということを決意も込めてまとめました。上から順にやって行きたいと思います。
OS自作
TCP/IPプロトコル・スイート実装
Webサーバー自作
Webブラウザ自作
だんだんレイヤーが上がっていっているのに気づくと思いますが、これまで低レイヤーの知識がないせいで、おまじないで済ませていたことが何度もあるので基礎から順を追って知識をつけていきたいと思います。
最後に
こんな下手くそな文章を最後まで読んでくださった優しい方々、ありがとうございます。ブログなんてほとんど書いたことないし、最近は長い文章も書いていなかったので、文章作成能力が今とても低いですが、セキュキャンのグループワークの活動として継続すると決めたので反復することで、だんだん上手くなっていくと良いなと思っています。
X
Web
GitHub
この記事が気に入ったらサポートをしてみませんか?