Warnung: Fehler beim Deaktivieren der Randomisierung des Adressraums: Vorgang nicht zulässig

Lesezeit: 2 Minuten

Benutzeravatar von Jas
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

Benutzeravatar von Chris Kitching
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.

Benutzeravatar von Kevin W. Matthews
Kevin W. Matthews

Aufbauend auf der Antwort von wisbucky (danke!) sind hier die gleichen Einstellungen für Docker compose:

security_opt:
  - seccomp:unconfined
cap_add:
  - SYS_PTRACE

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

1420190cookie-checkWarnung: Fehler beim Deaktivieren der Randomisierung des Adressraums: Vorgang nicht zulässig

This website is using cookies to improve the user-friendliness. You agree by using the website further.

Privacy policy