行政書士と脆弱性(サイバー攻撃)⑧
ソフトウェアは「ソースコード(テキスト形式の手順書)より作成されている。ソースコードは専用のプログラミング言語によって作成される。
コンピュータがプログラムを理解できるようにするためにはコンパイラーというソフトウェアによって実行ファイル形式変換にする必要がある。
C言語でプログラミングを行う際、関数という一連の処理をまとめた、いわば「処理のかたまり」を使用する。この場合、重要なのは、「引数」と「戻り値」である。「引数(入力)」はデータである「戻り値」は出力である。
次に関数の定義であるが
戻り値の型 関数名(引数の型(int) 引数名)
(処理内容)
teturn戻り値
という形で定義される。
次に変数であるが、データを一時的に記憶しておくための領域に固有の名前をつけたものである。変数は「変数の型 変数名」で定義される。
ソフトウェアの脆弱性の中でいちばん典型的なものが、バッファーフロー脆弱性である。バッファーフローとは、メモリ(作業領域)上で確保された領域である。データの種類に応じてテキスト領域、スタック領域、ヒープ領域がある。スタック領域上データ
があふれることにより発生する脆弱性がスタックバッファーフローである。