はてなブログでよく使うシンタックスハイライト
VLAN の概要
STP の概要
CCNA の勉強方法
HP ENVY(AMD)でプチフリーズ
Windows Defender をおすすめする理由
息子の難病と仕事の変化
定期的なパスワード変更が不要になった理由
HTML の基本について
はてなブログに Google アナリティクス 4 プロパティを設定
Windows 10 から openSUSE Tumbleweed に XRDP 接続
openSUSE Tumbleweed の XRDP で画面が真っ黒になる
WordPress をはじめました
Amazon RDS(MySQL)構築手順について
Amazon RDS(MySQL)で名前解決を無効化
Amazon RDS のパラメータ変更について
デュプレックス(duplex)について
Web Application に GA4 を実装する
Firebase web codelab について
Google Cloud Shell のリセット手順
Firebase について
openSUSE Tumbleweed で Cron 実行
openSUSE Tumbleweed インストール手順
Internet Explorer 表示した PDF を保存できない
オープンソースの WAF(ModSecurity)について
Horizon 7 に物理 PC に登録する方法
ONTAP 9.4 で各カウンタを取得するコマンド
コントローラ単位
例)コントローラ単位で、CPU、メモリ、IOPS 関連のカウンタを1秒間隔で取得して表示
>set diagnostic *> statistics show-periodic -object system:node -instance cl-01 -interval1-counter cpu_busy|memory|read_ops|write_ops|total_ops|system_ops|read_latency|write_latency|total_latency|instance_name cl: system:node.cl-01: 7/5/2019 23:07:47 cpu instance read system total total write write Complete Number of busy name memory latency read_ops ops latency ops latency ops Aggregation Constituents ---------------------------------------------------------------------------------------------------3% cl-01 2160 0us 02 0us 0 0us 0 Yes 11% cl-01 2160 0us 08 0us 0 0us 0 Yes 12% cl-01 2160 0us 02 0us 0 0us 0 Yes 11% cl-01 2160 0us 02 0us 0 0us 0 Yes 11% cl-01 2160 0us 00 0us 0 0us 0 Yes 12% cl-01 2160 0us 02 0us 0 0us 0 Yes 11% cl-01 2160 0us 05 0us 0 0us 0 Yes 1
ボリューム単位
例)ボリューム単位で、CPU、メモリ、IOPS 関連のカウンタを1秒間隔で取得して表示
>set diagnostic *> statistics show-periodic -object volume -instance vol1 -interval1-counter avg_latency|instance_name|read_latency|read_ops|total_ops|write_latency|write_ops cl: volume.vol1: 7/5/2019 23:12:21 avg instance read total write write Complete Number of latency name latency read_ops ops latency ops Aggregation Constituents ------------------------------------------------------------------------------- 0us vol1 0us 00 0us 0 n/a n/a 0us vol1 0us 00 0us 0 n/a n/a 0us vol1 0us 00 0us 0 n/a n/a 0us vol1 0us 00 0us 0 n/a n/a 0us vol1 0us 00 0us 0 n/a n/a 0us vol1 0us 00 0us 0 n/a n/a 0us vol1 0us 00 0us 0 n/a n/a
以上
OWASP ZAP による脆弱性診断について
OWAP ZAP とは
セキュリティ診断ツール「OWASP ZAP」は、 The Open Web Application Security Project(通称 OWASP、オワスプ)という国際的なコミュニティがつくりました。
OWASP を運営しているのはアメリカの The OWASP Foundation(OWASP財団)という団体で、2001年に設立されています。いまでは世界中に 200 以上の支部を持ちます。日本にも OWASP Japan があります。OWASP 財団の目的は、Web アプリケーションを保護することで、そのために OWASP のメンバーは約 120 以上のプロジェクトを進行しています。誰でも無料で Web アプリケーションの脆弱性をチェックできる OWASP ZAP も 120 のプロジェクトの1つとして生まれました。
出典:CyberSecurityTIMES
OWASP ZAP インストール
Java のダウンロード・インストール
OWASP ZAP は Java 1.8 以上が必要なのでこちらから最新版をダウンロードしてインストールしておきます。
OWASP ZAP のダウンロード・インストール
こちらからインストーラーをダウンロードして実行します。
本例では、WIndows 64bit 版を使用しています。
インストーラーを実行すると JRE を「配置する」ボタンがでてきますので、事前にインストールした「java.exe」を指定します。
あとは、「次へ」ボタンをクリックして完了です。
OWASP ZAP 設定
セッションの保持方法を指定します。本例では、「現在のタイムスタンプでファイル名を付けてセッションを保存」を選択します。
必ず「プロテクトモード」を指定します。詳細は後述します。
「ツール」➡「オプション」からローカルプロキシを設定します。ポートは本例では「18080」を指定します。
次に、対象サイトから各ページの URL 情報を取得するスパイダー機能を設定します。
本例では、以下のとおり設定します。
- クロールする最大の深さ(対象サイトをどこまで深く検索するか):19
- 並列スキャンスレッド数(並列処理数):2
- 新しい URI の SVN のメタデータを解析(診断対象ファイルの指定):ON
- 新しい UR Iの Git のメタデータを解析(診断対象ファイルの指定):ON
- OData 固有のパラメータを処理(診断対象ファイルの指定):ON
次に、対象サイトの診断を行う動的スキャンを設定します。
本例では、以下のとおり設定します。
- 並列スキャンするホスト数:1
- 並列スキャンスレッド数:1
- スキャン中にミリ秒単位の遅延:1000
「OK」をクリックします。
「ポリシー」➡「スキャンポリシー」を選択し、「追加」をクリックします。
任意のポリシー名を設定し、適用を「Off」「低」を選択してから「開始」をそれぞれクリックします。*1
左ペインの「インジェクション」を選択し、テストのしきい値と強度を変更します。
本例では、以下のポリシーを設定します。
- SQL インジェクション-しきい値:低
- SQL インジェクション-強度:高
- クロスサイト・スクリプティング(反射型)-しきい値:低
- クロスサイト・スクリプティング(反射型)-強度:高
しきい値はアラートをあげる判定値で、”Low” ではあいまい、"Hign"では完全に NG の場合にアラートをあげます。強度はテストの精度で、"High"はより細かなテストを行ってくれます。
ブラウザ設定
ブラウザから OWASP をプロキシとして経由して、対象サイトへアクセスすることで診断します。
本例では、Firefox を使用して OWASP を指定します。
WebGoat とは
ブラウザの設定が終わったら、診断テストが可能となります。
診断テストするために、WebGoat というわざと脆弱性を持たせた Web アプリケーションがありますので、あわせて紹介します。
WebGoat ダウンロード・インストール
本例では、CentOS 6.3(GUI)にインストールします。
Java のインストール
# Download JDK 11cd /tmp && wget https://download.java.net/java/ga/jdk11/openjdk-11_linux-x64_bin.tar.gz # Switch to the root user, type root password su # Create the folder /usr/lib/jvmmkdir /usr/lib/jvm # Extract the downloaded archive tar xzvf /tmp/openjdk-11_linux-x64_bin.tar.gz --directory /usr/lib/jvm # Create a symlink to the java binary ln -s /usr/lib/jvm/jdk-11/bin/java /usr/bin/java # exit from root userexit# Verify that you have the right version running java -version# Remove the downloaded archiverm /tmp/openjdk-11_linux-x64_bin.tar.gz
WebGoat のダウンロードと実行
# Download the latest WebGoat release jar wget https://github.com/WebGoat/WebGoat/releases/download/v8.0.0.M26/webgoat-server-8.0.0.M26.jar # Run WebGoat using java java -jar webgoat-server-8.0.0.M26.jar --server.address=0.0.0.0
参考:thehackerish
診断テスト
本例では、以下の環境でテストします。
リバースプロキシの構築例は後述しますので、興味があればご参照ください。
ブラウザで対象サイトへアクセス
本例ではリバースプロキシがありますので、以下の URL へアクセスします。
http://10.1.12.252/WebGoat
アクセスした後、OWASP ZAP の左ペインに対象サイトが追加されます。
サイトを右クリックして、「コンテキストに含める」➡「既定のコンテキスト」を選択し、対象サイトを選択します。
「認証」をクリックして、認証方法、およびログインユーザーの情報を入力します。
これは、WebGoat のログイン画面の先へクロールするために必要となります。
本例では、Form-based Auhentication を使用し、以下のパラメータを指定します。
http://10.1.12.252/WebGoat username={%username%}&password={%password%} \Q/WebGoat/login\E
「\Q/WebGoat/login\E」は、ログアウト状態を判定するために必要なパラメータです。
次に「ユーザー」をクリックして、ログイン可能なユーザー登録します。
スパイダー実行
対象サイト内の各ページの URL 情報を収集するためにスパイダーを実行します。
対象サイトを右クリックして、「攻撃」➡「スパイダー」をクリックし、作成した「ユーザー」を選択します。
その後、「スキャンを開始」をクリックします。
※前述の「プロテクトモード」は、対象サイトのみを診断対象とします。
スパイダータブに結果が表示されます。緑は対象、赤は対象外の URL を示します。
動的スキャン
対象サイトに対して、様々なパターンの攻撃コードを仕掛けます。
対象サイトを右クリックして、「攻撃」➡「動的スキャン」をクリックし、「ポリシー」「ユーザー」で作成したユーザーを選択します。その後、「スキャンを開始」をクリックします。
結果は「アラート」タブに表示されます。
「赤」は危険度高、「オレンジ」は危険度中、「黄色」は危険度低を示します。
参考:リバースプロキシ設定
squid.conf 設定
# 59 行目追記 http_access allow all #60 行目コメントアウト# http_access deny all# 64行目追記(転送元サーバーの IP アドレスを指定) http_port 80 accel ignore-cc defaultsite=10.1.12.252# 最終行に追記(転送先 Web サーバーの IP アドレスを指定) cache_peer 10.1.23.253 parent 80800 no-query originserver # 最終行に追記(メモリキャッシュサイズ) cache_mem 256 MB # 最終行に追記(ホスト名定義) visible_hostname prox.srv.world
squid 再起動
/etc/rc.d/init.d/squid restart
以上
*1:全ての診断を無効化します。
CentOS で特定ポートで実行されているプロセスを強制終了する
CentOS 6.3 で WebGoat を起動しようとすると以下のエラーが出力されました。
*************************** APPLICATION FAILED TO START *************************** Description: Web server failed to start. Port 8080 was already in use. Action: Identify and stop the process that's listening on port 8080 or configure this application to listen on another port.
ポート 8080 使用されているようです。
使用しているプロセスは以下のコマンドで確認できます。
[root@hostname ~]# lsof -i:8080 COMMAND PID USER FD TYPE DEVICE SIZE/OFF NODE NAME java 16915 root 26u IPv6 53443 0t0 TCP *:webcache (LISTEN)
Java の webcache が使用しているようです。
以下のコマンドで強制終了します。
[root@hostname ~]# kill$(lsof -t -i:8080)
もしくは、
[root@hostname ~]# kill-9$(lsof -t -i:8080)
再度ポート 8080 の使用状況を確認します。
[root@hostname ~]# lsof -i:8080
正常に終了できていれば、表示されなくなります。
参考書籍
以上
Apache の起動に失敗
Apache 2.2.15 でサービスを再起動した際、起動に失敗する事象に遭遇しました。
[root@hostname ~]# service httpd restart httpd を停止中: [ OK ] httpd を起動中: [失敗]
/var/log/httpd/error_log を確認すると以下のエラーが出力されていました。
[alert](EAI 2)Name or service not known: mod_unique_id: unable to find IPv4 address of "lablog01" Configuration Failed
原因は、hostname と /etc/hosts が一致していないことのようです。
[root@hostname ~]# hostname lablog01 [root@hostname ~]# cat /etc/hosts 127.0.0.1 localhost localhost.localdomain localhost4 localhost4.localdomain4 ::1 localhost localhost.localdomain localhost6 localhost6.localdomain6
/etc/hosts に lablog01 を追加すると無事起動できました。
[root@hostname ~]# cat /etc/hosts 127.0.0.1 localhost localhost.localdomain localhost4 localhost4.localdomain4 lablog01 ::1 localhost localhost.localdomain localhost6 localhost6.localdomain6
以上