NFLabs. エンジニアブログ

セキュリティやソフトウェア開発に関する情報を発信する技術者向けのブログです。

NFLabs.セキュリティ研修のすゝめ(+OSCP合格体験記)

はじめに

この記事は、NFLaboratories Advent Calender 2023 - Adventor 6日目の記事です。
教育ソリューション担当の迫本です。
NFLabs.では、セキュリティ人材を育成するためのセキュリティ研修を提供しています。
本記事では、研修内容や研修生として研修を受講して感じたこと、おまけにOSCPを取得したので、あわせて紹介します。

セキュリティ研修とは?

基礎スキルを固める「BootUp研修」と高度セキュリティ人材を育成する「高度技術研修」があります。具体的には、BootUp研修においては、約2か月間で、企業IT環境、ペネトレーションテストの基礎、CSIRT、Python、Gitによるソフトウェア開発等について学びます。高度技術研修においては、約半年間でC言語、WindowsAPIを使用したWindowsソフトウェア開発、ペネトレーションテスト、擬似マルウェア開発、マルウェア解析等について学びます。

面白かった研修

擬似マルウェア開発

3週間のスクラム形式の開発で、初期侵入した端末からファイルサーバに横展開して機密情報を奪取できる擬似マルウェアを作成します。また、擬似マルウェア本体だけでなく、C2サーバー側も自作します。私は、擬似マルウェアとC2サーバ側間の通信の暗号化を実装したり、擬似マルウェアの難読化を実装をすることができました。暗号化のための鍵や、難読化に使用するテーブルをどのように受け渡しするのがよいかを考えることで、開発する能力だけでなく、マルウェアの仕組みについてより深く理解できました。また、擬似マルウェア開発をする前に、実際に手動で攻撃対象の端末をペネトレーションテストを実施したり、擬似マルウェア開発直後のマルウェア開発研修において、実際に開発で使用したWindowsAPIや通信部分の挙動について、開発者目線を持ちながら解析ができました。この研修で、以下のような幅広い技術を知識だけではなく、実際にやったことがある・できると言えるレベルまで習得することができました。

  • マルウェアの仕組み
  • ペネトレーションテスト
  • スクラム開発
  • C言語
  • WindowsAPI
  • Python(C2サーバー)
  • Git

(講師目線の擬似マルウェアの研修に関してはこちらで紹介されています。)

マルウェア解析

次に、おすすめしたい研修はマルウェア解析です。この研修では、本物のマルウェアの解析を行います。独学でマルウェア解析を学ぶ場合は、環境構築やマルウェアの入手等ハードルが高い部分が多いと感じます。(実際、私は学生時代に勉強しようとして断念した経験があります。)本研修においては、マルウェアを解析するための環境構築方法・マルウェアの扱い方から、表層解析・静的解析及びIDAによる動的解析の方法まで学ぶことができました。最初は全く読めなかったアセンブリ言語が、時間が経つにつれて、読めるようになる感覚があり、とても楽しかったです。また、昔行き詰ったマルウェア解析に関する本が、研修後すらすら読めるようになり、成長を実感しました。

セキュリティ研修の魅力

  • 座学やハンズオンだけでなく、座学で学んだ技術を利用して個人やチームでの開発をするので、ある技術について知っているで止まるのではなく、使えると言えるレベルに近づきます。
  • 文系出身者やコードを書く人が初めての人でも、研修を受講することで開発やペネトレーションテスト、マルウェア解析ができるレベルにまで到達できる研修はなかなか存在しないです。
  • 研修を受けた分野について自走する力がつきます。具体的には、一度本物のマルウェア解析やペネトレーションテストをやってみることで、今後、より高いレベルに成長するには、どのように学習を進めればいいか、自学するときに何をすればよいのかがわかるようになります。

OSCP合格体験記

IT業界未経験で4月に入社し、セキュリティ研修を受講しながら、11月に無事にOSCPを取得できたので、合格体験記として紹介します。

OSCP受験経緯

入社前から知識だけではなく、実際に手を動かして能力を証明するOSCPの資格が面白そう、OSCPを取得したいという思いが強くありました。また、弊社は、各種研修に対しての支援があり、その制度も後押しとなり、受験することを決めました。

OSCPとは?

OSCPとは、OffSec社が提供するPEN-200というトレーニングを受講して、試験に受かることで得られる資格です。

PEN-200の内容

具体的なシラバスは、公式サイトを参照してください。本記事では、日本語での情報が少ない2023年版の最新(2023年12月時点)のコンテンツ(TRAINING MATERIAL)について説明します。2023年版では、大幅に内容が変更され、バッファオーバーフローが別のコースに移動し、基礎的な部分はPEN-100に移動したようです。また、Webアプリケーション、ActiveDirectoryの内容がより充実したようです。(詳細はこちら
また、攻略対象の端末(CHALLENGE LAB)については、2つのタイプがありました。

  • シナリオタイプ(3LAB) : 同一ネットワークに接続された10~20台程度のマシンで構成されており、最終目標は、ActiveDirectoryのドメイン管理者のアカウントでDomeinControllerにアクセスすることです。
  • 試験タイプ(3LAB) : OSCP試験と同様の難易度で構成されたマシンです。1LABあたり、ActiveDirectorySet(ADSet)が1Set、独立したマシンが3台あります。

上記の6LAB合わせて57台のマシンがありました。

試験概要

内容:ADSet 1set + 独立したマシン3台
配点:ADSet 40pt
   独立したマシン 20pt(低権限 10pt, 高権限 10pt)×3
   +ボーナス 10pt
合格:70点以上 +レポートの提出
試験時間:23時間45分
レポート:試験終了後、24時間以内に提出

ボーナス10ptの獲得方法

  • TRAINING MATERIALの各章のExerciseを80%以上答えていること
  • CHALLENGE Labのマシンにおいて、30台以上(全57台)高権限(proof.txt)を獲得していること

試験において、ボーナス10ptは、独立したマシンの1つの権限分の価値があるため、取得しておくことをお勧めします。

合格までの道のり

人によって様々だとは思いますが、受験するにあたって参考になれば幸いです。

  • 5月以前:HackTheBoxに取り組む(Activeマシンはほとんど解けないレベル)
  • 5~7月:TRAINING MATERIAL&Exerciseを実施
  • 7月中旬~9月下旬:CHALLENGE LABを実施
  • 10月:CheetSheet作成、OSCPLikeなマシンを実施

PEN-200をLearnOne(PEN-200を1年間受講可能+2回の試験付き)で受講したため、事前学習はほぼ行わずに受講しました。KaliLinuxを使用したことがない人もLearnOneであれば、PEN-200の基礎講座も無料で受講することができるため、事前学習はほぼ必要ないと思います。
私は、試験当日時点で、50台のマシンを攻略して試験に挑みました。
※OSCPLikeなマシン:OSCPLikeと調べると、HackTheBoxやVulnHubで公開されているOSCPの試験に似ているマシンを調べることができます。

試験本番

  • 朝が弱すぎるため、11時開始にしました
  • 試験当日は、身の回りの物を片付けておきましょう。試験開始前に試験監督にWebカメラで部屋を全部見せる必要があります。

以下が当日の流れです。

※local.txtは低権限、proof.txtは高権限を取得した際に提出するファイルとなります。
散歩やお風呂、就寝等で休息をとることで、頭がリフレッシュされて見えていない部分が見えるようになりました。

レポート
レポートについては、ほとんど準備しておらず、テンプレートをダウンロードして、軽く一読した程度でした。いざレポートを書くと、英単語の選択や一人称どうするかなど悩む点が多く、レポートを出した後も本当にこれでよかったのかと不安でした。そのため、事前に一連の流れを考えておいた方が安心できると思います。
合格発表については、2営業日で結果が出ました。土曜日にレポートを出していたため、3日間はずっとドキドキした気分でした。

Tips

  • 試験日程を1か月程度前にスケジュールしようとした際に、予定していた日にちは日本時間で朝3時と6時開始しか残っていなかったため、受けたい日が決まった場合はすぐに予約することをお勧めします。(3回は無料で変更可能、また、2日前まで変更可能)
  • 基本的には、TRAINING MATERIALとCHALLENGE LABをすれば、問題ないと思います。しかし、マシンへの侵入方法(initial)については、CHALLENGE LABしかやっていない方は、OSCPLikeなマシン等を調べて解いておくと安心です。initialは武器をたくさん持っておくことが大切です。
  • 列挙したサービスについて、最低限実施することを決めておくことをお勧めします。私の経験では、明らかに怪しいところを一度諦めて、調査していないサービスを最低限調べようとしたところ、手がかりが見つかり、Rabbitholeを抜け出せた経験が何度かありました。

最後に

セキュリティ研修を受講しながら、並行してOSCPの取得を目指したことで、多くの気づきがありました。セキュリティ研修のペネトレーションテストは、OSCPを取得する基礎となっており、ペネトレーションテストの理論的な部分から実践までを行うことで、ペネトレーションテストを学ぶ上で何を学習すべきかがよくわかります。また、ペネトレーションテストの本質を理解することで、OSCPの勉強効率も上がりました。具体的には、読み飛ばしていたセキュリティツールの出力結果について、理論的に理解できるようになりました。セキュリティ研修を受講でき、いろんな分野に触れられたことで、視野が広がり、これからの業務に自信を持って取り組めそうです。
この記事を読んで、NFLabs. のセキュリティ研修に興味を持っていただける方が増えると嬉しい限りです。次は、OSEP取得に向けて、日々努力していきます!