Warnung: Fehler beim Deaktivieren der Randomisierung des Adressraums: Vorgang nicht zulässig
Lesezeit: 2 Minuten
Ja
was habe ich falsch gemacht (oder nicht gemacht) gdb funktioniert bei mir nicht richtig?
root@6be3d60ab7c6:/# cat minimal.c
int main()
{
int i = 1337;
return 0;
}
root@6be3d60ab7c6:/# gcc -g minimal.c -o minimal
root@6be3d60ab7c6:/# gdb minimal
GNU gdb (Ubuntu 7.7.1-0ubuntu5~14.04.2) 7.7.1
.
.
.
Reading symbols from minimal...done.
(gdb) break main
Breakpoint 1 at 0x4004f1: file minimal.c, line 3.
(gdb) run
Starting program: /minimal
warning: Error disabling address space randomization: Operation not permitted
During startup program exited normally.
(gdb)
(gdb) print i
No symbol "i" in current context.
Beim Ausführen in einem Docker-Container habe ich diesen Fehler erhalten, bis ich hinzugefügt habe--security-opt seccomp=unconfined zum docker run.
– Cameron Taggart
7. Juni 2016 um 4:28 Uhr
@CameronTaggart danke für den Tipp! Du hast meinen Tag gerettet.
– gaijin
7. Juli 2016 um 16:04 Uhr
@CameronTaggart es funktioniert gut für mich, aber Sicherheitsprobleme treten auf
– Jia
3. September 2016 um 6:04 Uhr
Wenn Sie Docker verwenden, benötigen Sie wahrscheinlich die --security-opt seccomp=unconfined Option (sowie die Aktivierung von ptrace):
docker run --cap-add=SYS_PTRACE --security-opt seccomp=unconfined
danke dafür – ich habe keine Ahnung, wie viel Zeit ich verloren hätte, wenn ich das auf die harte Tour gelernt hätte!
– VorpalSchwert
31. Mai 2018 um 20:47 Uhr
Ich finde --cap-add=SYS_PTRACE wird nur beim Anbringen benötigt gdb zu einem bereits laufenden Prozess.
– ausgetrocknet
2. November 2018 um 7:38 Uhr
Könnten Sie die Sicherheitsprobleme angeben, die diese Optionen mit sich bringen könnten?
– Ra’Jiska
8. August 2019 um 14:41 Uhr
Gibt es eine Möglichkeit, diesen Befehl auf eine bereits laufende Instanz anzuwenden? Weil ich diese Instanz nicht entfernen und eine neue starten möchte
– sch.3.ll
30. Mai 2020 um 18:59 Uhr
Chris Kitching
Aus irgendeinem Grund hat Ihr Benutzerkonto keine Berechtigung, die Adressraum-Layout-Randomisierung des Kernels für diesen Prozess zu deaktivieren. Standardmäßig schaltet gdb dies ab, weil es einige Arten von Debugging erleichtert (insbesondere bedeutet es, dass die Adresse von Stack-Objekten jedes Mal gleich ist, wenn Sie Ihr Programm ausführen). Weiterlesen hier.
Sie können dieses Problem umgehen, indem Sie diese Funktion von gdb mit deaktivieren set disable-randomization off.
Um Ihrem Benutzer die Berechtigung zu geben, die zum Deaktivieren von ASLR erforderlich ist, läuft es wahrscheinlich darauf hinaus, eine Schreibberechtigung zu haben /proc/sys/kernel/randomize_va_space. Weiterlesen hier.
Kevin W. Matthews
Aufbauend auf der Antwort von wisbucky (danke!) sind hier die gleichen Einstellungen für Docker compose:
Die Sicherheitsoption seccomp:unconfined behoben address space randomization Warnungen.
Die Fähigkeit SYS_PTRACE schien keine merkliche Wirkung zu haben, obwohl die Docker-Dokumentation gibt an, dass SYS_PTRACE eine Fähigkeit ist, die “nicht standardmäßig gewährt” ist. Vielleicht weiß ich nicht, wonach ich suchen soll.
Sie haben einen Tippfehler, es ist unbeschränkt, nicht unbestätigt
– Marc43
31. August 2020 um 7:58 Uhr
14201900cookie-checkWarnung: Fehler beim Deaktivieren der Randomisierung des Adressraums: Vorgang nicht zulässigyes
Beim Ausführen in einem Docker-Container habe ich diesen Fehler erhalten, bis ich hinzugefügt habe
--security-opt seccomp=unconfined
zumdocker run
.– Cameron Taggart
7. Juni 2016 um 4:28 Uhr
@CameronTaggart danke für den Tipp! Du hast meinen Tag gerettet.
– gaijin
7. Juli 2016 um 16:04 Uhr
@CameronTaggart es funktioniert gut für mich, aber Sicherheitsprobleme treten auf
– Jia
3. September 2016 um 6:04 Uhr