🎯 この章で学ぶこと

  • Pythonとはどんな言語か、なぜセキュリティ分野で使われるのか
  • Pythonのインストールと動作確認
  • 対話モード(REPL)とスクリプト実行の2つの使い方
  • VS Codeによる快適な開発環境の準備

1.1 Pythonとはどんな言語か

Python(パイソン)は、読みやすさを最重要視して設計されたプログラミング言語です。文法がシンプルで英語に近く、初学者が最初に学ぶ言語として世界中で採用されています。

そしてPythonは、セキュリティ業界の共通語でもあります。理由は次のとおりです。

🛡️ セキュリティの視点 — IT部門とPython

IT部門の実務では「サーバーのログから不審なアクセスを探す」「退職者アカウントの棚卸し」「ファイルサーバーの権限チェック」といった作業が発生します。これらは手作業では時間がかかりミスも起きますが、Pythonなら数十行のスクリプトで正確に・繰り返し実行できます。この教科書の最終章近く(第13章)で、実際にそうしたツールを作ります。

1.2 Pythonをインストールする

Windowsの場合

  1. 公式サイト python.org/downloads から最新の Python 3 のインストーラーをダウンロードします。
  2. インストーラーを起動したら、必ず「Add python.exe to PATH」にチェックを入れてから「Install Now」をクリックします。ここを忘れるとコマンドが認識されず、初学者がつまずく原因の第1位です。
  3. 完了したら、スタートメニューから「PowerShell」を開き、次のコマンドで確認します。
PS C:\Users\you> python --version
Python 3.12.4

macOSの場合

macOSにも古いPythonが入っていることがありますが、公式サイトのインストーラーか、Homebrewを使って新しいPython 3を入れるのがおすすめです。

$ brew install python3
$ python3 --version
Python 3.12.4
💡 「python」と「python3」

Windowsでは python、macOS/Linuxでは python3 と入力するのが一般的です。この教科書では以後 python と表記しますので、環境に合わせて読み替えてください。

1.3 対話モード(REPL)を触ってみる

Pythonには、1行入力するとすぐに結果が返ってくる対話モード(REPL:Read-Eval-Print Loop)があります。ターミナルで python と入力するだけで始まります。

$ python
Python 3.12.4 (main, ...)
Type "help", "copyright", "credits" or "license" for more information.
>>> 1 + 2
3
>>> "Hello" + " " + "World"
'Hello World'
>>> 2 ** 10        # べき乗(2の10乗)
1024
>>> exit()         # 終了

>>> がPythonの入力待ちの印です。「ちょっと試したい」ときはいつでもREPL。この習慣が学習速度を大きく左右します。

1.4 初めてのプログラムを書いて実行する

REPLは試し書きには便利ですが、本格的なプログラムはファイルに保存します。拡張子は .py です。テキストエディタで次の内容のファイルを作りましょう。

# hello.py — 初めてのPythonプログラム
print("Hello, Python!")
print("セキュリティ学習をはじめます")

保存したフォルダでターミナルを開き、実行します。

$ python hello.py
Hello, Python!
セキュリティ学習をはじめます

おめでとうございます!これがプログラミングの第一歩です。print() は「かっこの中身を画面に表示する」命令(関数)です。

💡 コメント

# から行末まではコメントといい、実行時には無視されます。「なぜこう書いたのか」をメモするために使います。人が読んで理解できるコードを書くことは、セキュリティ的にも重要です(読めないコードはレビューできず、欠陥が見逃されます)。

1.5 VS Codeを準備する

メモ帳でも書けますが、実務ではエディタを使います。おすすめは無料の Visual Studio Code(VS Code) です。

  1. 公式サイトからVS Codeをインストールする
  2. 左側の拡張機能アイコンから「Python」拡張(Microsoft製)をインストールする
  3. Japanese Language Pack」を入れると日本語化できる

Python拡張を入れると、コードの色分け、入力補完、その場でのエラー指摘(波線)が効くようになります。エディタが指摘してくれる小さなミスの多くは、後の章で学ぶ「バグ=脆弱性の卵」です。早く気づける環境を整えることは、セキュアな開発の第一歩です。

1.6 エラーと友達になる

わざとエラーを出してみましょう。REPLで次を入力します。

>>> print(messsage)
Traceback (most recent call last):
  File "<stdin>", line 1, in <module>
NameError: name 'messsage' is not defined

この Traceback(トレースバック) がPythonのエラー報告です。読み方のコツは2つだけです。

ここでは「messsage という名前は定義されていない」と言われています(sが1個多いタイプミス)。エラーは失敗ではなく、コンピュータからの正確なフィードバックです。

まとめ

練習問題

問題 1-1

REPLを起動して、次の計算をしてみましょう。①「1年は何秒か」 ②「2の32乗」(IPv4アドレスの総数です)

解答を見る
>>> 60 * 60 * 24 * 365
31536000
>>> 2 ** 32
4294967296

IPv4アドレスは約43億個しかありません。この「足りなさ」がIPv6が生まれた理由の一つです。

問題 1-2

self_intro.py というファイルを作り、自分の名前・所属・学習の目標を3行で表示するプログラムを書いて実行してください。

解答を見る
# self_intro.py
print("名前: 山田 太郎")
print("所属: 情報システム部")
print("目標: Pythonでセキュリティ業務を自動化する")
$ python self_intro.py
名前: 山田 太郎
所属: 情報システム部
目標: Pythonでセキュリティ業務を自動化する
問題 1-3

わざと print("hello"(閉じかっこを忘れた状態)をファイルに書いて実行し、どんなエラーが出るか確認してください。エラーの「種類」は何ですか?

解答を見る

SyntaxError(構文エラー)が発生します。SyntaxError: '(' was never closed のように「かっこが閉じられていない」と教えてくれます。構文エラーはプログラムの実行前に検出されるエラーです。