HOME»情報処理安全確保支援士掲示板»R01秋SC午後Ⅱ問2設問1(1)
投稿する

[1315] R01秋SC午後Ⅱ問2設問1(1)

 aaaaさん(No.1) 
解答が「webブラウザが示す値であるケース」というのがわからないです。
こちらは、HTTPリクエストを出しておることからPCーSが使用しているwebブラウザを指すと考えています。
ならばPCーSならばA社で利用しているwebブラウザを使用するのは当然だと思ってしまいます。
それともリクエストでuser-agentは通信先の者をわかるのでしょうか。
また、webブラウザに限定している理由もわかっていないです。
User-AgentからわかるのはOSもかと思います。
「同じOSを示す値であるため」ではだめなのでしょうか。
よろしくお願いします。
2024.01.19 22:15
pixさん(No.2) 
SC ダイヤモンドマイスター
HTTPリクエストの発行元とUser-Agentヘッダフィールドの関係についての知識が
あやふやのようです。

HTTPリクエストに含まれるUser-Agentヘッダフィールドは、一般的にその
HTTPリクエストを発行したプログラムの値が入ります。
HTTPリクエストを発行できるのは、
・Webブラウザ
・curlなどのコマンドラインツール
・自作プログラム等
などがあります。

以下はそれぞれのUser-Agentヘッダフィールドの例です。
・Webブラウザの場合
"Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/120.0.0.0 Safari/537.36"
・curlなどのコマンドラインツールの場合
"curl/7.64.0"
・自作プログラム等の場合
"" (明示的に設定しなければ空になる)

P15 図3では「①User-Agentヘッダーフィールドの値が"curl/7.64.0"のHTTPリクエストを
繰り返し送信していることが確認された。」とあります。
この一文は通常のWebブラウザからではなく、curlからHTTPリクエストが多発している
ことを意味しています。またcurlを用いているということはcurlコマンドを実行する
ような悪意あるスクリプトが動作しており、このスクリプトがマルウェアであると
判断できます。

言い換えれば、User-Agentヘッダフィールドの値がA社で利用しているwebブラウザの
ものとは別であれば、それはマルウェア等であると判断できる基準となります。

しかし、User-Agentヘッダフィールドは簡単に偽装できます。
curlコマンドであれば以下のオプションでUser-AgentヘッダフィールドがWebブラウザと
同じものに偽装できます。
curl -A "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/120.0.0.0 Safari/537.36"

このようにマルウェア側でUser-Agentヘッダフィールドを偽装されてしまうと、
ログでUser-Agentヘッダフィールドを確認しても、そのHTTPリクエストが正規の
Webブラウザのものか、マルウェアのものかを判別することができなくなります。

そのため、設問の解答は
「User-Agentヘッダフィールドの値がA社で利用しているWebブラウザを示す
  値であるケース」となります。
2024.01.19 22:48
GinSanaさん(No.3) 
SC ブロンズマイスター
この投稿は投稿者により削除されました。(2024.01.19 22:56)
2024.01.19 22:56
GinSanaさん(No.4) 
SC ブロンズマイスター
>こちらは、HTTPリクエストを出しておることからPCーSが使用しているwebブラウザを指すと考えています。
PC-SのOSとブラウザ(のバージョン)と同じUserAgentをcurlの
-Aオプションやwgetの-Uオプションで指定すると、
"-" space - - (・・・)"GET / HTTP/1.1" (・・・) "Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:66.0) Gecko/20100101 Firefox/66.0"
のように同じ情報(この例だとMozilla/5.0 (Windows NT 10.0; Win64; x64; rv:66.0) Gecko/20100101 Firefox/66.0)になるので、区別がつかないね、となるわけです。まあ実際には、OSも書いてあるわけですが

>User-AgentからわかるのはOSもかと思います。
>同じOSを示す値であるため
たとえばcurlで
Mozilla/5.0 (Windows NT 10.0; Win64; x64) Gecko/20100101 Firefox/66.0)

chromeデスクトップv93で
Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/93.0.0.0 Safari/537.36
は、OSは同じですがブラウザは違います。そういう意味では、ブラウザがユーザエージェントを全部書いていることを「Web ブラウザを示す値」として表現したのではないかと思います。本当はsystem-information(OS)とplatform(ブラウザ)として書くべきなのでしょう。
2024.01.19 22:56
aaaさん(No.5) 
GinSanaさん、pixさんご返信いただきましてありがとうございます。
HTTPリクエストがcurlやマルウェア自体、プログラムなどからできることは知りませんでした。
てっきりマルウェアがのっとて、遠隔操作でwebブラウザにてHTTPリクエストをしていると思い込んでおりました。すべての問題に通じる知識をいただき大変感謝しております。

すごく素人質問で申し訳ないのですが、問題文では、User-Agentヘッダーフィールドの値curl/7.64.0と記載されており、お二人が記載されておりますUser-Agentヘッダーフィールドの値は、Mozilla/5.0 (Windows NT 10.0; Win64; x64)とバージョンが記載されております。
このあたりどのように解釈すればよいのでしょうか。
curl/7.64.0ならばUNIXのcurlコマンドでHTTPリクエストしたということかと思います。webブラウザでHTTPリクエストと異なるので、PC-Sは、UNIXをダウンロードしており、curlコマンドを普段からしようしているでものと思っています。

当方、UNIX等をいじったことがなく、会社のシステムセキュリティ担当であるものの、いままでは経理畑でした。会社の方針で、今までコンサルに任せきりのところを縮小していき、できるところは自社で行い費用を切り詰めたいということから受験することとなりました。なんとか応用まで(文系科目選択)で取れましたが、こういったところで差を感じています。

頓珍漢な質問かもしればせんが、よろしくお願いいたします。
2024.01.21 07:03
GinSanaさん(No.6) 
SC ブロンズマイスター
>問題文では、User-Agentヘッダーフィールドの値curl/7.64.0と記載されており、
>お二人が記載されておりますUser-Agentヘッダーフィールドの値は、Mozilla/5.0 (Windows NT 10.0; Win64; x64)とバージョンが記載されております。
>このあたりどのように解釈すればよいのでしょうか。
curlでそのままなにも-Aオプションを指定しないと、curlのバージョンがcurl内部で指定されて送られます。
-Aオプションで指定するときは自分で勝手に決められるので(※)、何でもいいのでOSのバージョンとブラウザのバージョンを書いて送るわけです。
※もしかしたらフォーマットに合わない記載をすると、RFCに沿ってないからcurlのデフォルトにもどるのかもしれない
>curl/7.64.0ならばUNIXのcurlコマンドでHTTPリクエストしたということかと思います
いまはwindows10の途中からcurlが入っていますので、UNIX/GNU Linuxに限りません。試そうと思えば、Windows10でもできます。
2024.01.21 07:42
aaaさん(No.7) 
ありがとうございます。
プロキシログにあるUser-Agentヘッダーフィールドがcurl/7.64.0のものは、マルウェアであることは疑いなく、攻撃者がもしもcurlコマンドを使ってwebブラウザの値にしていたものに関しては、プロキシのUser-Agentヘッダーフィールドログからはウェブブラウザからの通信かマルウェアからの通信かわからないという理解をしました。
本問は、curlコマンドを知らなければ答えようがなく、お手上げになってしまいますが、こういったUNIXコマンド系で覚えておいた方が良いコマンドや読んでおいた方が良い本があれば教えていただけないでしょうか。
2024.01.21 17:35
GinSanaさん(No.8) 
SC ブロンズマイスター
支援士ではたまにUNIX/GNU Linuxのコマンドを題材に設問を作ることがあります。今回のcurlのように。

少なくともshellshock(2014のbashの脆弱性で大騒ぎになった件)

令和元年秋のcurlのuserAgent

令和4年春のtar
https://www.sc-siken.com/bbs/0873.html
No38あたりからtarの話をしています


とかになりますが、tarもありふれている(Windowsだと使わないのでなんとも言いがたいかもしれませんが)コマンドじゃないか、と思うでしょうが、普段から使っていても気づかない部分で突かれてしまうので
(まあ、そりゃそうで、気づかないから脆弱性なわけですので)
参考書ってのは探すのが難しい気がします。
対処療法ですが、過去問で覚えつつ、LinuxをWSLでいいので触ってみるとかしか銀の弾丸的回答は難しいです。
三好本の作者もSEプラスの支援士の動画で言ってましたが、Linuxのコマンド知ってるのと知らないのとでは相当試験に割ける時間が変わってくるとは言ってました。
まあ、本文読めばできるようには出来ているわけですが、それでもある程度の一般的な挙動は何かしらで学んでおいた方がいいとは思います。なんか一般的な話に終始してすみません。

ちなみに、いわゆる上原本でコマンドを解説したか?というと、PDFで設問解説の際にあったか記憶がありませんが、少なくとも本にはなかったはずです。令和元年秋に受けるので買ったので、あれば覚えてるはず・・・。分厚すぎて1回で嫌になったのもありますけど
2024.01.21 19:20
ctf_muzuiさん(No.9) 
横からで申し訳ないですが、過去問に
・シェル組込み関数、osライブラリ、標準ライブラリの呼び出し関係についての穴埋め(選択肢式)
・プロセス一覧やメモリ使用量等を確認するコマンドの穴埋め(選択肢式)
なんかもノーヒントで出題されていた記憶があります(いつの問題かは調べる体力がありませんでした…申し訳ないです)
大問は2つまで捨てられるのでどうにかなるとは思うんですが、やはり少しでもコマンドを打った経験があったほうが良いんじゃないかなと私も感じます。
2024.01.21 21:06
aaaさん(No.10) 
ありがとうございます。
頑張ってコマンドの勉強もしてみます。
2024.01.22 19:37
橙色文書さん(No.11) 
UNIX系OSのアクセス制御等の基礎を理解するのは過去問に取り組むより効果が高いと思います。
コンピューターセキュリティの9割以上を担っているのはOSですから。
検証に使う環境はWindows上で動作するものには特有の問題もあるかと思いますので、中古PCやVPSにLinux等をインストールするのが理想です。

試験で解答するために必要な応用技術は基本的に問題文で説明されています。
R4春 午後Ⅰ問2設問3(2)では問題文にsudoコマンドとtarコマンドの概要がありますので、あとはUNIXアクセス制御が理解できていれば正解できます。
私は「tarアーカイブを展開できる別のコマンドでtarコマンドを代替する」というIPA解答例と全く違う回答をしましたが、満点か高い部分点だったようで採点対象者7,365人の上位400あたりに入れました。

IPA解答例の「設定ファイルで禁止」が可能なことを知っていたのは極少数でしょうから、同設問の趣旨は「用意された正解を当てる」ではなく「考える能力を評価する」ことでした。
問3設問2(5)も同様の趣旨で、「警察庁及び共管各省庁の考え方」の記載内容を書かせるのが趣旨ではありませんでした。
2024.01.23 20:50

返信投稿用フォーム

スパム防止のためにスレッド作成日から30日経過したスレッドへの書込みはできません。
© 2014-2024 情報処理安全確保支援士ドットコム All Rights Reserved.

Pagetop