検索
特集/連載

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

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

Share
Tweet
LINE
Hatena

関連キーワード

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


 実際にシステムに侵入して脆弱(ぜいじゃく)性を確認する「ペネトレーションテスト」(侵入テストとも)。ペネトレーションテストへのプログラミング言語「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製品導入事例などを厳選してお届けします。

Copyright © ITmedia, Inc. All Rights Reserved.

ページトップに戻る