it-gundan.com

클라우드 기반 애플리케이션의 보안을 확인하기 위해 한 달에 4 시간 밖에 걸리지 않습니다. 어떻게 시간을 사용합니까?

Azure에 배포 된 응용 프로그램을 돌보는 일을 맡았습니다. 한 달에 4 시간 씩 배정되었습니다.

나는 본질적 으로이 응용 프로그램을 보호/안전하게 유지하기 위해 반 근무일이 있습니다. 내 시간을 효율적으로 사용하는 것은 무엇입니까?

내가 집중해야합니까 :

  • 모든 구성 요소가 최신 상태인지 확인하십시오.
  • 아무것도 보이지 않는지 확인하기 위해 모든 로그를 확인합니까?
  • 응용 프로그램을 직접 "해킹"하려고합니까?
  • 보안 관점에서 시스템을 자세히 문서화 하시겠습니까?
  • 이/관련 기술의 현재 취약점을 연구하고 있습니까?
  • 백업 등이 제대로 작동하고 있습니까?
  • 재해 복구 물건?
  • "해킹당하는 것"에 대한 정책을 만들고 있습니까?
  • 잘못된 패턴을 찾기 위해 일부 도구로 소스 코드를 감사합니까?

아니면 다른 조합/다른 것?

경험 기반의 답변을 찾고 있는데, 이런 종류의 보안 유지 관리를 수행하는 사람이 바람직합니다. 기존 모범 사례/지침이 있다면 실제로 도움이 될 것입니다.

기술 스택은 다음과 같습니다.

  • SQL Server 데이터베이스 (Azure SQL)
  • C # 웹 API
  • 앵귤러 프론트 엔드

몇 가지 추가 구성 요소가 있지만 기술 관련 답변을 찾고 있지는 않습니다.이 방법에 대한 전략입니다.

44
user230910

Azure 최고 보안 모범 사례로 시작하여 단계별로 Azure 솔루션의 보안을 유지 관리하고 향상시킬 수 있습니다.

  1. azure 구독을 Azure Security Center Standard에 동의하고 업그레이드합니다. 이를 통해 보안 취약점을 찾아 수정하고, 액세스 및 응용 프로그램 제어를 적용하여 악의적 인 활동을 차단하고, 분석을 사용하여 위협을 탐지하고, 공격에 즉시 대응할 수 있습니다.
  2. azure Key Vault에 키, 데이터베이스 자격 증명, API 키 및 인증서를 저장합니다. 또한 솔루션의 키와 비밀이 애플리케이션 소스 코드에 저장되어 있지 않은지 확인하십시오.
  3. application Gateway의 기능인 웹 애플리케이션 방화벽 (WAF)을 설치하고 일반적인 악용 및 취약성으로부터 웹 애플리케이션을 보호합니다.
  4. 관리자 계정에 대한 다단계 검증을 시행합니다.
  5. 가상 하드 디스크 파일을 암호화하십시오.
  6. azure 가상 컴퓨터와 어플라이언스를 Azure 가상 네트워크에 배치하여 다른 네트워크 장치에 연결합니다.
  7. 추가 완화 기능을 제공하는 DDoS Protection Standard로 DDoS를 완화하고 보호합니다.

1-7 준비가되면 다음에 집중하십시오.

  1. azure가 Windows 업데이트를 자동으로 푸시하지 않으므로 VM 업데이트 관리
  2. 패치 관리, 백업, 인시던트 관리, 변경 관리, 비상 사용자 액세스, 권한있는 액세스와 같은 중요한 클라우드 운영을위한 프로세스를 설정해야합니다.
  3. 비밀번호 관리를 활성화하고 적절한 보안 정책을 사용하여 악용을 방지합니다.
  4. 보안 센터 대시 보드를 검토하여 모든 Azure 리소스의 보안 상태에 대한 개요를 유지 관리하여 필요한 경우 권장 사항에 대한 조치를 취할 수 있습니다.

Azure 보안 모범 사례 에 대한 Microsoft 설명서를 읽으십시오.

선적 서류 비치:

Microsoft Azure Security Fundamentals

Microsoft Azure 보안 설명서

27
Refineo

의견에서 언급했듯이, 한 달에 4 시간도 너무 낮다는 데 동의합니다. 더 중요한 것은 이해 관계자가 4 시간이 지나면 많이 기 대해서는 안된다는 것을 이해하게하는 것입니다. 그들이 당신에게 4 시간을 주 었음을 고려할 때, 그들은이 애플리케이션의 보안에 대해 진지한 것처럼 보이지 않습니다.

의견, 답변 및 자신의 생각을 바탕으로 무언가를 모 으려고 노력할 것입니다. 다음은 옵션이 순서대로 표시되는 방식입니다.

  1. 더 많은 시간을 요구하십시오. 응용 프로그램을 4 시간 만에 보호하려는 경우 실제로 유용하지 않다는 것을 이해 시키십시오.
  2. 대행사를 고용하고 4 시간 동안 범위를 정의하고 조치 우선 순위를 정하고 결과를 검토하십시오. (@넬슨)
  3. 위의 작업을 수행 할 수없는 경우 낮은 매달린 과일을 확보하여 4 시간 안에 더 많은 땅을 덮을 것을 권장합니다. 여기 내가 중요하다고 생각하는 것이있다
    • 외부 서비스를 업데이트하도록 설정하십시오. (업데이트를위한 중요한 응용 프로그램을 찾아서 설정하려면 ~ 1 시간). 유용하지 않은 불필요한 포트/서비스를 닫으십시오.
    • MFA 설정 (~ 10 분)-시간이 많지 않기 때문에 빠른 것을 설정하고 일반적인 공격으로부터 자신을 보호하고 경고합니다.
    • 비밀 검토-보안이 안전하게 저장되었는지 확인하고 코드에서 스캐너를 실행하여 하드 코딩 된 비밀을 찾으십시오. (~ 1 시간)
    • 재해 복구-문제가 발생했을 때 보호 기능을 설정하는 데 귀중한 4 시간을 소비하는 것이 좋습니다. 다른 영역에서 백업 생성 (가능한 경우 2)을 시작하십시오. 나는 플랫폼이 이것으로 당신을 도울 것이라고 가정하지만 여전히 시간이 걸릴 것입니다. 이 기간 동안 거친 재해 복구 계획을 작성할 수도 있습니다. (~ 1.5 시간)
    • 마지막으로, 당신이 남은 시간이 얼마든지 문서화하십시오. 사용자가 수행 한 작업, 수행하지 않은 작업 및 다음 번에 누군가가 응용 프로그램을 더욱 안전하게 보호하기 위해 4 시간이 지나면 다음 단계는 어떻게되는지 기록하십시오. (~ 남은)

DoS 보호는 훌륭하고 필수이지만 위의 계획에 맞출 수있는 방법을 찾지 못했으며이를 대체 할 수 없었습니다. 다음 단계에서 문서화해야 할 수도 있습니다.

전반적으로, 4 시간 안에 무언가를 확보하기위한 요청입니다. 그러나 내가 맡으면 위의 단계를 수행합니다. 시스템이 이미 해킹되었는지 여부에 대한 조사가 4h에서 가능한지 확실하지 않습니다. 보안을 위해 4 시간이 주어지면 잠재적 인 위협으로부터 애플리케이션을 보호하는 데 사용하거나 시스템의 공격자를 조사하도록 선택할 수 있습니다 (다른 계획이 필요함). 그 초기 선택은 당신의 것입니다.

46
Izy-

이것은 매우 왼쪽 필드 답변입니다 (일명 실제 보안과 거의 관련이 없음). 나의 조언을 무시하십시오. 이 질문 자체는 상당히 의견에 근거하기 때문에 완전히 다른 종류의 답변을 시도 할 것이라고 생각했습니다.

애플리케이션 보안을 담당했습니다. 이것은 좋은 일입니다!

불행히도, 고용주는 신청서를 보호하는 데 필요한 것을 매우 비현실적으로 기대합니다. 4 시간은이 일을 잘하기에 충분한 시간이 아닙니다. 분명히, 이것은 여전히 ​​한 달에 정확히 0 시간의 전용 보안 시간을 ​​할당하는 대부분의 회사보다 낫습니다. 그러나 현실은 4 시간이 관건이라는 것입니다. 그래서 이것은 당신이하는 일입니다.

  1. 사람들이 여기에서 제공하는 모든 제안으로 실행
  2. 한 달에 4 시간 이상을 보낸다
  3. 고용주가 불행하거나 직접 불순종하는 명령을 피하려면 자신의 시간에 추가 작업을 수행하십시오. 향후 몇 개월을 정기적으로 추가 시간을 보내도록 계획하십시오.
  4. 이번에는 보안 취약점에 대한 코드 검토, SEIM 시스템 설치 및 사용, 로깅 시스템 (ELK 스택이 일반적으로 사용됨) 설치 및 사용, 침입 탐지 시스템, 자동 응용 프로그램 검색 등과 같은 사항에 대해 배우게됩니다! (여기에 전체 목록이 너무 길어서 여가 시간에 몇 개월 동안 모든 것을 배우지 만 최선을 다하십시오!)
  5. 회사는 자유 노동의 혜택으로 끝날 것입니다. 조금 슬프지만 ...
  6. 공식 직무의 일환으로 보안 전문가 (직업을 원한다면 응용 프로그램 보안 엔지니어가 되려는 경우)가 될 수 있도록 교육을 받으십시오. 실제 웹 응용 프로그램을 프로덕션 환경에서 보호하십시오. 사용하다!
  7. 다음 작업을 응용 프로그램 보안 엔지니어로 신청하십시오. 당신은 아마 더 재미있는 일을하는 더 좋은 직업을 찾을 수있을 것이고, 당신은 아마 더 좋은 급여를받을 것입니다!

분명히 나는 ​​일이 어떻게 될지에 대해 보증 할 수는 없지만 효과적으로 당신에게 주어진 것은 경력 변화를 위해 스스로 훈련을 시작할 수있는 권한입니다. 미래에 투자 할 수있는 기회! 보안 전문가는 엔지니어보다 수요가 많으므로 개인적으로이 문제를 해결해야합니다. 특히 그것이 내가 유리하게 작용한다면, 나는 근시안으로 인해 그들에게 줄 자유 노동에 대해 현재 고용주에게 불만을 나타내지 않을 것입니다.

8
Conor Mancone

나는 제안 할 것이다

  1. 위험 평가
  2. 여기에 제공된 목록 (자신과 답변 모두)을 실행 가능한 항목으로 컴파일하십시오.
  3. 결과로 상사에게 돌아가서 더 많은 시간이나 우선 순위를 요청하십시오.
6
Bergi

응용 프로그램이 매우 작다고 가정하고 로그에서 스크립트를 작성하여 장소를 벗어난 항목을 검색합니다 (이상적으로는 4 시간 작업 기간 동안 수행되지 않음). 응용 프로그램에 이러한 노력이 필요한 경우).

  1. 사용되는 내용과 사용 빈도를 알려주는 문서가 중요합니다. 스크립트를 개발할 때 도움이됩니다.

  2. 한 달 분량의 로그를 정리하려면 스크립트가 필요하므로 신중하게 선택하십시오.

  3. 백업을 확인하십시오.

  4. 사용 된 기술과 POC 또는 익스플로잇이 있는지 항상 확인하십시오. 그것에 뛰어 들지 말고 직접 익스플로잇을 시도하십시오. 4 시간 밖에 걸리지 않습니다.

  5. 응용 프로그램이 중요한 경우 추가 지원을 요청하십시오.

이상적으로는 문서와 스크립팅에만 시간이 걸리는 것이 매우 간단해야합니다. 이것은 프로젝트의 가치를 결정하고 4h로 충분하다면 선택해야 할 최선이 아닙니다.

대상을 이해하면 더 잘 보호 할 수 있습니다.

나는 그들이 더 잘 대답 할 것이라고 확신한다.

3
S S

OP, 기여 를 보면 주로 개발자 인 것 같습니다. 그렇다면 개발자는 보안을 강화하기 위해 무엇을 할 수 있습니까?

첫 달에 :

  • 2 시간 : 일부 외부 종속성/컴포넌트/라이브러리 버전을 충돌시키고 앱을 다시 빌드하려고 시도합니다. 실패하면 비 호환성을 문서화하십시오.
  • 2 시간 : CI/CD, 테스트, master 지점 및 프로덕션을 통해 자신의 변경 사항을 적용하는 데 필요한 모든 작업을 수행하십시오. 다른 개발이 있다면 피기 백을 시도하지만이 경우 실제로 유용한 일을 한 흔적을 남기는 데 특별한주의를 기울이십시오 (예 : 일부 PR 작성).

매월 반복하지만 두 줄의 구분선을 조정하십시오. (최종 스플릿은 10 분 대 3 시간 50 분이 될 것입니다.)

이 방법으로 인기있는 구성 요소/라이브러리 중 하나에 CVE (게시 된 취약점)가 있다는 최악의 벡터를 수정할 수 있습니다. 많은 봇들이 취약한 배포마다 인터넷 전체를 검색하기 시작합니다. (정보?) 추측 만해도 써드 파티 구성 요소를 업그레이드하는 경우, 절대 희생자가되지 않고 진정한 필요 상황.

이는 개발자에게는 사소한 일이지만 대부분의 회사에서 개발자는 그러한 무관심한 유지 관리를 피합니다. 일반적인 보안 부서에서는 응용 프로그램을 다시 컴파일하지 않기 때문에 큰 문제가되고 있습니다. "로그 분석"또는 "WAF 구현"또는 "취약점 검색 수행"을위한 노력은 주로 남아있는 모든 가능한 각도에서 그 차이를 해결하기위한 것입니다.


귀하의 질문에서 learning에 집중하는 방법을 묻는 것처럼 보입니다. 나는 지금 여기 그 가정에 도전하고 싶습니다. 한 달에 4 시간을 할당 한 사람은 이미 자기 교육 혜택으로부터 그들의 ​​응용 프로그램을 차단했습니다. 그들에게 무책임한! 이 프로젝트에 전념 한 것을 배우고 구현 한 다음 오류에 대해 배우고 반복하십시오. 매월 4 시간 단위로 수행 할 수 없습니다. 이것이 당신의 결정이 아니기 때문에 이것을 "수정"하지 마십시오! 이 프로젝트 시대에는 이미 잘 알고있는 일을하십시오.

그것은 초보자입니다. 여가 시간에 배우고 구현하려고하는 것은 취향과 사업입니다. 나는이 사이트가 너무 넓다고 생각한다. (보안에 관심이 없다고 결정했을 수도 있기 때문에), 다른 사람들은 어쨌든 많은 리드를 주었다. 다른 프로젝트에서도 유용한 것들을 찾으십시오. 전자 또는 후자의 일부는이 4 시간에 적합하며 프로젝트 상태를 개선하는 데 도움이됩니다.

3
kubanczyk

다른 사람들이 이미 4 시간을 언급 한 것처럼 너무 적은 노력이지만 유용하다고 생각되는 경우 권장 사항을 제공 할 것입니다.

  • Qualys 또는 이와 유사한 취약점 스캐너를 실행하십시오. 이것은 XSS, SQL injection, CSRF 등과 같은 많은 유용한 앱 취약점을 선택합니다.
  • 코드 검토 도구를 실행하여 명백한 나쁜 사례를 식별하십시오 (예 : 사용자 입력을 데이터베이스로 보내기 전에 올바르게 이스케이프하지 않음)
  • OWASP 위협 등을 방지하는 우수한 내부 (호스트 기반) 및 외부 (에지 또는 클라우드 기반) WAF를 설치하십시오. 몇몇 클라우드 기반 WAF는 DDoS 및 일부 무차별 대입 공격으로부터 보호합니다.
  • 트러스트를 통해 인프라를 VLAN 영역으로 격리하고 그 사이의 최소 데이터 흐름을 보장합니다 (예 : Edge, Presentation, Business Logic, Data)
  • 다른 누군가가 전에 언급했지만 매우 중요합니다. 소스 코드와 별도로 권한있는 자격 증명 (API 키, db cred 등)을 저장해야합니다.
  • 모든 인프라를 강화하십시오.
  • 시간이 다소 걸릴 수 있지만 보안 위험에 대한 히트 맵 또는 균형 잡힌 성과 기록표를 작성하여 고위 관계자가 볼 수 있도록하는 것이 좋습니다. 좋은 보안 관행은 위험을 줄일 수 있지만 그 자체로는 은총 알이 없습니다.
3
ChrisFNZ

이러한 작업을 수행 해야하는 시스템 관리자로부터 pro =와 교체 할 수있는 dev VM)를 만드는 것이 좋습니다.

  1. 서버를 백업하십시오.
  2. 데이터베이스를 자체 서버로 분리하십시오. 이들이 필요한 프로덕션 서버/서비스 인 하나의 IP 주소와 만 통신 할 수 있는지 확인하십시오. (한 번 변경하면 매우 중요합니다.)
  3. 주 서버를 복제하고 새 서버에 다른 IP 주소를 제공하십시오.
  4. 필요한 모든 변경, 업데이트, 검토 및 확인을 수행하십시오.
  5. 4 시간 창을 사용할 수있게되면 메인의 서비스를 중단하십시오.
  6. 백업 데이터베이스. 중요한 단계.
  7. 모든 로컬 변경 사항을 기본에서 복제로 푸시하십시오.
  8. 모든 것이 좋아 보이고 제대로 작동하는지 확인하십시오.
  9. 기본 및 복제 된 IP 주소를 교환하십시오.
  10. 복제가 이제 기본입니다.
  11. 모든 것을 다시 백업하십시오. (예, 다른 것을하십시오)
  12. 메인에 서비스를 제공하십시오.
  13. 문제가 발생할 경우 다른 시스템을 백업으로 남겨 두십시오.
1
Blerg

위험을 언급하지 않습니다 : 개인 데이터 등을 저장합니까? 그러나 복잡한 응용 프로그램 인 경우 매우 효율적인 방법 중 하나는 퍼즈 테스트입니다. 로그에서 유효한 요청을 추출하고 일종의 주입 공격에있을 수있는 메타 문자로, 오류 500이 발생할 때마다 취약점을보고합니다.

안타깝게도 일반적인 응답은 "악용 할 수 없습니다", 특히 보안이 취약한 환경에서 특히 그렇습니다. 취약점을 악용으로 전환하는 데는 예산이 4 시간 이상 소요됩니다.

다른 대답 :이 고용주는 언제라도 사업을 중단 할 수 있기 때문에 이력서를 닦는 데 시간을 투자하십시오.

0
chrishmorris