
半年ぶりの TryHackMe で Advent of Cyber 2023 に挑む 2日目【Advent of Cyber: Day 2】
[Day 2] O Data, All Ye Faithful
Python の Pandas を使っていろいろやろうというもの。Workbook にも問題番号と解答へのヒントが書いてあるため、それに従えばよい。
はじめの方でライブラリを import し、ファイルを読み込んでいる。なお、今回はグラフとして出力する問題はないので matplotlib を import する必要はない。
How many packets were captured (looking at the PacketNumber)?
コメントとして count() メソッドを使えばよいと書いてあるのでそのまま使う。パケット数は PacketNumber の数値を答えればよい。

What IP address sent the most amount of traffic during the packet capture?
df['Source'] を実行すると通信が行われた IP アドレスを表示できる。

また、これは groupby でまとめることができ、さらに size() メソッドで出現回数をカウントできるので、その中で一番通信回数が多い IP アドレスを回答すればよい。

What was the most frequent protocol?
df['Protocol'] を実行すると今度はそれぞれの通信に使用したプロトコルが表示される。

これは value_counts() で数え上げることができるので、最も使用頻度の高いプロトコルを回答する。

ちなみに先の問題と同様に groupby と size() を使ってもよい。

感想
普段から Python は使っているが Pandas を使用したデータ解析はしていないので新鮮な気持ちで挑むことができた。数え上げ一つとっても複数のやり方があって、これまたいろんな「テク」が潜んでいそうな感じ。