セキュリティ・キャンプ全国大会2019の応募課題晒し

これis何

セキュリティ・キャンプ全国大会2019開発と運用トラックの参加に際し、奇跡的に通った黒き歴史ポエム応募課題を晒すことにしました(慣習のようですし)。なお、公開にあたり多少修正していること、内容の正確さの保証ができないことはご承知願います(俺たちは雰囲気で応募している)。

セキュリティ・キャンプとは

サイバーセキュリティについての高度な技術が学べる勉強会です。全国大会と地方大会があり、前者は5日間泊まり込みでおべんきうできます。www.security-camp.or.jp

課題

共通課題

問1

公開している資料等

このブログ、TwitterGitHub等のリンクを書きました。

問2

セキュリティ・キャンプ地方大会などセキュリティに関するイベントに参加していれば、それを記入してください。

以前参加した、ミニキャンプやCODEBLUEなどのもろもろのイベント歴を書きました。

問3

オープンソースなどの活動に参加していれば、どんな実績があるかを記入してください。参加の形態は開発だけには限りません。

学内で伝統的に使われているライブラリに対する助言などの歴について書きました。

オープンソースカンファレンスなどのイベントや、大きなオープンソースのプロジェクトにコミットしたことはなかったので、規模は小さいが書かないよりは…くらいの気持ちで書いた記憶があります。

問4

自分のスキルについて、得意としている、あるいは得意としたい技術領域について、なぜその技術領域が好きなのか、その技術領域でどんな世界を作っていきたいのか、『好きなだけ』語ってください。

得意としたい技術領域はWebセキュリティ分野です。
僕は普段、専門学校の情報工学科で学んでいます。他校のようにセキュリティ学科があるわけでなく、大学のようにアカデミックな研究をするわけでもありません。情報の様々な分野に手を出し、自分のやりたいことを勝手に見つけていく形をとっています。 そのような中、なぜWebセキュリティの分野に興味を持ったか。理由は大きく2つです。1つ目は、世の中の現行webサイトの中に脆弱性だらけのサイトがあり、放置されている現状を体験してしまったから。これは専門学生2年生の頃でした。よくニュース等で、「〇〇という大きなサービスにも脆弱性がある」などという報道がなされていました。無論、完全なるバグの排除はほぼ不可能ですから、当時の僕は興味こそあれ、「世界の名だたる技術者から見ると、抜け道はあらゆる場所にあるのだな」程度の認識でした。しかし、その後とあるサイトに登録した際、自分のログイン情報がデータベースに平文で保存されているであろう現場に遭遇してしまいました。ログイン情報の問い合わせをした際に平文で情報をメール送信してきたため発覚しました。衝撃でした。まだセキュリティの勉強をそれほどしていなかった私にとっても、おかしいとわかる問題でした。このことから、世の中には、最先端の脆弱性だけでなく、初歩的なセキュリティすらままならないサイトが数多くあるのだと実感してしまったのです。今でこそ、この事例は明確な脆弱性というわけでなく、不適切な実装という類のものだと認識していますが、それでも僕の人生に影響を与えました。 2つ目は、学内のWeb開発演習において、脆弱性を排除しきれぬまま成果物を提出したことです。これは専門学生3年生のことです。学内Web開発演習において、メイン機能の実装に追われ、思うようなセキュリティ強度のあるサイトを作り切れませんでした。理由1の経験から、ログイン情報のハッシュ化、入力値のエスケープ処理などは実装しましたが、その他は正直満足できない状況でした。案の定演習終了後は「こんな実装すればよかった」、「あれを忘れていた」などと嘆くこととなりました。
上記の理由から、世の中には脆弱性だらけのWebサイトがはびこっていること、それを感じていながらいざ自分が実装するとてんでだめだ、という認識を得ました。同時に、学内では広く浅く情報工学を学んできましたが、もっと深く掘り下げるべきはWebセキュリティだと決意しました。 Webアプリケーションの特徴に、非常に一目につきやすいというところがあります。ネットサーフィンしていたら簡単に開けますし、SNSなどに貼られたリンクから飛ぶことも容易いでしょう。しかし、このような手軽さ、身近さという特徴を残しながら、近年のITの飛躍的な進歩により、一般ユーザと技術者に知識や認識の乖離が広がっているのは事実だと思います。さらには、攻撃手法も飛躍的に進化しているわけで、一般ユーザであっても、ネットリテラシがある程度必要にならざるを得ない世になっています。ひと昔前であれば、httpとhttpsはどう違うのかだとか、緑色のアドレスバーは何を意味しているのかというようなこと、最近であれば、ドメインをしっかりみるとか、検索エンジンの上位にあるからといって安全であるとかぎらないとかです。学校教育のインターネットの手引書や情報の授業においても、高度なものを学んでいる様子が散見されます。僕は、このような乖離によって、一般ユーザに高度なリテラシが必須な状況は減っていくべきだと考えます。勿論いまは、IT進化の過渡期ですから、ネットリテラシを学ぶのは必要だと思うし、そうあるべきだと思いますが、最終的にはそうではない世であるべきです。ITは世の中を便利にしようと生まれました。Webはその中ではぐくまれ、身近な存在として位置しています。しかし、利用するたびにサイバー犯罪ににおののき、Webサイトを見るというだけでもこれは正規のサイトか、通信は暗号化されているか、などと一般ユーザが気にすることは、便利になった世に必要なだと言えないでしょう。Webの特徴だと感じている手軽さも危ういところかもしれません。これはユーザビリティ以前の問題です。
こうした理由から、僕は、限りなく透過的にセキュアなWeb世界を作りたいと思っています。極論を言えば、サイバーセキュリティという分野がなくなるほど、世の中がセキュアになれば良いのですが、曖昧さを孕んだ人間が作り、利用するのですからそうはいきません。ですから、脆弱性診断や開発者へのWebセキュリティの助言や提案などを通して、技術者と一般ユーザの乖離に関わらず、ユーザが安心してWebを使えるようにしたいと思っています。また、技術者は技術者で、PoCの公開、エクスプロイトコードの共有がさらに盛んにされるように開けた世界にしたいです。

Webセキュリティに興味がある理由などを書いたわけですが、いや~~イキリ案件です。

問5

あなたが今まで作ってきたソフトウェアにはどのようなものがありますか?また、それらはどんな言語やライブラリを使って作ったのか、どこにこだわって作ったのか、たくさん自慢してください。

  1. "ゲーム開発を助けるソフト「StageEditor」"
    MFCを使用しました。3D座標の画面に任意のオブジェクトを配置し、ゲーム制作時のステージ作成補助するというものです。オブジェクトの種類として、タイル、キューブ、トーラスなど様々あります。ダイアログでは座標などの数値をむき出しにしていますが、手打ちで数値を入力する必要はなく、GUIで配置できます。その際対象オブジェクトの各数値はダイアログにも反映されます。また、画像ファイル(.jpg ,.png ,.tga)を読み込んで、テクスチャとして登録し使用できます。これは、指定ディレクトリ(../media/)に存在する画像ファイルを自動検出し、コンボボックスに追加しておくことで楽に操作ができます。データのエクスポートについては、CSV形式を採用しています。これは、対象ユーザである本校ゲーム科1年生にヒアリングを行った結果です。CSV形式の利用者が非常に多かったため、この形式にしました。

    2. "書籍を扱うECサイト"
    はじめて製作したWebの制作物です。使用した学内のライブラリはDB操作を助けるライブラリのため、フロントエンド、バックエンドは生のHTML+CSSやJSやPHPを書いていますし、データベース設計はSQLを書いてほとんど一人で行いました。世界には複数の言語で書かれた書籍が多数存在しますが、それらを一挙に扱うサイトがなかったので、原書と翻訳された書籍をひとまとめに扱うことをテーマに制作しました。典型的なECサイトの体をなしていて、ユーザ側はゲスト、もしくはユーザ登録をし($_SESSION等を使いセッション管理されています)、書籍を検索、カートに入れて購入手続きをするという一連の流れが行えます。ユーザ登録のメリットは、本棚機能があり、自分が購入した書籍をマイページから並べて閲覧できる点です。全ての書籍の表紙画像については、書籍の登録時にISBNを登録することで自動取得できるようにしました。管理側の機能は管理業務に関するもので、それぞれ参照・登録・削除・更新等の基本機能を実装しました。受注管理については一度の注文に複数の種類の書籍が含まれることに対応するため、注文テーブルと注文書籍テーブルを分割し、在庫などの状況から、注文の中で発送時期に差異ができても対応できるようにしました。ユーザ側に見せるトップ画面に表示する書籍は、管理画面にてジャンルをチェックボックスで選択することで選択されたジャンルの書籍をランダム表示するようにしました。 セキュリティとしては、当時の僕にとっては精いっぱいの実装で、htmlspecialchars()による入力値の特殊文字エスケープ、ユーザ情報のハッシュ化などは最低限実装しました。しかしながら、最近になって、コードを見直す機会があり、当時の実装を見てみたところ、そもそも使用していたライブラリの実装していたハッシュ関数md5だったことに気づき、問3で記述した通り修正した次第です。この製作が、座学でやってきたものが実装は難しいと思い知らされ、Webセキュリティに興味がわいた一因であることは間違いありません。

    3. "スクリプト言語「vv12lang」" 
    機能として以下があります。単純な四則演算(+, -, , /)、変数(int, double, string)、代入演算(=, +=, -=, =, /=)、標準出力(print,printf)、ブロック文({})、ループ文(while)コメント(1行、範囲)。
    現在進行形のプロジェクト(2019年6月現在)です。学内ではもっぱら高レイヤが多いので、低レイヤのことを学びたいと思って着手しました。Windows上のVisualStudioで開発することにしたため、字句解析、構文解析Windows対応であるFlex、Bisonを採用しました。そのためその前身であるUNIX系用の解析ソフトウェアのLex、Yaccについての記事などを参考にしました。 製作中に直面した壁として、BisonがC++STLを読んでくれないというものがありました。しかし、Bisonのファイルである.yファイルは、C++で記述された各.hファイルをインクルードする必要があり、さすがにSTL無しで開発となるとC++を使っている意味はどこへやらということなので、対処としてPImplイディオムを使うことにしました。これはこの時初めて知ったテクニックでした(本校教員に教えてもらいました)。これにより、STLの使用を.cppファイルの中に隠蔽することで、STLを使っていながらも、Bisonからはその模様を隠すことに成功しました。なお、STL用の.hファイルは別に作成し、各.cppファイルにインクルードさせました。

    4. "汎用的なライブラリ群"。
    様々なところで出現する自分のなかの問題点や自動化したい処理などを実装した細々したライブラリ群です。
    • 天気予報の取得と服装の自動選択
      • LivedoorWeatherから天気予報をjson形式で取得し、データに沿って服装スタイルを決めてくれます。これは僕が普段着ているジャージのパターンが数パターンしかなかったことから、いっそのこと選択も自動化しようと思い作ったものです。結果はrequstsを使用しSlackに投げています。また、batファイルを作成しタスクスケジューラに入れておき、朝起きるとその日に着ていくジャージの通知が来ている状態にしていた時期もありました。
    • netcatでの自動応答
      • CTFなどで、netcatでサーバに接続し自動応答が要求されるもの(手動では不可能な時間で応答させるもの)があったので、応答を取得し、要求文字列や虫食い算の計算結果を自動返信させました。
    • パスワード付きzipファイルに対するパスワード解析
      • CTFなどの検証環境で、ある規則に倣ったパスワードが設定されているzipファイルが渡されたときに、自動試行するために作成しました。実装としてはライブラリとしてosとitertoolsを使い、規則に沿った文字列群を生成し、その順列の数だけunzipコマンドを実行するというものです。
    • ディレクトリ内のファイルに対する一斉操作
      • Web製作の際に、ディレクトリ内のファイル全てのファイル名に特定文字列を追加する必要が出てきたため、手動でやるのは大変だと思い、ファイル名に対する一斉操作できるようにしました。

うーむ、ほかの参加者の成果物を見ているとなんとも凡庸な感じがしてならない…。が、privateリポジトリの中身を一時的に公開へ移し、絞り出して書きました。自作言語については、2019年6月現在では、新たな実装(比較演算子、for文、if文、break文、continue文、関数定義と呼び出しなど)が追加されています。

問6

あなたがこれまで利用したことがあるインターネットサービスの中で一番すごい!と思ったものについて、技術的なのか、仕組み的なのか、ビジネス的なのか、どんなところがすごいと思ったのかを説明してください。

プログラミングコンテストサイトについてすごいところをいくつか挙げました。

問7

今年のセキュリティ・キャンプ全国大会で受講したいと思っている講義は何ですか? そこで、どのようなことを学びたいですか?なぜそれを学びたいのですか? 講義を担当する講師に響くようにアピールしてください(複数可)。

正直なところ、受講したい講義が複数被っていて選択するのは苦しいのですが、この選考を通過したことを想定し、時間割を立ててみました。

B1~3:クラウド時代における大規模分散Webシステムの信頼性制御
昨今では、AWSが東京リージョンでリリースしているサービスが多くなってきたことに代表されるように、Web開発の本番環境のクラウド上でDockerをはじめとするコンテナ技術を利用できる環境が整っています。しかし、仮想化技術を使うだけでセキュリティが担保されるわけではないし、クラウドのセキュリティについては、DevOpsにおけるスピードとのバランスを考えなくてはならないと思います。これらは先日参加したDevelopers.ioでも大いに語られていました。このことから僕はこの講義では、自分が開発し持ち寄ったWebシステムを強固にしていく様を体験したいと同時に、セキュリティを強固にすることで生じる運用のスピードとの乖離、バランス、根幹技術の変容などを学びたいです。

B4:認証の課題とID連携の実装
- 自分がインターネットを触り始めてからというもの、数えきれないほど行ってきた認証する=ID/パスワードを入力という認識が強いのは確かです。問5にも記述したWebサイト制作においても、単純なID/パスワード認証のみの実装でした。しかし、実際に運用されているサービスでは、多要素認証やバイオメトリクス認証は日常的に行われる存在と認識しています。僕はこの講義では、FIDOのネットワークに認証情報を流さない技術やOpenID Connectの実践的な実装を学びたいです。そして、ID/パスワードから移行されつつある認証技術を理解したいです。また、認証技術の変化に伴い変わるWebの認証の中でセキュリティエンジニアが留意するべき点に迅速に対応できるようにしたいと考えます。

B5:体系的に学ぶモダンWebセキュリティ
僕はセキュリティミニキャンプ2018岡山を受講しました。そこでは、オリジンの考え方とブラウザのセキュリティ、XSSを使ったCookieの窃取を体験しました。僕はこの当時、座学としてWebセキュリティは学んでいましたが、それが実世界のどのようなコードと実装で成り立つのか学びきれずにいました。そのような中受講した講義で、今まで座学でやってきたことが立体的に目の前に現れた感覚になり、自分を活字上から引き上げてくれました。というのも、ただ、XSSが成功して終わりという内容でなく、具体的にどのような被害が出るかまで体験させていただけたからです。これを機に、自分の環境で脆弱性を模した実装をデモしたり、セキュリティの回避だけでなくその先の実被害まで考えを巡らせるようになりました。この講義ではWebをとりまくセキュリティ、しかしながら、XSSだけではなくサイドチャネルまで取り扱っていただけるとのことでさらに興味がわきました。Webセキュリティのはらむ、多岐にわたる攻撃手法と最終的にWebセキュリティに至る様々なアプローチを学びたいです。

C6:事例と法律
技術的イノベーションはいかなる時代も危険がつきものです。安易な実装、まだ世間的に受け入れられていない技術の検証、導入を行なう際は法に抵触するおそれがあることに留意せねばなりません。エンジニアが該当しやすい、不正アクセス禁止法個人情報保護法などは2000年代以降に施行されたものが多く、刑法の不正指令電磁的記録に関する罪などはさらに新しく、2011年施行です。IT技術が急激に発展してきたことで、このように比較的新しい法律が作られてきました。しかし、該当する法律の条文が抽象的かつ難解であり、解釈の余地が複数あるように見えてしまいます。最近であれば、Coinhive事件や無限アラート問題で議論になったかと思います。このような状態のなか、自分のプロダクトや活動、仕事が正当なものだと自信をもつには、自分がなにをやっているかという技術的な理解とともに法律の正しい理解が必要だと感じます。エンジニアは法律を知っているだけでは足らず、熟知していることが大前提となったと思うのです。セキュリティエンジニアであればなおさらです。このようなことから、僕はこの講義でどこまでが違法でどこまでが合法かの境界を学びたいです。自分自身の条文の解釈が曖昧なせいで、「ここまでは大丈夫だろう」などと「だろう」という推測のまま、活動をしたくはないです。類似の裁判例も紹介していただけるとのことで、より具体的で詳細に技術と法律の関係性について学びたいです。

B7:ユーザー企業における情報システムとセキュリティ
クラウドを使って開発し、インターネット上からコンソール操作、業務ツールをオンラインで使用、という業務体系が見慣れてきたものだと思います。そのような中、どこから許可してどこからを禁止にするかという境界を網羅的に決定するのはもはや簡単にできるものではなくなったということは納得ができることです。ですから、セキュリティを担保しなくてはならないのに、そうすることで、ビジネスの成長を止めてしまうことになっては本末転倒だと思います。この講義では、キーワードであるゼロトラストの概念に基づくことで、セキュリティ強度とビジネスの成長性のバランスはどうなるのか、多層防御と比較して具体的にどのような差異があるか学びたいです。

選択課題

以下の中から、2問以上を選んで回答してください。

問3

XSS (Cross-Site Scripting) とは何か、自分の言葉で説明してください。またあなたが Web サービスを開発・運用するとしたら XSS 攻撃に対してどんな対策を取るかを、できるだけ多くの視点から考え、思いついたことを教えてください。

XSSとは、動的にWebページを生成するWebアプリケーションの脆弱性もしくはそれを悪用した攻撃のことです。攻撃が成功することで、ユーザのブラウザ上で悪意あるHTMLタグやJSなどが動いてしまいます。出力箇所において攻撃が露呈するため、ユーザが悪意あるURLを踏んだり、罠サイトの閲覧をする必要があるので、受動的攻撃に分類されます。ここでいう受動的攻撃とは、攻撃者が直接対象を攻撃するのでなく、Webサイトのユーザに罠を仕掛けることにより、ユーザを通してアプリケーションを攻撃する手法のことです。
通常、ブラウザにはWebアプリケーションにアクセスするとき、やりとりしているサイト以外からのJavaScriptなどによるアクセスを禁止するため、SOP(Same-Origin-Policy)が採用されています。これにより原則、ブラウザの持っているデータは、SOPにより定義されるサーバ(FQDNの一致、スキームの一致、ポート番号の一致するもの)しか取得できないようになっています。そのため、攻撃者がユーザの情報を不正に扱うためには、ユーザが直接やり取りしているサーバを攻撃する必要があります。また、情報セキュリティには多層防御という考えがあり、それに乗っ取れば、Webアプリケーションの層(境界)はオリジンであるといえます。このことからXSSは、どうにかして攻撃対象のオリジン内部から任意スクリプトを実行してやろうという攻撃だといえます。オリジンの内部であればWebサイト全体が影響を受ける対象となり、スクリプトの実行もクロスオリジンと比べ明らかに自由度が違います。しかしながら、XMLHttpRequestなどでクロスオリジンでアクセスする場面がいくつかあります。その際はCORS(Cross-Origin Resource Sharing)を利用します。ただし、CORSはブラウザが自主的にデータを受信しないだけであり、アクセスの遮断はできません。そのため、ソケット接続などで受信できる場合があることには注意が必要です。

XSSは攻撃スクリプトの所在によって、以下の3つに分けられます。
- 反射型(Reflected)
悪意のあるスクリプトを含んだリンクなどを通して罠サイトと脆弱サイトにまたがり、スクリプトを脆弱サイトのWebページに注入するものです。リンクの送信には、メールや掲示板などがあげられます。

- 格納型(Stored)
脆弱サイトのWebサーバにスクリプトを仕込んでおき、アクセスの際にスクリプトを注入するものです。わざわざユーザを誘導する必要はありません。

- Domベース
Domと呼ばれる、クライアント上で実行されWebページを動的生成するブラウザ上のデータをサーバを介さず直接取得できるAPIを悪用するものです。クライアント上でHTMLが生成され、サーバには送信されません。そのため、ブラウザのXSS保護機能(X-XSS-Protection等)が回避され易かったり、サーバに攻撃ログが残らない傾向にあるため、把握が困難だといえます。

XSSの主な目的としては以下があります。

- Cookieの窃取によってセッションを盗み、正規のユーザになりすます。
- Webサイトに偽フォームなどを追加し、フィッシング詐欺をし、ユーザ情報を窃取する
- 悪意ある任意のJavaScriptを実行し、マルウェア感染などをさせる。

XSSの対策としては以下が思いつきました。 大きな括りとして、クライアント側とサーバ側に分けます。

クライアント側

- ブラウザのSame-Origin-Policyを適切に有効にしておく
これは、先述にもあるように、クロスオリジンからのスクリプトでアクセスされるのを禁じるものです。

- セキュリティパッチなどの正しい適用
古いブラウザ(IEの古いバージョンなど)特有の脆弱性などを狙った攻撃に有効です。

- XSSフィルタの有効化
モダンなブラウザに実装されている機能で、反射型XSSを含むレスポンスが検知されるとそれを無害化するというものです。

サーバ側

- 属性値を"などの引用符で囲む
引用符で囲わない場合は空白によって区切られるため、区切り後にイベントハンドラなどの属性値を追加されてしまいます。また、囲っている場合でも、'や"などをエスケープしていない場合は入力された'や"が属性値の区切り(終端)と解釈されてしまうため、それもエスケープすべきです。

- 外部からの入力に応じてHTMLやJSなどを動的に生成している箇所で生成時に特殊文字等のエスケープ処理をする
<>や&をエスケープすることで、スクリプトとして解釈される特殊文字を単なる文字列として扱うことができます。ただし、スクリプトタグをピンポイントでエスケープすることだけでは不十分です。DomベースXSSではimgタグのonerrorイベントハンドラスクリプトを記述する方法など、攻撃には常にJavaScriptを使うとは限らないからです。

- 入力値のバリデーションチェック
入力値の想定が、数値などで限定されているのであれば、妥当性をチェックし、それ以外ははじくことで、不正な入力をエスケープできます。

- URL発行時のJavaScriptスキーム排除(httpとhttpsのみにする)

- イベントハンドラとして関数を呼び出す際の特殊文字エスケープ

- CookieにHttpOnly属性を付与する
HttpOnly属性は、JavaScriptからのCookie読み出しを防ぐ属性です。CookieのセッションID窃取攻撃に有効だといえます。

- Access-Control-Allow-Originレスポンスヘッダでコンテンツアクセスを指定する
Access-Control-Allow-OriginはXMLHttpRequestなどによるCORSで制御されたクロスオリジンからのアクセスにおいて、サーバ側が提供するヘッダです。これにより許可されたサイトはCORSの制御下でクロスオリジンからアクセスできます。しかし、提供元に脆弱性があったり、提供元に悪意がある場合があるため、サイト運営者の適切な許可が必要です。また、CORSが実装されたのはXMLHttpRequest level2からであることから、もともとlevel1を実装したサーバはそのままクロスオリジンなアクセスを許してしまう恐れがあるので留意すべきです。

- X-XSS-Protectionレスポンスヘッダの利用
X-XSS-Protectionはモダンなブラウザに実装されているXSSフィルタの設定を上書きすることができるヘッダです。X-XSS-Protection:1;mode=blockとすることで、XSSフィルタの有効化をサーバ側で設定することができます。

- エラーメッセージの不必要な表示をしない
攻撃者に攻撃時の手掛かりとなるような情報与えないことが大切です。また、メッセージの中に個人情報などが含まれないべきです。

かなり抽象的ですね…。これは反省です。もっと具体的な例を挙げるべきでした。XSSの対策という広い問いに対し網羅的に書くのはとても難しかったです。

問7

「セキュリティ」は幅広い分野から成り立っていますが、その中で自分がもっとも興味があるテーマについて、『好きなだけ』書いてください。

テーマ:ゼロトラスト
恥ずかしながらこの概念を知ったのは、この応募に際し、IPAのページを確認していたときでした。そこから調べたことをもとに書いていこうと思います。 ゼロトラストは、これまでの、内部(ネットワーク)は安全である、という前提に立たず、信頼しないことを前提にログやトラフィックの監視を行う、性悪説に基づくアプローチです。僕としてはそもそもセキュリティとは性悪説に基づくものだという認識が少なからずあったので、この考えは特段驚くべきものではありませんでした。この概念が提唱されたのも2010年のForrester Researchによるものだということです。10年越しで本流になってきた考えだということです。海外ではBeyondCorp(Google社)が先導しているようです。また、セキュリティの強化という面でなく、ユーザビリティの向上という面も担っています。分散型のネットワークが基本になりつつある現代は、認証と認可を求めるゼロトラストに合わせた仕組みの導入で、物理的にどこから、どんなデバイスでアクセスしようが、最小権限でアクセスさせるし、検証するということが可能になります。実際にID認識型プロキシを用いて、ユーザやアプリケーションの所在地に関わらず、認証と認可の仕組みを整えたケースもあるそう。あくまでプロキシにアクセスさせているだけですから、変化の目まぐるしいマルウェア感染によるラテラルムーブメント対策としても有効です。また、ゼロトラストは動的なポリシが大切です。ここでキーになるのが機械学習Microsoft AzureやGoogleのCloud Armor AIはゼロトラストに必要な動的ポリシ作成のプラットフォームを実現しています。動的に変化していくことで運用にコストがかからず、異常検知時は自動で対応できます。これらの点では実装にあたっては機械学習研究が発達した現代に即した概念だといえると思います。実装の点で新たな概念であるゼロトラストですが、ビジネスのスピードも維持できそうな印象を受けました。また、専門講義B7への意欲も膨らみました。

恥ずかしながらこのテーマについては課題を見るまで知らなかったので、調べながら書きました。付け焼刃感がすごい。

まとめ

全体でだいたい20000文字ほど書きました。なんとも読みにくい文章と抽象的な中身によって、見事黒歴史入りしたわけですが、通過できたことについては本当にうれしいです。精進していきます。また、Web等で過去の応募課題を晒していただいた皆さま、参考にいたしました。ありがとうございます。