守るだけでは腑に落ちなかった - 制御システム技術者のサイバー修行録(第5回)

攻撃を知り、守りが「自分ごと」になった。

今回は「サイバーディフェンス研究所入社」「無謀、無知、孤独、自由、よくいれてくれました」

第5回:サイバーディフェンス研究所入社 - 攻撃者の視点を学び始める(2019)

【連載記事】 この記事は全9回の連載です。📚 連載まとめ・目次はこちら


そして2019年。第1回で書いた“4時間のメール”のあと、田中はサイバーディフェンス研究所へ向かった。

サイバーディフェンス時代

入社

2019年サイバーディフェンス研究所に入社する。

サイバーディフェンス研究所のオフィスに入ると、自席には、エルゴヒューマンのオフィスチェア、机上にはデュアルモニター、MacBook ProノートPC、MX ERGOトラックボール、HHKB(Happy Hacking Keyboard)キーボード。というように絵に描いたようなITベンチャー企業という感じであった。ちなみに机上の機材一式は、入社前に自分で選んだものが支給されたのである。

オフィスは静かであり、皆、オフィスチェアを優雅に後ろに倒し体と頭を委ねてモニターを見つめており、キーボードを叩くカチャカチャ音だけが響いていたのが印象的であった。


今になって思えば、社員同士が立ち話もしていただろうし、ペンテスターが集まってExploitが刺さったと業界用語の会話で盛り上がっている場面などもあったはずであるし、背もたれに深くもたれている姿も長時間座り続けて作業するには理にかなった常識的な姿勢なのではあるが、それまで、電話が鳴り響き、人が出入りし、あちこちで会話している従来の日本のオフィスのイメージが当たり前の世界で生きてきた田中にとって別世界であった。


孤独な学習の日々のスタート

入社する際に、会社からは、制御システムセキュリティの仕事に関わるということ以外は、何をやれという細かな指示はなかった。

このことは、後から考えれば信頼の表れであったとも受け取れるが、単に、自分の仕事は自分でつくれということであったのかもしれない。

ここから当分続く孤独な勉強の日々のスタートであった。


サイバーセキュリティという言葉で表される分野は、そもそも広大であり、かつ、他の業界と比較すると歴史が浅い分野である。もちろん、ルーチンワークで数をこなすようなツールだけでの脆弱性診断業務などであれば、決まった学習要領や先輩のモデルケースなどもあるのだろうが、あいにく、サイバーディフェンス研究所は、それぞれに尖った技術を持つ人々が集まり、自己研鑽にまい進し、その技術を駆使して対処する業務が多いようにも見えた。

とくに、制御システムセキュリティという分野は、世間ではキーワードとしては、重要であるという声は、セキュリティ業界の中からは盛んに上がってきてはいたが、一般の組織が当たり前のように自組織外の第三者に、対策の相談やテスト、インシデント調査を依頼しているような状況にはなかった。

制御システムセキュリティは、いまだに生まれて間もない分野であったと言える。


IT分野でセキュリティを学んできた人たちは、制御システムの内部の実情を知らず、当時の制御システム関連のカンファレンスを聴講しても、OTとITの違いが強調され、まずお互いのバックボーンを知ることが大事だということが毎回話題にのぼっていた。これは、今でも同じような話題が繰り返し各所で述べられているので、普遍的なテーマなのであろう。このような背景が、制御システムを開発してきた田中がサイバーディフェンス研究所に入ることを後押ししてくれた要因の1つとも思う。

ちなみに、サイバーディフェンス研究所は、この数年前に田中が経験したように、早くから制御システムセキュリティの分野に取り組んでおり、実際の制御システムに対するペネトレーションテストも実施してきた経験から、制御システムのサイバーセキュリティに関する技術知識はセキュリティ業界の中では卓越していたとは思う。ただ、そのサイバーディフェンス研究所ですら、制御システム業界の内部に長くいなければわからない空気感を含めた細かな知識、問題意識や課題などは持ち合わせていなかった項目もあったとも言える。


いずれにせよ、今振り返ってみても、よく稼ぎのない人間を、長期にわたり自由にさせたものである。

転職する前の「共感してくれる上司」の話を書いたが、その前職時代、「何かをやりたい意思がある人に対する最良のマネジメントとは、資金と時間を与えて放置することです。」と発言したこともあったが、会社の売り上げへの目に見える貢献がない中、自由に(放置ともいう)させてもらえたのは申し訳なさを感じる日々であった。とともに、攻撃手法を学び、世の中で何が必要とされるのかを自分自身で考え続ける日々は非常にありがたいことでもあった。

後日談ではあるが、田中は、この期間の学習と開発により数年後には経営面でも貢献できる立場になるのである。上司目線で考えた場合、1年単位で成果を求められる場合にはできない管理手法であろう。人のマネジメントは難しいものである。

それでは、いくつかのテーマを細かく見ていこう。


Webで基本を学ぶ(2019年7月)

まず、最初に、オフェンシブな攻撃者目線の知見の第一歩としてはWebサイトへの攻撃からということであり、Webサイトがどのように攻撃を受けてしまうのかを勉強した。

教材としては、徳丸本で有名な「体系的に学ぶ 安全なWebアプリケーションの作り方 第2版 脆弱性が生まれる原理と対策の実践」を利用した。この業界では有名な本であるということである。ひととおり、本の内容を通して、サンプルや説明を書いてある通り試してみた。

徳丸本で学んだことを、実際に脆弱性があるWebサイトのサーバ環境を構築して試してみた。

SQL Injection, コマンドインジェクション, 認可の脆弱性, などが含まれる環境で、実際に本に書いてある内容と多少の応用をすることで、攻撃が成功することを理解した。


一番学んだことは、答えがわからない中で、あらゆる可能性を試行錯誤して試していくのだが、非常に単純な1行のプログラム実装のために、サーバへの侵入を許してしまう結果につながることなどを理解できた。

このついでに、侵入したサーバで管理者権限を取得する特権昇格の方法までGoogle検索により辿りつくのであるが、そこまで、学習を始めてから約一ヶ月を要した。

この中で、攻撃者が、Kali LinuxやMetasploitなどのツールを用いて攻撃を仕掛けることを知った。

というのが当時の思い出であるが、今見返してみると、よくぞ、このような初歩的なことすら知らずに、オフェンシブなセキュリティの世界に飛び込んだと驚く。怖いもの知らずというのは、何か新しいことに一歩踏み出すためにはとても大切だとつくづく思う。


コラム:Kali Linux

Kali Linuxはセキュリティ専門家向けのLinuxディストリビューションで、ペネトレーションテストに最適化されています。Metasploitはこのプラットフォームで利用可能なオープンソースのセキュリティツールで、脆弱性のテストや攻撃シミュレーションを行うための多数のエクスプロイトを提供します。

エクスプロイトとは、コンピュータシステムやソフトウェアに存在するセキュリティ上の弱点や欠陥を悪用してアクセスするための攻撃コードや手法のことです。田中が入社時に聞いた「Exploitが刺さる」という表現は、エクスプロイトが成功し期待される成果が得られたことを意味しています。


セキュアコーディングについて考える

さて、この時点で、過去に取り組んだこともあるセキュアコーディングについて考えてみた。


コラム:セキュアコーディングはどこまでやるべきか

セキュアコーディングが重要だということは久しく言われています。この観点でシステムのコーディングの開発に、セキュアコーディングのチェックツールを導入したり、教育を進めている組織も多いと思います。これ自体は重要な取り組みであり攻撃への耐性を高める事に大きな効果があるでしょう。

一方で、長年多くの人に使い続けられている汎用プログラムから脆弱性が発見されパッチが提供される事実からもわかるとおり、人間が100%安全なコーディングを行う事は現実的に不可能と思います。

まして、これまでセキュアコーディングについて学んできたことがない開発者が携わる、膨大な量のプログラムソースコードを含む制御システムでは、プログラムは脆弱性を含んでいるものであり発見されていないに過ぎないと考える方が自然とも思います。


どこまで対策すべきかに明確な指標はない。だがまずは、ネットワークからのアクセスを待ち受けるサーバプロセスの通信部分を優先して手当てする。そのうえで、入力値の検証と、出力時に「意図しない解釈」をさせない処理(エスケープ等)を必須とし、残りは必要に応じて進めるのが現実的だと考える。

危険なのは、完全な対策が不可能であるから全く対策をせずに諦めてしまうという選択である。

攻撃者は、未知のプログラムに対して攻撃する際に、まずは既知の脆弱性で成功した攻撃パターンで攻撃を仕掛けるものである。

基本的な対策をしておけば、長期間システムに潜伏し試行錯誤しながら攻撃を行う攻撃者に対しては攻撃が成功するまでの時間を稼ぐことが可能となるし、攻撃が成功する前に攻撃を検知し対応ができるかもしれない。闇雲にツールですべてのソースコードをチェックし一律で人間の手で修正するというアプローチは、対応コストがかかることはもちろん、修正ミスや既存の動作のタイミング変更にともなう問題の発生など思いもよらぬ影響が出ることもあるため、あまり賢いアプローチではないかもしれない。


はて?なぜセキュアコーディングの話題がここで出てきたか唐突感を覚える方もいるであろう。

そう、セキュリティ対策への考え方が、唐突であるからなのである。

本来、ネットワークからの攻撃に対し、ネットワークの送受信インターフェース部分に脆弱性があると侵入される可能性があるから、その部分にセキュアコーディング対策をしようという発想が、あるべき考え方の順序だと思う。しかし、攻撃者がどのような攻撃ルートで、どのような攻撃手段をとるかという基礎知識がなければ、世の中で、セキュアコーディングというキーワードが話題になれば、セキュアコーディングすることが目的になったりするものだ。似たような経験を多くの方が見聞きしているのではないだろうか?手段が目的化することは、セキュリティ対策に限らずよくある話である。評判だけで本当は必要ない高額な商品を買わされていないだろうか?そうならないためには、なぜなのかの理由を理解する必要がある。

ということで、唐突感を感じていただくために、セキュアコーディングを取り上げてみた。


ネットワークからの攻撃を守るため(2019年8月)

Webサイトからの攻撃の次に、ネットワークからの攻撃について勉強を始めることにした。

勉強の対象としては、多くのサイバー攻撃ツールがインストールされているKali Linuxを題材とした。

ところで、本格的にサイバー攻撃について勉強しようとなると日本語だけの学習では難しいことがわかってきた。

最新の情報は、多くは英語の文献かサイト上に書かれており、たとえばペネトレーションテスターの資格であるOSCP(Offensive Security Certified Professional)は、すべて英語である。

また、その後田中が取得することとなる、OSCPに比較すれば平易な資格であるCEH(Certified Ethical Hacker)の資格試験は選択方式であり、英語、日本語どちらでも受験可能となってはいたが当時はまだ翻訳精度が低く、英語で仕組みを十分理解している人でも日本語の問いでは何を問うているかわからない項目もあるというような状況であった。

この状況は、単なる翻訳ということだけでみれば現在の生成AIの出現と高度化により解消されてきてはいると思えるが、さりとて、サイバーセキュリティの議論や教育環境で取り上げているOSが英語ベースのOSであることがほとんどであるため、サイバーセキュリティを専門とする人で、日本語だけでサイバーセキュリティを学ぶ人はあまり見たことがない。


次回予告

次回は、2019年9月から2020年にかけての活動を描きます。

規格ドキュメント学習から始まり、IPA、JPCERT/CC、NIST、REST ICSなど様々な文献を読み漁る日々。

そして2019年10月、制御システムペネトレーションテストへ参加。経験豊富なペンテスターが実際にどのように攻撃を行うのかを、テストを行う側の立場で見る初めての機会。

2020年2月、田中が書いた初のブログ記事「WiresharkのDissectorを使った独自プロトコル解析」が誕生。

そして2020年4月、新型コロナウイルスの影響でリモートワークが定着する中、家に実験機材を運び込み始まった「LANケーブル侵入実験」。

ニッパーで切断し5秒でネットワークへ侵入できるか?

10万アクセスを超えた衝撃のブログが生まれるまでを描きます。


【ご注意】 本記事は教育・啓発を目的としています。登場人物・組織は架空のものであり、記載された技術情報の悪用を推奨するものではありません。


守るだけでは腑に落ちなかった - 制御システム技術者のサイバー修行録【連載まとめ】

© 2016 - 2026 DARK MATTER / Built with Hugo / テーマ StackJimmy によって設計されています。