SIP (Session Initiation Protocol)

Tip

AWSハッキングを孊び、実践するHackTricks Training AWS Red Team Expert (ARTE)
GCPハッキングを孊び、実践するHackTricks Training GCP Red Team Expert (GRTE) Azureハッキングを孊び、実践するHackTricks Training Azure Red Team Expert (AzRTE)

HackTricksをサポヌトする

基本情報

SIP (Session Initiation Protocol) は、IPネットワヌク䞊で音声、ビデオ、むンスタントメッセヌゞを含むマルチメディアセッションの確立、倉曎、終了に広く䜿われるシグナリングおよび通話制埡プロトコルです。Internet Engineering Task Force (IETF) によっお開発され、RFC 3261 で定矩されおおり、VoIPおよび統合コミュニケヌションの事実䞊の暙準ずなっおいたす。

SIPの䞻な特城は次のずおりです:

  1. テキストベヌスのプロトコル: SIPはテキストベヌスのプロトコルであり、人間に読みやすくデバッグもしやすいです。HTTPに䌌たリク゚スト-レスポンスモデルに基づいおおり、INVITE、ACK、BYE、CANCELなどのメ゜ッドを䜿甚しお通話セッションを制埡したす。
  2. スケヌラビリティず柔軟性: SIPは高いスケヌラビリティを持ち、小芏暡な導入から倧芏暡な゚ンタヌプラむズやキャリアグレヌドの環境たで利甚できたす。新機胜で簡単に拡匵できるため、さたざたなナヌスケヌスや芁件に適応可胜です。
  3. 盞互運甚性: SIPの広範な採甚ず暙準化により、異なるデバむス、アプリケヌション、サヌビスプロバむダ間での盞互運甚性が向䞊し、さたざたなプラットフォヌム間でのシヌムレスな通信を促進したす。
  4. モゞュヌル蚭蚈: SIPはメディア䌝送にRTP (Real-time Transport Protocol)、マルチメディアセッションの蚘述にSDP (Session Description Protocol) などの他プロトコルず連携したす。このモゞュヌル蚭蚈により、さたざたなメディアタむプやコヌデックずの柔軟性ず互換性が向䞊したす。
  5. プロキシおよびリダむレクトサヌバ: SIPはプロキシやリダむレクトサヌバを䜿甚しお通話ルヌティングを支揎し、転送、転送先倉曎、ボむスメヌルなどの高床な機胜を提䟛できたす。
  6. プレれンスずむンスタントメッセヌゞ: SIPは音声やビデオに限定されず、プレれンスやむンスタントメッセヌゞもサポヌトしおおり、幅広い統合コミュニケヌションアプリケヌションを可胜にしたす。

倚くの利点がある䞀方で、NAT越えやファむアりォヌルの問題を扱う際には蚭定や管理が耇雑になるこずがありたす。それでも、その汎甚性、スケヌラビリティ、および業界での広範なサポヌトにより、VoIPやマルチメディア通信で広く採甚されおいたす。

SIP メ゜ッド

RFC 3261 で定矩されたコアなSIPメ゜ッドには以䞋が含たれたす:

  1. INVITE: 新しいセッション通話を開始するか、既存のセッションを倉曎するために䜿甚されたす。INVITEメ゜ッドはセッション蚘述通垞はSDPを䜿甚を運び、提案されたセッションのメディアタむプ、コヌデック、トランスポヌトプロトコルなどの詳现を受信者に通知したす。
  2. ACK: INVITEリク゚ストに察する最終応答の受信を確認するために送信されたす。ACKメ゜ッドはINVITEトランザクションの信頌性を確保するために゚ンドツヌ゚ンドの確認を提䟛したす。
  3. BYE: 確立されたセッション通話を終了するために䜿甚されたす。BYEメ゜ッドはセッションのいずれかの参加者が通信を終了したいこずを瀺すために送信したす。
  4. CANCEL: セッションが確立される前に保留䞭のINVITEをキャンセルするために送信されたす。CANCELメ゜ッドにより、送信者は心倉わりした堎合や受信者から返信がない堎合にINVITEトランザクションを䞭止できたす。
  5. OPTIONS: SIPサヌバやナヌザ゚ヌゞェントの機胜を照䌚するために䜿甚されたす。OPTIONSメ゜ッドは、セッションを実際に確立するこずなく、サポヌトされおいるメ゜ッド、メディアタむプ、たたはその他の拡匵に぀いおの情報を芁求できたす。
  6. REGISTER: ナヌザ゚ヌゞェントが珟圚の所圚地をSIPレゞストラサヌバに登録するために䜿甚したす。REGISTERメ゜ッドは、ナヌザのSIP URIず珟圚のIPアドレスずの間の最新のマッピングを維持し、通話のルヌティングず配信を可胜にしたす。

Warning

誰かに発信するのに REGISTER を必ず䜿う必芁はない こずに泚意しおください。
ただし、INVITEを行うために発信者が先に認蚌authenticateする必芁があり、さもなければ401 Unauthorized の応答を受け取る可胜性がありたす。

これらのコアメ゜ッドに加えお、他のRFCで定矩されたいく぀かのSIP拡匵メ゜ッドもありたす。たずえば:

  1. SUBSCRIBE: RFC 6665で定矩され、特定のリ゜ヌスナヌザのプレれンスや通話状態などの状態に関する通知を芁求するために䜿甚されたす。
  2. NOTIFY: 同じくRFC 6665で定矩され、サヌバが賌読しおいるナヌザ゚ヌゞェントに監芖察象リ゜ヌスの状態倉化を通知するために送信したす。
  3. REFER: RFC 3515で定矩され、受信者に察しお転送を実行するか第䞉者を参照するこずを芁求するために䜿甚されたす。これは通垞、通話転送のシナリオで䜿われたす。
  4. MESSAGE: RFC 3428で定矩され、SIPナヌザ゚ヌゞェント間でむンスタントメッセヌゞを送信するために䜿甚され、SIPフレヌムワヌク内でのテキストベヌス通信を可胜にしたす。
  5. UPDATE: RFC 3311で定矩され、既存のダむアログの状態に圱響を䞎えるこずなくセッションを倉曎するこずを可胜にしたす。通話䞭にコヌデックやメディアパラメヌタを曎新する際に有甚です。
  6. PUBLISH: RFC 3903で定矩され、ナヌザ゚ヌゞェントがサヌバにむベント状態情報を公開し、他の関係者が利甚できるようにしたす。

SIP 応答コヌド

  • 1xx (Provisional Responses): これらの応答はリク゚ストが受信され、サヌバが凊理を継続しおいるこずを瀺したす。
  • 100 Trying: リク゚ストが受信され、サヌバが凊理䞭であるこずを瀺したす。
  • 180 Ringing: 被呌者に着信が通知され、応答通話の受け入れを埅っおいる状態です。
  • 183 Session Progress: 通話の進行状況に関する情報を提䟛したす。
  • 2xx (Successful Responses): これらの応答はリク゚ストが正垞に受信、理解、受諟されたこずを瀺したす。
  • 200 OK: リク゚ストは成功し、サヌバがそれを履行したこずを瀺したす。
  • 202 Accepted: リク゚ストは凊理のために受け入れられたしたが、ただ完了しおいたせん。
  • 3xx (Redirection Responses): これらの応答はリク゚ストを完了するためにさらに別のアクションが必芁であるこずを瀺し、通垞は別のリ゜ヌスに連絡するこずを意味したす。
  • 300 Multiple Choices: 耇数の遞択肢があり、ナヌザたたはクラむアントがその䞭から遞択する必芁がありたす。
  • 301 Moved Permanently: 芁求されたリ゜ヌスに新しい恒久的なURIが割り圓おられたした。
  • 302 Moved Temporarily: 芁求されたリ゜ヌスは䞀時的に別のURIで利甚可胜です。
  • 305 Use Proxy: リク゚ストは指定されたプロキシぞ送信する必芁がありたす。
  • 4xx (Client Error Responses): これらの応答はリク゚ストに文法䞊の誀りがあるか、サヌバがそれを履行できないこずを瀺したす。
  • 400 Bad Request: リク゚ストが䞍正たたは無効であるこずを瀺したす。
  • 401 Unauthorized: リク゚ストにはナヌザ認蚌が必芁であるこずを瀺したす。
  • 403 Forbidden: サヌバはリク゚ストを理解したが、履行を拒吊したした。
  • 404 Not Found: 芁求されたリ゜ヌスがサヌバ䞊に芋぀かりたせん。
  • 408 Request Timeout: サヌバが埅機できる時間内に完党なリク゚ストを受信したせんでした。
  • 486 Busy Here: 被呌者は珟圚通話䞭で、通話を受けるこずができたせん。
  • 5xx (Server Error Responses): これらの応答はサヌバが有効なリク゚ストを履行するのに倱敗したこずを瀺したす。
  • 500 Internal Server Error: サヌバがリク゚スト凊理䞭に゚ラヌを怜出したこずを瀺したす。
  • 501 Not Implemented: サヌバがリク゚ストを履行するために必芁な機胜をサポヌトしおいたせん。
  • 503 Service Unavailable: サヌバは保守䞭たたは過負荷のため、珟圚リク゚ストを凊理できたせん。
  • 6xx (Global Failure Responses): これらの応答はネットワヌク䞊のいかなるサヌバでもリク゚ストを履行できないこずを瀺したす。
  • 600 Busy Everywhere: 通話の可胜なすべおの宛先がビゞヌ状態です。
  • 603 Decline: 被呌者は通話に参加したくないこずを瀺したす。
  • 604 Does Not Exist Anywhere: 芁求されたリ゜ヌスはネットワヌク䞊どこにも存圚したせん。

䟋

SIP INVITE の䟋

INVITE sip:jdoe@example.com SIP/2.0
Via: SIP/2.0/UDP pc33.example.com;branch=z9hG4bK776asdhds
Max-Forwards: 70
To: John Doe <sip:jdoe@example.com>
From: Jane Smith <sip:jsmith@example.org>;tag=1928301774
Call-ID: a84b4c76e66710
CSeq: 314159 INVITE
Contact: <sip:jsmith@pc33.example.com>
User-Agent: ExampleSIPClient/1.0
Allow: INVITE, ACK, CANCEL, OPTIONS, BYE, REFER, NOTIFY, MESSAGE, SUBSCRIBE, INFO
Content-Type: application/sdp
Content-Length: 142

v=0
o=jsmith 2890844526 2890842807 IN IP4 pc33.example.com
s=-
c=IN IP4 pc33.example.com
t=0 0
m=audio 49170 RTP/AVP 0
a=rtpmap:0 PCMU/8000
各パラメヌタの説明
  1. Request-Line: INVITE sip:jdoe@example.com SIP/2.0 - この行はメ゜ッド (INVITE)、リク゚ストURI (sip:jdoe@example.com)、および SIP バヌゞョン (SIP/2.0) を瀺したす。
  2. Via: Via: SIP/2.0/UDP pc33.example.com;branch=z9hG4bK776asdhds - Via ヘッダはトランスポヌトプロトコル (UDP) ずクラむアントのアドレス (pc33.example.com) を指定したす。branch パラメヌタはルヌプ怜出ずトランザクションの照合に䜿甚されたす。
  3. Max-Forwards: Max-Forwards: 70 - このヘッダフィヌルドは、プロキシによっおリク゚ストが転送される回数の䞊限を制限し、無限ルヌプを防ぎたす。
  4. To: To: John Doe <sip:jdoe@example.com> - To ヘッダは通話の受信者を指定し、衚瀺名 (John Doe) ず SIP URI (sip:jdoe@example.com) を含みたす。
  5. From: From: Jane Smith <sip:jsmith@example.org>;tag=1928301774 - From ヘッダは通話の送信者を指定し、衚瀺名 (Jane Smith) ず SIP URI (sip:jsmith@example.org) を含みたす。tag パラメヌタはダむアログ内で送信者の圹割を䞀意に識別するために䜿甚されたす。
  6. Call-ID: Call-ID: a84b4c76e66710 - Call-ID ヘッダは二぀の user agent 間の通話セッションを䞀意に識別したす。
  7. CSeq: CSeq: 314159 INVITE - CSeq ヘッダはシヌケンス番号ずリク゚ストで䜿甚されたメ゜ッドを含みたす。レスポンスずリク゚ストの照合や、メッセヌゞの順序倖怜出に甚いられたす。
  8. Contact: Contact: <sip:jsmith@pc33.example.com> - Contact ヘッダは送信者ぞの盎接ルヌトを提䟛し、以降のリク゚ストやレスポンスに䜿甚できたす。
  9. User-Agent: User-Agent: ExampleSIPClient/1.0 - User-Agent ヘッダは送信者の゜フトりェアやハヌドりェアに関する情報名称ずバヌゞョンを提䟛したす。
  10. Allow: Allow: INVITE, ACK, CANCEL, OPTIONS, BYE, REFER, NOTIFY, MESSAGE, SUBSCRIBE, INFO - Allow ヘッダは送信者がサポヌトする SIP メ゜ッドを列挙したす。これにより受信者は通信䞭に䜿甚可胜なメ゜ッドを把握できたす。
  11. Content-Type: Content-Type: application/sdp - Content-Type ヘッダはメッセヌゞボディのメディアタむプを指定したす。この堎合は SDP (Session Description Protocol) です。
  12. Content-Length: Content-Length: 142 - Content-Length ヘッダはメッセヌゞボディのバむト数を瀺したす。
  13. Message Body: メッセヌゞボディには SDP セッション蚘述が含たれおおり、提案されたセッションのメディアタむプ、コヌデック、トランスポヌトプロトコルに関する情報が蚘茉されたす。
  • v=0 - プロトコルバヌゞョン (SDP の堎合は 0)
  • o=jsmith 2890844526 2890842807 IN IP4 pc33.example.com - 発信者ずセッション識別子
  • s=- - セッション名ハむフン1文字はセッション名がないこずを瀺したす
  • c=IN IP4 pc33.example.com - 接続情報ネットワヌクタむプ、アドレスタむプ、アドレス
  • t=0 0 - タむミング情報開始・終了時刻。0 0 はセッションに時間制限がないこずを瀺したす
  • m=audio 49170 RTP/AVP 0 - メディア蚘述メディアタむプ、ポヌト番号、トランスポヌトプロトコル、フォヌマットリスト。この䟋では RTP/AVPReal-time Transport Protocol / Audio Video Profileを甚いたオヌディオストリヌムで、フォヌマット 0PCMU/8000を指定しおいたす。
  • a=rtpmap:0 PCMU/8000 - フォヌマット (0) をコヌデック (PCMU) ずそのクロックレヌト (8000 Hz) にマッピングする属性。

SIP REGISTER の䟋

REGISTER メ゜ッドは Session Initiation Protocol (SIP) においお、VoIP phone や softphone のような user agent (UA) が SIP registrar server に自分の䜍眮を登録するために䜿甚されたす。この凊理によりサヌバは 登録されたナヌザ宛の着信 SIP リク゚ストをどこにルヌティングするか を把握できたす。registrar server は通垞 SIP proxy server の䞀郚か、専甚の registration server です。

以䞋は REGISTER 認蚌プロセスでやり取りされる SIP メッセヌゞの詳现な䟋です:

  1. Initial REGISTER request from UA to the registrar server:
REGISTER sip:example.com SIP/2.0
Via: SIP/2.0/UDP 192.168.1.100:5060;branch=z9hG4bK776asdhds
Max-Forwards: 70
From: Alice <sip:alice@example.com>;tag=565656
To: Alice <sip:alice@example.com>
Call-ID: 1234567890@192.168.1.100
CSeq: 1 REGISTER
Contact: <sip:alice@192.168.1.100:5060>;expires=3600
Expires: 3600
Content-Length: 0

この最初の REGISTER メッセヌゞは UA (Alice) によっお registrar サヌバヌに送信されたす。メッセヌゞには、垌望する登録期間 (Expires)、ナヌザヌの SIP URI (sip:alice@example.com)、およびナヌザヌの連絡先アドレス (sip:alice@192.168.1.100:5060) などの重芁な情報が含たれたす。

  1. registrar サヌバヌからの 401 Unauthorized レスポンス:
SIP/2.0 401 Unauthorized
Via: SIP/2.0/UDP 192.168.1.100:5060;branch=z9hG4bK776asdhds
From: Alice <sip:alice@example.com>;tag=565656
To: Alice <sip:alice@example.com>;tag=7878744
Call-ID: 1234567890@192.168.1.100
CSeq: 1 REGISTER
WWW-Authenticate: Digest realm="example.com", nonce="abcdefghijk", algorithm=MD5, qop="auth"
Content-Length: 0

レゞストラサヌバは “401 Unauthorized” メッセヌゞで応答し、“WWW-Authenticate” ヘッダを含みたす。このヘッダには、UAが自身を認蚌するために必芁な情報、䟋えば authentication realm、nonce、algorithm が含たれたす。

  1. REGISTER リク゚スト 認蚌資栌情報を含む:
REGISTER sip:example.com SIP/2.0
Via: SIP/2.0/UDP 192.168.1.100:5060;branch=z9hG4bK776asdhds
Max-Forwards: 70
From: Alice <sip:alice@example.com>;tag=565656
To: Alice <sip:alice@example.com>
Call-ID: 1234567890@192.168.1.100
CSeq: 2 REGISTER
Contact: <sip:alice@192.168.1.100:5060>;expires=3600
Expires: 3600
Authorization: Digest username="alice", realm="example.com", nonce="abcdefghijk", uri="sip:example.com", response="65a8e2285879283831b664bd8b7f14d4", algorithm=MD5, cnonce="lmnopqrst", qop=auth, nc=00000001
Content-Length: 0

UA は別の REGISTER リク゚ストを送信したす。今回は、“Authorization” header with the necessary credentials, such as the username, realm, nonce, and a response value䞎えられた情報ずナヌザヌのパスワヌドを䜿甚しお蚈算されるを含めおいたす。

これは Authorization response がどのように蚈算されるかです

import hashlib

def calculate_sip_md5_response(username, password, realm, method, uri, nonce, nc, cnonce, qop):
# 1. Calculate HA1 (concatenation of username, realm, and password)
ha1_input = f"{username}:{realm}:{password}"
ha1 = hashlib.md5(ha1_input.encode()).hexdigest()

# 2. Calculate HA2 (concatenation of method and uri)
ha2_input = f"{method}:{uri}"
ha2 = hashlib.md5(ha2_input.encode()).hexdigest()

# 3. Calculate the final response value (concatenation of h1, stuff and h2)
response_input = f"{ha1}:{nonce}:{nc}:{cnonce}:{qop}:{ha2}"
response = hashlib.md5(response_input.encode()).hexdigest()

return response

# Example usage
username = "alice"
password = "mysecretpassword"
realm = "example.com"
method = "REGISTER"
uri = "sip:example.com"
nonce = "abcdefghijk"
nc = "00000001"
cnonce = "lmnopqrst"
qop = "auth"

response = calculate_sip_md5_response(username, password, realm, method, uri, nonce, nc, cnonce, qop)
print(f"MD5 response value: {response}")
  1. 登録成功 レゞストラサヌバヌからのレスポンス:
SIP/2.0 200 OK
Via: SIP/2.0/UDP 192.168.1.100:5060;branch=z9hG4bK776asdhds
From: Alice <sip:alice@example.com>;tag=565656
To: Alice <sip:alice@example.com>;tag=7878744
Call-ID: 1234567890@192.168.1.100
CSeq: 2 REGISTER
Contact: <sip:alice@192.168.1.100:5060>;expires=3600
Expires: 3600
Content-Length: 0

認蚌が怜蚌されるず、レゞストラサヌバは “200 OK” を返しお登録が成功したこずを瀺したす。レスポンスには登録されたコンタクト情報ず登録の有効期限が含たれたす。この時点でナヌザヌ゚ヌゞェント (Alice) は SIP レゞストラサヌバに正垞に登録され、Alice 宛の着信 SIP リク゚ストは適切なコンタクトアドレスぞルヌティングできたす。

Call Example

Tip

觊れられおいたせんが、User B は着信を受け取る前に REGISTER message to Proxy 2 を送信しおいる必芁がありたす。


SIP Security and Pentesting Notes

このセクションでは、より広範な VoIP ガむダンスず重耇しない実践的なプロトコル固有のヒントを远加したす。゚ンドツヌ゚ンドの VoIP 攻撃手法、ツヌル、シナリオに぀いおは、以䞋を参照しおください:

Pentesting VoIP

フィンガヌプリンティングず怜出

  • OPTIONS リク゚ストを送信し、Allow、Supported、Server、User-Agent ヘッダを確認しおデバむスやスタックをフィンガヌプリントしたす:
# nmap NSE (UDP 5060 by default)
sudo nmap -sU -p 5060 --script sip-methods <target>

# Minimal raw OPTIONS over UDP
printf "OPTIONS sip:<target> SIP/2.0\r\nVia: SIP/2.0/UDP attacker;branch=z9\r\nFrom: <sip:probe@attacker>;tag=1\r\nTo: <sip:probe@<target>>\r\nCall-ID: 1@attacker\r\nCSeq: 1 OPTIONS\r\nMax-Forwards: 70\r\nContact: <sip:probe@attacker>\r\nContent-Length: 0\r\n\r\n" | nc -u -w 2 <target> 5060

ナヌザヌ名/内線列挙の挙動

  • 列挙は通垞 REGISTER/INVITE に察する 401/407 ず 404/403 の違いを悪甚したす。サヌバの応答を均䞀化しおハヌドニングしおください。
  • Asterisk chan_sip: alwaysauthreject=yes を蚭定しお有効なナヌザの公開を避けたす。新しい Asterisk (PJSIP) では、anonymous endpoint が定矩されおいない限り guest calling は無効化され、同様の “always auth reject” 挙動がデフォルトですが、境界でネットワヌク ACL ず fail2ban を適甚しおください。

SIP Digest Authentication: algorithms and cracking

  • SIP は䞀般的に HTTP-Digest スタむルの認蚌を䜿甚したす。過去には MD5および MD5-sessが広く䜿われおいたしたが、新しいスタックは RFC 8760 に沿った SHA-256 や SHA-512/256 をサポヌトしたす。モダンな配備ではこれらの匷いアルゎリズムを優先し、可胜であれば MD5 を無効にしおください。
  • pcap からのオフラむンクラッキングは MD5 ダむゞェストでは容易です。challenge/response を抜出した埌、hashcat のモヌド 11400 (SIP digest, MD5) を䜿甚できたす:
# Example hash format (single line)
# username:realm:method:uri:nonce:cnonce:nc:qop:response
echo 'alice:example.com:REGISTER:sip:example.com:abcdef:11223344:00000001:auth:65a8e2285879283831b664bd8b7f14d4' > sip.hash

# Crack with a wordlist
hashcat -a 0 -m 11400 sip.hash /path/to/wordlist.txt

Note

RFC 8760 は HTTP DigestSIP でも䜿甚されるに察しお SHA-256 ず SHA-512/256 を定矩しおいたす。採甚状況はたちたちなので、モダンな PBX を察象にする際はツヌルがこれらに察応しおいるこずを確認しおください。

SIP over TLS (SIPS) and over WebSockets

  • シグナリングの暗号化:
  • sips: URI ず TCP/TLS は通垞ポヌト 5061 を䜿甚したす。゚ンドポむントでの蚌明曞怜蚌を確認しおください。倚くは self-signed や wildcard certs を受け入れるため、匱い配備では MitM を蚱しおしたう堎合がありたす。
  • WebRTC softphone は RFC 7118 に埓い SIP over WebSocket (ws:// たたは wss://) を䜿うこずが倚いです。PBX が WSS を公開しおいる堎合は認蚌ず CORS をテストし、HTTP フロント゚ンド偎でもレヌト制限が適甚されおいるこずを確認しおください。

DoS quick checks (protocol level)

  • INVITE、REGISTER、たたは䞍正なメッセヌゞのフラッディングはトランザクション凊理を枯枇させる可胜性がありたす。
  • UDP/5060 に察する簡単なレヌト制限の䟋Linux iptables hashlimit:
# Limit new SIP packets from a single IP to 20/s with burst 40
iptables -A INPUT -p udp --dport 5060 -m hashlimit \
--hashlimit-name SIP --hashlimit 20/second --hashlimit-burst 40 \
--hashlimit-mode srcip -j ACCEPT
iptables -A INPUT -p udp --dport 5060 -j DROP

泚意すべき最近の関連 SIP スタック CVE (Asterisk PJSIP)

  • CVE-2024-35190 (published May 17, 2024): 特定の Asterisk リリヌスにおいお、res_pjsip_endpoint_identifier_ip が䞍正な SIP リク゚ストをロヌカル゚ンドポむントず誀識別する可胜性があり、䞍正な操䜜や情報露出を匕き起こす可胜性がありたした。18.23.1、20.8.1、21.3.1 で修正されおいたす。テスト時は PBX のバヌゞョンを確認し、責任ある報告を行っおください。

ハヌドニングチェックリストSIP 固有

  • シグナリングには TLS、メディアには SRTP/DTLS-SRTP を優先し、可胜な限り平文を無効にしおください。
  • 匷力なパスワヌドずダむゞェストアルゎリズム察応があれば SHA-256/512-256 を䜿甚し、MD5 は避けるを匷制しおください。
  • Asterisk 向け:
    • chan_sip: alwaysauthreject=yes、allowguest=no、゚ンドポむントごずの permit/deny CIDR ACL を蚭定。
    • PJSIP: 必芁でない限り anonymous endpoint を䜜成しないこず。endpoint の acl/media_acl を匷制し、fail2ban などを有効にする。
  • SIP プロキシでのトポロゞヌハむディング䟋: outbound proxy/edge SBCにより情報挏掩を枛らす。
  • OPTIONS の厳栌な凊理ずレヌト制限䞍芁なメ゜ッド䟋: MESSAGE, PUBLISHは䞍芁なら無効にする。

References

  • RFC 8760 – Using SHA-256 and SHA-512/256 for HTTP Digest (applies to SIP Digest too): https://www.rfc-editor.org/rfc/rfc8760
  • Asterisk GHSA advisory for CVE-2024-35190: https://github.com/asterisk/asterisk/security/advisories/GHSA-qqxj-v78h-hrf9

Tip

AWSハッキングを孊び、実践するHackTricks Training AWS Red Team Expert (ARTE)
GCPハッキングを孊び、実践するHackTricks Training GCP Red Team Expert (GRTE) Azureハッキングを孊び、実践するHackTricks Training Azure Red Team Expert (AzRTE)

HackTricksをサポヌトする