攻撃者はルールを破らない。だから厄介なんだ

ROXXでセキュリティ責任者をしているtt3です。

元々技術特化の人間なので、AIに聞いても「その質問には答えられません」って言われるくらい引かれるようなテクニックの話もできるんですけど、最初からそんな記事を書くと怒られちゃいそうなので、今回は万人受けする内容にします。

というわけで、ターゲットはセキュリティエンジニアになりたい君!

セキュリティエンジニアに興味はあるけど、ぶっちゃけ何やってるかよく分からないんだよねー、って思ってるそこの君!

要するに、セキュリティってよく聞くけど、結局何なんだろう?何やってるんだろう?っていうお話を、わかりやすーくお届けしようと思います。

もうバリバリセキュリティエンジニアやってる人からすると「そんなこと知ってるよ!」って感じだと思いますが、めっちゃ深い話が聞きたい!っていう要望が、もしもですよ?もしも!あったら、次回書きます。

ROP-ChainでもASLR回避でもFormat String Exploitでも、escapeでもIDS/IPSバイパスでもHeap SprayでもUse After FreeでもRace ConditionでもType ConfusionでもSide Channel AttackでもSpectre/Meltdownでも………………

希望があれば、怒られない範囲で書きます。乞うご期待!

 

セキュリティって何なんだ?

これって実は結構概念的な話になるんです。どうしてだと思いますか?

単純に、守るべきものが多すぎるからです。

 

教科書的な答えだと、セキュリティの三要素「CIA」を維持すること、と言われます。

  • 機密性(Confidentiality)
  • 完全性(Integrity)
  • 可用性(Availability)

の頭文字ですね。

ざっくり言うと「見られちゃダメなものを守り、改ざんされないようにし、使いたいときにちゃんと使える状態を保つ」ということです。

……うん、まだよく分からないですよね。

というわけで、もっと極端でわかりやすい例えをします。

 

攻撃者になったつもりで考えてみよう

「特定の会社にあるマーケット情報がどうしてもほしい」と思う攻撃者さんがいたとします。

じゃあ、その情報をどうやって入手できるでしょうか?

どんなアイデアでもOKです。ちょっと考えてみてください。

 

……色々思いついたと思います。多分、ほぼ全部正解です。

  • なんかよく分からんけどハッキングして盗み出す → 正解!
  • 従業員のPCを物理的に盗む → 正解!
  • 従業員として入社して内部から取る → 正解!
  • 情報持ってる人に1億円積む → 正解!
  • ピッキングして鍵開けてオフィスに侵入する → 正解!

こんな感じで、いくらでも手段は出てきます。

※これ実際にやったら犯罪なので絶対にやらないでくださいね!

 

話を戻すと、セキュリティとはこれらすべての手段から情報を守ることなんです。

じゃあどうすればいいか?

  • ハッキングされないようシステムを堅牢に
  • PC盗まれたら遠隔初期化できるように
  • 入社前のリファレンスチェックをしっかり
  • 内部不正を防ぐ監視体制
  • 賄賂に負けない従業員教育……

他にも他にも……

 

うわああああ!どこから守ればいいんだーーー!

 

ってなりますよね。そう、その通り。

情報を守るというのは、攻撃者が圧倒的に有利なゲームなんです。

攻撃者はどこか1点だけを突破すればいいのに、防御側は全部の点を押さえないといけない。

 

ちなみに、「攻撃者はルールを無視してくるから不利なんでしょ?」って思った人もいるかもしれません。

実は逆です。攻撃者の方がルールに詳しいんです。

プログラムもネットワークも、全部仕様通りに動きます。攻撃者はその仕様を完全に理解した上で「この通りに動くなら、ここ突けるよね」ってやってくる。

守る側が「え、そんな動きするの?」ってなるのは、ルールを破られたんじゃなくて、ルールを把握しきれてなかっただけ

つまり、ルールを熟知してる方が勝つゲームなんです。

だから「攻撃者の手口を知らないと守れない」っていうのは、そういうことなんですよね。

 

不利なゲームをどう攻略するか

ここからがセキュリティエンジニアの面白いところです。(ここからはちょっと主張強めです)

 

そもそも、攻撃者がどうやって情報を取ってくるかを知らないと、守る側は守りようがありません。

だって、どこから来るか分からないんですから。

 

そうなると、知らなきゃいけないことが多すぎるんです。

OS、ネットワーク、アプリケーション、サーバ、暗号……技術的な話だけでも膨大。さらに人間の心理を突くソーシャルエンジニアリングまで含めると、もうキリがない。

ただ、知らないと守ることすらできません。守る側が道を知らなければ、対応のしようがありませんからね。

 

アプリケーションエンジニアよりアプリケーションに詳しく、インフラエンジニアよりインフラに詳しく……つまり、なんか全ジャンルに精通した存在を目指さないといけない。

「守るならまず攻撃ができるようになってからやれ」はちょっと言い過ぎかもしれませんが、少なくとも攻撃者の手口を理解していないと、正直守れません。

 

でも、そんな全知全能な人なんてそうそういませんし、会社もジャンルごとにセキュリティエンジニアを揃えられるほど余裕はない。

だからこそ、優先順位をつけるんです。

 

「この攻撃はまず起きないし、起きても被害少ない → よし、捨てよう」

これがリスクコントロールの考え方。簡単に実現できてインパクトが大きいところから潰す。

言葉にすれば当たり前ですが、これが実はめちゃくちゃ難しい。むしろ、ここが腕の見せどころです。

 

セキュリティエンジニアの仕事は3ステップの繰り返し

じゃあ具体的に、どうやって優先順位をつけて守っていくの?

セキュリティエンジニアの仕事は、大きく分けてこの3ステップをぐるぐる回すことです。

 

ステップ1:脅威を想像する(脅威モデリング

  • うちの会社で一番ヤバい資産って何?(顧客データ、取引先情報、新製品設計図など)
  • それが盗まれたり壊されたりしたら、どれくらいダメージ?
  • どんな攻撃者が、どんな手段で狙ってきそう?

ここでさっきの攻撃者視点が活きてきます。

ハッキングだけじゃなく、内部犯行、物理盗難、ソーシャルエンジニアリング……全部テーブルに載せて考える

 

ステップ2:リスクを評価して優先順位づけ

起こりやすさ(Likelihood) × インパクトの大きさ(Impact) = リスク値」

みたいに点数化したり、「簡単に防げるのにインパクトでかい!」ってやつを先に潰す。

 

例えば:

  • パスワード使い回し禁止+2段階認証 → 簡単で効果デカい
  • 従業員教育(フィッシングの見分け方) → 安くて即効性あり
  • 最新のゼロデイ対策 → コストかかるし頻度低い → 後回しOK

 

ステップ3:対策を打って、監視して、見直す

一回対策したら終わりじゃない。

攻撃手法は進化するし、システムも変わる。だからログ監視、脆弱性スキャン、ペネトレーションテスト(模擬攻撃)を定期的にやって、常にアップデート。

よりアンテナを張るためにSBOM(使ってるソフトウェアの部品リスト)を導入しよう、みたいな話も出てきます。

 

本当のところ、何が辛いのか

これがセキュリティエンジニアの日常です。

やってることは意外と単純ですが、地道な作業がほとんど。

 

そして、これは声を大にして言いたい!インフラも同じですが……

 

普通に動いてて当たり前。何か起きたら糾弾される。

 

当たり前の日常を提供するのが仕事だって分かってるんですけど、何か起きた時だけ責められるのはほんと辛い!

セキュリティとインフラ担当者は絶対共感してくれるはず……まじで報われない!

 

ちなみに、本気で1点集中の標的型攻撃が来たら、防ぐのはほぼ無理です。だって不利すぎるんだもん、仕方ない。

じゃあ僕らは何をするか?

 

実は多くの攻撃者は、暇だからインターネットを巡回して「攻撃しやすそうなとこないかなー」って探してるんです。

たまたま脆弱なサーバ見つけて「お、入ってみよー。情報取れたー」みたいなのが大半。

 

だから、外から見て明らかにヤバいところをまず塞ぐ。これが何より大事!

 

まとめ:セキュリティエンジニアとは

……なんかめっちゃ語っちゃいましたけど、どうですか?少しイメージ湧いてきましたか?

 

セキュリティエンジニアって「守りのプロフェッショナル」でありながら、攻撃者の頭で考える必要がある、めちゃくちゃ頭を使う仕事なんです。

 

ちなみに自分は資格マニアなので、次回は「どんな資格が有用か」「最初に何を勉強すべきか」「実務経験の積み方」あたりを書いてみようかな。

(もちろん、深い話希望の人は「ROP希望!」とかコメントくれたら……怒られない範囲で書きます!)

 

最後に

セキュリティエンジニアに興味持った!もっと話聞きたい!こんな自分と話してみたい!っていう奇特な人!

 

ぜひカジュアル面談への応募、待ってます!

(コメントとかでも、気軽に声かけてください〜!)

 

おまけ:解けるかな?

ちょっとした暗号クイズを出しておきます。セキュリティに興味があるなら解けるかも?

暗号文: c0VDVVJJVFlpU2ZVTg==

ヒント: 0x20

答えが分かったらコメントで教えてね!

 

(PR)ROXXってどんな会社?気になった方はこちらから

herp.careers

note.roxx.co.jp

note.roxx.co.jp