it-swarm-korea.com

수동 보안 코드 검토 완료-무엇을주의해야합니까?

PHP 외부 보안 컨설턴트로부터 코드 검토를 받고 싶은 애플리케이션이 있지만 그 프로세스를 "방법"에 대해 명확하지 않습니다.

우리는 그가 어떤 종류의 테스트를해야하는지 명시했고, 그가 제출 한 보고서의 첫 부분 just 은 다음과 같은 사용에있어서 매우 표준 '문제'를 지적합니다. eval (), fopen () 등- '입력 유효성 검사 문제'제목 아래에 있습니다.

자동화 된 보안 코드 검토 도구를 실행할 때 이러한보고 된 문제를 모두 직접 보았습니다.

(A) 그것이 내 코드 내의 문제의 범위이고 그 사람이 좋은 일을했는지 ​​모르겠습니다. 또는
(B) 그는 이러한 자동화 도구를 실행하고 출력을 필터링하여 노이즈를 제거하고 있습니다.

질문 :

  1. 그에게 무엇을 요청해야합니까?
  2. 그가 실제로 잘하고 있다는 것을 알기 위해 어떻게 그의 작업을 교차 확인 할 수 있습니까?

( https://stackoverflow.com/questions/4311151/getting-a-manual-security-code-review-done-what-to-watch-out-for 에서 복사)

16
matt74tm

이미 그런 질문이 있다는 사실을 깨닫는 것은 당신을 게임에서 앞서게합니다.
또한 다음을 추가합니다.

(C) 그는 코드 검토에 능숙하지 않기 때문에 "낮은 열매"만 얻을 수 있습니다.
(D) 그는 "oh so easy"가 코드로 분기 될 것이라고 생각하는 정말 pentester입니다. 따라서 실제 코드 만 추적하여 pentest와 유사한 결과를 얻을 수 있습니다. .
(E) 그는 보안에 대한 이해가별로없는 개발자이지만 잘못된 코드를 알고 있습니다.
기타...

문제의 요점은 그가 당신에게 투명하지 않은 것 같습니다. 그래서 그것이 어떤 옵션인지는 정말로 중요하지 않습니다. (A) My code has no problems 코드에 어떤 문제가 없는지 증명할 수 없다면 그다지 가치가 없습니다.
아니요, 자동화 된 도구를 실행하면 아님 보안 코드 검토로 간주됩니다.

따라서 귀하의 질문에 :

1. What should you ask him to do "보안 코드 검토". 그는당신 그가 무엇을 할 것인지를 말하고 /하거나 당신이 필요로하는 다른 것을 추천해야합니다 (이것은 꽤 긴 목록이 될 수 있습니다). 물론 애플리케이션이 수행하는 작업, 액세스 권한이있는 사람, 데이터의 민감한 정도 등과 같은 더 많은 정보를 제공 할 수 있습니다.하지만 그렇지 않더라도 그는이 정보를 요청해야합니다. 그것 없이는 단순히 전문가 수준의 코드 검토가 아닙니다.

2. How do I cross-check his work-일반적으로 세 가지 가능성이 있습니다.

  • 주제에 대해 충분히 배우고 그가 무엇을하고 있다고 주장하는지 이해하고 어려운 질문을 할 수 있습니다. 또는 그 일을하는 사람을 얻을 수 있습니다. (당신이 이해하지 못하는 서비스 제공자를 다룰 때는 항상 사실입니다 ...)
  • 응용 프로그램의 하위 집합에 대해서만 다른 컨설턴트가 경쟁 검토를 수행하도록합니다.
  • (그리고 이것은 좋은 것입니다) 외부 블랙 박스 침투 테스트를 수행합니다. 이것이 코드 검토를 검증하는 가장 좋은 방법입니다. 물론 다른 사람에게 침투 테스트를하고 결과를 비교하도록합니다. 참고 pentest에서 발견 된 모든 취약점이 코드 리뷰에서 발견되는 것과 관련이있는 것은 아니지만 그 반대의 경우도 마찬가지입니다.
7
AviD

검토의 폭과 깊이를 모두 고려해야합니다. 전반적으로 검토에서 다루는 위험/공격/위협의 범위를 의미합니다. 여기서 다루어야 할 사항에 대한 아이디어를 얻으려면 OWASP 애플리케이션 보안 검증 표준으로 시작해야합니다. 깊이에 따라 컨설턴트가 각 영역이 적절하게 방어되었는지 얼마나 잘 확인할 것인지를 의미합니다. 로우 엔드에서 자동화 된 도구 스캔은 거의 보장을 제공하지 않습니다. 최고급에서 수동 검사 또는 실제 테스트 사례는 기본적으로 올바른 방어 수단이 마련되어 있고 올바르게 설계되었으며 필요한 모든 곳에서 사용된다는 것을 증명해야합니다.

2
planetlevel