技術者が技術を伝承するために踏み出した第一歩 - これまでの歩み編 -
みなさん、こんにちは。のりあき(@v_avenger)と申します。
このnoteでは、先輩技術者として、後輩へ技術伝承を求められたときに、何からはじめていったのかという点でまとめていきたいと思います。
対象者
このnoteの対象者は、こちらです。
1. インストラクター・トレーナーを目指している方
2. 社内で自らの技術を伝承することに迫られた技術者
3. 何らかの商品/サービスについてデモンストレーションする方
4. これからサイバーセキュリティ分野を志す方
まずは、自己紹介
私はサイバーセキュリティ、特にオンライン詐欺を専門に情報収集とその分析を担当する「リサーチャー」と呼ばれる職に従事しています。ここでは、自己紹介を兼ね、この職に至るまでどんな形で学びを積み重ねてきたのか振り返ってみたいと思います。
私がこの分野を志すきっかけとなったのが、学生時代に就業体験先にて、Excelのマクロウイルス「Laroux」がファイルサーバに拡散するという事件(インシデント)に遭遇したことでした。たった数行のコードが記載されたExcelファイルが原因で、あっという間に業務が滞るほどの影響を及ぼしていた様は、不謹慎ながら、興味深い体験でした。
そんな経験からサイバーセキュリティ領域に飛び込んだのが、2002年のことでした。
量質転化の学習戦略
サイバーセキュリティという分野はまだ若い業界です。入社当時における私の学び方といえば、「現場百遍」でした。言い方を換えれば、トラブルシューティングに関する圧倒的な量をこなす事でいずれ質の向上へ繋げていこうとする「量質転化」の戦略をもって、学んでいたのだと思います。当時はそんなレベルまで意識はしていませんでしたけど。
量質転化を実現させるための施策として、その頃に実践していたことはこんなことでした。
1. 日々発生する事件を追いかける(ニュースの切り抜き:クリッピング)
2. 「再現環境」(ラボ)を構築し事象を再現する
3. プロトコル(RFC)と照らし合わせ差分を探る
それぞれについて詳しく紹介します。
安心して失敗できる環境を手に入れる
ラボ環境を用意するとは、安心して失敗できる環境を手に入れること。ガンガン素振りすることは、上達への近道です。
当時は物理的にハードディスクの抜き差しをして、ハードディスクイメージのバックアップソフトを使って復元。Epsilon Squared, Inc.「InstallRite」/「InstallWatch」やiDefense Labs「SysAnalyzer」などを使って設定変更の差分を確認するなんてことをやっていました。
いまなら、「仮想化技術」の活用です。1台のコンピュータ上で複数のサーバを動作させた検証や、最初の状態への復元も素早く実現できます。Dockerコンテナで環境を構築して複数人で検証環境の共有なんてこともできるようになりました。
さらに、「GNS3:Graphical Network Simulator-3」を使えば、Cisco IOS、Juniper、MikroTik、Arista、およびVyattaなどの実際のネットワークOSを使い、仮想ネットワークをPC上で設計およびテストを行うこともできるようになりました。
GNS3のほかにも、ネットワークシミュレーションツールはいくつかあります。
・Fakenet
・Internet Services Simulation Suite (INetSIM)
・EVE-NG(The Emulated Virtual Environment Next Generation)
・Cisco Virtual Internet Routing Lab(VIRL)
最近は、一連のモデリング&シミュレーション機能を統合した、「サイバーレンジ(Cyber Range)」も登場しています。
ペネトレーションテスト領域であれば、意図的に脆弱性を残したサーバを公開している練習サービスに挑戦してみるのもよいでしょう。
・VulnHub
・DVWA - Damn Vulnerable Web Application
・Metasploitable3
・Hack The Box
・Virtual Hacking Labs
・PentesterLab PRO
私のお気に入りは、自分が用意した手元の環境で試行錯誤することができる「VulnHub」です。
「GNS3」や「VulnHub」に取り組むために、習得しておくべき基礎技術として、コマンドラインインターフェイスの操作に慣れておくことも重要です。
いずれにせよ、安心して失敗できる環境で研鑽を積むことができれば、現場でも通用する知識・技能が得られると思います。
ラボ環境の構築に関する良書が多数出版されています。「ハッキング・ラボのつくりかた: 仮想環境におけるハッカー体験学習」はお気に入りの一冊です。
この他にも…
・「サイバー攻撃の教科書 (ハッカーの学校)」
・「実践サイバーセキュリティモニタリング」
・「GNS3によるネットワーク演習ガイド ――CCENT/CCNA/CCNPに役立つラボの構築と実践」
どれもお勧めの書籍です。
根源的なレベルの積み重ね
理想と現実の差異を課題と捉え、理想を達成する為には何が必要かを分析する課題抽出法を「ギャップ分析」と呼ばれています。
私にとって、最初のギャップ分析が「プロトコル(RFC:Request for Comments)」と照らし合わせて差分を探るということだったと思います。RFCで標準化された仕様と現実との挙動を照らし合わせるといっても、IETFの内容を直接確認していた訳ではありません。当時は解説本(もう、絶版です)を片手に参照していました。
今なら、上野宣さんの「今夜わかる」シリーズでしょうか。
・「今夜わかるTCP/IP (Network)」
・「今夜わかるHTTP (Network)」
・「今夜わかるメールプロトコル (Network)」
また、SMTP / HTTP / FTPといったテキスト・ベースのプロトコルを中心にデバッグ経験を積み重ねることができたのも幸運でした。具体的にどんなことをやっていたのかというと…
TELNETコマンドを使った検証や…
netcatコマンドを使ってパケットデータの再送だったり…
Wiresharkやtcpdumpコマンドを使ってのパケット解析などを積み重ねていきました。
この十数年で当時は便利に使っていたけれども陳腐化していった手法やツールも数多くあります。
汎用化して振り返ると、プリミティブ(根源的)なレベルから知識や技能を積み重ねて獲得できたことは「思考・行動様式」として染みつき、習慣化に至っていると自己分析しています。そして、習慣化された思考・行動様式はいまなお私を構成する武器の一つになっていると思います。
「Windows/Linuxのトラブル追跡実践ノウハウ」の「第1章 トラブルシューティングの考え方」では、行動様式について少し紹介しています。
書籍の触り部分については、加賀結衣さんの連載「コラム:Windows/Linuxの実践トラブルシューティング」を確認いただければと思います。
良書の多読
2002年当時にあまりできなかったこととして、「良書多読」があります。その当時、知識やスキルに関するHow-to本は読んでいました。しかし、この分野における名著について知りませんでした。
若いといわれる業界でも実は普遍的な古典の名著はあるものです。
丸山満彦さんよりご紹介いただいたのが、Donn B Parker氏による「コンピュータ・セキュリティ―犯罪対策と災害対策」(Computer Security Management)でした。
まとめ
このnoteでは、「技術者が技術を伝承するために踏み出した第一歩 - これまでの歩み編 -」と題して、次の4点を紹介しました。
1. 量質転化の学習戦略
2. 安心して失敗できる環境を手に入れる
3. 根源的なレベルの積み重ね
4. 良書の多読
最後まで読んでいただきまして、ありがとうございました!
この記事が気に入ったらサポートをしてみませんか?