OSコマンドインジェクションのデモをする環境を構築する①

セキュリティ

SSIインジェクション、SQLインジェクションとインジェクション系のデモ環境を作成してきましたが、次はOSコマンドインジェクションのデモ環境を作成していきます。

先に作成した二つよりはサクッとできると思っています。

8月に実際のデモをいつも参加している勉強会で実際にお披露目しようと模索しています。

今回はOSコマンドインジェクションの概要や環境説明がメインになりますのでご了承ください。

OSコマンドインジェクションについて

まずはOSコマンドインジェクションについてです。

ウェブアプリケーションによっては、外部からの攻撃により、ウェブサーバの OS コマンドを不正に実行されてしまう問題を持つものがあります。このような問題を「OS コマンド・インジェクションの脆弱性」と呼び、問題を悪用した攻撃手法を、「OS コマンド・インジェクション攻撃」と呼びます。
IPA安全なウェブサイトの作り方 1.2 OSコマンドインジェクションより
(https://www.ipa.go.jp/files/000017316.pdf)

その脆弱性がある場合はどんなことが発生してしまうのでしょうか?

OSコマンド・インジェクションの脆弱性がある場合、悪意あるリクエストにより、ウェブサーバ側で意図しないOSコマンドを実行させられ、重要情報が盗まれたり、攻撃の踏み台に悪用される可能性があります。
IPA安全なウェブサイトの作り方 1.2 OSコマンドインジェクションより
(https://www.ipa.go.jp/files/000017316.pdf)

上記のとおり、この脆弱性が発見された場合、そのサーバは壊滅的な被害を受けます。

OSコマンドが外部の人間から操作可能なので、SSHで接続されたようなものです。

攻撃手法によっては実際にターミナルから操作できるようにすることも可能です。
※勉強会のデモではこの辺りをやろうかなと。

しかし、この脆弱性はSSIインジェクションと同じく、あまり見かけることがありません。
※私は8年ほどこの仕事をしてきましたが、実際にWebアプリケーションの脆弱性として見つけたことがあるのは数回です。私のレベルが低いといわれると悲しい( ;∀;)

フレームワークやミドルウェアの脆弱性からであればもう少し増えるんですが・・・
※これもStruts2のおかげです。

よく聞くのはメール送信の個所と言われますが、今は大体フレームワークを使用しているので、私自身はメール送信箇所でOSコマンドインジェクションを検出したことはありません。

また、インターネットで調べてみると、検出が難しい脆弱性とも書かれていたりしますね。

デモ環境を構築する構成について

デモする時を考え、あまり余計な物を入れるつもりはないので、以下の構成で作成します。

OS:Lunux(Ubuntu 18)
Webサーバ:Apache 2.4
サーバサイドスクリプト言語:PHP7

LAMP環境のM(MySQL)のない環境ですね。

新しくVMを作成してこの環境で構築していきます。

上記環境の用意については以前に以下で実施していますので、ご覧ください。

基本的な検証環境を作ろう!Ubuntu 18でLAMP環境を作るよ!①
基本的な検証環境を作ろう!Ubuntu 18でLAMP環境を作るよ!②

次回からは実際にPHPにて脆弱性が存在するアプリケーションを作成していきます。
※そんなに大したものを作成するわけではないので、あらかじめご了承ください。

不明点や要望やこういったこともやって欲しいとの要望があれば、お問い合わせページやコメント、ツイッターからでも結構ですので、気軽にご連絡ください。

コメント