サイバーセキュリティ攻撃を学ぶことで防御を学ぶ

カンムでセキュリティを担当している12banです。といっても、つい最近までコーポレートエンジニアをやっていました。 一応、セキュリティはいろんな業務の中の1つとして、10年以上関わってきました。

セキュリティと一言に言っても実はものすごく幅広いです。 そんな中でPenetration Testingと呼ばれるセキュリティテストの分野があります。 これは一般的にはセキュリティ会社のペンテスターと言われる職種の人が学習する分野なのですが、 事業会社で攻撃を防御することにも役に立つのではと考え、今回チャレンジしてみました。

TryHackMeとは

今回チャレンジしてみたのはTryHackMeというサービスです。 このサイトはペンテスト(侵入攻撃)を手を動かして学べるサービスです。

全部で5つのコースがあるのですが、面白そうだなって思ったのは、 Offencive Pentesting と Cyber Defenceのラーニングパスです。

f:id:kanmu-tech:20210518190308p:plain
TryHackMeのラーニングパス例

このうち、攻撃を学びたかったため、Offencive Pentestingのパスを選んでやってみました。 下記の画像がOffcencive Pentestingの序盤です。

f:id:kanmu-tech:20210518190432p:plain
Offencive Pentesting序盤

難易度Easyの4つの部屋があり、最初のTutorial以外の3つの部屋で実際に攻撃対象となるマシンがあり、 それを攻撃して、特権(管理者権限)を取っていきます。

このうちvulnversityという部屋の攻略について記事をここに書きたいところですが、かなり内容が専門的になる、 かつ、かなり長文になるため、個人のブログに書きました。興味がある方はそちらを読んでみてください。

note.com

パズルのようで面白い

現時点で難易度Easyを4つ、難易度Mediumを1つ終わらせています。かなり面白く毎日少しずつやってます。 まだちょっとの経験しかないですが、攻撃はパターン化されているなと感じました。 言うなれば高校数学の解法パターンみたいな感じでしょうか。 最終的にはOffencive Pentesting と Cyber Defenceの2つのラーニングパスを最後までやってみようと思っています。ここまでやりきればもっと見えてくるものはありそうだと感じてます。

ちなみに今まで経験したパターンは、だいたい下記の流れです。

  • nmapを使って空きポート、使ってるサービスやアプリケーション名、バージョンを調査する
  • 脆弱性などを突いて、対象マシンに侵入する
  • 侵入後、同様に脆弱性などを突いて特権を取る

学び

今のところ、脆弱性を突いて対象マシンに侵入することが多いので、脆弱性管理の重要性を肌感として感じてます。 今までは脆弱性管理は重要と知っていても、ちょっとぐらい大丈夫という気持ちがあったような気がします。 特に従業員が使用するデバイスの方はモチベーションが上がらなかったり...

しかし、今は脆弱性管理をきっちりやりたいって気持ちでいっぱいです。脆弱性をついた攻撃は自動化されてるので、 使ってるアプリケーションとバージョンがわかってしまえば、簡単に脆弱性をついて侵入できることを実感として知ることができました。

攻撃を学ぶことで防御を学ぶことができる、というのは正しかったようです。またセキュリティ対策を会社全体で実行する時に、攻撃を知っていることで納得感のある説明ができる気がします。

事業会社のセキュリティエンジニアの良さ

このようにペンテストの経験は攻撃者の手法を知り、防御に活かすという点で、事業会社のセキュリティエンジニアにも有用だと感じました。

ちなみにこの学びは誰かから強制してやったわけではありません。業務に活かすことができるのでは?と自分で考えて行動しただけです。 事業会社のセキュリティエンジニアが扱うセキュリティ範囲は幅広いです。PCI DSSなどの第三者認証、IdPやMDMなどのエンドポイントセキュリティ、IaaSセキュリティ、プロダクトセキュリティ、リスクマネジメント、規定や監査など幅広い。 そんな中で今までの経験を活かせるところは活かし、足りないところは自分で考えて学んで活かす。そして顧客や企業、ビジネス、従業員を守ることで競合優位性を高めていけるのは事業会社のセキュリティエンジニアならではかなと思います。

最後に

セキュリティエンジニアに限らず、下記のように他にもセキュリティに関われるポジションがあるので、 まずは気軽にカジュアル面談してみませんか?