はてなキーワード: マルウェアとは
現状が問題ないとは言わないが、今議論されている策はどれも「モバイルアプリ市場そのものを瓦解させる」か、「なんの変化ももたらさない」かのどちらかにたどり着く策しか出ていない。
というより、今以上に健全な競争状態に導ける施策なんかそうそう出てこないだろう。
アプリストアを自由に開けるはずのAndroid市場でなぜサードパーティーアプリストアが存在感ないのか?
Windowsみたいにアプリもウイルスもマルウェアもユーザーが入れ放題な状況をスマホに求めてるヤツなんかそう多くない。
やりたければAndroidで好き放題出来る状況が既にある。
寡占状態とは言え、「檻に囲まれた比較的安寧な環境」と、「檻から出る自由を選べる環境」とを選択する自由が既にある。
例えばAppleにストア開放を強要してiPhoneアプリ市場が瓦解したら、「公平な環境を目指した結果今より酷い独占状態にたどり着く」ことも当然あるだろう。
その責任誰が取るの?
当然誰も取らない。
一縷の望みすら見えない博打を打とうと躍起になってる人達はどういう未来を見据えてんだろう。
Windowsはアプリストアを自由に開けるぞ、って考えてる人は今のWindowsの状況をよく見てみると良い。
セキュリティソフトウェアの研究開発、という仕事を自分の経験をもとに紹介します。主な想定読者は、情報セキュリティ関連を仕事にしたいと考えている学生や若手、特に、いわゆる「低レイヤー技術」に惹かれている人です。
低レイヤ技術を間接的に仕事で生かしてきた経験の共有。元Linuxカーネル開発技術者の場合 - 覚書を読んで思い出したのですが、セキュリティキャンプなどで、セキュリティに興味のある学生とやり取りをしていて、ソフトウェアエンジニアリングの分野でセキュリティ関連のキャリアが議論されることが少ないと感じました。自分はセキュリティソフトウェアの研究開発に10年以上携わっていることもあり、この職業は低レイヤー技術をセキュリティに活かせる面白い選択肢だと思っているので、紹介してみることにしました。
セキュリティソフトウェアの研究開発では、アンチウイルスやEDRなど、文字通りセキュリティ機能を提供するソフトウェアを研究、開発します。
「研究、開発」と書いたように、この職業には研究と開発の両面があります。
研究は、実現可能性や価値が定かでないアイディアを調査、試験実装する、という仕事がその一部です。例えば、ファイルをディスクに書き込まないマルウェアを検知したいが、どのような技術的選択肢と課題があるかを評価する。実現可能な場合は、開発チームと協働して実装、出荷にこぎつける。あるいは、製品として実装された機能がバイパスされないか調査したり、バイパスされてしまった場合にはその原因を究明したりして、製品を改善するために開発チームと協働する、という場合もあります。
開発は、研究との対比という意味においては、できると判っているアイディアを保守性の高い状態で実現する作業だといえます。保守性の重視は研究との大きな違いで、例えば、研究では、コメントもテストものない書き殴りのコードで十分であっても、開発の工程では、5年後でも改修が必要になるため許容できなかったりします。製品という大きなコードの中での開発であるため、別のチームや利害関係者との連携も、研究の場合よりずっと重要です。例えば、リードのポジションであれば、研究工程で実現可能と分かったアイディアが、既存の機能に統合する形で実装されるべきか否かアーキテクトと議論したり、テスト計画を品質保証のチームと練ったり、プロジェクトのスケジュールを調整したりします。
研究は、既定の手法がなく、闇の中を手探りで進める面があり、最終的に製品レベルにこぎつけずに終わる場合も多いです。判りやすい成果が出ない場合があるので、好き嫌いが別れやすいです。自分は、職業としては研究3,開発7くらいのバランスが好きで、趣味では逆に研究8,開発2くらいになってます。趣味では成果が出ようが出まいが過程が楽しければ満足、という個人的な考え方がこの違いとして出ているようです。
この職業のおいて、低レイヤー技術に明るいことは、ほかの多くのエンジニアができないことができるという付加価値、だと自分は考えています。例えば、特定分野の詳細を知っていることでその分野の研究、開発が効率よくできたり、新しいアイディアが生まれたりします。具体例をいくつか挙げると、OSの仮想メモリー管理に親しみがあれば、プロセスのメモリーを走査してメモリー上のみに存在するマルウェアを検出する機能をより効果的に設計、実装できる。プロセッサーの機能の詳細を知っていれば、CETという新しいプロセッサーにしかないセキュリティ機能を、他のプロセッサー機能を使って疑似的に実現するというアイディアを思いつく。などです。脆弱性の知識や探す技術も、とても価値があります。脆弱性を知らない人と、知っている人では、どちらが脆弱性の少ない設計や実装をできるでしょう。自社の製品の脆弱性を、開発中に発見するのと、テスト・出荷後に発見、改修を加えるのではどちらのコストが少なくて済むでしょう。コンパイラーの知識は検出ロジックを書くための独自言語の開発に、エミュレーターの実装経験はマルウェア解析エンジンの開発に役立ちます。
ただ、低レイヤー技術は付加価値であることに注意してほしいです。
まず前提として、ほかの平均的なエンジニアができることに加えて低レイヤー技術があるべきです。セキュリティソフトウェア開発者の多くは、実はセキュリティや低レイヤーのエキスパートではありません。優秀な開発者であることに加えてこれらを必要条件にしてしまうと、人が雇えなくなってしまうためです。そのため、一般的なエンジニアリングの能力に加えて低レイヤー技術やセキュリティという強みがあると、大多数の開発者ができない(したがらない)ことを任せられる人、と差別化してもらえる可能性が高いです。一方、エンジニアリングに対する素養や意欲なしでは、セキュリティソフトウェアの研究開発職は難しいです。その場合、研究者のほうがあっています。(ちなみに自分は、脆弱性解析とマルウェア解析を専門とする研究職にも各2年ほど就いていました。)
ここからは一般論になりますが、OSに詳しくても、プロセッサーに詳しくても、バグハントが得意でも、それを会社が求める結果を出すために使えなくては意味がありません。会社は、あなたがやりたい仕事をくれません。会社は、会社が必要としている仕事をもってくるだけです。
ではどうやって「会社が必要とする仕事」と「あなたがやりたい仕事」の重複を最大化するか。
まずは、上司にどういう仕事をしたいかを明示的に、繰り返し話しておきます。さらに、能動的に、自分からプロジェクトのアイディアを提案して意欲を示すことも心がけます。あなたの仕事を最終的に選ぶのは上司である以上、上司からの理解は必須です。良い上司(そして良い上司であることを可能する、良い上司の上司)は、必ず、あなたの能力に対する信頼度に応じて、あなたの意向を考慮してくれます。言い換えると、まずはやりたい仕事を主張する前に、与えられた仕事をこなして信頼を得る必要があります。個人的な経験では、これは1年あれば十分で、1年たっても状況に変化がない場合、あなたの仕事ぶりが上司の信頼を得るのに不十分か、あなたがやりたい仕事をうまく伝えられていないか、上司やその上司あるいは会社に問題があるか、あるいはこれらの組み合わせの可能性が高いです。
上記がうまくいかない場合、チームや会社を変えることを検討しましょう。チーム異動はリスクの少ない選択肢です。これも、実現するか否かは、上司からの信頼の程度に大きく依存します。会社を変えるのはリスクが大きいですが、上司やその上司を変えるよりも現実的です。新しい会社でもうまくいかなかったら、また新しい会社を探せばOKです。最終的にあった会社に行きつくか、自分の能力やコミュニケーションに問題があることに気づくと思います。
最後に、「会社が必要とする仕事」と「あなたがやりたい仕事」の重複を追求しないことも視野にいれておきましょう。仕事はあくまでお金のためであって、やりたい仕事のほうが楽しいが必要要件ではない。……という視点を持っておくと、些細なミスマッチで不満をためて、そこそこ良い環境から性急に転職してしまう、という状況を防ぎやすいです。隣の芝生は青い、ということを忘れないように。
セキュリティソフトウェアの研究開発は、セキュリティに深く関わりつつ低レイヤー技術を付加価値として自分を差別化できる面白い職業です。
ところで自分は7年務めた研究開発職を退職しました。おめでとう、ありがとう。これからは、また違う低レイヤー技術+セキュリティの研究開発をしていきます。
男:「ただいま」
女:「……」
男:「どうしたの」
女:「……」
男:「だまってちゃわからないよ。何かあった」
女:「もうがまんできない」
男:「え?」
女:「どうしてポケットにティッシュを入れたままズボンを洗濯にだすの?!細かいゴミが洗濯物全部に広がってやり直しになったじゃない!」
男:「あ、ゴメンついうっかり」
女:「だいたい脱いだ服をそのへんにおいておかないで!」
男:「また着るかなと思って」
女:「着ないでしょ!私が毎回洗って乾かしてたたんでしまってるの!」
男:「…」
女:「あと、毎食後食器を食洗機にいれるくらいの事がなんでできないの?洗ってって言ってるわけじゃないのよ。機械にいれるだけ。小学生でもできるでしょ?」
女:「じゃあ、入れ方を聞けば良いでしょ!子供じゃないんだから!!!!」
男:「はい…」
女:「もういや。ずっと何年もこんな事我慢してきた。こんな下らないこと私が我慢すればいいと思ってた。でももう沢山!」
男:「ありがとう!」
女:「え?」
男:「関係が修復不能になる前に教えてくれてありがとう!勇気をふるって僕の良くない点を伝えてくれてありがとう!」
女:「わかってくれたの…」
男:「うん。健全な結婚生活には正しいフィードバックが必要だということが良く分かったよ。今度からそう言ってくれれば自分も行動を改める。もちろん一回で変わるわけじゃないけど、努力するよ!」
女:「本当にわかってくるのね!」
男:「うん、よくわかった!だから僕もフィードバックするね!」
女:「うん」「え?どういうこと?」
男:「君よくスマホのケーブルが調子悪くなるっていってるけど、あれコネクタじゃなくてケーブルを引っ張ってるからだから。止めようよ。毎回買うのも手間だしお金の無駄」
女:(信じられない顔)
男:「あと、リビングで焼き肉するときの延長コード。余ったところをぐるぐる巻いて紐でたばねたままで使わないようにしようよ。危ないから。毎回気がつくと僕が伸ばしてるんだけど。最悪火事になる」
女:(ピク)
男:「普段君が運転する車、フロントガラスときどき拭いた方がいいね。逆光になると光が散乱して見にくくて危ないから。たまに自分が運転するとき拭いてるけど、いつでも僕が拭けるわけじゃないし」
女:(ピクピク)
男:「PCやスマホのセキュリティアップデートは無視しないで実行しようよ。マルウェアとかに乗っ取られたら大変な事になっちゃうよ。ときどき君に使い方聞かれたときについでにアップデートかけてあげてるじゃない?君は僕に『わからないからやっておいて』っていうけど、自分で定期的にやった方がいいと思うんだ」
女:(ピクピクピク)
男:「他にもいろいろあるけど、僕もこんなこと自分がやればいいやと思って我慢してたんだ。でも間違いだった。僕も行動を改めるから、君もそうしよう。より良い夫婦関係への第一歩だ」
女:「ふざけないで」
男:「え?」
女:「私が大事な事を話してるのに、下らないことばかりで私の揚げ足取りして!セキュリティとかフロントガラスとかコードとか、どうでもいいことでしょ!私を馬鹿にしてるの?」
男:「ええ!最悪火事になったりデータ盗まれたり事故にあったりするのに?」
男:「えぇぇ」
女:「もう、本当に愛想がつきた。もう無理。さよなら」(出て行く)
男:「なんで...?」
何故なのか
SamsungやLGなどのAndroid OEMからアプリ署名鍵が流出してマルウェアの署名に利用されていたことが明らかに - GIGAZINE https://gigazine.net/news/20221203-samsung-android-signing-key-leaked/
>流出したアプリ署名鍵でマルウェアを署名すれば、同じユーザーIDを実行することで端末への高度なアクセス権限を取得することが可能になる
>あらかじめインストールされているアプリは強力な権限を有しており、通常のGoogle Playの制限対象にはならない
>Samsungから流出したアプリ署名鍵を利用したマルウェアが2016年時点で存在していたと指摘しており、署名鍵の流出がかなり前から起きていた可能性
>Samsungは漏えいしたアプリ署名鍵を把握していたことを認めている
>この脆弱性にどういった対処を行ったかは明らかではなく間違いなくどこかで出回っているように思われ
>現時点ではこれらの署名鍵がどのように流通しているのか、また、その結果として何らかの損害が発生しているのかについては明確ではありません
(問)同じくマイナンバーカードについてお聞きしたいなと思っております。報道にも出ているように、保険証との一体化を進めており、私自身も利便性が高まるかなと思って、ぜひ大臣には頑張っていただきたいなと思っております。そこでお聞きしたいのですけど、マイナポータルの利用規約の中に、第23条に免責事項というところがありまして、デジタル庁は損害について一切責任を負わないものとしますと、具体的に言うと、「デジタル庁は、本システムの利用に際しマルウェア感染等で生じた被害について、責任を負わないものとします。」といった記載がございます。政府は、個人情報の登録とかそういったところを促進しておきながら、こういったところで責任を負わないとかという記述をしていることに対して、ネット上の反応とかを見ておりますと、結構懸念を抱いているような反応もちらほら見えたりとかしています。そういった懸念に対して、政府とか、大臣はどのような受け止めになるでしょうか。
(答)ネットでそういう話が出ているのは承知をしておりますけども、マイナポータルの利用規約は民間のインターネットサービスの利用規約と読み比べていただければわかると思いますけど、極めて一般的なもので特殊な要素というのはないと思っています。例えば、地震などの災害時に利用ができなくなった場合に、提供しているサービスについて責任を負わないというのは、一般的なルールだと思いますし、例えば、自分の暗証番号を他人に教えた結果、それを悪用されるというようなことがあったときにも、デジタル庁は責任を負いませんよというのは、自分でしっかり管理してくださいということを何条かで申し上げていると思いますが、それは一般的に使われている利用規約と何ら変わるものはないと思いますので、かなり誤解があるのか、あるいは意図的に悪意を持ってそういう話が流されているのか、どちらかだと思っております。利用者の方については、安心して使っていただきたいと思っております。
普通の回答では?