Yes, this is caused by KASLR. Note that all addresses are offset by the same amount. The kernel doesn’t know about `System.map` so it doesn’t update it.
I’m not aware of any way of detecting whether KASLR is enabled from userspace at runtime, short of comparing `/proc/kallsyms` and `System.map`, or possibly causing a panic on x86 (the kernel dumps its offset on panic there).