Re: ITA: lostirc -- simple gtk-based IRC client

Paulo <[email protected]> Sun, 24 Jul 2016 15:53:39 -0300
Newsgroups gmane.linux.debian.devel.portuguese
Message-ID <[email protected]>
Opa,

fiz um teste que pode dar uma luz, para quem entende!!

Alterei o makefile.in que que produz as linhas onde não aparecia o FORTIFY colocando "na unha" a flag, assim.

grep  g++ ../*.build | grep -v FORTIFY

checking for g++... g++
checking whether g++ accepts -g... yes
checking dependency style of g++... none
checking how to run the C++ preprocessor... g++ -E
checking for ld used by g++... /usr/bin/ld -m elf_x86_64
checking whether the g++ linker (/usr/bin/ld -m elf_x86_64) supports shared libraries... yes
checking for g++ option to produce PIC... -fPIC
checking if g++ PIC flag -fPIC works... yes
checking if g++ supports -c -o file.o... yes
checking whether the g++ linker (/usr/bin/ld -m elf_x86_64) supports shared libraries... yes

ou seja aquelas linhas que não possuíam o FORTiFY passaram a possuir ficando assim:

/bin/bash ../../libtool --mode=link g++  -g -O2 -fPIE -fstack-protector-strong -Wformat -Werror=format-security -Wall  -fPIE -pie -Wl,-z,relro -Wl,-z,now -Wl,--as-needed -D_FORTIFY_SOURCE=2 -o lostirc  main.o MainWindow.o MainNotebook.o Tab.o Prefs.o ServerWindow.o GuiCommands.o Entry.o StatusBar.o TextWidget.o NickList.o DCCList.o ../libirc/libirc.a -lgtkmm-2.4 -lgtk-x11-2.0 -lgdkmm-2.4 -lgiomm-2.4 -lgtk-x11-2.0 -lgdk-x11-2.0 -lgdk_pixbuf-2.0 -lgio-2.0 -lpangoft2-1.0 -lfontconfig -lfreetype -latkmm-1.6 -latk-1.0 -lpangomm-1.4 -lglibmm-2.4 -lcairomm-1.0 -lsigc-2.0 -lpangocairo-1.0 -lpango-1.0 -lgobject-2.0 -lglib-2.0 -lcairo 
mkdir .libs

g++ -g -O2 -fPIE -fstack-protector-strong -Wformat -Werror=format-security -Wall -fPIE -pie -Wl,-z -Wl,relro -Wl,-z -Wl,now -Wl,--as-needed -D_FORTIFY_SOURCE=2 -o lostirc main.o MainWindow.o MainNotebook.o Tab.o Prefs.o ServerWindow.o GuiCommands.o Entry.o StatusBar.o TextWidget.o NickList.o DCCList.o  ../libirc/libirc.a -lgtkmm-2.4 -lgdkmm-2.4 -lgiomm-2.4 -lgtk-x11-2.0 -lgdk-x11-2.0 -lgdk_pixbuf-2.0 -lgio-2.0 -lpangoft2-1.0 -lfontconfig /usr/lib/x86_64-linux-gnu/libfreetype.so -latkmm-1.6 -latk-1.0 -lpangomm-1.4 -lglibmm-2.4 -lcairomm-1.0 -lsigc-2.0 -lpangocairo-1.0 -lpango-1.0 -lgobject-2.0 -lglib-2.0 -lcairo -Wl,--rpath -Wl,/usr/lib/x86_64-linux-gnu -Wl,--rpath -Wl,/usr/lib/x86_64-linux-gnu

No entanto.....

hardening-check -v debian/lostirc/usr/bin/lostirc 
debian/lostirc/usr/bin/lostirc:
 Position Independent Executable: yes
 Stack protected: yes
 Fortify Source functions: no, only unprotected functions found!
	unprotected: gethostname
	unprotected: memmove
	unprotected: recv
	unprotected: read
	unprotected: memcpy
 Read-only relocations: yes
 Immediate binding: yes

ou seja o mesmo resultado!

O bug https://bugs.debian.org/cgi-bin/bugreport.cgi?bug=673112 talvez possa ajudar também.

[]'s
kretcheu
:x


Em 24-07-2016 14:15, Herbert Fortes escreveu:
> 
>>>>
>>>> Se o binário final não tem as features de hardening, tem alguma coisa
>>>> quebrada no build system que está impedindo as flags certas de chegarem
>>>> na linha de comando do compilador. a não ser que a feature esteja lá e
>>>> seja um bug do lintian por não conseguir detectar que o binário na
>>>> verdade _tem_ todas as features de hardening, adicionar um override pra
>>>> calar a boca do lintian não é certo (se de fato fosse um bug no lintian,
>>>> você até poderia colocar um override, mas só depois de reportar um bug
>>>> contra o lintian).
>>>
>>> O blhc não reclama, mas o hardening-check sim.
>>>
>>> Não sei se é válido, mas fiz o seguinte:
>>>
>>> $ grep g++ *.build | grep -v FORTIFY
>>>
>>>
>>> /bin/bash ../../libtool --mode=link g++  -g -O2 -fPIE -fstack-protector-strong -Wformat -Werror=format-security -Wall  -fPIE -pie -Wl,-z,relro -Wl,-z,now -Wl,--as-needed -o lostirc  main.o
>>> MainWindow.o MainNotebook.o Tab.o Prefs.o ServerWindow.o GuiCommands.o Entry.o StatusBar.o TextWidget.o NickList.o DCCList.o ../libirc/libirc.a -lgtkmm-2.4 -lgtk-x11-2.0 -lgdkmm-2.4 -lgiomm-2.4
>>> -lgtk-
>>> x11-2.0 -lgdk-x11-2.0 -lgdk_pixbuf-2.0 -lgio-2.0 -lpangoft2-1.0 -lfontconfig -lfreetype -latkmm-1.6 -latk-1.0 -lpangomm-1.4 -lglibmm-2.4 -lcairomm-1.0 -lsigc-2.0 -lpangocairo-1.0 -lpango-1.0
>>> -lgobject-2.0 -lglib-2.0 -lcairo 
>>> g++ -g -O2 -fPIE -fstack-protector-strong -Wformat -Werror=format-security -Wall -fPIE -pie -Wl,-z -Wl,relro -Wl,-z -Wl,now -Wl,--as-needed -o lostirc main.o MainWindow.o MainNotebook.o Tab.o
>>> Prefs.o
>>> ServerWindow.o GuiCommands.o Entry.o StatusBar.o TextWidget.o NickList.o DCCList.o  ../libirc/libirc.a -lgtkmm-2.4 -lgdkmm-2.4 -lgiomm-2.4 -lgtk-x11-2.0 -lgdk-x11-2.0 -lgdk_pixbuf-2.0 -lgio-2.0
>>> -lpangoft2-1.0 -lfontconfig /usr/lib/x86_64-linux-gnu/libfreetype.so -latkmm-1.6 -latk-1.0 -lpangomm-1.4 -lglibmm-2.4 -lcairomm-1.0 -lsigc-2.0 -lpangocairo-1.0 -lpango-1.0 -lgobject-2.0 -lglib-2.0
>>> -lcairo -Wl,--rpath -Wl,/usr/lib/x86_64-linux-gnu -Wl,--rpath -Wl,/usr/lib/x86_64-linux-gnu
>>>
>>> -D_FORTIFY_SOURCE=2 não aparece em dois momentos.
>>
>> parece ser um falso positivo do blhc (*build log* hardening check): as
>> flags aparecem no log em algum momento, mas não em todos os momentos, e
>> em especial não nos momentos certos :)
>>
>> o hardening-check reclama porque ele checa os binários de fato, e não
>> acha as features de hardening. o build system tá quebrado.
> 
> Preciso rever o upload que fiz para o xmlrpc-c...
> 
> 
> 
> abraço,
> -- Herbert Parentes Fortes Neto (hpfn)
>
signature.asc (application/pgp-signature, 819 B)
-----BEGIN PGP SIGNATURE-----
Version: GnuPG v2

iQIcBAEBCAAGBQJXlQ60AAoJEDnxel9a775zLqsP/1Rzznl9xYzU8bdqdPCku7T0
2DjgGuNsQqhFFlxxlw29aslFHLMxo2L5HhgCrDYxyzU5C8bt0nzCKBAekAJOUPys
6K7+sAKDae1utNkjWzUe17uSO0FFw+C/N2C2ZKrEM5P75KQUebEIsrnZdURf+HEr
PVsJrruxWZolHkCghXUJVKMRR1KKyEuSnhNDj3nQ+d5DnF+06vylmHgiuXe471UF
UE3R2Do7wSn5HBVAvGiXok1Ho8e3GGbJ1oBBunmLYDBCJuU09gByKt4TpdgaArun
zY0Ff+bm21n6T/1b9NUWoVTyyndslieBM7+lL2dvuMYhyOhmOGzr3O+mFA/xYi7X
T0VkZt7oZCTX/ZYHBL5lfc43ja34ZXgk09WzNTdlXBkUNNqC9Z+pYJ16rFfNyEvp
82PrLHRPScRjLMkvsg8kSioTrGh0+P3SdlYIPCkVFO7wXzsnjO2xe1+/WCW0jlOx
PElo5z2xS5Lx+qmuPtTghedML/qRp9L8N9h1RfzKQzNbyLXoUSiTvwLmMIWtUHW+
sFzEPDiRerknHq882i2o6qa9cHbtxqLjaE1Z9Giwa0cyhe84xeVIbrR75e26LLoj
OO/kBE1KxLQYfCRDlIeSIEd4FIwQH+wkus8HuX99nhf9Uio2Vwa3d2WF4hAJWLTA
PBGFJMRw+32mVcHvl+Dl
=Due2
-----END PGP SIGNATURE-----