kern.randompid: Random PID modulus
Dan Lukes
dan at obluda.cz
Thu Oct 6 16:56:31 CEST 2016
On 6.10.2016 14:20, Miroslav Lachman wrote:
> Chtel jsem se jen tak zeptat, jestli nekdo pouzivate nastaveni kern.randompid=1,
S jednickou si moc nepomuzes, to je jak nula.
Zkus si to - ten sysctl ti po pokusu dat tam jednicku rekne, ze 0 -> 0
Zcela presne:
0,1 -> 0
2..99 -> 100
> pid_max - 100 -> pid_max - 100
Rekneme, zes tam dal neco v rozsahu 100..pid_max - 100
V takovem pripade neni kandidat na budouci pid
lastpid+1
ale
arc4random() % randompid
Takto ziskana hodnota projde jeste nejakymi kontrolami a upravami, ale
to uz pro ucely tehle debaty neni zajimave.
Jo, a behem bootu to funguje mirne jinak jak zminim nize.
> aby se PID pro procesy negenerovaly sekvencne, ale
> nahodne a pripadne jestli to ma nejake (treba vykonnostni) nevyhody,
arc4random() samozrejme je vypocetne narocnejsi nez (lastpid+1)
Jiny slovy "trva dele", coz ti muze vadit zejmena pokud ti hodne zalezi
na co nejrychlejsi odezve.
> Uz davno jsem si vsimnul, ze ty procesy, co se spousteji hned pro bootu,
> maji velmi podobne, nebo uplne stejne PID porad dokola
Behem bootu (presneji receno, pri startu konkretnich vybranych
"prvotnich" procesu) se arc4random() nepouziva nikdy (a navic se za
"rezervovane" povazuji pouze pid 0..9 nikoliv 0..99 jako pri beznem
provozu).
> a podle jistych teorii to muze utocnikum usnadnovat trochu cestu, i kdyz asi ne moc vyzname.
Zalezi jak moc vyznavas teorii, ze kazda informace muze za urcitych
okolnosti utocnikovi pomoci ;-)
Urcite dokazu vymyslet takovou chybu systemu, k jejimuz vyuziti budu
potrebovat znat PID konkretniho procesu, nebudu ho ale schopen zjistit.
Jo - a nebude se mi z nejakeho duvodu hodit zrovna 'init', jehoz pid je
1 zcela bez vyjimky.
Klicova otazka je, jak moc se takove chyby bojis.
> Ma tedy ta randomizace nejaky smysl, nebo je to zbytecne?
Ano ;-)
Dan
More information about the Users-l
mailing list