ぶうううん's Cafe

どうにかこうにか。備忘録に近い。

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

概要

 前回、セキュリティ・キャンプ全国大会 2019の参加記を書いたので、今度は応募課題の回答を書こうと思います(一部簡略化しています)。参加記はこちら。 buuuuuuun3939.hatenablog.com

共通問題

問1

Q.ブログや、TwitterGitHubSlideshare、Speaker Deckなど公開している活動や資料があれば、URL等を記載してください.

A. 以下にブログ、TwitterGitHubのURLを記載します。

 ブログ:http://buuuuuuun3939.hatenablog.com
 Twitter:https://twitter.com/buuuuuuun3939
 GitHub:https://github.com/buuuuuuun3939

問2

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

A. 初参加となります。(思い返せば高校生時代にCTF4bに参加していた。)

問3

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

A. オープンソース自体の開発について経験無し。しかし、「参加の形態は開発だけには限りません。」と問題文にあるので、その部分に注目して回答。Web Componentsを絡めた回答をした。

問4

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

A. 私は、現在Web開発を行っています。私は今まで、CTFなどを通してセキュリティについて学んできました。しかしながら、私にとってセキュリティは実感が湧き難い分野であり、「果たしてこれで良いのだろうか」と思いつめる日々でした。
 大学入学後、Web開発を行っている友達と出会い、私もWeb開発を行うようになりました。すると、セキュリティのみを学んでいた頃とは異なった喜びが生まれました。なぜならば、自分がコードを数行書くごとに、自分の書いたコードがWebとして画面で生まれ変わるからです。私はそれが嬉しくて嬉しくて仕方がありません。このレスポンスの速さこそ私が求めていたものなのかもしれません。「書いたコードを一番にWebとして見ることができる」これはWeb開発者ならではの特権です。
 現在、Webの世界はどんどん広がっています。その証拠に、IPv4は枯渇し、IPv6が生まれました。今後は更にWebの世界が広がるスピードはますます加速するでしょう。果ては、頭で考えたWebを1クリックで構築・公開できる時代が来るかもしれません。
 私の作ったWebがWebの世界を構築する1つのパーツとして生きている。インターネットが当たり前となった現代において、それを実感できることはとても喜ばしいことです。
 私は共通問題 問3にて、「多くのWebコンポーネント開発を行いたい」と書きました。果ては頭で考えたWebを1クリックで構築・公開できる時代が来るかもしれませんが、その前に、これからはWebコンポーネントを自由に組み合わせ、誰でも簡単にWebを公開できる時代が来るはずです。それも2000年代初頭のようなWebではなく、現在のように見やすく、デザイン性に溢れてレスポンシブなWebです。私はそのために「多くのWebコンポーネント開発を行いたい」と考えています。
 IPv4が枯渇し、さらにIPv6も枯渇したとき、Web開発者が考えるものはなんでしょうか。私にはその答えがわかりません。そのときにはまたアドレス域が拡張されることでしょうが、私はそんな世界を見てみたく、その問に対する答えを見出したいと考えています。加速的に広がっていくWebの世界。私はそんな世界で生き、Webを豊かにしていきたいのです。

問5

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

A. 大学で珈琲同好会を立ち上げたので、それの紹介HPや、インターネットラジオ用の通知ソフトウェア、コマンドラインツイートソフトウェア等について書いた。また、現在開発中のサービスだったり、その後に作りたいものについても書いた。特に、その後に作りたいものについては、Web開発をしている自分・これまでの特殊な家庭環境を絡め、結構力説した。

問6

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

A. 私がそのように思ったものは、ストックフォトサービスです。中でも、スマートフォンに特化したストックフォトサービスに感動しました。実際、私は代表的ストックフォトサービスの1つである「Selpy」を利用し、「Selpy」に関する記事をブログに投稿したことがあります。(http://buuuuuuun3939.hatenablog.com/entry/2018/09/26/160159)
 以前から趣味で写真を撮影していた私ですが、利用当初は「一眼レフで撮影した写真ならまだしもスマートフォンの写真なんて売れるのだろうか」と疑心暗鬼でした。しかし、この思いはすぐに打ち消されました。実際に「Selpy」に利用を通し、私の想像よりもはるかに簡単に写真を販売することができたからです。これには本当に驚かされました。
 この体験は技術的発展とビジネス的発想がなければ生まれなかったと私は考えています。技術的発展とは「スマートフォンの写真撮影技術の向上」、ビジネス的発想とは「スマートフォン1つで写真の撮影から販売までを行う」ことです。
 近年、急速にスマートフォンの写真撮影技術が向上しています。もちろんセンサーサイズは一眼レフには及びませんが、中には老舗カメラメーカーであるLeicaのレンズを搭載したモデルや、高性能な画像処理機能を提供するチップを積んだモデルもあります。
 これらにより、スマートフォンでも高品質な写真を撮影することができ、それらを商業利用することが可能になりました。
 さらに、これにストックフォトサービスが組み合わさり、スマートフォン1つで写真の撮影から販売までを行うことが可能になりました。昔は写真といえばプロが販売するというイメージが強かったですが、現在ではアマチュア・初心者でさえ簡単に販売することが可能となり、その気になればスマートフォンさえあれば誰でも写真家になることができます。これぞ、写真における革命だと私は思います。

問7

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

A. 私にとってセキュリティ・キャンプ全国大会の講義はどれも魅力的です。全ての講義を受講することは不可能ですが、特に3日目はE4「クラウドホスティングサービスのセキュリティと運用技術の研究」、B5「体系的に学ぶモダンWebセキュリティ」を。4日目はC6「事例と法律」、A7「Pythonによるマルウェア検出の自動化」を受講したいです。
 まず、E4「クラウドホスティングサービスのセキュリティと運用技術の研究」は、今回の選択問題の問5で問われている内容が取り上げられています。
 私はMicrosoft Azure、Amazon Web Servicesなどのクラウドサービスを本格的に利用したことがありません。また、コンテナ技術に関しても、Dockerを簡単に使用したのみです。クラウドサービスやコンテナ技術についての知識が圧倒的に欠けており、多くの時間を調べることに費やしました。完璧な回答はできずとも、私なりの回答を行うことができましたが、まだまだ分からないことばかりです。特に、オーケストレータとそれに関するセキュリティについて興味がありますが、この講義を通してコンテナ関連技術のセキュリティについて知識を深めたいと考えています。
 B5「体系的に学ぶモダンWebセキュリティ」では、モダンなセキュリティ機構を学ぶとのことですが、そのなかで私が特に惹かれた内容が「CSSを用いた攻撃」です。
 私はWeb開発を行うなかで、もちろん多数のCSSを用意します。Webを本格的に書き始めたころ、友人から「まだそんな書き方してるの?今は違う書き方で書くよ。」と言われたことがありました。その時私はCSS3までに廃止されている機能をいくつも使用してしまっていました。その後、友人のアドバイスを受けて、CSSを書き直しました。  私が書いているCSSは独学のため、不完全な部分も多々あります。この講義で、実際にどのような手順でCSSが利用され、最新のモダンなWebとは何なのかを学びたいと考えています。
 C6「事例と法律」では、事例を的確に解釈し、法律を適用する方法を学びたいと考えています。私は現在、大学の講義にて法律を一部学んでおります。しかしながら、その講義のみではセキュリティに関する法律について詳しく学ぶことはできません。
 セキュリティに関わって生きていく以上、法律について学ぶ必要があると私は考えます。日本で近年問題となった「Coinhive事件」では、神奈川県警による捜査が問題視されました。それにより、予定されていたセキュリティの勉強会が中止になるなど、セキュリティ技術者が活動を自粛するという結果になりました。
 確かに攻撃と防御は表裏一体です。しかしながら、技術者の学ぶ機会が奪われてしまうことは非常に悲しく、この国のIT産業の発展のためになりません。今後、セキュリティの勉強を続けていくためにも、この講義を受講したいと考えています。
 A7「Pythonによるマルウェア検出の自動化」では、機械学習を使ったマルウェア検知について学ぶことができます。マルウェア検知にはパターンマッチング法やビヘイビア法などの検知方法がありますが、近年、難読化が進み、マルウェアの検知は難しくなってきています。
 私は検知方法について少しだけ知識は持っていますが、異なる検知方法でどれだけの差が出るのかを体験したことがありません。機械学習を使ったマルウェア検知では、機械学習の量や質によって検出が左右されることが予想されます。
 これからはそういった検知方法がますます主流になっていくと考えられますが、セキュリティ・キャンプ終了後に自分のWebサービスに実装するためにも、機械学習を使ったマルウェア検知の具体的手法とその課題について深く学びたいです。

(しかしながら、実際にはE4、B5、A6、A7を受講した...。)

選択問題

問1

Q. 「1000万人が利用するTwitterのようなタイムラインサービス」をあなたが開発することになったとしたら、予算はあるとして、どんなアーキテクチャで設計しますか?具体的に利用するミドルウェアやライブラリまで思い浮かぶ人はそこまで踏み込んで書いてください。

A. まず、想定するプラットフォームはパソコン・スマートフォンタブレットの3種類を主に想定します。ブラウザでの利用はもちろん、各プラットフォームに適したアプリケーションが必要であり、それらの開発も行います。
 そして、そのようなタイムラインサービスに必要な機能として、大きく分けると「ログイン機能」「投稿をPostする機能」「投稿を見る機能」が必要になります。
 「ログイン機能」について、Twitterではツイート一覧取得などの読み込みのみOAuth 2.0が利用でき、ツイートの書き込みなどにはOAuth 1.0aを利用していますが、他サービスとの連携を考慮するとOAuth 2.0やOpenIDを用いります。
 「投稿をPostする機能」「投稿を見る機能」については、投稿を公開する範囲を適切にユーザが設定できるようにしたいです。
 Twitterでは興味のない情報が流れてくることが多々あります。これは例えるならば、Twitter内ではどのユーザも国の区別が存在しないTwitterという星で生活しているからです。
 対して、Mastodonというタイムラインサービスでは、インスタンスという単位でMastodonという星を区切って国を作り、その国のなかでユーザは生活しています。また、ユーザはその国(インスタンス)を超えて他の国(インスタンス)のユーザと情報を共有することも可能です。
 両サービスを比較すると、ユーザが属している単位が違うため、流れてくる情報も変化します。
 Mastodon内をMastodonという星とインスタンスという国に例えましたが、私が開発するならば「もう少し情報共有の幅を階層化」したいと考えます。
 例えば、タイムラインサービス内を市区町村、国、世界、星のように広げるのです。そうすることでユーザが得られる情報の広さと情報の濃さに、更に柔軟性を持たせることができると考えます。
 少し話は変わりますが、タイムラインサービスのユーザー数1000万人という数は非常に大きく、このようなサービスは災害等の非常時には災害伝言板のような役割も持ちます。実際、2011年に発生した東日本大震災や2016年に発生した熊本地震の際にはTwitter等のタイムラインサービスが様々な形で有効活用されてきました。
 しかしながら、そうした場合にはデマも広がりやすく、熊本地震の際には「動物園からライオンが脱走した」といったデマも拡散されてしまいました。
 ユーザが混乱に陥っていると、そうしたデマも拡散されてしまい、さらに混乱を招いてしまいます。
 それを防ぐ為に、ユーザの反応から投稿のデマを発見し、ユーザが情報を共有する際は「デマではないかという警告」を行う機能がなどで必要だと考えます。
 また、セキュリティ観点・非常時観点から、サーバを1カ所に全て設置することはよろしくありません。サーバは分散して設置するべきであり、また、ロードバランサや自家発電装置などを有効活用する必要があります。

問2

Q. クラウド上のインフラやサービスや技術的仕様から、1人目の社内のシステムおよびセキュリティ担当として、どのように組織的な設計をしていくか自由に書いてください。組織的にスケールする構成やフレームワーク、優先順位などを検討したうえで、なぜそういう設計にしたかを自分なりの言葉で説明してください。

A. 私がそのような立場になった場合、まずAWS(Amazon Web Services)を用いることにします。「1人目の社内システムおよびセキュリティ担当」ということで、これから大きく成長していくシステムだと考えられます。
 まず、最小構成として
Amazon EC2(仮想サーバ)
Amazon Aurora(RDS)
Amazon S3(ストレージ)
・Elastic Load Balancing(ロードバランサ)
Amazon Route 53(DNS)
Amazon Certificate Manager(SSL/TLS証明書用)
を使用します。
 AWSには様々なRDSが存在しますが、ここではAmazon Auroraを選択しています。これは、MySQLPostgreSQLに互換性があり、ストレージシステムが分散型であるからです。Multi-AZ構成にすることで、異なるアベイラビリティゾーンにレプリケーション可能であることは、大きなメリットです。
 また、最小構成にロードバランサであるElastic Load Balancingを組み込む理由として、負荷分散だけでなく、WebサーバをInternet Gatewayを通じて直接公開することが無くなるということが言えます。EC2は異なるサブネットに複数用意することで、冗長性の確保を行います。
 次に、
Amazon Cloud Front(SDN)
AWS WAF(WAF)
Amazon GuardDuty(脅威検出)
を使用し、キャッシュの利用による高速化やWebサーバの保護を行います。
 さらに、
AWS Auto Scaling(自動的なスケーリング機能)
Amazon ElastiCache(キャッシュのデプロイ・運用・スケーリング)
・Fluentd(ログ収集用)
を使用し、急激な負荷やセッション管理に対する対策を行います。
 最後に、
Amazon CodeCommit(ソース管理)
AWS CodeBuild(ビルドサービス)
AWS CodeDeploy(デプロイの自動化)
AWS CodePipeline(パイプラインリリースの自動化)
Amazon Elastic Container Service(コンテナオーケストレーションサービス)
Amazon Elastic Container Registry(Dockerコンテナレジストリ)
Amazon Athena(データ分析)
Amazon QuickSight(データの可視化)
を使用し、高速にデプロイ可能な環境と集積したデータの有効利用を可能にします。
 私がこのような設計にした理由として、安全性をいち早く確保するという目的があります。そこで、最小構成の後、安全性を確保しています。また、先述したようにRDBはMulti-AZ構成にすることにより、冗長性を確保しています。データセンターが被災するという可能性は低いと考えられますが、万一に備えた構成をすることが大切だと私は考えています。

問3

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

A. 各種XSSを他のものに例えて説明した。また、XSS防止のための適切なフォームについて考察したり、XSSフィルタやCSPを用いる理由を書いた。

問4

Q. OpenIDやOAuthといった技術を使ったアプリケーションのメリットとデメリットについて回答してください。なお、FacebookTwitterなどのソーシャルログインを実装したことがある場合には、その環境(ライブラリやフレームワーク、開発言語など)と開発してみて感じたことを自由に回答してください。

A. メリットとして「簡単に様々なAPIを利用できる」「クライアントは自身のクレデンシャルとユーザのトークンのみを管理すればよく、仮にクライアントのいずれかから情報が洩れても、リソース所有者のクレデンシャルが外部に知られない」「ユーザが1つのアカウントで複数のサービスを使える」といったものがあります。
 また、従来のアプリケーションと比べて、「大きな情報拡散能力を持つ」と言えます。
 例えば、スマートフォン向けのゲームを開発したとして、ステージクリアした際にスコアをそのままSNSで投稿できるようにすると、ユーザにそれほど手間をかけさせることなく世の中に情報を拡散することが可能となります。
 デメリットとしては、認可サーバやリソース側について「仕組みが複雑になる・更にセキュリティの責任を負う・攻撃が集中する」といったものがあります。また、仮に利用中のどれか1つのサービスのアカウント情報が流出した場合に、パスワードリスト攻撃によって短時間で複数のサービスで情報が流出することが懸念されます。
 そのため、認証の際にOTP(One Time Password)を用いたり、指紋などのバイオメトリクス認証を用いて強固な認証を行う必要があります。
 共通問題で既に書かせて頂きましたが、Python3を用いたアプリケーションの一部でTwitterのログイン/ダイレクトメッセージへのPOST機能を実装したことがあります。その際、ライブラリはrequests_oauthlibを用いりました。
 TwitterはOAuth 2.0にはツイート一覧取得などの一部のみ対応しており、OAuth 2.0に対応するソーシャルログイン実装とは少し異なりますが、比較的簡単に実装ができたと感じました。しかしながら、仮にこのクライアントが悪意のあるクライアントだった場合は脆弱なのではないかと考えました。

問5

Q. コンテナや関連技術を使って今からクラウドホスティング、マネージドサービスを作る場合にどういう設計にするかを自由に書いてください。設計の際には大規模にスケールすることとセキュリティをどう担保するかを検討の上、自分らしい創意工夫をひとつ以上明示してください。

A. まず、多数の国に分散させた複数のリージョンを用意し、各リージョンにはIP-VPNなどを用いた相互アクセス可能な複数のデータセンターを設置します。データセンター内では、VPC(Virtual Private Cloud)を用いてユーザごとに分離したネットワークを構築します。
 VPCの中には必要に応じてパブリックなサブネットとプライベートなサブネット構築します。これにより、公開・非公開する情報を分けることができます。各サブネット内にはコンテナを用いてデータベースサーバやWebサーバ機能などを構築することでき、ユーザは必要に応じて機能を縮小・拡張可能です。
 VPCをインターネットに接続する場合はInternet Gatewayを通じてアクセスします。IPv6を用いる場合はIPv6専用のInternet Gatewayを使用します。また、プライベートなサブネットに属するサーバは直接インターネットにアクセスすることはできない為、必要な場合はパブリックなサブネットに設置したNAT Gatewayを通じてアクセスします。ユーザがオンプレミスなネットワークとVPCを接続したい場合は、VPG(Virtual Private Gateway)を通じてアクセスします。
 従来であれば、ストレージサービス、サーバ機能提供サービスといった具合に機能ごとにサービスを分ける必要がありました。しかしこのような形であれば、マイクロサービスアーキテクチャの考えを基に、クラウドサービスという大きな枠組みの中に複数のサービスを存在させることができます。
 これらのサービスではユーザから大量のデータを預かることになります。サービスの性質上、特に重視すべきことは可用性と安全性だと考えます。日本では毎年多くの地震などの自然災害が起き、その被害を受けた場合、サービスが利用できない期間が長期間に及ぶことが予想されます。そのため、多数の国にリージョンを分散させることが必要となります。また、分散ファイルシステムを用いて、リージョン間でファイルを分散させることで、高い安全性が得られます。
 一般的にデータセンターは地上に設置しますが、私はそのいくつかを人工衛星内に設置したいと考えます。
 人工衛星内にデータセンターを設置するメリットとして、人工衛星で得られる情報を瞬時にバックアップし、人工衛星局を通してそのままユーザに提供することが可能になります。また、地球などの惑星で起きた災害の影響を受ける確率は低く、地上に存在するデータセンターが使用困難になった場合でも使用可能です。  このように多数のメリットがありますが、私は人工衛星で得られるデータをそのままユーザに提供するだけでなく、「データマート・データウェアハウスとして提供する」ことも創意工夫として視野に入れています。
 人工衛星には気象衛星・測位衛星などの種類があり、それぞれのデータには様々な活用方法を見出すことが可能です。例えば、気象衛星で得た気象データを基に、「小売店で販売する商品の入荷量を制御する」ことや、測位衛星で得たGPSデータを基に「道路渋滞を回避する」ことが可能です。
 ただクラウドホスティング、マネージドサービスを作るのではなく、人工衛星から得られるデータ提供を組み合わせることで、「顧客にとってより価値あるサービスが生まれる」と私は信じます。

(キャンプ応募の時期に、丁度大学の講義にて無線局について学んでいたので、人工衛星局を織り交ぜたら面白いのでは?と思ったのが始まり。応募課題を書いている途中で調べたところ、海外ベンチャーが既に構想していた[1]。そりゃそうだ。)

www.bizcompass.jp

問6

Q. UNIXpingやtraceroute、dig、vimemacsといったコマンドの利用経験があれば、それをどのようなときにどのように使ったか、使ってどのように考えたかを教えてください。また、DNSサーバやルータの設定経験があれば、どのような理由で設定したか、どのように設定したか、設定してどのように考えたかを教えてください。

A. vimを多少使った経験、スループットについて、CISCOルータの設定経験について書いた。

問7

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

A. 私がセキュリティで最も興味があるテーマは「Webセキュリティ」です。セキュリティの中のWebセキュリティとはいえ、非常に幅広く、奥深い分野であり、今後も急速に発達し続けると考えられます。
 それは、Webセキュリティの歴史はインターネットの歴史といっても過言ではないからです。古典的なセキュリティといえばソーシャルエンジニアリングですが、Webセキュリティはインターネットが無ければ生まれませんでした。インターネットの先駆けとなるARPANETが生まれて約50年が経ちますが、インターネットの成長とともにWebセキュリティは成長し、Web開発者とクラッカーの戦いが繰り広げられてきました。
 私がなぜ「Webセキュリティ」に興味があるのかと申しますと、私が現在Webサービスを開発しており、そのなかでWebセキュリティ対策を講じる必要があるからです。過去、静的なWebサイトや、私個人のみが使うためのWebサービスはいくつか開発してきました。しかし、動的なWebサイトを用いた一般に公開するWebサービスを開発したことがありません。
 今までの開発と勝手が違う部分も多々あり、試行錯誤の開発を行っています。昔、ある方から「セキュリティと攻撃は表裏一体」と言われたことがありますが、開発していくなかで「まさにそうだと」実感しています。
 2011年、PlayStationNetworkにて大規模なDDoS攻撃・個人情報流失が発生しました。当時私はゲームに夢中で、同サービスを利用しており、被害に合いました。私が「Webセキュリティ」について意識するようになったのはこの事件がきっかけです。その後、そのような被害に合うことはありませんでしたが、「自分のWebサービスでああいった被害を起こさないためにはどうしたら良いのだろう」という考えの結論には至っていません。
 私はこの世でいつでも完璧なセキュリティは存在しないと考えています。仮に「今、最強のセキュリティ」と言われているものがあったとしても、「数年後には破られてしまう」と考えられるからです。  例えば2017年、GoogleとCWI Instituteが「SHA-1の衝突に成功した」と発表しました。ハッシュ値の計算は非常に膨大ですが、計算機の計算能力向上は凄まじく、将来的にはクラスタを用いらずとも、既存のハッシュ関数は無意味になるでしょう。
 今後、Web開発者とクラッカーの戦いはますます激しくなることでしょう。Web開発者はモダンなWebを追い続け、クラッカーはそのモダンをレガシーへと変えていく。この戦いに終わりはあるのでしょうか。
 私の大学の友達に、セキュリティ・キャンプ全国大会を卒業して脆弱性報告を行っている友達や、個人で案件を取ってきてWebサービスの開発を行っている友達がいます。私はまだ知識・技術ともに彼らには敵いません。「ある程度Webセキュリティに触ったことがある」と言いましても表面的でしかなく、「本質的に触った」とはとても言えません。
 まだまだ未熟な自分を脱却する一歩として、このセキュリティ・キャンプ全国大会2019に参加したいです。
 Webセキュリティは常にモダンを追いかける必要がある分野であり、移り変わりの激しい分野です。私はまだ学生ですが、将来的にはWeb開発者として、その移り変わりの激しい分野の中で生きていきたいと考えています。

まとめ

 全体的に調べながらの回答となりましたが(特にAWSの部分)、ある意味独創的な回答ができたと思います。しかしながら、キャンプ修了後に読み直すと、「何言ってんだお前」という部分が多々あり、もう少し技術寄りな回答ができるようになりたい。実際の文章量としては、回答だけで15,000文字程度でした。

引用