令和1年午後Ⅱ問2 最初の問題
広告
KKさん
(No.1)
タイトルの通り、一問目から躓いてしまいました。
Web系がどうも苦手で、なぜ公式解答のようになるのかがピンと来ていません。
User-Agentはクライアント側(Webブラウザからということでしょうか?)で
自由に設定できると聞きました。それは、curlコマンドを使う方法が該当するのでしょうか。
また、マルウェアが何もしないという前提に立てば、User-Agentのヘッダ値は
「A社で利用しているWebブラウザを示す値」になるのですよね?
User-Agentヘッダフィールドの値がA社で利用しているWebブラウザを示す値であるケース
が公式解答のようですが、マルウェアが賢くなくても(改ざんや証拠隠滅を図らなくても)
A社のPCから外部と通信をしようとする限り、User-Agentヘッダの値は
A社で使用しているWebブラウザを示す値になるのではないのでしょうか?
Web系がどうも苦手で、なぜ公式解答のようになるのかがピンと来ていません。
User-Agentはクライアント側(Webブラウザからということでしょうか?)で
自由に設定できると聞きました。それは、curlコマンドを使う方法が該当するのでしょうか。
また、マルウェアが何もしないという前提に立てば、User-Agentのヘッダ値は
「A社で利用しているWebブラウザを示す値」になるのですよね?
User-Agentヘッダフィールドの値がA社で利用しているWebブラウザを示す値であるケース
が公式解答のようですが、マルウェアが賢くなくても(改ざんや証拠隠滅を図らなくても)
A社のPCから外部と通信をしようとする限り、User-Agentヘッダの値は
A社で使用しているWebブラウザを示す値になるのではないのでしょうか?
2022.03.22 21:36
pixさん
★SC ダイヤモンドマイスター
(No.2)
実際の業務で攻撃と思われる通信を調査することがあります。
User-Agentの値はHTTPサーバのアクセスログに、アクセス元IPアドレス
アクセス先URLなどと一緒に記録されます。
通常のブラウザであれば、
Google Chromeの場合:"Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/99.0.4844.74 Safari/537.36"
のような値が記録されます。
ログを調査する時に、User-Agentが標準的なブラウザの値のログは
一般の通信と判断します。
逆にwgetやcurlといったコマンドの場合や、自作ソフトのUser-Agentの
デフォルトの値は例として、
wget:"Wget/1.17.1 (linux-gnu)"
curl:"curl/7.38.0"
自作ソフト:"空または製作者の任意の値"
になります。User-Agentの値がこれらの場合は、人為的になにかの
意図をもってアクセスしている(良きにしろ、悪きにしろ)と
判断します。
ですが、wgetでもcurlでもオプション設定で自由にUser-Agentの
値を設定して、偽装することができます。この時、標準的なブラウザの
User-Agentの値が設定されていると、ログの解析は困難になります。
最近の攻撃ではUser-Agentが偽装されているケースが大半と思われます。
User-Agentの値はHTTPサーバのアクセスログに、アクセス元IPアドレス
アクセス先URLなどと一緒に記録されます。
通常のブラウザであれば、
Google Chromeの場合:"Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/99.0.4844.74 Safari/537.36"
のような値が記録されます。
ログを調査する時に、User-Agentが標準的なブラウザの値のログは
一般の通信と判断します。
逆にwgetやcurlといったコマンドの場合や、自作ソフトのUser-Agentの
デフォルトの値は例として、
wget:"Wget/1.17.1 (linux-gnu)"
curl:"curl/7.38.0"
自作ソフト:"空または製作者の任意の値"
になります。User-Agentの値がこれらの場合は、人為的になにかの
意図をもってアクセスしている(良きにしろ、悪きにしろ)と
判断します。
ですが、wgetでもcurlでもオプション設定で自由にUser-Agentの
値を設定して、偽装することができます。この時、標準的なブラウザの
User-Agentの値が設定されていると、ログの解析は困難になります。
最近の攻撃ではUser-Agentが偽装されているケースが大半と思われます。
2022.03.22 22:53
昭和62年さん
(No.3)
マルウェアが、Webブラウザを操作してHTTP通信をしていると思っていませんか?
この問題では、マルウェアが自力でHTTP通信をしているのだと思います。
・A社が利用しているWebブラウザによるHTTP通信のUser-Agent文字列
・マルウェアによるHTTP通信のUser-Agent文字列
両者が異なっていたのでプロキシサーバのログで、容易にマルウェアによる通信と判定できたのです。
この問題では、マルウェアが自力でHTTP通信をしているのだと思います。
・A社が利用しているWebブラウザによるHTTP通信のUser-Agent文字列
・マルウェアによるHTTP通信のUser-Agent文字列
両者が異なっていたのでプロキシサーバのログで、容易にマルウェアによる通信と判定できたのです。
2022.03.23 08:25
KKさん
(No.4)
pixさん、回答ありがとうございます。
A社のPCのマルウェア感染しているのだから、外部への通信には
A社のブラウザおよびソフトを使うと思っていたのですが、
ここが、まず間違いということでしょうか?
A社のPCのマルウェア感染しているのだから、外部への通信には
A社のブラウザおよびソフトを使うと思っていたのですが、
ここが、まず間違いということでしょうか?
2022.03.27 02:08
pixさん
★SC ダイヤモンドマイスター
(No.5)
>A社のPCのマルウェア感染しているのだから、外部への通信には
>A社のブラウザおよびソフトを使うと思っていたのですが、
>ここが、まず間違いということでしょうか?
はい ここが違います。
A社のソフトを使うのではなく、マルウェア自身がHTTPプロトコルで
外部との通信を試みます。
プログラミング経験があればHTTPプロトコルで通信するプログラムを
作成することは難しくありません。
逆に技術的にはA社のブラウザやソフトを利用することもできなくは
ないですが、技術的にも複雑になるだけで、メリットはないです。
2022.03.27 07:47
GinSanaさん
★SC ブロンズマイスター
(No.6)
HTTP通信するプログラムを書くのがほんとに簡単なのか?と思うかもしれませんが、ある意味、Cでマルウェア書くとして、windowsでもいまや少なくとも(10の特定バージョンから)curlは入っているから、systemでcurl呼ぶだけでHTTP通信で通信するプログラムを書いたことには出来るんですよね(それで満足するかしないかは別にして)。linuxに潜ませるなら、それこそgnu awkでもHTTP通信できるからそれでもいいです。
まあ、マルウェアを作るくらいCにどっぷり浸かったやつは真面目にゴリゴリかきますけどね。
まあ、マルウェアを作るくらいCにどっぷり浸かったやつは真面目にゴリゴリかきますけどね。
2022.03.27 16:08
広告
返信投稿用フォーム
スパム防止のためにスレッド作成日から30日経過したスレッドへの投稿はできません。
広告