14: Yfirflæði minnis Flashcards

1
Q

Hlaði

A

Keyrsluhlaði(hámark8MB) – Fyrirstaðværarbreyturo.fl.

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
2
Q

Kös (heap)

A

– Kvik úthlutun eftir þörfum
– Þegarkallaðerámalloc(),calloc(),new()

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
3
Q

Gögn

A

Fyrirframúthlutuðgögn
– Víðværarbreytur,strengfastar,kyrrlegarbreytur,

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
4
Q

Texti / sameiginleg forritasöfn

A

Keyranlegarvélarmálsskipanir – Óskrifanlegt(read-only)

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
5
Q

Hlaðalöskun (stack smashing)

A

Skemma það sem er fyrir ofan í hlaðanum, þá crashar forritið

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
6
Q

“yfirflæði minnis” (buffer overflow)

A

Þegar við förum út fyrir minnissvæðið sem er úthlutað fyrir
fylki

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
7
Q

afhverju er yfirflæði minnis stórmál ?

A

Þetta er algengasta tæknilega ástæða öryggisveikleika

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
8
Q

Algengasta útgáfa yfirflæði minnis ?

A

Lengd streng inntaks ekki athuguð

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
9
Q

Árásir með hlaðalöskun

A

Yfirskrifa venjulegt endurkomuvistfang A með vistfangi annars falls S
Þegar Q framkvæmir ret, þá er hoppað í rangan stað

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
10
Q

Kóðainnspýting (code injection)

A
  • Inntaksstrengur inniheldur bætaútgáfu af keyrslukóða
  • Yfirskrifa endurkomuvistfang A með vistfangi minnissvæðis B
  • Þegar Q framkvæmir ret, er hoppað í árásarkóða
How well did you know this?
1
Not at all
2
3
4
5
Perfectly
11
Q

Varnir gegn árásum með yfirflæði minnis

A

Forðast yfirflæðisveikleika,
Nota stýrikerfisvarnir,
Láta þýðanda nota “kanarífugla” á hlaðanum (stack canaries)

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
12
Q

Afhverju kanarífuglar?

A

Frá því að námuverkamenn fóru með kanarífugla í búrum niður í námurnar til að athuga hvort loftið væri eitrað

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
13
Q

Forðast yfirflæðisveikleika í kóða

A

Nota ekki gets, nota frekar fgets. fgets takmarkar lengdina á strengnum sem við ætlum að lesa inn

strncpy í stað strcpy

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
14
Q

Kerfisvarnir geta hjálpað, slebnar hliðranir :

A

Úthluta slembnu magni af minni á hlaðanum í upphafi forrits, Hliðrar hlaðavistföngum fyrir allt forritið, Gerir erfiðara fyrir tölvuþrjót að vita upphaf árásarkóða, Hlaðinn er á nýjum stað í hvert sinn sem forritið er keyrt

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
15
Q

Kerfisvarnir geta hjálpað, Ókeyranleg minnissvæði :

A

Í gamla x86, var hægt að merkja minnissvæði sem annaðhvort óskrifanleg (read-only) eða skrifanleg (writeable)
Hægt að keyra öll svæði sem eru lesanleg,
x86-64 bætti við “keyrslu” (execute) heimild,
Hægt að merkja hlaða sem ókeyranlegan

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
16
Q

Kanarífuglar á hlaða geta hjálpað

A

Hugmynd:
– Setja sérstakt gildi (kanarífugl) á hlaðann rétt fyrir utan minnissvæðið
– Fallið athugar hvort gildið hafi breyst rétt áður en það hættir keyrslu

Útfært í GCC
-fstack-protector