Awọn abulẹ ti a ṣafihan lati ṣe aileto awọn adirẹsi akopọ ekuro Linux fun awọn ipe eto

Kees Cook, oludari eto iṣaaju ti kernel.org ati adari Ẹgbẹ Aabo Ubuntu, ti n ṣiṣẹ ni bayi ni Google lori aabo Android ati ChromeOS, ṣe atẹjade ṣeto awọn abulẹ kan lati ṣe aiṣedeede awọn aiṣedeede ninu akopọ ekuro nigbati awọn ipe eto ṣiṣẹ. Awọn abulẹ ṣe ilọsiwaju aabo ekuro nipasẹ yiyipada ipo akopọ, ṣiṣe awọn ikọlu lori akopọ pupọ ni iṣoro pupọ ati aṣeyọri diẹ sii. Imuse akọkọ ṣe atilẹyin ARM64 ati awọn ilana x86/x86_64.

Ero atilẹba fun alemo jẹ ti iṣẹ akanṣe PaX RANDKSTACK. Ni ọdun 2019, Elena Reshetova, ẹlẹrọ lati Intel, gbiyanju lati ṣẹda imuse ti imọran yii ti o yẹ fun ifisi ninu ekuro Linux akọkọ. Nigbamii, ipilẹṣẹ naa ni a gbe soke nipasẹ Kees Cook, ẹniti o ṣafihan imuse ti o yẹ fun ẹya akọkọ ti ekuro. Awọn abulẹ ti gbero lati wa pẹlu apakan ti itusilẹ 5.13. Ipo naa yoo jẹ alaabo nipasẹ aiyipada. Lati muu ṣiṣẹ, paramita laini aṣẹ kernel “randomize_kstack_offset=tan/pa” ati eto CONFIG_RANDOMIZE_KSTACK_OFFSET_DEFAULT ni a dabaa. Ipari ti mimu ipo ṣiṣẹ ni ifoju ni isunmọ 1% pipadanu iṣẹ.

Koko-ọrọ ti idaabobo ti a dabaa ni lati yan aiṣedeede akopọ laileto fun ipe eto kọọkan, eyiti o jẹ ki o nira lati pinnu ipilẹ akopọ ni iranti, paapaa lẹhin gbigba data adirẹsi, nitori ipe eto atẹle yoo yi adirẹsi ipilẹ ti akopọ naa pada. Ko dabi imuse PaX RANDKSTACK, ninu awọn abulẹ ti a dabaa fun ifisi ninu ekuro, aiṣedeede ko ṣe ni ipele ibẹrẹ (cpu_current_top_of_stack), ṣugbọn lẹhin ti ṣeto eto pt_regs, eyiti o jẹ ki o ṣee ṣe lati lo awọn ọna orisun ptrace lati pinnu aiṣedeede laileto. nigba kan gun-nṣiṣẹ eto ipe.

orisun: opennet.ru

Fi ọrọìwòye kun