The Principles of Secure Development - Epicenter Dublin

Post on 24-Dec-2014

925 views 4 download

description

The Principles of Secure Development by David Rook at the Epicenter Dublin conference in 2009.

transcript

���������

��� �������������������������������

�����������������

������

� ������������� ����������

� �������������������

� ����������� ���������������� �����

� ����������������������� ������ �������

�������������������������

�!����"���"���������#$%������������ &

� ��������� �� ���!�"�� �����������!���� ���#����!�#�� !�$#�%����������������������

� ���������&��'��()))*�����������'�*�*�+

� ��������������������������(������ ���������������� +

� �� �,������� ������,���-�$���

� .���� ������������� ���������������������(�����������-�/���!�� -������ ���+

� #�����������������-!�01������� �2

� �34���'�����!�5������� �2

667���� ��� ������ ���������8119�����811:�(�����+�����

�������34���'������(��������#;<��������+

#���������������������'���

#;<�����������=�����=>>)��*���*����*-�>���)>�� �>����������

#���������������������'���

$�����������������������������������������!��������������������������������������� �������*

��������������������������������!

������������ ������������� ������ �����������)� �����������!������������)������� �������� ���������)� ���������������� ������ �����*

��)��������� ������������������� ����������� �����=

�������������������( ���)���������������� ������ ��������������� �������+

� �����������������������

� ���������-������ ����� ��������������������� ������ �����

� ,�������������-��������)���������������

� �������� ������������ �)������������ �������

� ���������-������� ����)���������-������ ��

�������������������( ���)���������������� ������ ��������������� �������+

� ,�������)�����-�����������������������)��2

� ������������ ����������������������������)�����������

� ,�������������������-���������)�����������

� �������� �������������)� ������

� ��� ����� ����)���������-��������������

�������������������( ���)���������������� ������ ��������������� �������+

� ?���� ��������� ������ �����

� @, ������01

� ,�����%����������01

� � &�����8A

� @�����22

�������������������( ���)���������������� ������ ��������������� �������+

#�����������������-

��'������. �)�

?� ������.� ��<�������

����������4���-�

��������<����%��� ��-

����� ������������

�������?���-�����

#���������"�B�����.�-���

���������#�����������

����������������@�'����"��������

.�� ������"��������C"4� �����

���������#����-�����������-�

�34���'�����

#�����������-

������������� ����������

������������� ������������

�������.������� ���

��������� ��"�������4�����

��������������;� ������

.�� ����������������34�3��������������

.�� ���������������,�����-�����������

.�� ���������������@��#���������������

.�� ������#��������@���������)������������������?�����������

.�� ������#��� �$�����������#��# ����D�����<������������������D�������������

��������<�����-���<������-���@�����

������������������� ���-���������#������ �"������

.�� ���������������,�����-�����������

<����?����-������������4��

�������� ������#���

%���D#��������)��

<��������)����C���������������� �-��

C����������������� ��"�����;� ���

C��������������"����#����-������� -�����

# �����������������������������������������

C����������������� ��"�����;� ���

C��������������������

<������ �#��� ���.� ��&����������

<������ �#��� ���#������ �����������

�������������������( ���)���������������� ������ ��������������� �������+

� ?���� ��������� ������ �����

� @, ������01

� ,�����%����������01

� � &�����8A

� @�����22

� EF������������ ������-�������

(����)������������

� ����������� �����������������������������������

� ���������-������ ����� ������)���)���������������

� ���� ��������G���������-�����������

� #������ ������ ���������������������� �������

� "�� ��������'������������������ ��������2

*���������������������������������

� H�������������������� ��(H���+

� ����������� ������������ ��� ���������

� 4��-��-�>� �����>.����)�������������

� ��� ����������������'��������������� ������ �����

� ?�������������)��������-�������"@��������������������-2

� ������;� ������

� @������;� ������

� <����%��� ��-

� ����������������� ����������

� �������?���-�����

� �������#�����������

� �����������-�

� �������"������� �����

��� �������������������������������

��� �������������������������������

� ������;� ������

� ������������������������������������ ������������������

� #��������-��G� ���� ���������������������(�������������/�+

� .������� �!�������������������������������=�I�J08!0KLM

� C���)���� �����-������ �������)���������� �

� � �� �����-��������������������������� �� ����������

� � �� ��������� �!���� ����-����- ��B����=

�*��� ��� (�������*B���(��N��+!?������*B���"�� �������(�����++

��� �������������������������������

� @������;� ������

� ������������������������������������ �����������������

� C����������)�����(�*�*������C"4+������������� ��������

� #���������������������������-������������N������������

� ������������-�����������������=

)))*����� �����*��>���*��� 2���FO������P� ���(�������*���+O>������P

������=

���F76#������76<� ���789�������*���78:76#>������76<

��� �������������������������������

� <����%��� ��-

� <������������������)� ������������������!������������E

� #������>������������ ���������������������G������ ������

� %��� ���������������������� �!�������������������-������

� &���������� ��-�F����������� ���-�

����������� ������������ ��

������������������

������������ �����������

������������������ �!"����"#$ !$�

%��!$&"�����%"�'� (!�&)"� ���

��� �������������������������������

� ����������������� ����������

� <�������� ��������������������������������������������

� @�������� ������)� ��� ���������������

� &�����������������/��� ������������ ������ �-������ ����

� ��� ����������-�����)������������-�������������

� <������ Q ����������!�������� ��������������������(# ��#% 2+

� ��G���� ������� ���������������� ��������(������������ �+

��� �������������������������������

� �������?���-�����

� C����������-���������������������!������������D����

� R���������������������������������G� ����������������������

� ��������G���������������������� ���������� ��

� &�������� ������)�������������-�����!����)� ����

� ���������������G��)���������������(�*�*���4E+

� ����������)��� �����������������������(�*�*���������������+

��� �������������������������������

� �������#�����������

� ������������(�*�*�##��!�����)���!���������G�+�����������

� ��)����� ������!���G�������������)�

� ��G�������������������������������(�*�*���4�8+

� ��G��'����������4>�4����� -����-��!������������������E

� ����������������-�����������������������������������-�

��� �������������������������������

� �����������-�

� ������������(�*�*�##��!�����)���!���������G�+�)���������

� ��)����� ������!���G�������������)�

� ��G�������������������������������(�*�*��<�+

� ��G���������������� �����)�����������G���������� �����������

� ����-��������������������!��)�����-���� �������2

��� �������������������������������

� �������"������� �����

� @���������EF ��������!���G�������������������������������

� C��������������������� )�����-��������!������)�������

� �D?�� ������G������������!�������%� ����������������

+���#�����������������������������!��,�

� �����!��#������"�B���������K*AE

� �����G������ ��������@, ������01� �����

� ���)����������� ������2

� ��������������� ����������������?������(���)���������&��� +

+���#�����������������������������!��,�

*�������������)����������������������������

� . )������ !��������� ��������������� ��

� ��������������������������� ������ �����

� ���� �������� �!�������������������� ������������

� ��� ����������������������!���G��������� �����������������

�'���������

"������*,���� �� ��������������������������S�"�B����*.��(�C���.� &����+�

� @H!�)�����������������=

O������P� ���(�������*���+O>������P

,���������������������������� ��������������������-���

�'���������

"������*,���� �� ��������������������������S�������*%�?4<���� ("�B����*.��(�C���.� &����++

� ?������������ �-�����������=

S �T������S-�T� ���(�������*���+S �T>������S-�T

�'�������)�

UE>���>���>��� �����#$�T����M�-��F�#$�DP��)(+T����M�� ���F�M�-�DP�����(N�� ��N+T�������M�-�DP������(+T��������R����������M�� ���T

&��������� �����������)����������� �������������������

�'�������)�

UE>���>���>��� �����#$�T�����%�?4==<�������T����M�-��F�#$�DP��)(+T����M�� ���F�M�-�DP�����(N�� ��N+T�������M�-�DP������(+T��������R�����������!�%�?4==<�������==�����(M�� ��+T�

@������)� ��)����%�?4�������

�'�����������

����� �� �������������� ��-� ����-����������

����������� ������������ ��

������������������

������������ ����������� ����������

�������� �!"����"#$ !$�

%��!$&"�����%"�'� (!�&)"� ���

����=>>)))*����� �����*��>���*��� 2���F?����

�������� ��� ���������-��������C"4

����=>>)))*����� �����*��>���*��� 2���F?����� &�������� ���F8

&���������� ��-�F����������� ���-�

�'�����������

��� ���� ��� �����J�

��� ������������� ����(�����-VW���-�+�J�

�����-��� ����F������=>>�����������'�*�*�>�X�����*��� �T

��� J

C"4��� �F���) C"4(�� ���+T

���������������F��� *���������(+T

��*� ��(+T

L������ (<���������+�J�>>�����������������������������������

������*��*����� �(�<������B������- ��Q��*-��?����-�(++T

LL�L

�'����������

��)���������)���������!��������������

�<4<#� Y�."@? @������,%<"< � �<� "�(R< "!�@��������+�F�811:

R������ ���������-������������-� �������=

�����-��B �F���<4<#��Y�."@?�@������,%<"<�� �<� "�(R< "!�@��������+�F��Q�����*����R�����*����+T

.�� �������� ��������������������� �������34���'�����

1T��<4<�< ."@? @������,%<"< ���F�N��������NTDD

�'����������

�����- �����-;� ���F�����R�����*����T"�-������F���) "�-��(Z�I��+T?�������F���*?����(���������*����+T�� (�*�������+J>>���������&@����������!����������������-*

L� ��J��� ���;� ���F����*�����(�����-;� ��+T�� ((���;� ���O�0::1+�[[�(���;� ���P���������*&)*R���++J>>�����������������-�!����������������-*

LL

�'����������������������#��������-

,���� �������������� ���������C"4�����)������������@?

����=>>����� �����*��>���*���2����F�����

����������������-������������F��� �������)�����������������-�=

O������P������F�������*C"4*�����@�(�����F�+QAT��������*)����(�������*C"4*��������-(��!�������*C"4* ��-��++TO>������P

,����� ������� ��������������F �� �����������'�����-������������@?

�'����������������������#��������-

O������P�������F�������*C"4*�����@�(�����F�+QAT���������F�������*C"4*��������-(��!�������*C"4* ��-��+T����(����*�����(>\V�D/ D]WM>++�J��������*)����(����+T�L�� ���J�)���)*� ���(����� ��������E�+T�L�O>������P

� ������;� ������^ ,����.�#�/������

� @������;� ������^ ,����.�#�/�����������������������

� <����%��� ��-^ #�����������*�����

� ����������������� ����������^ (����������0��������#�������������1���0��2

� �������?���-�����^ ������������������������#�%���0��2

� �������#�����������^ ������� �������������������

� �����������-�^ ������� ����������)����������

� �������"������� �����^ ���������������������������������������������� ������2�����!�����

���������������������� ���������

�������������������������

� ��G����������-������������� ���������������������

� ��������G������)�)��� !�����'������������!��������������)���

� ��G���������������������������-���������!�����-�������

� �������-�����-������������ ���������������-����'�������������-

� ����������� ����������G����������������!�H��� ��E

(���������������������3456

� ,����������������0:59����������������� 2

$����� ������������������������������

(���������������������3456

� ,����������������0:59����������������� 2

� @H!������� ��)����������������0:59�������� ���������������2

� ��?��� ����������������������-�������������������

� "��������)�����������������������������-�����)��� 2

(���������������������3456

� ���������������0:59�������� ��� ������811:

� 0�� ;����^ ����������������� ����������

� 8�� ;����^ �������#�����������

� 6�� ����_�� ;�����^ ;� �����������<����%��� ��-

��������������� ��

���������

������� �� ����������� ���������������� ��

��������

�������� �����

! �� �� �� ���" ��������

#�������������������������� ��"���

�������$������"���

%���������������

������������� ��������� ����$&'

(� �����)���������������

���� ��!���

$������ ���������"�� ������� ��

0���

�����)

�������!

��������7���������

������

������

�����������

������������������

3

89

:

������������)������������

� )))*�����������'�*�*����� )))*�����������'�*��^ �������!�������������)������������������������!��'�������������� �����������- �

� ����=>>��*����*�-���� ����=>>� �*����*�->����^ #�����������)����������������������!���������������

� ����=>>)))*)���*�-^ �'���������������������������������)��������������������������

� ����=>>)))*����������*��*��>�����������)���>� -�>^ ; ������������)�������������!�����������������������)�

� ����=>>)))*�� )1��*��>^ �������������'������������������'���������������������)���������������������������

� ����=>>'�������-������*� -���*��>^ #�����������)����������������������!�����

� ����=>>)))*)��������*�->^ ����������������������)����������������������!���������

� ����=>>)))*�)�����*��>�����������'�^ <!�)���������������������������!����������������������)�����

��������������������������2�����!��)����������

� ���� �����=�#�����������������-�<�� ���������������^ #�+=�=�����>�3?45:43?:9�

� ����������������� ������4������ �^ #�+=�=�����>�@59?A883:@

� �������?�� ��-^ #�+=�=�����>�@59?A34439

� ���������?������=�"�� ����-�.���!�C����������!���������^ #�+=�=�����>�@9839:4464

� ���)������������=���� ���-������������^ #�+=�=�����>�@9839?A5@?

� ���� ��������)������������� ���������=�����������-��������������-����)����;� ������ �����^ #�+=�=�����>�@983::::8A

� ���� ��������)�������������������-=�����������-����)�������������. �)�^ #�+=�=�����>�@9839@:6A3

� .�//��-=�������.����;� ������ ������������^ #�+=�=�����>�@983::A334

)))*�����������'�*�*�)))*���������� �����*�*�

�)�����=�Z�����������'�

������"!������������-�����������=�@, ������ ���!�01������������