
ディレクトリトラバーサル~フレームワークの脆弱性を添えて~
本稿では、やられサイトを用いて基礎的なディレクトリトラバーサルについて解説します。
初めまして。私は2022年にMBSDへ転職してきたWeb診断員です。前職はSOCアナリストとして2年ほど働いておりましたが、脆弱性診断は未経験の状態からMBSDに転職して来ました。「未経験からMBSDみたいなプロ集団に混ざって脆弱性診断なんてできるの!?」と皆さん思ったことでしょう。私も思っていました。しかし、実はMBSDには素晴らしい教育体制があり、そのおかげで今では毎日楽しく診断業務に従事できるまで成長できました。
是非皆さんにもMBSDの教育体制を知っていただきたいと思い、本記事では私の体験を元に、MBSD着任後からWeb診断員として一人前になるまでの過程をご紹介したいと思います。是非色々な人に読んでいただき、MBSDに興味をもっていただけたら嬉しいです。
私は未経験だったのですが、ありがたいことにMBSD含めたいくつかの企業から診断員やペンテスターとして内定をいただきました。その中でも私がMBSDを選んだ理由としては以下が挙げられます。
入社後は、私の場合は主に技術的なトレーニングをしていただけるトレーナーの方と、各種申請や日々の不明点など業務を行う上で色々とサポートしていただけるメンターの方が1人ずつ付いてくれました。ここからは私が実際に入社後に何を行ったかを時系列順にご紹介していきます。
※実際のトレーニングは本人の経験やスキル、そのときのリソース状況などによって変わってくると思います。また、トレーニング内容も随時アップデートされているため、現在は多少内容が変更されている可能性もあります。
私が入社した月は私1人だけWeb診断員として転職してきたのですが、その翌月にも転職やら異動やらで新たにWeb診断員として着任する予定の方が数名いました。そのため新規着任者へのトレーニングは私が入社した翌月からの開始となり、最初の月はトレーニング資料の予習やトレーナーの方から与えられた課題を行う期間に充てることになりました。私の場合は診断どころかWebの開発経験もほとんどなく、特にJavaScriptはほとんどノータッチの状態でしたので、JavaScriptやjQueryをつかったアプリの作成を主な課題として与えられました。
また、弊社には自己啓発助成金制度というものがありますが、トレーニング期間は残業もなく時間があったので、この制度を利用して書籍を購入したり資格の勉強をしたりもしていました。(弊社の福利厚生に関しては採用情報をご確認ください。)
今思うとこの期間に足りない知識を補えたため、その後のトレーニングも割とすんなり入っていけた気がします。すごくラッキーでした。診断に関わらず、新たな分野に転職するのであれば入社前~入社後の比較的時間に余裕があるときに自己学習をしておくことをお勧めします。
一緒にトレーニングを受ける仲間も着任し、いよいよ本格的にトレーニングが始まりました。トレーニングに関しては基本的に社内独自の資料があります。資料に沿ってトレーナーから講義を受け、実際に手を動かして確認を行っていくという流れで進めていきます。初めは以下を学んでいきます。
Webアプリ基礎やツールの使い方を一通り学んだ後は、待ちに待った脆弱性のトレーニングに入っていきました。
弊社では脆弱性をテクニカル系とロジカル系という2種類に分けて考えています。テクニカル系の脆弱性とは、SQLインジェクションやクロスサイトスクリプティング(XSS)などコーディング段階で作りこまれやすい脆弱性で、これらは脆弱性スキャナが見つけるのが得意です。ロジカル系の脆弱性とは、クロスサイトリクエストフォージェリ(CSRF)など設計段階で作りこまれやすい脆弱性で、これらはスキャナで見つけるのが難しく、診断員による手動診断で見つけることが多いです。
これらテクニカル系/ロジカル系の脆弱性の特性を踏まえ、すべての脆弱性に関して社内資料を用いて学んでいきます。各脆弱性1つ1つに関して、脆弱性の原理・影響・対策・診断方法などのエッセンスが社内資料にまとまっており、合わせて800ページ以上ある内容になります。非常に内容が多いですが、約2ヶ月かけて手を動かしながら診断手法を習得していきます。普段あまり見ない脆弱性に当たった時でも、この資料を読み返すことで診断手法や対策などを思い出すことができるので、本当に素晴らしい資料です。
ある程度脆弱性を学んだ段階で、実際に社内のやられサイトに対して巡回~診断~報告書作成までの一連の作業を実施していきます。それぞれのフェーズで、トレーナーだけでなくメンターや他の診断員の方からもフィードバックを受け、スキルアップしていきます。ここまでで座学と演習のトレーニングは一通り終了になります。
ここからは実際の案件にOJTのような形で入っていくことになりました。私の場合はまずは巡回の案件にアサインされ、トレーナーの方や先輩社員と随時情報共有や相談をしながら、実際のWebサイトを巡回しました。
そのうち診断の案件にもアサインされ、数日で終わるような小規模の診断を実施しました。すべての診断案件は必ずチームで行いますが、基本的にメインで診断を行うのは1人です。ただ、いきなり単独で診断するのは難しいので、初めのうちは必ず他の先輩診断員が自分とは別に裏で診断(通称:裏診断)を行ってくれています。そのため、疑問点を聞いて解消したり、随時診断の仕方が誤っている場合は指摘していただいたり、診断終了間際には答え合わせのような形で検出漏れがないかチェックしたりと、品質を落とすことなく着実にスキルアップできる体制が整っています。これも診断員を豊富に抱える弊社だからこそ可能な仕組みなのかなと思っています。
ちなみにこの頃はOJTにちょうどいい案件をPMが選んでアサインしてくれるのですが、ちょうどいい案件が無いときは自己学習を行います。OSSの脆弱性を探して診断してみたり、社内資料の復習をしたり、社内の脆弱性スキャナの特殊機能を検証してみたり、SPAを構築してみたり、いつ案件が来てもいいように準備していました。
ここまでは飛び飛びに巡回や診断の案件が入ってきていましたが、入社して7ヶ月経過したあたりからはほとんど毎日診断の案件が入るようになってきました。段々と診断の規模も増え数週間~1ヶ月程度の中規模のものも担当するようになったり、SPAの診断も担当するようになったり、再診断(過去診断したWebサイトをお客さまが修正した後に再度診断すること)を経験したり、診断の幅がどんどん広がっていきました。
また、徐々に疑問点や診断漏れが少なくなっていくと、裏診断の体制も徐々に緩くなっていき、ほぼ独力で診断を行えるまでスキルが上がってきました。今では1ヶ月以上の中~大規模な案件こそ数日間だけ裏診断に入っていただいてチェックしてもらうこともありますが、比較的小さい規模の案件は単独で診断作業を担当しています。 すべての案件を1人で任せてもらえるように引き続きスキルアップしていきたいと思います。
是非弊社の働き方に関しても皆様に知っていただきたいので、いくつかご紹介します。
今回は私の体験談をベースに、未経験から一人前の診断員になるためのMBSDの教育制度に関してご紹介しました。経験者の場合はもっとトレーニング期間が短縮されたりしますが、いずれにしても素晴らしい教育環境が整っています。一方で、与えられたトレーニングをこなすだけでは診断のプロになれないことも痛感しています。まだまだ勉強すべきことは山ほどあるので、今度は技術ブログを書けるくらい技術を磨いていきたいと思います。
関連記事