初めてのプログラミングには「Python」を選ぶべき“セキュリティ的な理由”:ペネトレーションテストのためのPython【前編】
ペネトレーションテスト担当者にとって、「Python」は優先して習得すべきプログラミング言語だと専門家は推奨する。それはなぜなのか。そもそもPythonは学びやすいのか。
実際にシステムに侵入して脆弱(ぜいじゃく)性を確認する「ペネトレーションテスト」(侵入テストとも)の経験を積もうとする人にとって、「Python」は習得する価値のあるプログラミング言語だ。Pythonは、ペネトレーションテスト担当者が
- 企業のセキュリティ対策の調査
- ネットワークの傍受
- 攻撃を目的とする防御ツールの悪用
- 指揮統制サーバの有効化
といった、ペネトレーションテストで重要なタスクを実行するプログラムを作成するのに役立つ。
Pythonがペネトレーションテスト担当者にとって理想的なプログラミング言語であり続けている理由とは何か。「Python 2」と「Python 3」の違いとは。ペネトレーションテストへのPython活用を解説した書籍『Black Hat Python, 2nd Edition: Python Programming for Hackers and Pentesters』の著者、ジャスティン・サイツ氏とティム・アーノルド氏に話を聞いた。
なぜ初めてのプログラミング言語として「Python」を学ぶべきなのか
―― Pythonが、学習すべき重要なプログラミング言語である理由は何でしょうか。
アーノルド氏 Pythonは最初に学習するプログラミング言語として優れており、大学がプログラミングを教える際にもよく使う。Pythonでは開発者が「integer」「float」といった変数の型を指定しなくても構わない。変数の型を指定しなければならないプログラミング言語がある一方で、Pythonはプログラムが自動的に変数の型を推定する。この動的な型付け方法を「ダックタイピング」と呼ぶ。開発者はダックタイピングにより、あるPythonプログラムで使用したソースコードやプログラミング手法を、そのプログラムが扱うデータの型に関係なく、他のPythonプログラムにも流用できる。
Pythonでのプログラミングにおいて開発者は、インデント(段落単位での字下げ)を使ってソースコード中のブロック(処理のまとまり)を定義しなければならない。私がPythonのソースコードを初めて見たとき、余白部分が多くて好きになれなかった。だがこのPythonにおけるインデント利用ルールの影響で、他のプログラミング言語での開発でもインデントを使うようになった。インデントの利用はいまや私の習慣だ。
Pythonは主要なプログラミング言語の中では比較的習得しやすい。私にPythonの学習を勧めた人は、「Pythonの開発では、疑似コード(プログラムの設計を確認するための文章)を記述すれば、それが実行可能プログラムになる」と話した。これはあながち間違いではない。Pythonはソースコードがシンプルで読みやすく、開発したプログラムが最初から正しく動作することもしばしばある。
TechTarget発 先取りITトレンド
米国TechTargetの豊富な記事の中から、最新技術解説や注目分野の製品比較、海外企業のIT製品導入事例などを厳選してお届けします。
Copyright © ITmedia, Inc. All Rights Reserved.