KLCP、OSCC-SECに続けて、OffSecの初級資格であるOSCC-SJDに合格したのでその記録です。
筆者の背景・受験の理由
しがないセキュリティエンジニアです。今回はJavaのセキュアコーディングを学べるOSCC-SJDを取得してきました。Javaは昔から読み慣れていますし、診断で好き勝手に指摘を挙げるわりに修正方法を知らないのは格好がつかないこともあり、とりあえず受験することにしました。
OSCC-SJDとは
OSCC-SJDはSecure Java Developmentの名の通り、Javaによるセキュアコーディングを学びます。対応するトレーニングはSJD-100で、XSSやSQLi、IDORなど一般的なよく見かける脆弱性に対して、どのように堅牢化を施すのかを学びます。
勉強方法
昨晩OSCC-SECを終え、その後勉強を開始し、業務終了後19:00から受験でした。全10章のテキストはどこに何が記載してあるか把握できる程度には一通り目を通し、その後最終章の練習問題を少しだけ触って環境への理解を深めました。練習問題では接続方法やWebアプリの起動方法、UIの使い方に加え、ログ取得の用意を行っていました。
当日の内容
OSCC-SECと同様に、ポータルで待機、Proctor Loginで本人確認、ポータルに戻り案内に従い試験開始という流れでした。Exam Guideに記載の通り、5つの脆弱性が出題されます。出題されるマシンの構成に関してはコース教材の練習問題とほぼ同じなので、事前に慣れておくとよいでしょう。また、この試験においてはログ取得設定の有無によって難易度が大きく異なります。リクエストの内容(最低限パスとパラメータ)を取得しておくことで、どこにどのような攻撃が行われるか把握することができるため、ピンポイントで対策を施すことが可能になります。
試験時間は6時間と比較的長いため、テキストを精読していなくても脆弱性の名称でテキスト内を検索し、該当箇所に従って対策を施すことも十分に可能です。私は3時間30分で全問解くことができました。
感想
Javaのセキュアコーディングを学びたいのであれば比較的良い教材かと思います。OSCC-SECと同じく単品購入だと$899/年になるところが痛いですが、環境構築を省いて効率的に学習することができる点はポイントが高いです。
一方で、試験の採点システムはセキュアコーディングへの理解度を評価するだけの精度があるか少し疑問に思いました。ログで見たペイロードに対し、そのペイロードのみを防ぐ汎用的ではない対策を施した場合においても得点できる可能性があります。また、修正する際にも正規の仕様や前提条件が分かっていない状態で、そこは少し難しかったです。