<?xml version="1.0"?>
<feed xmlns="http://www.w3.org/2005/Atom" xml:lang="ko">
	<id>http://junhoahn.kr/noriwiki/index.php?action=history&amp;feed=atom&amp;title=Kernel_address_space_layout_randomization</id>
	<title>Kernel address space layout randomization - 편집 역사</title>
	<link rel="self" type="application/atom+xml" href="http://junhoahn.kr/noriwiki/index.php?action=history&amp;feed=atom&amp;title=Kernel_address_space_layout_randomization"/>
	<link rel="alternate" type="text/html" href="http://junhoahn.kr/noriwiki/index.php?title=Kernel_address_space_layout_randomization&amp;action=history"/>
	<updated>2026-06-14T10:10:41Z</updated>
	<subtitle>이 문서의 편집 역사</subtitle>
	<generator>MediaWiki 1.43.0</generator>
	<entry>
		<id>http://junhoahn.kr/noriwiki/index.php?title=Kernel_address_space_layout_randomization&amp;diff=1046&amp;oldid=prev</id>
		<title>2023년 3월 31일 (금) 04:46에 Ahn9807님의 편집</title>
		<link rel="alternate" type="text/html" href="http://junhoahn.kr/noriwiki/index.php?title=Kernel_address_space_layout_randomization&amp;diff=1046&amp;oldid=prev"/>
		<updated>2023-03-31T04:46:31Z</updated>

		<summary type="html">&lt;p&gt;&lt;/p&gt;
&lt;table style=&quot;background-color: #fff; color: #202122;&quot; data-mw=&quot;interface&quot;&gt;
				&lt;col class=&quot;diff-marker&quot; /&gt;
				&lt;col class=&quot;diff-content&quot; /&gt;
				&lt;col class=&quot;diff-marker&quot; /&gt;
				&lt;col class=&quot;diff-content&quot; /&gt;
				&lt;tr class=&quot;diff-title&quot; lang=&quot;ko&quot;&gt;
				&lt;td colspan=&quot;2&quot; style=&quot;background-color: #fff; color: #202122; text-align: center;&quot;&gt;← 이전 판&lt;/td&gt;
				&lt;td colspan=&quot;2&quot; style=&quot;background-color: #fff; color: #202122; text-align: center;&quot;&gt;2023년 3월 31일 (금) 04:46 판&lt;/td&gt;
				&lt;/tr&gt;&lt;tr&gt;&lt;td colspan=&quot;2&quot; class=&quot;diff-lineno&quot; id=&quot;mw-diff-left-l2&quot;&gt;2번째 줄:&lt;/td&gt;
&lt;td colspan=&quot;2&quot; class=&quot;diff-lineno&quot;&gt;2번째 줄:&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;br&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;br&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;== 개요 ==&lt;/div&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;== 개요 ==&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot; data-marker=&quot;−&quot;&gt;&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #ffe49c; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;Kernel address space layout randomization (KASLR)은 커널 포인터를 부트 시간에 랜덤한 위치에 두도록 하여서 공격자가 정확한 커널 포인터의 위치를 알 수 없도록 하는 기법이다. 이 기법은 커널 메모리 공격을 방어하기 위해서 등장하였으며, 현재 OS 보안 기법중 중요한 한 부분으로 작동하고 있다. KASLR이 작동하는 커널은 공격자가 Offset의 정확한 내용을 추론해내기 전까지 Buffer overflow, use-after-free와 같은 메모리 공격에서 어떠한 부분을 공격할지 모호하게 함으로서, 작동한다. 그러나 만약 이러한 Offset이 [[Side channel attack]]과 같은 방식으로 leak될 경우 공격자는 커널 포인터에 Offset을 뺌으로서 커널의 주소를 추론할 수 있기 때문에, 커널의 포인터를 허용되지 않은 User에게 Leak되는 것은 위험한 공격 포인트가 될 수 있다.&lt;/div&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot; data-marker=&quot;+&quot;&gt;&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;Kernel address space layout randomization (KASLR)은 커널 포인터를 부트 시간에 랜덤한 위치에 두도록 하여서 공격자가 정확한 커널 포인터의 위치를 알 수 없도록 하는 기법이다. 이 기법은 커널 메모리 공격을 방어하기 위해서 등장하였으며, 현재 OS 보안 기법중 중요한 한 부분으로 작동하고 있다. KASLR이 작동하는 커널은 공격자가 Offset의 정확한 내용을 추론해내기 전까지 Buffer overflow, use-after-free와 같은 메모리 공격에서 어떠한 부분을 공격할지 모호하게 함으로서, 작동한다. 그러나 만약 이러한 Offset이 [[Side&lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;-&lt;/ins&gt;channel attack]]과 같은 방식으로 leak될 경우 공격자는 커널 포인터에 Offset을 뺌으로서 커널의 주소를 추론할 수 있기 때문에, 커널의 포인터를 허용되지 않은 User에게 Leak되는 것은 위험한 공격 포인트가 될 수 있다.&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;br&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;br&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;KASLR이 정말 강력한 방법이기 때문에 [[Return-oriented programming]]처럼 여러 커널 Attack을 할때, KASLR을 공격하는 것이 첫번째 Attack point가 되는 경우가 많다. 이처람 KASLR은 실용적이며, 구현하기 간단하고, 강력한 운영체제 보안의 방법이기 때문에, 대부분의 운영체제는 KASLR를 채택하고 있다.&lt;/div&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;KASLR이 정말 강력한 방법이기 때문에 [[Return-oriented programming]]처럼 여러 커널 Attack을 할때, KASLR을 공격하는 것이 첫번째 Attack point가 되는 경우가 많다. 이처람 KASLR은 실용적이며, 구현하기 간단하고, 강력한 운영체제 보안의 방법이기 때문에, 대부분의 운영체제는 KASLR를 채택하고 있다.&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;/table&gt;</summary>
		<author><name>Ahn9807</name></author>
	</entry>
	<entry>
		<id>http://junhoahn.kr/noriwiki/index.php?title=Kernel_address_space_layout_randomization&amp;diff=1044&amp;oldid=prev</id>
		<title>Ahn9807: 새 문서: 분류: 운영체제 보안  == 개요 == Kernel address space layout randomization (KASLR)은 커널 포인터를 부트 시간에 랜덤한 위치에 두도록 하여서 공격자가 정확한 커널 포인터의 위치를 알 수 없도록 하는 기법이다. 이 기법은 커널 메모리 공격을 방어하기 위해서 등장하였으며, 현재 OS 보안 기법중 중요한 한 부분으로 작동하고 있다. KASLR이 작동하는 커널은 공격자가 Offset의...</title>
		<link rel="alternate" type="text/html" href="http://junhoahn.kr/noriwiki/index.php?title=Kernel_address_space_layout_randomization&amp;diff=1044&amp;oldid=prev"/>
		<updated>2023-03-30T12:13:36Z</updated>

		<summary type="html">&lt;p&gt;새 문서: &lt;a href=&quot;/noriwiki/index.php?title=%EB%B6%84%EB%A5%98:%EC%9A%B4%EC%98%81%EC%B2%B4%EC%A0%9C_%EB%B3%B4%EC%95%88&quot; title=&quot;분류:운영체제 보안&quot;&gt;분류: 운영체제 보안&lt;/a&gt;  == 개요 == Kernel address space layout randomization (KASLR)은 커널 포인터를 부트 시간에 랜덤한 위치에 두도록 하여서 공격자가 정확한 커널 포인터의 위치를 알 수 없도록 하는 기법이다. 이 기법은 커널 메모리 공격을 방어하기 위해서 등장하였으며, 현재 OS 보안 기법중 중요한 한 부분으로 작동하고 있다. KASLR이 작동하는 커널은 공격자가 Offset의...&lt;/p&gt;
&lt;p&gt;&lt;b&gt;새 문서&lt;/b&gt;&lt;/p&gt;&lt;div&gt;[[분류: 운영체제 보안]]&lt;br /&gt;
&lt;br /&gt;
== 개요 ==&lt;br /&gt;
Kernel address space layout randomization (KASLR)은 커널 포인터를 부트 시간에 랜덤한 위치에 두도록 하여서 공격자가 정확한 커널 포인터의 위치를 알 수 없도록 하는 기법이다. 이 기법은 커널 메모리 공격을 방어하기 위해서 등장하였으며, 현재 OS 보안 기법중 중요한 한 부분으로 작동하고 있다. KASLR이 작동하는 커널은 공격자가 Offset의 정확한 내용을 추론해내기 전까지 Buffer overflow, use-after-free와 같은 메모리 공격에서 어떠한 부분을 공격할지 모호하게 함으로서, 작동한다. 그러나 만약 이러한 Offset이 [[Side channel attack]]과 같은 방식으로 leak될 경우 공격자는 커널 포인터에 Offset을 뺌으로서 커널의 주소를 추론할 수 있기 때문에, 커널의 포인터를 허용되지 않은 User에게 Leak되는 것은 위험한 공격 포인트가 될 수 있다.&lt;br /&gt;
&lt;br /&gt;
KASLR이 정말 강력한 방법이기 때문에 [[Return-oriented programming]]처럼 여러 커널 Attack을 할때, KASLR을 공격하는 것이 첫번째 Attack point가 되는 경우가 많다. 이처람 KASLR은 실용적이며, 구현하기 간단하고, 강력한 운영체제 보안의 방법이기 때문에, 대부분의 운영체제는 KASLR를 채택하고 있다.&lt;br /&gt;
&lt;br /&gt;
리눅스에서 KASLR은 기본으로 켜져있으며 끄고 싶은 경우에는 커널 Argument로 nokaslr를 넣어주면 된다.&lt;br /&gt;
&lt;br /&gt;
== 구현 ==&lt;br /&gt;
KASLR의 Entry를 계산할때는, 커널 텍스트 섹션이 움직일 수 있는 최대 크기와, 커널 텍스트 섹션의 정렬(Align)으로 결정된다. 예를 들어서, 리눅스 커널과 같은 경우 커널은 1GB안에서 움직여야 하며, Align은 16mb라서 총 64개의 Entry가 있다. 이를 통해서 커널의 base address는 다음과 같이 정해진다.&lt;br /&gt;
 base_address + s * align_size(16mb): 0 &amp;lt;= s &amp;lt; 64&lt;br /&gt;
&lt;br /&gt;
== Attack ==&lt;br /&gt;
; Cache-based timing channel&lt;br /&gt;
커널 포인터는 캐슁될 수 밖에 없는데, 캐쉬에 힛이 나는지 아니면 힛이 안나는지에 대한 timing정보를 바탕으로, 메모리가 mapped되어 있는지 아니면 unmapped되어 있는지를 파악할 수 있다. 이를 통해서 커널의 메모리 구조를 탈취할 수 있다. 그러나 이러한 cache-based timing attack은 명확한 공격 징후 - 즉 많은 시스템콜 호출과 page fault - 를 이용하기 때문에, 쉽게 공격의 징후를 탐지 할 수 있기도 한다.&lt;br /&gt;
&lt;br /&gt;
== 같이 보기 ==&lt;br /&gt;
# [[ASLR]]&lt;/div&gt;</summary>
		<author><name>Ahn9807</name></author>
	</entry>
</feed>