ローグウェーブソフトウェアのブログ

開発をシンプルに 安全で高品質のコードを 素早くお客様のもとへ

TotalViewデバッガのptrace設定

こんにちは、ローグウェーブのセールスエンジニア 柄澤(からさわ)です。

TotalViewやそのバッチ実行形態であるtvscriptを起動する際に以下のメッセージが出ることがあります。

WARNING: Nonzero kernel.yama.ptrace_scope sysctl setting detected.

A security restriction may be in place that prevents attaching to a process that was not directly started by the current process. This security restriction may prevent debugging applications that are not directly started by the debugger, including most MPI jobs, attaching to running processes or enabling the Replay feature. You may be able to turn off this feature by entering:

echo 0 | sudo tee /proc/sys/kernel/yama/ptrace_scope

This will enable debugging and attaching to processes. This setting will last until the system is rebooted. For a permanent change, change the kernel.yama.ptrace_scope setting on the last line in /etc/sysctl.d/10-ptrace.conf.

ptraceとはUnixLinuxで他のプロセスを制御するためのシステムコールであり、TotalViewもデバッグ機能を実現するためにこの機能を利用しています。

ptrace_scopeの値が1など非ゼロの場合はデバッグがうまく実行できませんので必ず上記のコマンドを実行してptrace_scopeの値を0に変更してください。メッセージに記載されているように、このコマンドによる設定は一時的なもので、システムを再起動すると元に戻ってしまうため、永続的な設定とするためには /etc/sysctl.d/10-ptrace.conf の末尾にある数字を0に変えてください。このファイルには、ptraceがデバッグのためのシステムで、セキュリティ上の理由でデフォルトが1になっている旨が記載されています。

The PTRACE system is used for debugging. With it, a single user process
can attach to any other dumpable process owned by the same user. In the
case of malicious software, it is possible to use PTRACE to access
credentials that exist in memory (re-using existing SSH connections,
extracting GPG agent information, etc).

A PTRACE scope of “0” is the more permissive mode. A scope of “1” limits
PTRACE only to direct child processes (e.g. “gdb name-of-program” and
“strace -f name-of-program” work, but gdb’s “attach” and “strace -fp $PID”
do not). The PTRACE scope is ignored when a user has CAP_SYS_PTRACE, so
“sudo strace -fp $PID” will work as before. For more details see:
https://wiki.ubuntu.com/SecurityTeam/Roadmap/KernelHardening#ptrace

For applications launching crash handlers that need PTRACE, exceptions can
be registered by the debugee by declaring in the segfault handler
specifically which process will be using PTRACE on the debugee:
prctl(PR_SET_PTRACER, debugger_pid, 0, 0, 0);

In general, PTRACE is not needed for the average running Ubuntu system.
To that end, the default is to set the PTRACE scope to “1”. This value
may not be appropriate for developers or servers with only admin accounts.

TotalViewの動作がおかしいと思ったらご確認ください。

ローグウェーブのセールスエンジニア 柄澤(からさわ)

Windows GUI構築ライブラリ Stingray 12.2 リリース

ローグウェーブソフトウェアのStingrayが最新版12.2に更新されました。Stingrayを使用することで、Microsoft 製品のルックアンドフィールと操作感に合致した高度なアプリケーションをエンドユーザーに提供できるようになります。

今回の更新内容は最新の開発環境への対応です。

詳細は 英語ドキュメントページにあるリリースノートをご覧ください。

Stingrayのトライアルお申し込みバージョンアップリクエストもお待ちしております。

ローグウェーブソフトウェア セールスエンジニア 柄澤(からさわ)

最近のマルウェア事情: WannaCry、DoublePulsar、EternalRocks - CodeBuzzから

こんにちは、ローグウェーブの柄澤です。日本でもWannaCryなどのランサムウェアマルウェアが一般メディアでも話題になりました。おなじみOSSアーキテクトのAndrew Pomponioが最近のマルウェア事情をまとめましたのでご紹介します。

最近のマルウェア事情: WannaCry、DoublePulsar、EternalRocks

blog.klocwork.com

ソフトウェアセキュリティや脆弱性の世界ではニューストピックに事欠かず、先週もその状況は変わりません。今回のブログでは、数か月前に流出したNSAツールを利用した2つのマルウェアについて説明します。

WannaCryについては無数のブログが書かれています。この脆弱性は、昨年4月にShadow Brokersに記載された、流出したNSAツールのうちの2つを使用しています。流出した7つのツールのうち、WannaCryが必要としたのはEternalBlueとDoublePulsarだけでした。 EternalBlueは、Microsoftのサーバーメッセージブロック(SMB)プロトコルを利用(エクスプロイト)します。 WindowsのSMBv1は攻撃者から特別な細工をしたパケットを受け取り、ターゲットシステム上でコードを実行できるようにします。

DoublePulsarは一種のバックドアで、わずか数週間でWindowsマシンが20万台以上も感染しました。DoublePulsarはカーネルモードで動作し、攻撃者にシステムの高度な制御権を与えます。ping、kill、execが実行可能になり、このexecを使ってマルウェアをターゲットシステムにロードするために使用されます。

EternalRocksは進化したマルウェアの最新型です

WannaCryについてもっと知りたい場合は、ググることをお勧めします。ここではWannaCryからより新しいマルウェアに話題を進めます。WannaCryはShadow Brokersツールキットの2つを使用しましたが、EternalRocksは7つを使用しています。お分かりでしょうか、7つです!WannaCryは単にSMBv1をエクスプロイトしただけですが、EternalRocksはSMBv1から3までと、SMB偵察ツールSMBTouch、インターネット上で開いたSMBポートを狙うための有名なツールArchTouchをターゲットにしています。 DoublePulsarも同様に利用されています。 EternalRocksは専門家の目を欺くためにWannaCryとして偽装する方法を見つけました。使用しているツールの数の他に異なる点は、EternalRocksの場合侵入されたシステムの制御を取得し、将来の攻撃に備えて潜伏することです。

DoublePulsarはも、同じLAN上の他のシステムにワームを広めるために使用されます。 UpdateInstaller.exeとtaskhost.exeを実行することによりEternalRocksのインストールが開始されます。 24時間が経過すると、EternalRocksはコマンドと制御を担うサーバーに対して応答し、このサーバーは先述の7つのSMBエクスプロイトツールを送信します。svchost.exeプロセスを利用してTorをダウンロードし、ubgdgno5ewkhmpy.onionとともにインストールします。ひとたびエクスプロイトがインストールされると、EternalRocksはWANをスキャンして、SMBポートが開いているコンピュータを探します。

なぜマルウェアが発生し、どのように防ぐのか

壊れたレコードかと思われるでしょうが、再度繰り返します。私たちの結論は、

  1. システムを最新の状態に保つ
  2. デフォルトログインではなくパスワードを使用する、あるいは全くログインしないこと。

しかし、この結論では、私は資本主義的な視点を提起したいと思います。

このような醜悪なエクスプロイトが米政府に利用され、私たちの気づかないうちに悪用されていたこの時代に、製品やサービスの質について何を語ることができるでしょうか?私たちがどんなに品質保証に時間をかけても、こうした欠陥を見つけ出してしまうような高度な技術を、私たちの米政府は所有しているのでしょうか?

あるいは、これらの脆弱性は、単に締め切りに追われた複数の部門による不注意な見落としの結果であり、最終的には、株主を満足させるために不完全で不安定な製品が市場に押し出されるのでしょうか?私は常にこうした疑問を熟考していますが、企業の一部であるチームにとって実現不能で不快な作業であるようです。

これらの仮説は、私たちが品質よりも利益を重視する世界に住んでいる限り続くことになるでしょう。

編集後記

いかがだったでしょうか。末尾に突然意外な感情が吐露されてやや驚いた方もいるかもしれません。オープンソースやセキュリティの世界に長年親しんで来たエンジニアにとって、品質保証やコスト、利便性、政府による安全保障(監視)と市民の自由(暗号化)といった諸要素の間のバランスは常に関心事なのでしょう。

blog.roguewave.jp

blog.roguewave.jp

ローグウェーブのオープンソース関連のサービスは、Andrew Pをはじめ、すぐれたOSSアーキテクトたちが活躍しています。ご興味がおありの方はぜひご連絡ください

ローグウェーブ セールスエンジニア 柄澤(からさわ)