セキュリティキャンプ2019に参加しました

セキュリティキャンプ2019 Bトラック参加

私はセキュリティキャンプ2019に参加し、そこで得られたことなどをこの記事にまとめていきます。 具体的な内容はオフレコなものもあるので、ざっくりとした内容を書きます。 *引用してある資料や記事は既にインターネットに存在しているものです。 f:id:sottisotti:20190821162310j:plain

クラウド時代における大規模分散Webシステムの信頼性制御

この講義では、Webシステムの信頼性を効果的に制御するために、高い信頼性をもつ大規模なWebシステムをいかに構築し運用するのかを実際に講義とハッカソンという形で進んでいきました。 午前の講義は坪内 佑樹(ゆううき、@yuuk1t)さんの講義でした。 Webシステムの信頼性制御の背景やそのアーキテクチャの話やスケーリングのケーススタディを学びました。 Webサーバーの並列処理モデルやマルチプロセスモデルRDBMSTCPアーキテクチャやDB接続の永続化のモデルについても学びました。 何よりこの講義では「なぜ」そのアーキテクチャなのかを重視してお話していたので、自分の中でもアーキテクチャに関して興味が湧きました。 午後のハッカソンでは、4人のチームで高信頼のシステムを開発するというものを行いました。 事前に講師の方(仲山 昌宏さん(@nekoruri))が雛形を準備してくれていて、それに改良を加えていくというものでした。 自分自身ハッカソンに参加した経験がないので、良い経験となりました。

クラウドホスティングサービスのセキュリティと運用技術の研究

この講義は松本 亮介さん(まつもとりー @matsumotory)の講義で、基盤技術における、セキュリティや性能、運用技術に関する最新動向と最新の研究の取り組みについてお話をしていただきました。 講義内容としては、おおまかにWebサーバーのセキュリティと運用技術の背景、WebサーバーとWebホスティングシステムの基礎知識、セキュリティとリソース分離、セキュリティと性能、セキュリティと運用技術、大規模WebサーバーのTLS証明書管理、データセンターとコンテナの未来にわかれて講義が進んでいきました。 講義の資料は400枚以上あり、午前中で終わる量ではなかったので、松本さんはその中で特に重要だと思われる部分を受講者に伝えてくれました。 この講義で、セキュリティ対策は高レイヤーも重要ですが、抜本的な対策は低レイヤーでしなければ解決できないという事を知り、幅広いレイヤーの技術と知識がエンジニアには必要不可欠と感じました。 私が松本さんの講義で特に印象に残ったものは、松本さんが開発した「mod_mruby」というApacheモジュールをRubyで効率良く実装するためのApacheモジュールです。 mod_mrubyの主な機能は、リソース消費量を低減し高速に動作し柔軟に内部処理拡張するためのAPIを設計できます。(詳細は下記の記事に記載があります) employment.en-japan.com

体系的に学ぶモダン Web セキュリティ

この講義は米内 貴志さん(@lmt_swallow、@y0n3uchy)の講義で、Webにおける境界線の必要性、ブラウザのセキュリティ機構に必要性(SOP,CORSなど)、ブラウザのセキュリティ機構で実現可能な事、Webの脆弱性を突いた攻撃で実際にどのような事が可能になってしまうかなどなどアプリケーションに関する事だけでなく、ブラウザのセキュリティも体系的に学べました。 米内さんの講義が最初の1時間程度で、その後は全て手と頭を動かす演習でした。 演習の時間が多かったため、概念だけで理解していたものを手と頭を動かして体系的に学べました。 途中途中で米内さんやチューターの方に助けてもらいながら学べ、演習を解き切るところまではいけませんでしたが、このような演習で体系的に学ぶことは技術や知識の定着率がとても高いと感じたので、自分でも積極的に手と頭を動かす学びと取り入れていきます。 下記が米内さんが公開されて講義資料です。 speakerdeck.com

つくって学ぶ、インターネットのアーキテクチャと運用

この講義は木村 泰司さんの講義で、インターネットの仕組みとその考え方について、手を動かしながら学ぶことができました。 講義内容としては、世界中のネットワークが具体的にどのようにして繋がっているのか、DNSの仕組みや名前解決がどのように行われるのか、BGPの運用の仕方やそもそもなぜBGPを使用するのかという講義内容の後に、PC上で仮想ネットワークを構築し、BGPの設定を行って実際にBGPの通信を確認するという事もしました。 木村さんの講義では、半分が講義でもう半分が演習という形でしたが、演習ではルーターの設定だけでなく、エンドポイントコンピューターの設定なども含まれているので、頻繁に設定がうまくいかないなどのトラブルが発生しました。演習ではDNSに関する事なども行う予定でしたが、トラブルが多発していたため、BGPの体験しかできませんでした。 ですが、BGPの概念だけ理解していた自分にとっては手を動かして体系的に学べたという事で、BGPについてさらに理解度が深まりました。 この講義でも実際に手と頭を動かして、体系的に学ぶ事の大切さを改めて実感することができました。

ユーザー企業における情報システムとセキュリティ

この講義は鈴木 研吾さん(@ken5scal)の講義で、ゼロトラストネットワークという概念や法令やセキュリティの指針・実装など幅広いセキュリティを学べました。 講義内容としては、証券会社をケーススタディとしてシステムやオフィスにどのようなセキュリティ上の問題があるのかという事をペアで話あってそれを講師の方と受講者で共有しあうものと、ユーザー企業では具体的にどのようなセキュリティ対策を行っているのかを講義で学びました。 ペアでの話合いと各ペア毎の共有では自分では考えてもいなかったセキュリティ対策があり、一人だけではセキュリティ対策は限界があると感じました。 この講義でセキュリティ対策は専任の担当者1人だけで行うのではなく、チームビルディングをしてチームとしてセキュリティ対策をやっていかないと網羅率が下がってしまうという事も感じました。 技術的なセキュリティだけではなく、法令や基準をしっかりと把握しておかないといけないと思い、技術的な事以外も勉強しようと思えました。

speakerdeck.com

セキュリティキャンプを通じて

自分はセキュリティキャンプを通じて上記に記載した事だけでなく、いい意味での「危機感」を感じました。 上記の危機感は、自分はこれだけ低い位置にいるのだからもっと自己研鑽をするようにしないとついていけないという危機感です。 学内や職場だけでなく、セキュリティキャンプのような全国から技術力の高い人間が集まっている環境に行くことによって、ハングリー精神が磨かれ、自分の成長にも繋がります。 今回セキュリティキャンプに参加できて本当に良かったです。 このセキュリティキャンプで得た技術や知識やマインドセットを今後も忘れないように積極的にアウトプットをしていきたいと思います。 セキュリティキャンプの関係者の皆さん、本当にありがとうございました。

おまけ

f:id:sottisotti:20190821161626j:plain ↓ラストナイトイベントでもらった書籍 f:id:sottisotti:20190821161847j:plain