소프트웨어의 고유 한 특징은 무엇입니까? 소프트웨어 취약점에 대한 공격 / 툴의 수명주기는?


10

내 지역 대학에는 약 20 명의 학생들로 구성된 소규모 학생 컴퓨팅 클럽이 있습니다. 이 클럽에는 모바일 개발, 로봇 공학, 게임 개발 및 해킹 / 보안과 같은 특정 분야의 소규모 팀이 있습니다.

사용자 스토리, 복잡한 작업 추정, 버전 제어 및 자동화 된 빌드 / 테스트를위한 지속적인 통합과 같은 몇 가지 기본 애자일 개발 개념을 두 팀에 소개합니다.

폭포, 나선, RUP, 애자일 등과 같은 기본 개발 수명주기에 익숙하지만 해킹 / 보안 위반에 대한 소프트웨어 개발 수명주기와 같은 것이 있는지 궁금합니다. 분명히 해커는 컴퓨터 코드를 작성하고 있지만 해당 코드의 수명주기는 얼마입니까? 위반이 발견되고 패치되면 해당 위반을 악용 한 코드가 쓸모가 없기 때문에 유지 관리에 너무 걱정할 것이라고 생각하지 않습니다.

수명주기는 다음과 같습니다.

  1. 보안의 차이 찾기
  2. 보안 격차 해소
  3. 페이로드 조달
  4. 페이로드 활용

제품의 목적이 보안을 위반하는 경우 소프트웨어의 개발 수명주기에 어떤 차이가 있습니까 (있는 경우)?


4
누가 해킹에 어떤 형식이 있다고 말합니다
ratchet freak

1
Dang, 네 가지 좋은 답변이 이미 있습니다. 하나만 고르기가 어려울 것입니다.
David Kaczynski

@DavidKaczynski 당신은 또한 실제로 다양한 유형의 소프트웨어를 디자인하는 사람들의 관점을 얻기 위해 정보 보안 에 대해 이것을 고려하는 것을 고려할 수 있습니다 . 보안 요구 사항에 따라 큰 차이가 있습니다 ...
AviD

@AviD 덕분에, 침습적 소프트웨어의 개발 수명주기가 본질적으로 다르지 않다는 사실에 관해 여기서 훌륭한 답변을 얻었습니다. 컴퓨터에 바이러스를 감염 시키거나 백도어를 만들거나 데이터를 얻기 위해 사용자를 모방하는 등 보안이 침해되면 침입 소프트웨어의 목표 나 옵션에 대해 더 자세히 알고 싶습니다.
David Kaczynski

1
@DavidKaczynski 그러나 내 요점은 본질적으로 다르다는 것 입니다. 또는 한 유형을 개발하는 것이 다른 유형과 다릅니다. 예를 들어 Terry의 대답을 예로 들어 바이러스와 0 일, 그리고 Stuxnet과 다시 비교하십시오. 일부는 올바르게 엔지니어링되고 일부는 하룻밤 사이에 처리되며 상황과 요구 사항에 따라 다릅니다. .
AviD

답변:


7

어떤 종류의 코드에 대해 이야기하고 있습니까?

nmap , sqlmap , Nessus 등과 같은 스캐너를 포함하여 해킹 프로세스에 사용되는 많은 보안 도구가 있습니다. 다른 응용 프로그램과 동일한 유형의 소프트웨어 수명주기가 있다고 생각합니다.

반면, 악용 코드가 있습니다. 매우 구체적인 악용 및 상황을 이용하기 위해 작성된 코드입니다. 나는 그들이 생명주기가 전혀 필요하지 않다는 것을 매우 의심합니다. 그러나 많은 익스플로잇 코드는 Metasploit 와 같은 더 큰 익스플로잇 프레임 워크와 통합됩니다 .


@AviD와의 토론 후에 몇 가지 요점을 추가하고 싶습니다.

특정 상황에서는 매우 다릅니다.

제로 데이가 패치되기 전에 일부 익스플로잇 코드가 창을 고려하여 돌진 될 수 있습니다. 다른 이유로 코드가 쇄도 할 수도 있습니다. 범죄 : BEAST 후계자를이기는 방법? 이에 대한 좋은 예입니다. 한 사람이 PoC 코드를 작성하여 자신의 요점을 빠르게 입증했습니다. 이와 같은 코드에는 소프트웨어 수명주기 방법론이 고려되지 않습니다.

stuxnet 또는 FLAME와 같은 무기화 된 멀웨어가 그럴 것입니다. Metasploit와 같은 패키지 소프트웨어.

정답은 ... 의존적입니다.


아직 보안 위반의 목표 나 가능한 방법에 대해 논의하기위한 공식 회의는 없었으므로 어떤 유형의 코드를 개발할 것인지 (또는 기존 소프트웨어 / 기술을 사용하여 목표를 달성 할 것인지) 말할 수 없습니다. 백도어 만들기, 사용자 모방, 컴퓨터 바이러스 감염 등과 같은 손상된 시스템을 이용하기 위해 어떤 형식의 공식 기술이 있는지에 대해 여전히 관심이 있습니다. 질문 유형이 IT 보안에
David Kaczynski

3

제품의 목적에 따라 개발주기가 구체적으로 달라야하는 이유는 알 수 없습니다.

보안을 위반하도록 개발 된 소프트웨어는 다른 유형의 소프트웨어만큼 오래 사용할 수 있으며 동일한 양의 유지 관리 및 작업이 필요합니다.

이러한 소프트웨어의 제작자는 요구에 따라 다른 수명주기를 채택 할 것입니다.


3

지정한 개발 모델은 바로 개발 모델입니다. 엔지니어링 개발을 수행 할 때 요구 사항이 있거나 시스템 아키텍처 또는 구성 요소 디자인을 작성 또는 수정해야 할 때, 제품 및 관련 테스트를 빌드 또는 수정해야 할 때, 고객에게 릴리스 할 때 매우 유용합니다.

이러한 모델을보다 연구 지향적 인 프로젝트에 직접 적용하여 시스템에 대한 질문에 답변하거나 시스템 (또는 특정 경우 시스템의 보안 약점)에 대해 자세히 알아볼 수 있는지 잘 모르겠습니다.

민첩한 방법 및 나선형 모델과 같은 반복 / 증분 모델이 기초를 형성하는 데 가장 유용 할 것으로 생각됩니다. 각 반복에서 코드 작성을 포함하거나 포함하지 않을 수있는 질문에 대답하거나 더 많은 매개 변수를 정의 할 수 있습니다. 아마도 다양한 과학적 연구 방법 이 흥미로운 기초를 제공 할 수도 있습니다.


1

해킹은 최근에 돈을 벌기위한 목표를 가진 전문가들 간의 협력을 위해 싱글 룸 해커들이 "자취를 위해"또는 명성을 얻기 위해 강력한 전문화를 보았습니다. 그 결과 특정 소프트웨어 취약점을 플러그인처럼 쉽게 통합 할 수있는 Blackhole 익스플로잇 키트 와 같은 본격적인 상용 "해킹 키트"가 만들어 졌습니다. 이러한 제품은 다른 소프트웨어 제품과 거의 동일하게 개발되었다고 가정합니다.

제로 데이 익스플로잇을위한 개발 시장 도 분명히 존재 합니다 .


1

Life-Cyle은 코드에 의존하지 않습니다. 오히려 다음과 같은 다른 요소에 의존합니다.

  1. 시각
  2. 예산
  3. 고객의 본질
  4. 제품의 본질

시나리오에서 Agile Life Cyle 방법 이 가장 유용합니다. 개발 중에 고객을 참여시키고 제품의 허용 가능한 품질 매개 변수를 확인해야하기 때문입니다. 애자일 방법론은 대단히 고객의 피드백을 수집 한 후 서서히 작업을 통해 해킹 소프트웨어를 개선하는 데 도움이 될 증분 으로.


조금 주관적인 것 같습니다. 다른 라이프 사이클 방법은 개발 중에 고객을 참여 시키거나 수용 가능한 품질 매개 변수를 검증하지 말 것을 제안합니까? 물론 그것은 애자일 만의 고유 한 것이 아닙니다.
Jay Stevens
당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.