「Python」だけじゃなく「JavaScript」「Go」「Ruby」を学ぶべき理由ペネトレーションテストのためのPython【後編】

「Python」はペネトレーションテスト担当者が学ぶのに適したプログラミング言語だと専門家は主張する。Python以外にも目を向けるべきコンピュータ言語や、学習を継続させるために重要なこととは。

2022年02月09日 05時00分 公開
[Kyle JohnsonTechTarget]

関連キーワード

プログラミング | セキュリティ


 実際にシステムに侵入して脆弱(ぜいじゃく)性を確認する「ペネトレーションテスト」(侵入テストとも)。ペネトレーションテストへのプログラミング言語「Python」活用を解説した書籍『Black Hat Python, 2nd Edition: Python Programming for Hackers and Pentesters』の著者であるジャスティン・サイツ氏とティム・アーノルド氏は、Pythonの有用性を主張する。両氏からのアドバイスをインタビュー形式で紹介しよう。

初心者が「JavaScript」「Go」「Ruby」を学ぶべき理由は?

―― Python以外に初心者が学習すべきコンピュータ言語はありますか。

アーノルド氏 「JavaScript」はWebアプリケーションのテストでよく遭遇するスクリプト言語(簡易型プログラミング言語)なので、JavaScriptの知識があると重宝する。JavaScriptを学習するか、少なくともJavaScriptを読めるようになれば、問題点が分かるようになるはずだ。汎用(はんよう)的なプログラムの開発にはPython、Webアプリケーション開発にはJavaScriptを使用するとよい。

 「Go」もお薦めだ。Goプログラムのソースコードをコンパイルすると、どのシステムでも実行可能なファイルを生成する。一方Pythonは、プログラムを実行するための実行環境をシステムにインストールしなければならない。

サイツ氏 ペネトレーションツール「Metasploit」のソースコードを抜粋してカスタマイズしようとしたときは、プログラミング言語「Ruby」の知識がなかったため少なからぬ苦戦を強いられた。Goを開発言語として採用するツールも増えてきた。とはいえペネトレーションテストと情報収集に関して、Pythonほど汎用性の高いプログラミング言語はない。

―― ペネトレーションテストまたはPythonの学習を継続するためのアドバイスをお願いします。

サイツ氏 練習を重ねること、セキュリティの競技大会「CTF」(Capture The Flag)に参加すること、リバースエンジニアリングやオンラインのセキュリティトレーニング教材「Hack The Box」に取り組むことだ。これらはどれもスキルを磨くのに役立つ。

―― お薦めのペネトレーションテスト用ツールはありますか。

サイツ氏 ペネトレーションテストで最も重要なのは、ツールではなくネットワークとOSに関する知識だ。「Windows」「Linux」といったOSでタスクが機能する仕組み、ネットワークにおけるデータの移動やフィルタリングの仕組みに関する基礎知識があれば、どのテストツールであっても使い方を理解できるだろう。

 テストツールの学習から始める人は少なくない。だが、そうした人は実際に問題が発生するまで、問題が発生する理由を学びにくい。問題に遭遇した時点で、ようやく重要な知識を学ぶことになる。面白みのない難解な知識の習得から始めることは、つまらなくてもやはり重要だ。

TechTarget発 先取りITトレンド

米国TechTargetの豊富な記事の中から、最新技術解説や注目分野の製品比較、海外企業のIT製品導入事例などを厳選してお届けします。

ITmedia マーケティング新着記事

news193.jpg

IASがブランドセーフティーの計測を拡張 誤報に関するレポートを追加
IASは、ブランドセーフティーと適合性の計測ソリューションを拡張し、誤報とともに広告が...

news047.png

【Googleが公式見解を発表】中古ドメインを絶対に使ってはいけない理由とは?
Googleが中古ドメインの不正利用を禁止を公式に発表しました。その理由や今後の対応につ...

news115.jpg

「TikTok禁止法案」に米大統領が署名 気になるこれからにまつわる5つの疑問
米連邦上院が、安全保障上の理由からTikTokの米国事業の売却を要求する法案を可決し、バ...