Update 'src/cihaz_guvenligi/libreboot_grub.md'

pull/16/head
AA 5 years ago
parent be97e9410c
commit 4108a03b9b
  1. 63
      src/cihaz_guvenligi/libreboot_grub.md

@ -22,7 +22,7 @@ GPG ile Libreboot'un GRUB'ın kurulumunu ve yüklenecek çekirdeklerin değişti
## Bir GPG anahtarı edinin
Grub kriptografik olarak çekirdek ve ayar dosyalarını denetlemek için GPG kullanmakta ve kullanılacak anahtarı sizin üretmeniz gerekmekte. Şayet halihazırda bir GPG anahtarınız yok ise sadece bu amaçla veya genel olarak kullanılmak üzere bir GPG anahtarı üretebilirsiniz. Bunun için (güvenlik.oyd.org.tr/GPG) rehberinden yararlanabilirsiniz.
Grub kriptografik olarak çekirdek ve ayar dosyalarını denetlemek için GPG kullanmakta ve kullanılacak anahtarı sizin üretmeniz gerekmekte. Şayet halihazırda bir GPG anahtarınız yok ise sadece bu amaçla veya genel olarak kullanılmak üzere bir GPG anahtarı üretebilirsiniz. Bunun için [GPG rehberinden](/yazisma_guvenligi/gpg/gpg-anahtar-uretimi.md) yararlanabilirsiniz.
Bu noktada ihtiyaç ve beklentilerinize göre değerlendirmeniz gereken bir husus bulunmakta. Şayet kişisel GPG anahtarınızı sürekli olarak kullanacaksanız bu anahtarın bir noktada açığa çıkması veya kaybedilmesi tehlikesini de göze alıyor olacaksınız. Aynı zamanda anahtarınız cihazlarınızda ve belki başka cihazlarda tarafınızdan kullanılabileceği üzere bir noktada arzunuza aykırı olarak ayar dosyası veya çekirdek imzalamakta kullanılabilir siz bunu fark etmeden.
@ -33,18 +33,19 @@ Kullanmak konusunda karar verdiğiniz bir GPG anahtarınız olduktan sonra sonra
## Gerekli yazılımları indirin
Libreboot imajında değişiklikler yapabilmek ve bu değişiklikleri bios çipine yükleyebilmek için gerkeli yazılımları indirmelisiniz. (Libreboot'un arşisinden)[https://www.mirrorservice.org/sites/libreboot.org/release/stable/20160907/] gerekli dosyaları indirebilir imzasını GPG ile doğrulayabilirsiniz. İhtiyacınız olan cbfstool ve flashrom (dizinde flash adında) yazılımları indirdiğiniz arşivin dizininde bulunacak.
Libreboot imajında değişiklikler yapabilmek ve bu değişiklikleri bios çipine yükleyebilmek için gerkeli yazılımları indirmelisiniz. [Libreboot'un arşisinden](https://www.mirrorservice.org/sites/libreboot.org/release/stable/20160907/) gerekli dosyaları indirebilir imzasını GPG ile doğrulayabilirsiniz. İhtiyacınız olan cbfstool ve flashrom (dizinde flash adında) yazılımları indirdiğiniz arşivin dizininde bulunacak.
Flashrom yazılımını dağıtımınızın reposunda da bulabilirsiniz.
Debian Dağıtımlarda:
'sudo apt-get update'
'sudo apt-get install flashrom'
`sudo apt-get update`
`sudo apt-get install flashrom`
Yum yönetici kullanan dağıtımlarda (Fedora, Centos)
'sudo yum install flashrom'
`sudo yum install flashrom`
## Değiştirilecek Libreboot imajını elde edin.
@ -59,12 +60,12 @@ ROM imajı **libreboot.rom** olarak belirttiğiniz dizine kaydolacaktır.
* Şayet ROM imajını indirip değişikliklerinizi yapmak isterseniz;
(Libreboot imajını indirin)[https://www.mirrorservice.org/sites/libreboot.org/release/stable/20160907/rom/grub/]
[Libreboot imajını indirin](https://www.mirrorservice.org/sites/libreboot.org/release/stable/20160907/rom/grub/)
Çip boyutunu öğrenmek için `flashrom -p internal` komutunu kullandığınızda size aşağıdaki gibi bir sonuç döndürecektir.
Found Macronix flash chip "MX25L6406E/MX25L6408E" (8192 kB, SPI) \
mapped at physical address 0x00000000ff800000.
> Found Macronix flash chip "MX25L6406E/MX25L6408E" (8192 kB, SPI) \
> mapped at physical address 0x00000000ff800000.
Yukarıdaki örnekte çip boyutu 8mb görünmektedir.
@ -86,22 +87,24 @@ cbfstool dizininde libreboot.rom'un bulunduğundan emin olup aşağıdaki komutu
Bir saldırganın GPG doğrulamasını aşmak için yapması gereken tek şey boot aşamasında GRUB'a doğrulama yapmamasını söylemek. Bu bakımdan Libreboot içinde çalışan GRUB'ın ayar değişiklikleri için parola talep etmesi güvenliğin anlamlı olabilmesi için şart.
Bunun için (Zarola)[zarola.oyd.org.tr] yöntemini kullanmanızı hararetle tavsiye ederiz. Keza bilgisayarınızın güvenliğinin ilk adımı bu parolanın güvenliğine bağlı.
Bunun için [Zarola](zarola.oyd.org.tr) yöntemini kullanmanızı hararetle tavsiye ederiz. Keza bilgisayarınızın güvenliğinin ilk adımı bu parolanın güvenliğine bağlı.
Bunun için bir terminalde `grub-mkpasswd-pbkdf2` komutunu çalıştırıp parolanızı girin. Çıktı şuna benzeyecektir;
`grub.pbkdf2.sha512.10000.HEXDIGITS.MOREHEXDIGITS`
grubtest.cfg dosyasını seçtiğiniz düzenleyici ile terminalden aldığınız parola özüt değerini aşağıdaki arağıa girin.
grubtest.cfg dosyasını seçtiğiniz düzenleyici ile terminalden aldığınız parola özüt değerini aşağıdaki şekilde girin.
`gfxpayload=keep`
`terminaloutput --append gfxterm`
```
gfxpayload=keep
terminaloutput --append gfxterm
**set superusers="root"**
**password_pbkdf2 root grub.pbkdf2.sha512.10000.HEXDIGITS.MOREHEXDIGITS**
set superusers="root"
password_pbkdf2 root grub.pbkdf2.sha512.10000.HEXDIGITS.MOREHEXDIGITS
#Default to first option, automatically boot after 1 seccond
```
Her açılışta GRUB'a parola girmemek için standart yükleme seçeneğini paroladan ari kılmak yerinde olacaktır. GRUB GPG ile kontrolleri yapacağı için bu güvenlik açısından bir sorun teşkil etmeyecektir. Bunun için `--unrestricted` parametresini aşağıdaki gibi ekleyin.
@ -109,6 +112,7 @@ Her açılışta GRUB'a parola girmemek için standart yükleme seçeneğini par
Harddiskte bulunan GRUB'ın GPG güvenliğini geçememesi için alağıdaki gibi unset superusers satırının başına "#" koyarak devredışı bırakılması gerekiyor.
```
function try_user_config {
set root="${1}"
for dir in boot grub grub2 boot/grub boot/grub2; do
@ -120,6 +124,7 @@ function try_user_config {
done
done
}
```
## Açık anahtarınızı hazırlayın
@ -133,21 +138,24 @@ GRUB'ın kontrolleri yapacağı size ait GPG anahtarının açık anahtarının
Libreboot GRUB'ın GPG anahtarınız ile imza kontrol etmesi için aşağıdaki parametreyi grubtest.cfg yapılandırma dosyasına menü girdilerinden üste koyun.
```
trust (cbfsdisk)/boot.key
set check_signatures=enforce
```
## Çekirdek ve yapılandırma dosyalarını imzalayın
Libreboot'un kontrol etmesi gereken dosyalara anahtarınız ile imza atmanız gerekmektedir. İmzalanacak dosyalar aşağıdaki gibidir;
```
/boot/initramd veya initramfs
/boot/vmlinuz.*
/boot/grub/grub.cfg
```
ve
Libreboot'a eklenecek;
Libreboot'a eklenecek grubtest.cfg.
`grubtest.cfg`
Dosyaları imzalamak için aşağıdaki komutu listedeki dosyalar için tek tek çalıştırın.
@ -162,20 +170,26 @@ her .sig dosyasını ilgili dosyanın yanına ekledikten sonra ROM'un hazırlanm
Aşağıdaki dosyaları cbftool dizininin altına alın:
```
boot.key
grubtest.cfg
grubtet.cfg.sig
grubtest.cfg.sig
```
Daha sonra ROM içindeki eski dosyaların silinmesi gerekiyor. Bunun için aşağıdaki komutu sırası ile çalıştırın.
`./cbfstool libreboot.rom remove -n boot.key`
`./cbfstool libreboot.rom remove -n grubtest.cfg`
`./cbfstool libreboot.rom remove -n grubtest.cfg.sig`
Ardından yeni dosyalarımızı Libreboot.rom'un içine eklenmesi gerekiyor.
`./cbfstool libreboot.rom add -n boot.key -f boot.key -t raw`
`./cbfstool libreboot.rom add -n grubtest.cfg -f grubtest.cfg -t raw`
`./cbfstool libreboot.rom add -n grubtest.cfg.sig -f grubtest.cfg.sig -t raw`
Artık libreboot.rom dosyanız bios çipinize yazılmaya hazır.
@ -218,11 +232,12 @@ Güncellemeler size pek belli etmeden gerçekleşebilir kurulumunuza bağlı ola
[Grub2-signing-extention](https://github.com/Bandie/grub2-signing-extension/blob/master/sbin/grub-update-kernel-signature) betiğini indirebilir veya aşağıdaki şeklinden kopyalayabilirsiniz.
```
#!/bin/bash
# grub2-update-kernel-signature
# Renews the signature in /boot/.
# Author: Bandie
# Licence: GNU-GPLv3
#grub2-update-kernel-signature
#Renews the signature in /boot/.
#Author: Bandie
#Licence: GNU-GPLv3
function sign(){
for f in `find /boot -maxdepth 1 -type f`
@ -251,6 +266,7 @@ if ! sign
then
sign
fi
```
Betiği aşağıdaki dizine **zz-update-signatures** adıyla kaydedin:
@ -268,7 +284,10 @@ Bu aşamanın ardından her çekirdek güncellemesinde ilgili betik çalışarak
## Ek Okumalar
https://libreboot.org/docs/gnulinux/grub_hardening.html
https://github.com/Bandie/grub2-signing-extension
https://www.crowdstrike.com/blog/enhancing-secure-boot-chain-on-fedora-29/
https://www.gnu.org/software/grub/manual/grub/html_node/Using-digital-signatures.html

Loading…
Cancel
Save