{"id":99682,"date":"2021-04-07T16:22:45","date_gmt":"2021-04-07T14:22:46","guid":{"rendered":"https:\/\/prohoster.info\/blog\/novosti-interneta\/rust-vklyuchyon-v-chislo-osnovnyh-yazykov-dlya-razrabotki-platformy-android"},"modified":"2021-04-07T16:22:45","modified_gmt":"2021-04-07T14:22:46","slug":"rust-vklyuchyon-v-chislo-osnovnyh-yazykov-dlya-razrabotki-platformy-android","status":"publish","type":"post","link":"https:\/\/prohoster.info\/pl\/blog\/news\/rust-vklyuchyon-v-chislo-osnovnyh-yazykov-dlya-razrabotki-platformy-android","title":{"rendered":"Rust zosta\u0142 zaliczony do g\u0142\u00f3wnych j\u0119zyk\u00f3w do rozwoju platformy Android","gt_translate_keys":[{"key":"rendered","format":"text"}]},"content":{"rendered":"<p>Firma Google og\u0142osi\u0142a w\u0142\u0105czenie j\u0119zyka programowania Rust do listy j\u0119zyk\u00f3w dopuszczonych do rozwoju platformy Android. Kompilator j\u0119zyka Rust zosta\u0142 w\u0142\u0105czony do drzewa kodu \u017ar\u00f3d\u0142owego Android ju\u017c w 2019 roku, ale wsparcie dla tego j\u0119zyka pozostawa\u0142o eksperymentalne. Jednymi z pierwszych komponent\u00f3w w Rust, kt\u00f3re maj\u0105 by\u0107 dostarczane w Androidzie, s\u0105 nowe implementacje mechanizmu mi\u0119dzyprocesowej komunikacji Binder oraz stosu Bluetooth.    <\/p>\n<p>Wdro\u017cenie Rust odbywa si\u0119 w ramach projektu maj\u0105cego na celu zwi\u0119kszenie zabezpiecze\u0144, promowanie technik bezpiecznego programowania oraz popraw\u0119 efektywno\u015bci identyfikacji problem\u00f3w zwi\u0105zanych z pami\u0119ci\u0105 w Androidzie. Zauwa\u017cono, \u017ce oko\u0142o 70% wszystkich krytycznych podatno\u015bci wykrytych w Androidzie jest spowodowanych b\u0142\u0119dami w obs\u0142udze pami\u0119ci. Zastosowanie j\u0119zyka Rust, kt\u00f3ry skupia si\u0119 na bezpiecznej pracy z pami\u0119ci\u0105 i zapewnia automatyczne zarz\u0105dzanie pami\u0119ci\u0105, pozwoli zmniejszy\u0107 ryzyko wyst\u0105pienia podatno\u015bci spowodowanych b\u0142\u0119dami w zarz\u0105dzaniu pami\u0119ci\u0105, takich jak odwo\u0142ania do obszaru pami\u0119ci po jego zwolnieniu oraz przekroczenia granic bufora.    <\/p>\n<p>Bezpieczna praca z pami\u0119ci\u0105 w Rust jest zapewniana podczas kompilacji poprzez sprawdzanie odniesie\u0144, \u015bledzenie w\u0142asno\u015bci obiekt\u00f3w oraz uwzgl\u0119dnianie czasu \u017cycia obiekt\u00f3w (zakresu widoczno\u015bci), a tak\u017ce poprzez ocen\u0119 poprawno\u015bci dost\u0119pu do pami\u0119ci w czasie wykonywania kodu. Rust oferuje r\u00f3wnie\u017c \u015brodki ochrony przed przepe\u0142nieniami ca\u0142kowitymi, wymaga obowi\u0105zkowej inicjalizacji warto\u015bci zmiennych przed ich u\u017cyciem, lepiej obs\u0142uguje b\u0142\u0119dy w standardowej bibliotece, stosuje koncepcj\u0119 niemutowalno\u015bci odniesie\u0144 i zmiennych domy\u015blnie oraz oferuje siln\u0105 statyczn\u0105 typizacj\u0119 w celu minimalizacji b\u0142\u0119d\u00f3w logicznych.        <\/p>\n<p>W Androidzie bezpieczna praca z pami\u0119ci\u0105 jest zapewniana w ju\u017c wspieranych j\u0119zykach Kotlin i Java, jednak nie nadaj\u0105 si\u0119 one do rozwoju komponent\u00f3w systemowych z powodu du\u017cych narzut\u00f3w. Rust umo\u017cliwia osi\u0105gni\u0119cie wydajno\u015bci zbli\u017conej do j\u0119zyk\u00f3w C i C++, co pozwala na jego wykorzystanie do opracowania niskopoziomowych cz\u0119\u015bci platformy oraz komponent\u00f3w do interakcji z sprz\u0119tem.       <\/p>\n<p>Aby zapewni\u0107 bezpiecze\u0144stwo kodu w C i C++ na Androidzie, stosuje si\u0119 izolacj\u0119 sandboxow\u0105, analiz\u0119 statyczn\u0105 oraz testowanie fuzzingowe. Mo\u017cliwo\u015bci izolacji sandboxowej s\u0105 ograniczone i osi\u0105gn\u0119\u0142y swoje granice (dalsze dzielenie na procesy nie jest uzasadnione z punktu widzenia zu\u017cycia zasob\u00f3w). W\u015br\u00f3d ogranicze\u0144 stosowania sandboxu wymienia si\u0119 du\u017ce narzuty i wzrost zu\u017cycia pami\u0119ci spowodowane konieczno\u015bci\u0105 tworzenia nowych proces\u00f3w oraz wyst\u0119powanie dodatkowych op\u00f3\u017anie\u0144 zwi\u0105zanych z u\u017cywaniem IPC.     <\/p>\n<p>Jednak\u017ce sandbox nie eliminuje luk w kodzie, a jedynie zmniejsza ryzyko i utrudnia przeprowadzenie ataku, poniewa\u017c do eksploatacji konieczne jest wykrycie nie jednej, a kilku podatno\u015bci. Metody oparte na testowaniu kodu s\u0105 ograniczone tym, \u017ce do wykrycia b\u0142\u0119d\u00f3w konieczne jest stworzenie warunk\u00f3w do ujawnienia problemu. Obej\u015bcie wszystkich mo\u017cliwych wariant\u00f3w jest niemo\u017cliwe, dlatego wiele b\u0142\u0119d\u00f3w pozostaje niezauwa\u017conych.               <\/p>\n<p>W przypadku system\u00f3w Android firma Google stosuje &#171;zasad\u0119 dw\u00f3ch&#187;, zgodnie z kt\u00f3r\u0105 ka\u017cdy dodawany kod musi spe\u0142nia\u0107 nie wi\u0119cej ni\u017c dwa z trzech warunk\u00f3w: praca z niezaufanymi danymi wej\u015bciowymi, u\u017cywanie niebezpiecznego j\u0119zyka programowania (C\/C++) oraz wykonanie bez \u015bcis\u0142ej izolacji sandbox (posiadanie podwy\u017cszonych uprawnie\u0144). Z tej zasady wynika, \u017ce kod do obs\u0142ugi zewn\u0119trznych danych powinien by\u0107 albo ograniczony do minimalnych uprawnie\u0144 (izolowany), albo napisany w bezpiecznym j\u0119zyku programowania.         <\/p>\n<p>Google nie ma na celu przepisania istniej\u0105cego kodu C\/C++ na Rust, lecz planuje u\u017cywa\u0107 tego j\u0119zyka do tworzenia nowego kodu. U\u017cycie Rust dla nowego kodu ma sens, poniewa\u017c statystyki pokazuj\u0105, \u017ce wi\u0119kszo\u015b\u0107 b\u0142\u0119d\u00f3w pojawia si\u0119 w nowym lub niedawno zmienionym kodzie. W szczeg\u00f3lno\u015bci oko\u0142o 50% wykrywanych b\u0142\u0119d\u00f3w zwi\u0105zanych z pami\u0119ci\u0105 w Androidzie wyst\u0119puje w kodzie napisanym mniej ni\u017c rok temu.      <center><img decoding=\"async\" alt=\"Rust zosta\u0142 zaliczony do g\u0142\u00f3wnych j\u0119zyk\u00f3w do rozwoju platformy Android\" src=\"\/wp-content\/uploads\/2021\/04\/4b33e5ecee70284872fc42dabcbfc372.png\" style=\"display:block;margin: 0 auto;\" \/><\/center><br \/>\n<br \/>\u0179r\u00f3d\u0142o: <a content=\"nofollow\" rel=\"nofollow\" href=\"https:\/\/www.opennet.ru\/opennews\/art.shtml?num=54918\">opennet.ru<\/a> <\/p>","protected":false,"gt_translate_keys":[{"key":"rendered","format":"html"}]},"excerpt":{"rendered":"<p>\u041a\u043e\u043c\u043f\u0430\u043d\u0438\u044f Google \u043e\u0431\u044a\u044f\u0432\u0438\u043b\u0430 \u043e \u0432\u043a\u043b\u044e\u0447\u0435\u043d\u0438\u0438 \u044f\u0437\u044b\u043a\u0430 \u043f\u0440\u043e\u0433\u0440\u0430\u043c\u043c\u0438\u0440\u043e\u0432\u0430\u043d\u0438\u044f Rust \u0432 \u0447\u0438\u0441\u043b\u043e \u044f\u0437\u044b\u043a\u043e\u0432, \u0434\u043e\u043f\u0443\u0441\u0442\u0438\u043c\u044b\u0445 \u0434\u043b\u044f \u0440\u0430\u0437\u0440\u0430\u0431\u043e\u0442\u043a\u0438 \u043f\u043b\u0430\u0442\u0444\u043e\u0440\u043c\u044b Android. \u041a\u043e\u043c\u043f\u0438\u043b\u044f\u0442\u043e\u0440 \u044f\u0437\u044b\u043a\u0430 Rust \u0431\u044b\u043b \u0432\u043a\u043b\u044e\u0447\u0451\u043d \u0432 \u0434\u0435\u0440\u0435\u0432\u043e \u0438\u0441\u0445\u043e\u0434\u043d\u044b\u0445 \u0442\u0435\u043a\u0441\u0442\u043e\u0432 Android \u0435\u0449\u0451 \u0432 2019 \u0433\u043e\u0434\u0443, \u043d\u043e \u043f\u043e\u0434\u0434\u0435\u0440\u0436\u043a\u0430 \u0434\u0430\u043d\u043d\u043e\u0433\u043e \u044f\u0437\u044b\u043a\u0430 \u043e\u0441\u0442\u0430\u0432\u0430\u043b\u0430\u0441\u044c \u044d\u043a\u0441\u043f\u0435\u0440\u0438\u043c\u0435\u043d\u0442\u0430\u043b\u044c\u043d\u043e\u0439. \u041e\u0434\u043d\u0438\u043c\u0438 \u0438\u0437 \u043f\u0435\u0440\u0432\u044b\u0445 \u043a\u043e\u043c\u043f\u043e\u043d\u0435\u043d\u0442\u043e\u0432 \u043d\u0430 Rust, \u043a\u043e\u0442\u043e\u0440\u044b\u0435 \u043f\u043b\u0430\u043d\u0438\u0440\u0443\u0435\u0442\u0441\u044f \u043f\u043e\u0441\u0442\u0430\u0432\u043b\u044f\u0442\u044c \u0432 Android, \u044f\u0432\u043b\u044f\u044e\u0442\u0441\u044f \u043d\u043e\u0432\u044b\u0435 \u0440\u0435\u0430\u043b\u0438\u0437\u0430\u0446\u0438\u0438 \u043c\u0435\u0445\u0430\u043d\u0438\u0437\u043c\u0430 \u043c\u0435\u0436\u043f\u0440\u043e\u0446\u0435\u0441\u0441\u043d\u043e\u0433\u043e \u0432\u0437\u0430\u0438\u043c\u043e\u0434\u0435\u0439\u0441\u0442\u0432\u0438\u044f Binder \u0438 [&hellip;]<\/p>\n","protected":false,"gt_translate_keys":[{"key":"rendered","format":"html"}]},"author":1,"featured_media":99683,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[702],"tags":[],"class_list":["post-99682","post","type-post","status-publish","format-standard","has-post-thumbnail","hentry","category-news"],"aioseo_notices":[],"aioseo_head":"\n\t\t<!-- All in One SEO 5.0.2 - aioseo.com -->\n\t<meta name=\"description\" content=\"\u041a\u043e\u043c\u043f\u0430\u043d\u0438\u044f Google \u043e\u0431\u044a\u044f\u0432\u0438\u043b\u0430 \u043e \u0432\u043a\u043b\u044e\u0447\u0435\u043d\u0438\u0438 \u044f\u0437\u044b\u043a\u0430 \u043f\u0440\u043e\u0433\u0440\u0430\u043c\u043c\u0438\u0440\u043e\u0432\u0430\u043d\u0438\u044f Rust \u0432 \u0447\u0438\u0441\u043b\u043e \u044f\u0437\u044b\u043a\u043e\u0432, \u0434\u043e\u043f\u0443\u0441\u0442\u0438\u043c\u044b\u0445 \u0434\u043b\u044f \u0440\u0430\u0437\u0440\u0430\u0431\u043e\u0442\u043a\u0438 \u043f\u043b\u0430\u0442\u0444\u043e\u0440\u043c\u044b Android.\" \/>\n\t<meta name=\"robots\" content=\"max-image-preview:large\" \/>\n\t<meta name=\"author\" content=\"Yuri Gagarin\"\/>\n\t<link rel=\"canonical\" href=\"https:\/\/prohoster.info\/pl\/blog\/news\/rust-vklyuchyon-v-chislo-osnovnyh-yazykov-dlya-razrabotki-platformy-android\" \/>\n\t<meta name=\"generator\" content=\"All in One SEO (AIOSEO) 5.0.2\" \/>\n\t\t<meta property=\"og:locale\" content=\"pl_PL\" \/>\n\t\t<meta property=\"og:site_name\" content=\"ProHoster | \u041a\u0443\u043f\u0438\u0442\u044c \u043d\u0430\u0434\u0435\u0436\u043d\u044b\u0439 \u0445\u043e\u0441\u0442\u0438\u043d\u0433 \u0434\u043b\u044f \u0441\u0430\u0439\u0442\u043e\u0432 \u0441 \u0437\u0430\u0449\u0438\u0442\u043e\u0439 \u043e\u0442 DDoS, VPS VDS \u0441\u0435\u0440\u0432\u0435\u0440\u044b\" \/>\n\t\t<meta property=\"og:type\" content=\"article\" \/>\n\t\t<meta property=\"og:title\" content=\"\ud83e\udd47Rust \u0432\u043a\u043b\u044e\u0447\u0451\u043d \u0432 \u0447\u0438\u0441\u043b\u043e \u043e\u0441\u043d\u043e\u0432\u043d\u044b\u0445 \u044f\u0437\u044b\u043a\u043e\u0432 \u0434\u043b\u044f \u0440\u0430\u0437\u0440\u0430\u0431\u043e\u0442\u043a\u0438 \u043f\u043b\u0430\u0442\u0444\u043e\u0440\u043c\u044b Android | ProHoster\" \/>\n\t\t<meta property=\"og:description\" content=\"\u041a\u043e\u043c\u043f\u0430\u043d\u0438\u044f Google \u043e\u0431\u044a\u044f\u0432\u0438\u043b\u0430 \u043e \u0432\u043a\u043b\u044e\u0447\u0435\u043d\u0438\u0438 \u044f\u0437\u044b\u043a\u0430 \u043f\u0440\u043e\u0433\u0440\u0430\u043c\u043c\u0438\u0440\u043e\u0432\u0430\u043d\u0438\u044f Rust \u0432 \u0447\u0438\u0441\u043b\u043e \u044f\u0437\u044b\u043a\u043e\u0432, \u0434\u043e\u043f\u0443\u0441\u0442\u0438\u043c\u044b\u0445 \u0434\u043b\u044f \u0440\u0430\u0437\u0440\u0430\u0431\u043e\u0442\u043a\u0438 \u043f\u043b\u0430\u0442\u0444\u043e\u0440\u043c\u044b Android.\" \/>\n\t\t<meta property=\"og:url\" content=\"https:\/\/prohoster.info\/pl\/blog\/news\/rust-vklyuchyon-v-chislo-osnovnyh-yazykov-dlya-razrabotki-platformy-android\" \/>\n\t\t<meta property=\"og:image\" content=\"https:\/\/prohoster.info\/wp-content\/uploads\/2021\/11\/logo-350.jpg\" \/>\n\t\t<meta property=\"og:image:secure_url\" content=\"https:\/\/prohoster.info\/wp-content\/uploads\/2021\/11\/logo-350.jpg\" \/>\n\t\t<meta property=\"og:image:width\" content=\"350\" \/>\n\t\t<meta property=\"og:image:height\" content=\"350\" \/>\n\t\t<meta property=\"article:published_time\" content=\"2021-04-07T14:22:46+00:00\" \/>\n\t\t<meta property=\"article:modified_time\" content=\"2021-04-07T14:22:46+00:00\" \/>\n\t\t<meta property=\"article:publisher\" content=\"https:\/\/www.facebook.com\/prohoster\" \/>\n\t\t<meta property=\"article:author\" content=\"https:\/\/www.facebook.com\/prohoster\" \/>\n\t\t<!-- All in One SEO -->\n\n","aioseo_head_json":{"title":"\ud83e\udd47Rust zosta\u0142 w\u0142\u0105czony do listy g\u0142\u00f3wnych j\u0119zyk\u00f3w do rozwoju platformy Android | ProHoster","description":"Firma Google og\u0142osi\u0142a w\u0142\u0105czenie j\u0119zyka programowania Rust do grona j\u0119zyk\u00f3w dozwolonych do rozwoju platformy Android.","canonical_url":"https:\/\/prohoster.info\/pl\/blog\/news\/rust-vklyuchyon-v-chislo-osnovnyh-yazykov-dlya-razrabotki-platformy-android","robots":"max-image-preview:large","keywords":"","webmasterTools":{"miscellaneous":""},"schema":null,"og:locale":"pl_PL","og:site_name":"ProHoster | \u041a\u0443\u043f\u0438\u0442\u044c \u043d\u0430\u0434\u0435\u0436\u043d\u044b\u0439 \u0445\u043e\u0441\u0442\u0438\u043d\u0433 \u0434\u043b\u044f \u0441\u0430\u0439\u0442\u043e\u0432 \u0441 \u0437\u0430\u0449\u0438\u0442\u043e\u0439 \u043e\u0442 DDoS, VPS VDS \u0441\u0435\u0440\u0432\u0435\u0440\u044b","og:type":"article","og:title":"\ud83e\udd47Rust \u0432\u043a\u043b\u044e\u0447\u0451\u043d \u0432 \u0447\u0438\u0441\u043b\u043e \u043e\u0441\u043d\u043e\u0432\u043d\u044b\u0445 \u044f\u0437\u044b\u043a\u043e\u0432 \u0434\u043b\u044f \u0440\u0430\u0437\u0440\u0430\u0431\u043e\u0442\u043a\u0438 \u043f\u043b\u0430\u0442\u0444\u043e\u0440\u043c\u044b Android | ProHoster","og:description":"\u041a\u043e\u043c\u043f\u0430\u043d\u0438\u044f Google \u043e\u0431\u044a\u044f\u0432\u0438\u043b\u0430 \u043e \u0432\u043a\u043b\u044e\u0447\u0435\u043d\u0438\u0438 \u044f\u0437\u044b\u043a\u0430 \u043f\u0440\u043e\u0433\u0440\u0430\u043c\u043c\u0438\u0440\u043e\u0432\u0430\u043d\u0438\u044f Rust \u0432 \u0447\u0438\u0441\u043b\u043e \u044f\u0437\u044b\u043a\u043e\u0432, \u0434\u043e\u043f\u0443\u0441\u0442\u0438\u043c\u044b\u0445 \u0434\u043b\u044f \u0440\u0430\u0437\u0440\u0430\u0431\u043e\u0442\u043a\u0438 \u043f\u043b\u0430\u0442\u0444\u043e\u0440\u043c\u044b Android.","og:url":"https:\/\/prohoster.info\/pl\/blog\/news\/rust-vklyuchyon-v-chislo-osnovnyh-yazykov-dlya-razrabotki-platformy-android","og:image":"https:\/\/prohoster.info\/wp-content\/uploads\/2021\/11\/logo-350.jpg","og:image:secure_url":"https:\/\/prohoster.info\/wp-content\/uploads\/2021\/11\/logo-350.jpg","og:image:width":350,"og:image:height":350,"article:published_time":"2021-04-07T14:22:46+00:00","article:modified_time":"2021-04-07T14:22:46+00:00","article:publisher":"https:\/\/www.facebook.com\/prohoster","article:author":"https:\/\/www.facebook.com\/prohoster"},"aioseo_meta_data":{"post_id":"99682","title":null,"description":null,"keywords":null,"keyphrases":null,"primary_term":null,"canonical_url":null,"og_title":null,"og_description":null,"og_object_type":"default","og_image_type":"default","og_image_url":null,"og_image_width":null,"og_image_height":null,"og_image_custom_url":null,"og_image_custom_fields":null,"og_video":null,"og_custom_url":null,"og_article_section":null,"og_article_tags":null,"twitter_use_og":false,"twitter_card":"default","twitter_image_type":"default","twitter_image_url":null,"twitter_image_custom_url":null,"twitter_image_custom_fields":null,"twitter_title":null,"twitter_description":null,"schema":{"blockGraphs":[],"customGraphs":[],"default":{"data":{"Article":[],"Course":[],"Dataset":[],"FAQPage":[],"Movie":[],"Person":[],"Product":[],"ProductReview":[],"Car":[],"Recipe":[],"Service":[],"SoftwareApplication":[],"WebPage":[]},"graphName":"","isEnabled":true},"graphs":[]},"schema_type":null,"schema_type_options":null,"pillar_content":false,"robots_default":true,"robots_noindex":false,"robots_noarchive":false,"robots_nosnippet":false,"robots_nofollow":false,"robots_noimageindex":false,"robots_noodp":false,"robots_notranslate":false,"robots_max_snippet":null,"robots_max_videopreview":null,"robots_max_imagepreview":"large","priority":null,"frequency":null,"local_seo":null,"seo_analyzer_scan_date":null,"breadcrumb_settings":null,"limit_modified_date":false,"reviewed_by":null,"ai":null,"created":"2021-04-07 15:21:42","updated":"2022-10-08 03:45:48","focus_keyword":null,"additional_keywords":null,"truseo_locale":null},"gt_translate_keys":[{"key":"link","format":"url"}],"_links":{"self":[{"href":"https:\/\/prohoster.info\/pl\/wp-json\/wp\/v2\/posts\/99682","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/prohoster.info\/pl\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/prohoster.info\/pl\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/prohoster.info\/pl\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/prohoster.info\/pl\/wp-json\/wp\/v2\/comments?post=99682"}],"version-history":[{"count":0,"href":"https:\/\/prohoster.info\/pl\/wp-json\/wp\/v2\/posts\/99682\/revisions"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/prohoster.info\/pl\/wp-json\/wp\/v2\/media\/99683"}],"wp:attachment":[{"href":"https:\/\/prohoster.info\/pl\/wp-json\/wp\/v2\/media?parent=99682"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/prohoster.info\/pl\/wp-json\/wp\/v2\/categories?post=99682"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/prohoster.info\/pl\/wp-json\/wp\/v2\/tags?post=99682"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}