第10章. 高度なテクニックと概念
この作品はAIを使って翻訳されている。ご意見、ご感想をお待ちしている:translation-feedback@oreilly.com
Kaliには、セキュリティ・テストを実施するために利用可能な数多くのツールが用意されているが、ツールが提供する定型的な自動スキャンやテスト以外のことを行う必要がある場合もある。ツールを作成し、利用可能なツールを拡張することができれば、テスターとして一線を画すことができる。ほとんどのツールからの結果は、偽陽性を本当の問題からソートするために、何らかの方法で検証する必要がある。これを手動で行うこともできるが、時間を節約するために自動化する必要があったり、自動化したいと思うこともあるだろう。これを行う最善の方法は、あなたの代わりに作業を行うプログラムを書くことである。タスクの自動化は時間の節約になる。また、自分が何をしているのか、何をする必要があるのかをよく考え、それをプログラミングに書き込むことができる。基本的には、自動化する前に、そのプロセスや計画が何であるかを知らなければならない。
プログラミングを学ぶのは難しい作業だ。ここではプログラミングの書き方は取り上げない。その代わり、プログラミングと脆弱性がどのように関係しているのかについて理解を深めてもらう。さらに、プログラミング言語がどのように機能するのか、そしてその機能のいくつかがどのように悪用されるのかについても取り上げる。その過程で、プログラムを書くことがどのようなものかを少し体験してもらう。
利点とは結局のところ、ソフトウェアのエラーを利用するために作られるものだ。エクスプロイトがどのように機能しているのか、そしてもしかしたらなぜ機能しないのかを理解するためには、プログラムがどのように構築され、オペレーティングシステムがそれらをどのように管理しているのかを理解することが重要だ。この理解がなければ、あなたは盲目的に攻撃することになる。私は、何かが動くと思い込むのではなく、なぜ、どのように動くのかを知ることが大切だと信じている。もちろん、すべての人がこのような哲学や関心を持っているわけではないし、それでいいのだ。しかし、より深いレベルでより多くのことを知ることで、自分のやっていることがよりうまくいくようになる。次のステップに進むための知識を得ることができるのだ。
もちろん、ゼロからすべてのプログラムを自分で書く必要はない。NmapもMetasploitも、重い作業の多くをやってくれることで、大きなスタートを切ることができる。その結果、それらのフレームワークから始めて、あなたが望む、あるいは必要とするアクションを実行するためにそれらの関数を拡張することができる。これは特に、商用オフ・ザ・シェルフ(COTS)製品以外のものを扱っている場合に当てはまる。ある企業が独自のソフトウェアを開発し、独自の方法でNetwork+通信を行っている場合、NmapやMetasploitでそのソフトウェアを調査したり、悪用したりするためのモジュールを書く必要があるかもしれない。プログラミングができれば、これらのツールを拡張するのは簡単だが、多くの作業はすでに終わっており、プログラミングの知識がなくても必要なことはできるかもしれない。
プログラミングの基本
プログラムの書き方に関する本は何千冊も手に入る。数え切れないほどのWebサイトやビデオで、どの言語でコードを書くかの基本を学ぶことができる。重要なのは、必ずしもその言語でどのように書くかということではない。そうすることで、どこに脆弱性があり、それがどのように機能するのかを理解することができる。結局のところ、プログラミングは魔法や難解な芸術ではない。ソースコードをコンピューターが理解できるものに変換する方法など、既知の規則がある。 ...
Become an O’Reilly member and get unlimited access to this title plus top books and audiobooks from O’Reilly and nearly 200 top publishers, thousands of courses curated by job role, 150+ live events each month,
and much more.
Read now
Unlock full access