Wi-Fiのセキュリティ(準備編)
Wi-Fiのハッキング
CEHのセミナー動画で、講師がaircrack-ngと別付けのWi-Fiアダプタを使用して、WEPのキーをクラッキングするデモがあった。
自分でも試してみたいと思い、実施してみた。
前提条件
・Wi-Fiアダプタについてはモニターモード/インジェクションの機能が必要となる
・aircrack-ngは、Windows版もあるが、自分でコンパイルする必要がある
・Kaliにaircrack-ngがインストールされているが、Wi-Fiアダプタとの相性がある
Kaliでaircrack-ngを使う場合、特定のチップセットが内臓されたWi-Fiアダプタが必要になる。
こちらを参考にさせていただきました。
AmazonでALFA AWUS036AC AC1200が、6,000円くらいで購入できた。
上記のサイトの情報では、仮想環境ですぐにWi-Fiが認識されていますが、USBをさしてもKaliでWi-Fiアダプターを認識してくれない。
Kaliの設定
環境:Kali 2021.1、VMware Player16
USBを仮想マシンへ接続
この時点で、ifconfigやiwconfigをしても、ネットワークのインターフェイスが表示されない。lsusbでは、USBデバイスとして認識されている。
Kaliのフォーラムでそれらしい記事を見つけたので、試してみる。
Kaliで以下のコマンドを一通り叩く。
apt remove realtek-rtl88xxau-dkms && apt purge realtek-rtl88xxau-dkms
apt update && apt upgrade
apt autoremove && apt autoclean
rebootapt-get dist-upgrade
reboot
git clone https://github.com/aircrack-ng/rtl8812au
cd rtl8812au
make && make install
reboot
途中エラーになったり、それなりに時間かかったりしましたが、完了。
エラーになって、apt --fix-broken installを叩いたり、
make && make installがうまく動かず、
mkdir /lib/modules/5.10.0-kali3-amd64/build
sudo apt install dkms
apt install bc linux-headers-$(uname -r)
など、良く分からないままに叩いたりしています。
なんとかKaliで無事にWi-Fiアダプタが認識された。
これで
OS:Kali
Wi-Fiアダプタ:ALFA AWUS036AC
ツール:aircrack-ng
という環境が整いました。
つ・づ・く
ECEの更新
CEH資格の維持
CEHの資格を持っています、というためには、
・80ドル/年 支払い
・ECE120ポイント/3年 獲得
という条件がある。
今回初めて年会費80ドルを納める。
6月までに納めれば良いのだが、忘れてしまいそうだし、円安だし、ということで手続きを検討。
改めて、ECEのメンバーの特典を調べてみた。
ECE登録時のメールを確認すると、
・Free Member Resources
とのことで以下のページが紹介されていた。
特にメンバーに限らず、誰でも閲覧できるようです。
Communityの参加、という話もあるようです。
こちらも、ECEメンバーだから、というよりも、SNS発信のようです。
それ以外では、ECEのサイトから、AnnouncementsやEventの案内が見られる。
こちらも、一般のイベントでメンバーしか参加できない、という縛りはないようです。
80ドルは、まさに資格の維持のためだけ、のように思えます。
ですが、せっかく取得した資格なので、80ドルを支払う。
ECEのサイトから支払いボタンを押すと、以下に飛ばされて、支払いを済ます。
支払いとCECの会員情報の紐づけが出来ていない気もするが、2営業日で更新されるとのこと。
ECEポイントは現在46ポイント。
改めてECEについて調べなおしていると、アンケートに回答すれば20ポイント貰えたらしい。ダメ元でアンケートに回答。
セミナーの受講だけでなく、別の方法でECEポイントを取得したいものです。
コンテナのセキュリティ
コンテナアーキテクチャ
KubernetesやOpenshiftなどのコンテナ技術に普及は進んでいるようで、それに伴い、コンテナに対する攻撃もある。
コンテナ環境を標的にした「kinsing」というマルウェアもあるようです。
一般的なベストプラクティスとして、コンテナのセキュリティについてNISTのドキュメントをIPAが翻訳して公開している。
https://www.ipa.go.jp/files/000085279.pdf
マルウェア対策ならウイルス対策ソフトをインストール、と思うがコンテナ環境でのウイルス対策ソフトってあるのか?という疑問。
こちらのブログで回答が得られる。
このあたり、もう少しクラウド側で、あらかじめ組み込まれていると有難いのですが。
コンテナのスキャン
CEHのテキストでは、19章クラウドコンピューティングで、技術的な説明から対策などが説明されていた。
Dcokerに対してはTrivy,Dadga,Clairで、KubernetesにはSysdigでスキャンを、という感じだった。
スキャナーについて、以下で詳しく説明されています。
ビルドのプロセス時に、脆弱性スキャンを実施して、脆弱性が見つかれば、
ビルドを停止させることで、脆弱性を含むコンテナを稼働させない方法がとられることが多いようです。
Trivyはシンプルで使いやすいようです。
まとめ
・ベストプラクティスの適用
・アンチウイルス対策
・スキャン
という多層防御がコンテナのセキュリティ対策でしょうか。
Googleのやられサイト
やられサイトまとめ
敢えて脆弱性を持ったWebアプリケーションで、脆弱性検査(ハッキング)のスキルを向上させる、やられサイト。
OWASPだと、
- OWASP JUICE SHOP
ソースコード版からDocker版まである。
Juice Shop - Insecure Web Application for Training | OWASP
オンラインでも公開されている。
OWASP Juice Shop (juice-shop.herokuapp.com)
- Web Security Academy
Burp Suiteを使っていれば、Web Security Academyで、カテゴリ別に学べるサイトが準備されている。
Web Security Academy: Free Online Training from PortSwigger
- Acunetix
ツールのテスト用サイトとして,以下のようなものもある。
Acunetix Web Vulnerability Scanner - Test websites
以前、hackmeというのがありましたが、今はアクセスできないようになっています。
似たようなサイトに、
- hack the box
Hack The Box: Hacking Training For The Best | Individuals & Companies
- TryHackMe
TryHackMe | Cyber Security Training
などがある。
オンラインのメリットは、手軽に試せる点ですが、防御も学ぶ必要がある場合、ソースコードやサーバーの設定を触れる必要がある。
そのような観点から「OWASP JUICE SHOP」は有難い。
Google gruyere
グーグル グリュイエール、はGoogleのやられサイト。
グリュイエールは、「スイスの女王様」と言われる由緒正しいチーズ、らしいです。
オンライン上で稼働していて、ソースコードもオンラインから見ることができる。
ダウンロードして、自分のサーバーで稼働させることも可能。
Web Security Academyほどのボリュームは無いが、その分、シンプルで一通り練習するには最適な教材と思う。
CTF的なものから、ツールに特化したものまで、学ぶ機会は多く提供されている。
OWASP Dependency-Check
ライブラリのスキャン
Log4Shellの通称で有名になっている脆弱性。
Apacheプロジェクトの Log4jというオープンソースライブラリで、致命的な欠陥が見つかったと大騒ぎ。
脆弱性の深刻度を評価するCVSSのスコアでは、最大値となる10.0(緊急レベル)を記録。
Webアプリケーションを作成する場合、このような外部のライブラリを使用することは多い。最新を使用しておけば間違いないのでしょうが、開発者側からすると、バージョン変更により、アプリケーションのテストが必要になり、変更に消極的になり、放置されやすい。
OWASP Dependency-Check
OWASP Dependency-Checkを使うと、ある程度自動でやってくれる。
という5つの形態で提供されている。
以下のプラグインもあるらしい。
- Jenkins Plugin
- SBT Plugin
- lein-dependency-check
手っ取り早く、Commnad Lineツールを試してみる。
Commnad Line
からZipファイルをダウンロード。
Windowsの場合、binフォルダにある、dependency-check.batを実行。
いろいろパラメーターはあるが、
-s (スキャンしたいフォルダ)
を指定すれば、スキャンが開始される。
初回実行時は、NVDから脆弱性情報を取得する。
2002年から取得しています。
dataフォルダにnvdcacheというフォルダがあり、そこに年度ごとにファイルが作成される。中を見ると、JSON形式で脆弱性情報が収集されている。
データベースとして結合されているようです。
1分ちょっとでレポートが出力されます。
スクリプトを使用して、見やすいレポートです。
現在、Javaと.NETに関して対応しており、実験的にPython, Ruby, PHP (composer),Node.jsでも可、のようです。
使用しているライブラリが一覧になるだけでも十分に価値を感じてしまう。
Hacking Web Applications
CEHの復習
Webアプリケーションの脆弱性検査をするため、久々にCEHのテキストを見直す。
14章が「Hacking Web Applications」で300ページほどあり、20章のうちで、特にボリュームが多かったと記憶している。
改めて見直すと、基本的な理論からツールの紹介まで、幅広く網羅されている。
ツールについては、以下のカテゴリで列挙されていた。
- Web application Analyze
- Web application Vulnerability
- Web application Hacking
- API Vulnerability
- Fuzz Testing
- Web application Security Testing Tools
Burp SuiteかOWASP ZAPで網羅できそうなものですが、それらはWeb application Analyzeに分類されていたりします。
WebScarabというツールもWeb application Analyzeに分類されていましたが、もともとOWASPのプロジェクトでZAPに組み込まれたようで、CEHのテキストが古い情報でした。
ツールの分類の基準は良く分からないが、各カテゴリで3-6個のツールが紹介され、中にはサブカテゴリに分類され、それぞれでツールが紹介されている。
ツールでなんでも出来てしまう、という攻撃者の有利性を考えて、気分が悪くなったことを思い出しました。
IPAの情報
IPAが公開している情報も、量的には多い。
公開日が記載してあるので、古い?、と思ってしまうが、網羅性という点ではCEHのテキストと比較しても十分な気がする。
Webの攻撃手法というのは、それほど変わっておらず、今も同様の脆弱性が存在していて、そこへの攻撃が継続されているのだと思う。
IPAはそれ以外にもツールを配布していたりする。
ファジングの資料は、詳しく説明されています。。
何を知り、何を使うべきか
Webアプリケーションの脆弱性に関する情報量は膨大で、それに関するツールも多い。
ツールの使い方を覚えることが目的ではなく、情報に振り回されないためにどうすべきか?
CWEが、すべての上位に存在するのかと思う。
CWE - Common Weakness Enumeration (mitre.org)
現在、CWEは、NISTのNVD、OWASPのTop Ten Projectや、いくつかのセキュリティベンダーなどで実際に活用されています。
CWEにはCWE互換認定の制度があり、脆弱性検査ツールや脆弱性対策情報提供サービス等がCWE識別子の正確な表示、CWE識別子による情報の検索などの機能要件を満たし、MITRE社へ申請するとCWE互換認定が受けられます。CWE互換認定を受けると、MITRE社のウェブサイトで紹介される、CWEのロゴが使用できる等のメリットがあります。
共通脆弱性タイプ一覧CWE概説:IPA 独立行政法人 情報処理推進機構
CAPECとCWEは関連付けられている。CAPECから WASC Threat Classification 2.0、ATT&CK、OWASPへの関連付けがある。
CAPEC - Common Attack Pattern Enumeration and Classification (CAPEC™) (mitre.org)
膨大なデータではあるものの、CWEを総本山として情報収集をすることが、結局は近道なのかと思う。
OWASP ZAPのスキャンの詳細
スキャンの詳細について
OWASP ZAPをセットアップして、スキャンの実行までは出来た。
実際、どんなスキャンが実施されているのか。
スキャンの結果から、以下のようなアラートが上がる。
アラートが上がれば、そのリクエストの内容も確認できて、脆弱性があることが分かるが、それ以外にどんなことをしたのか。
こちらにアラートの一覧の記載があった。
OWASP ZAPにリンクを貼ってくれても良さそうなものですが、合計で160種類のアラートがあがり、スキャン方法によって対象が異なる。
- 78:パッシブスキャン
- 74:アクティブスキャン
- 8:WebSocket Passive
アラート表示の「ソース:」に記載された数字がIDのようです。
数字のあとがAlertの名称のようですが、ZAPでは翻訳されています。
Web画面では、IDで絞り込みが可能。
IDまたはAlert名称のリンクをクリックすると詳細が表示される。
CWEやOWASP TOP10などとの関連が把握できる。
しかも、Codeのリンクでは、実際のJavaのコードが見られるので、何をしたのか一目瞭然(プログラムを理解できれば、ですが。。。)。
WASCとは?
「WASC」って、なんだろう?
Web Application Security Consortium という団体があるらしく、Webサイトはこちらで良いのだろうか?HTTPSでもなく、大丈夫なのか?
更なる深みへ
マーケットプレイスから、独自のアドオンを追加できるようです。
それ以外に、
Custom Payloadsで、自分が作成した検査を実装できる
Zest scriptで、操作を記憶させて自動化できる
などなど。
結局は、すべての機能はAdd-onという概念で括られているようです。
Desktop User Guideを見ると、Add-onsの下にアクティブスキャンルールがあり、詳細が記載されている。
Add-onの開発方法などは以下から。
OWASP ZAPがプラットフォームとして機能して、様々なAdd-onが善意で開発されていると思うと、頭が下がる思いです。