この放送では、クラウドストライクというセキュリティ会社のソフトウェアにバグが発生し、世界中のWindowsマシンがフリーズしたり、飛行機や発電所が停止するという重大な問題が起きたことが説明されています。特に問題となったのは、システムの重要部分である「ドライバー」と呼ばれるソフトウェアモジュールにバグがあったため、パソコンが正常に起動しなくなり、復旧が非常に困難だったことです。

ドライバーは、アプリケーションとは異なり、システム全体にアクセスできる重要な役割を持っており、バグが発生すると深刻な影響を及ぼします。クラウドストライクはセキュリティを強化するためにこのような高度な権限を持つドライバーを使用していましたが、それが今回の大規模なトラブルの原因となりました。

要するに、ドライバーにバグがあると、パソコンの基本的な動作が停止し、復旧が非常に難しくなるため、今回のような大問題が発生してしまったということです。

【全文】

では
この放送はカジュアル面談関係の求人が
1万8000件以上
企業との会話がから始められる
電飾マッチングサイトグリーンの映像でお届けします
こんにちは
今日は日本のニュースになっていると思いますけど
世界中のWindowsマシンをフリーズさせて
飛行機を止めちゃったり
発電所を止めちゃったりした
大問題が起こしたクラウドストライクという会社の
ソフトのバグなんですけど
なんでそんなことが起こっちゃったかという話を
今日は簡単に
人間の心を
人間の体に例えて説明しようと思います
僕らの普段触れているアプリ
例えばスマホのアプリとか
Windowsアプリでもそうですけど
アプリっていうのは
人間の体でいうと
洋服とかがアクセサリーみたいなもので
確かに変な洋服を着ちゃうと
動きにくかったり重かったり
寒かったりするかもしれないけど
でもたかが洋服なんで
脱いで別の服に着ればいいと
っていう話なんですけど
今回クラウドストライクが
バグを発生させた
ソフトウェアのモジュールっていうのは
アプリじゃなくて
ドライバーって呼ばれるものなんですよ
Windowsが立ち上がるときに
システムレベルで呼んできて
ドライバーっていうのは
アプリケーションと違って
かなり強い特権を持って
システムの
いろんなリソースにアクセスできるんですけど
人間に例えると
洋服なんかみたいな
簡単なもんじゃなくて
例えば心臓にパルスを送る
ペースメーカーだったり
もしくは人工臓器みたいな
存在なんですよ
ドライバーっていうのは
人間が生きていく上で
必須なもの
コンピューターが立ち上がって
ドライバーがちゃんと動くっていうのは
ものすごく大事なことで
そこにバグがあると
当然そのペースメーカーに
バグがあったら
人間死んじゃうじゃないですか
心臓が止まるように
それと同じように
ドライバーにバグがあると
パソコンが立ち上がらなくなっちゃうんですよ
有名なブルースクリーン
って言われちゃって
厄介なことに
アプリのバグぐらいだと
一回よく電源切って
立ち直す
リブートすると
治るじゃないですか
ドライバーのバグの場合は
そうはいかないんですよ
ドライバーのバグで
もう一回リブートしようとしても
またWindowsでそれを
ロードに行くので
同じバグに当たってしまって
一回電源切って
もう一回電源入れても
ブルースクリーンになるという
非常に厄介な状況で
でも普通の人
電力会社で
普通にシステムいじってる人とか
空港のパネル
ゲートでチェックイン
受付してる人とか
今は直せないですよね
あれを直すには
Windowsを
セーフモードっていう
特殊なモードで立ち上げて
まずドライバーなしで
Windowsを立ち上げた上で
悪さをしてるドライバーを外す
そして立ち上げるってことを
しなきゃいけなくて
普通の人はできないですよね
パソコンに知識のある人じゃなきゃできないので
普通のパソコンユーザーにはできない
というような問題なので
復活のしようがないということで
またこの問題が長引いちゃって
復旧に掃除がかかってる
そういう状況なんですよ
ということで
ドライバーにバグを起こしちゃいけないですよね
アプリだってバグなんかは起こしちゃいけないんだけど
ドライバー
OSとかドライバーとか
そういう時計を持って
走るような部分にバグがあるっていうのは
本当にこういう致命的な
問題を生じさせるので
こんな大きな事件になってしまいました
そもそもなんで
クラウドストライクが
そんなにアプリじゃなくて
ベースメーカーみたいに
システムの中に
入り込まなきゃいけなかったかっていうと
要はクラウドストライクって
セキュリティーの会社なので
ハッカーがパソコンを乗っ取った時に
それを感知するとか
変なウイルスが入ってた時に
見つけるとかしなきゃいけないので
ある意味警察官みたいな役目を
してるので
アプリだったら
自分が担当してるアプリが
アクセスできる領域にしか
アクセスできないんだけど
それだとウイルスが入ってきても
認知できないので
特殊な特権を
警察官みたいな特権を持って
システムの部分にでも
アクセスできるようになってきた
っていう仕組みだからこそ
ドライバーを出なきゃいけないからこそ
バグだったらいけなかったんだけど
大失敗ですよね
私もOS作ってた
エンジニアの一人で
そのバグを
今回生じさせてしまった人の
気持ちになると
もういたたまれないですよね
というぐらいになるんだけど
大不祥事ですと
ということで
普及に時間を買っても
そんなのが理由です
ということで
今回は漠然とですけど
要は人間に例えれば
ベースメーカーとか
人工臓器に相当するような
ドライバーっていう部分に
バグが生じたせいで
こんなことになってしまった
ということだけ
ちょっと頭に残して
おいていただければいいと思います

 

なぜクラウドストライクはwindowsパソコンの主要な部分にアクセスできるのですか?

クラウドストライクがWindowsパソコンの主要な部分にアクセスできる理由は、彼らが提供するセキュリティソフトウェアがシステム全体を監視し、保護するために特別な権限を必要とするからです。具体的には、以下のような理由があります:

1. セキュリティ保護のための高度な監視能力
クラウドストライクのソフトウェアは、ウイルスやマルウェアなどの脅威からシステムを保護するために、システムの深いレベルにアクセスする必要があります。これにより、通常のアプリケーションでは検知できないような、システムの奥深くに潜んでいる脅威を検出することができます。

2. 特権的なアクセス権限
セキュリティソフトウェアが効果的に機能するためには、システム内のあらゆる動作を監視し、必要に応じて介入する能力が必要です。そのため、クラウドストライクのソフトウェアは「ドライバー」と呼ばれるシステムレベルのソフトウェアコンポーネントとして動作します。ドライバーは、OSの重要な部分にアクセスし、システムリソースを管理するための特権的なアクセス権限を持っています。

3. リアルタイムの脅威検出と対策
ハッカーやマルウェアがシステムに侵入した場合、その活動をリアルタイムで検出し、対処する必要があります。このため、クラウドストライクのようなセキュリティソフトは、OSのカーネル(中核部分)やシステムプロセスに対して、直接的にアクセスし、異常な動作を即座に検知・阻止できるように設計されています。

4. セキュリティ対策の効果を最大化
クラウドストライクは、セキュリティを強化するために、通常のアプリケーションよりも深いレベルでシステムを監視し、保護する必要があります。このために、Windowsの主要部分(カーネルやドライバー)にアクセスする能力が必要です。

このような理由から、クラウドストライクはWindowsパソコンの主要な部分にアクセスできる特権的な位置にあり、その結果、システムの安全性を高めることができる一方で、バグが発生するとシステム全体に重大な影響を与えるリスクも伴います。

Windowsパソコンの主要な部分にアクセスできる特権を持っている企業はどの程度いますか?

Windowsパソコンの主要な部分(カーネルやドライバー)にアクセスできる特権を持っている企業は、以下のような特定の種類の企業に限られています。これらの企業は、特定の目的のためにシステムの深いレベルにアクセスする必要があり、そのための特権を持っています。

1. セキュリティソフトウェア企業
例: クラウドストライク、シマンテック、マカフィー、トレンドマイクロなど。
理由: ウイルス対策ソフトやエンドポイントセキュリティソフトウェアは、システム全体を保護するために、カーネルやシステムドライバーにアクセスする必要があります。これにより、システムの奥深くで動作するマルウェアを検出し、除去することが可能になります。
2. ハードウェアドライバーの提供企業
例: インテル、NVIDIA、AMD、リアルテックなどのハードウェアメーカー。
理由: これらの企業は、自社のハードウェア(例: グラフィックカード、ネットワークカード、チップセットなど)を動作させるために必要なドライバーを提供します。これらのドライバーは、OSとハードウェアの間のインターフェースを提供するため、システムの深いレベルにアクセスします。
3. 仮想化技術を提供する企業
例: VMware、マイクロソフト(Hyper-V)、オラクル(VirtualBox)など。
理由: 仮想化ソフトウェアは、複数のOSを同時に実行するために、システムのリソースを仮想化し、管理する必要があります。このため、カーネルやドライバーにアクセスし、直接的にシステムリソースを制御する特権が必要です。
4. 特定のシステムツールを提供する企業
例: パーティション管理ソフトウェアの提供企業(例: パラゴン、EaseUS)、ディスク暗号化ソフトウェアの提供企業(例: BitLocker、VeraCrypt)。
理由: これらのツールは、ディスク管理や暗号化のためにシステムレベルでの操作を行う必要があり、ドライバーやカーネルにアクセスする特権を持っています。
5. OS開発企業
例: マイクロソフト(Windows)、Red Hat(Linux)、Apple(macOS)。
理由: これらの企業は、OS自体を開発しているため、システム全体のあらゆる部分にアクセスする特権を持っています。
結論
Windowsの主要な部分にアクセスできる特権を持っている企業は、主にセキュリティソフトウェア、ハードウェアドライバー、仮想化技術、システムツール、およびOS開発に関連する企業に限られます。これらの企業は、特定の機能を提供するためにシステムの深いレベルにアクセスする必要があり、そのための特権を持つことが許されています。一般的なアプリケーション開発者には、このような特権は付与されません。

How can these companies ensure safety?

Companies with access to the critical components of a Windows system, such as the kernel and system drivers, must implement rigorous security practices to ensure the safety and integrity of their software. Here are some key strategies they use:

1. Code Review and Quality Assurance (QA)
Rigorous Code Review: All code, especially that which interacts with the kernel or drivers, undergoes multiple levels of peer review by experienced developers. This helps catch potential vulnerabilities or bugs before the code is released.
Automated Testing: Extensive automated testing, including unit tests, integration tests, and system tests, is conducted to ensure the software behaves as expected under various conditions.
Manual QA: In addition to automated testing, manual QA processes are in place to test the software in real-world scenarios, further reducing the risk of errors.
2. Security Audits
Internal Audits: Regular internal security audits are conducted to review the code and system architecture for potential vulnerabilities.
External Audits: Companies often employ third-party security firms to perform external audits and penetration testing. These audits help identify vulnerabilities that internal teams might have missed.
3. Code Signing
Digital Signatures: All drivers and critical software components are digitally signed with a cryptographic certificate. This ensures that the code is from a trusted source and has not been tampered with. Windows enforces strict rules regarding unsigned drivers, preventing them from being loaded by default.
Certificate Management: Companies must manage their code-signing certificates securely, ensuring they are not compromised. If a certificate is compromised, it can lead to malicious code being signed and trusted by systems.
4. Secure Development Lifecycle (SDL)
Security Training: Developers receive ongoing training on secure coding practices, helping them understand how to write secure code and avoid common pitfalls like buffer overflows, race conditions, and privilege escalation.
Threat Modeling: Before development begins, teams engage in threat modeling to anticipate potential security risks and design the software to mitigate these threats from the outset.
Secure Libraries: Developers use well-vetted, secure libraries and frameworks that have been proven to handle security-critical tasks properly, such as encryption, authentication, and data handling.
5. Regular Patching and Updates
Vulnerability Patching: When vulnerabilities are discovered, companies are responsible for promptly issuing patches to fix them. This includes both the software itself and any dependencies it uses.
Automatic Updates: Companies often deploy automatic updates to ensure that users are always running the latest, most secure version of the software.
6. Monitoring and Incident Response
Real-Time Monitoring: Companies monitor their deployed software for signs of unusual activity or exploitation attempts. This includes both user reports and automated monitoring tools.
Incident Response: A dedicated incident response team is ready to react quickly to security incidents. They analyze the situation, develop a patch, and deploy it as soon as possible to minimize the impact of any vulnerabilities.
7. User Education
Documentation and Training: Providing comprehensive documentation and training to end-users and administrators helps ensure the software is used securely and effectively.
Security Best Practices: Companies educate their users on security best practices, such as keeping their systems updated, using strong passwords, and not disabling essential security features.
8. Compliance and Certification
Industry Standards: Companies often adhere to industry security standards such as ISO 27001, NIST, or PCI DSS, depending on the nature of their software and the industry they serve.
Certification Programs: Participation in certification programs (e.g., Microsoft’s Windows Hardware Compatibility Program) ensures that their drivers and software meet the stringent security and performance criteria required for integration with Windows systems.
Conclusion
By implementing these strategies, companies can significantly reduce the risk of introducing vulnerabilities into critical system components and ensure that their software operates securely within the Windows ecosystem. However, maintaining security is an ongoing process that requires constant vigilance, regular updates, and adaptation to new and emerging threats.