投稿

ARPとルーティングテーブル

サイバーセキュリティの勉強をしているときの覚書。 環境: Windows 10, CentOS Stream 8 ARP(Address Resolution Protocol)とは? IPv4アドレスとMACアドレスを紐づけるプロトコル。 相手のMacアドレスが分からない場合、ARPリクエストをネットワークにブロードキャストするとMACアドレスを格納してARPリプライが返ってくる。 一度取得したIPv4とMACアドレスの関連情報をARPテーブルにキャッシュとして保存される。 Windowsの場合は15秒~30秒間キャッシュに保存する。 WindowsでキャッシュされたARPテーブルを表示するコマンド C:> arp -a CentOSでキャッシュされたARPテーブルを表示するコマンド # ip n 参考サイト Address Resolution Protocol - Wikipedia Address Resolution Protocol caching behavior - Windows Server | Microsoft Learn ARPとルーティングテーブル 通信するときはまずルーティングテーブルを見て、どの経路で通信すればいいか決める。 その後、ARPのキャッシュテーブルまたはリクエストを参照して、宛先のMACアドレスが決まる。 サイバーセキュリティとARP ネットワークを盗聴する場合は、IPv4アドレスとMACアドレスの関連を偽装する場合はあるため、怪しい動作するPCおよびルーターのARPテーブルの中身は保存しておく。 【関連記事】 ルーティングテーブルとnetstat, ipコマンド

共通鍵暗号アルゴリズムAES(Advanced Encryption Standard)

サイバーセキュリティの勉強をしているときの覚書。 AESとは? AES(Advanced Encryption Standard)は2001年にアメリカで定められた標準暗号。 特徴 共通鍵暗号方式 鍵長は128bit, 192bit, 256bitの3種類 (鍵長と処理速度は相関関係にあるため用途に応じて選択する) 無料で利用可 現在の主流(今のところどんな攻撃にも屈していない) 日本政府管轄プロジェクト「CRYPTREC」に電子政府推奨暗号リストとして登録されている。 参考サイト Advanced Encryption Standard - Wikipedia CRYPTREC - Wikipedia AESはアルゴリズムなので、この暗号化アルゴリズムを利用した実装がいろいろとある。 AESが使われている実装の例 一覧とリンク TLS/HTTPS通信など。参考:  Transport Layer Security - Wikipedia ZIP/ファイルの暗号化。参考:  ZIP (ファイルフォーマット) - Wikipedia WPA2/Wi-Fiの 標準暗号化プロトコル CCMP。参考:  Counter mode with Cipher-block chaining Message authentication code Protocol - Wikipedia AACS/Blue-ray Discの暗号化規格。参考:  Advanced Access Content System - Wikipedia 【関連記事】 Let's Encryptで無料SSLをCentOS7に設定(certbot)

ルーティングテーブルとnetstat, ipコマンド

サイバーセキュリティの勉強をしているときの覚書。 環境: Windows 10, CentOS Stream 8 ルーティングテーブルとは? パケットの宛先と次の転送先を記したネットワーク経路一覧。 同じ宛先が登録されている場合はネットマスク値が高い(長い)経路が優先される。 一般的な端末PCではルーターがデフォルトゲートウェイとして登録されているだけ。 VPNや仮想マシンを設定している場合はそのネットワーク用の宛先がルーティングテーブルに記載されている。 参考サイト ルーティングとは|ヤマハ ルーティングテーブルを確認するコマンド WindowsとMacでは「route -r」で確認できる。 netstatはネットワーク情報を表示するコマンド。-rはルーティングテーブルを表示するオプション。 C:> netstat -r CentOS8からはnetstat, ifconfigはipコマンドに統一された。 # ip route show  netstat - Wikipedia ipコマンドチートシート for Red Hat Enterprise Linux サイバーセキュリティとルーティングテーブル マルウェアに感染した場合やハッカーがネットワーク内を調査する際、このルーティングテーブルを書き換えることがある。 そのため、ディジタルフォレンジックス(セキュリティ証拠収集)の一つとしてルーティングテーブルの確認方法は知っておきたい。 デジタル・フォレンジック - Wikipedia 【関連記事】 WindowsノートPCにCentOS7をクリーンインストール

サイバーセキュリティ対策のSIEM、UEBA、SOARとは?

SIEM(シーム: Security Information and Event Management)を調査しているときの覚書。 SIEM(Security Information and Event Management)とは? サイバーセキュリティ対策向けに異常検知を目的とした統合ログモニタリングシステム。 ファイヤーウォール/サーバー/IT機器などからログを収集・分析して見える化する。 サイバー攻撃を早期に発見して対応することが可能になる。 ログ収集や異常検知の設定など運用面でのコストがネック。 参考サイト SIEM(シーム)とは?セキュリティの異常を自動検知する仕組み SIEMとは?仕組みや機能、メリット、導入のポイントを解説!|Joshisu Man(情シスマン) SIEMとは?セキュリティ対策におけるログ収集の重要性 | サイバーセキュリティ情報局 UEBA(User and Entity Behavior Analytics)とは? ユーザーや機器の異常動作を機械学習によって検知する機能。 SEIMと合わせて活用することで運用コストを下げる。 よって、SEIM+UEBAを次世代SEIMと呼ぶこともある。 参考サイト 「SIEM運用は難しい」を覆す次世代ソリューション「LogRhythm」とは? | 東京エレクトロンデバイス SOAR(Security Orchestration, Automation and Response)とは? セキュリティ運用の統合管理ソリューション。 様々な情報を集約、分析して発生したインシデントの管理や関係者への通知を自動化する。 IT機器を個別に監視するのではなく、セキュリティインフラ全体を統合管理することで、組織全体のセキュリティを強化する考え方。 SOARするためのモニタリング手段としてUEBA機能付きのSIEMが導入される感じ。 SOARは インシデント対応(Response)までを含む のが大きな違い。 参考サイト SOARとは?意味・定義 | ITトレンド用語 | NTTコミュニケーションズ SOARとは:セキュリティのオーケストレーションと自動化によるレスポンス | Splunk 【関連記事】 ファイヤーウォールの意味/次世代ファイアウォール(NGFW) OWASP ZAPでWordPressサイトをセキュ

オフィスのネットワークが遅い(DNSサーバーからの応答が遅い)

最近ネットワークが遅いと感じることが多かったので調査したときの覚書。 オフィスのネットワーク環境はレンタルオフィスなので、施設提供のLANケーブルにオフィスルーターを接続している。 オフィスルーター: Aterm WX3000HP 1.問題の切り分け PCとオフィスルーターを再起動した後、下記確認する PCのネットワークドライバの更新情報 ルーターのファームウェアバージョン 同じLAN内からdigコマンドなどでDNS応答状況 DNS(名前解決)状況を調査 Windows Terminalからネットワーク環境を調査。 > ipconfig DNSサーバーはオフィスルーター(192.168.10.1)を参照している。 nslookupでレスポンスを見る > nslookup > google.com タイムアウトするか確認。 同じLAN内のLinux仮想マシンからはdigコマンドを実行する。 # dig google.com Google Public DNSに問い合わせる。 # dig @8.8.8.8 google.com 分かったこと 同じドメイン名でもタイミングによってはタイムアウトする。 GoogleとCloudflareのPublic DNSを指定してもタイムアウトする場合がある。 LAN上のどのPCから行っても同じ。 なぜだ? 施設のルーターでDNSパケットを制御しているのかもしれない。 2.Public DNSをオフィスルーターに設定 DHCPから提供されたDNSサーバー(施設ネットワークの出口になっているルーター)ではなくPublic DNSに変更してみる。 GoogleとCloudflareのPublic DNSが有名。 今回はCloudflareを設定してみた。 Public DNS  |  Google Developers Set up 1.1.1.1 on a router · Cloudflare 1.1.1.1 docs 1.1.1.1 - Wikipedia 3.WindowsのDNSサーバーを直接変更 設定 → ネットワーク → アダプターのオプションを変更する からDNSサーバーを指定する 優先DNSサーバー: 1.1.1.1 代替DNSサーバー: 1.0.0.1 施設ルーターの問題ならオフィスルーターやWindo

PHPでTwilio API SDKを叩いてSMS送信を試す

 Twilio APIをPHPから叩いているときの覚書。 環境: PHP 7.4.30, Twilio SDK 6.42.0 公式サイト GitHub - twilio/twilio-php: A PHP library for communicating with the Twilio REST API and generating TwiML. PHP Helper library | Twilio 1.インストール composerを使ってインストールする。 $ composer require twilio/sdk 2.SMS送信サンプル サンプルを実行してみる。 <?php $sid = "ACXXXXXX"; // Your Account SID from www.twilio.com/console $token = "YYYYYY"; // Your Auth Token from www.twilio.com/console $client = new Twilio\Rest\Client($sid, $token); $message = $client->messages->create(   '+819012345678', // Text this number   [     'from' => '+12223334444', // From a valid Twilio number     'body' => "テスト\n送信",   ] ); print $message->sid; print $message->status;  簡単に送れた。 MessageInstanceを返すので詳細はソースコードを読んだ方が分かりやすい。 送信ログはTwilio Consoleの電話番号を選択したMessages logでも確認できる。 3.Twilio Lookup APIを試す Lookup APIは電話番号が正しい形式かキャリア情報を取得できる。 参考サイト Twilio Lookup API – SMSを送信する前に電話番号の詳細情報を取得する #twilio |

Microsoft Graph PHP SDK v2.0を試す

Microsoft Graph APIをPHPからアクセスしようとしいるときにMicrosoft Graph PHP SDKの2.0-RCがリリースされていたので試したときの覚書。 環境: PHP 7.4.30, Microsoft Graph PHP SDK 2.0.0-RC6 公式サイト GitHub - microsoftgraph/msgraph-sdk-php: Microsoft Graph Library for PHP. Tags · microsoftgraph/msgraph-beta-sdk-php · GitHub PHP 7.4以上。 v2.0を試すときはMicrosoft Graph PHP SDK Upgrade Guideとサンプルコードを参考にする。 msgraph-sdk-php/UPGRADING.md at feat/kiota-preview · microsoftgraph/msgraph-sdk-php · GitHub msgraph-sdk-php/Examples.md at feat/kiota-preview · microsoftgraph/msgraph-sdk-php · GitHub Postmanのチュートリアルをやっていないと理解できないと思う。 Microsoft Graph API + PostmanでOneDriveにファイルアップロード あとPhpStormとかでソースコードを読みながらでないと使い方が分からない。 ※ 公式ドキュメントはEnglish(United States)に変更しないとPHP SDKのサンプルコードが表示されない。 1.ドライブ情報取得 v2.0からはAccessTokenの管理はSDKがやってくれるようになった。 参考:  Get Drive - Microsoft Graph beta | Microsoft Docs $tokenRequestContext = new \Microsoft\Kiota\Authentication\Oauth\ClientCredentialContext( '6cc440ec-8a1f-4736-ac1d', 'eae64fe9-b7eb-4c4b-b87d', 'vh5