Facebook адкрыў код статычнага аналізатара Mariana Trench

Facebook прадставіў новы адчынены статычны аналізатар Mariana Trench, накіраваны на выяўленне ўразлівасцяў у прыкладаннях для платформы Android і праграмах на мове Java. Прадастаўляецца магчымасць аналізу праектаў без зыходных тэкстаў, для якіх даступны толькі байткод для віртуальнай машыны Dalvik. З добрых якасцяў таксама вылучаецца вельмі высокая хуткасць выканання (аналіз некалькіх мільёнаў радкоў кода займае каля 10 секунд), што дазваляе ўжываць Mariana Trench для праверкі ўсіх прапанаваных змен па меры іх паступлення. Код праекту напісаны на мове C++ і распаўсюджваецца пад ліцэнзіяй MIT.

Аналізатар быў распрацаваны ў рамках праекту па аўтаматызацыі працэсу рэцэнзавання зыходных тэкстаў мабільных прыкладанняў Facebook, Instagram і Whatsapp. У першай палове 2021 гады палова з усіх уразлівасцяў у мабільных прыкладаннях Facebook была выяўленая пры дапамозе прылад для аўтаматызаванага аналізу. Код Mariana Trench цесна пераплятаецца з іншымі праектамі Facebook, напрыклад, для разбору байткода выкарыстаны напрацоўкі аптымізатара байткода Redex, а для нагляднай інтэрпрэтацыі і вывучэння вынікаў статычнага аналізу - бібліятэка SPARTA.

Выяўленне патэнцыйных уразлівасцяў і праблем з канфідэнцыяльнасцю ажыццяўляецца пры дапамозе аналізу струменяў дадзеных падчас выкананні прыкладання, што дазваляе вызначыць сітуацыі, калі неабчышчаныя вонкавыя дадзеныя апрацоўваюцца ў небяспечных канструкцыях, такіх як SQL-запыты, аперацыі з файламі і выклікі, якія прыводзяць да запуску вонкавых праграм.

Праца аналізатара зводзіцца да вызначэння крыніц паступлення дадзеных і небяспечных выклікаў, у якіх зыходныя дадзеныя не павінны прымяняцца – аналізатар адсочвае праходжанне дадзеных па ланцужку выклікаў функцый і звязвае зыходныя дадзеныя з патэнцыйна небяспечнымі месцамі ў кодзе. Напрыклад, у якасці які патрабуе адсочвання крыніцы разглядаюцца дадзеныя, якія паступілі праз выклік Intent.getData, а ў якасці небяспечных ужыванняў выклікі Log.w і Runtime.exec.

Facebook адкрыў код статычнага аналізатара Mariana Trench


Крыніца: opennet.ru

Дадаць каментар