나는 읽었다Unix 보안에 관한 Wikipedia 기사그리고 "서비스" 아래의 첫 번째 문장전에도 말했지사용하지 않는 소프트웨어는 제거해야 합니다. 이유를 알 수 없습니다. 도와주실 수 있나요?
답변1
모든 소프트웨어에는 취약점이 포함되어 있거나 공격에 유용할 수 있습니다. 따라서 모든 소프트웨어는 유용성과 그에 따른 위험(공격 표면) 사이에서 균형을 유지해야 합니다. 소프트웨어를 사용하지 않는다면 그것은 단지 위험일 뿐입니다(사소한 것이라 할지라도).
서비스와 관련하여 다른 고려 사항이 있습니다. 서비스는 일반적으로 무언가를 노출합니다.예를 들어네트워크 포트는 외부에서 액세스할 수 있는 경우 시스템에 대한 진입 수단이 될 수 있습니다. 게다가 서비스는 종종 특정 권한으로 실행되므로(루트로 실행되지 않더라도) 일반 사용자가 액세스할 수 없는 파일에 액세스할 수 있으므로 다단계 공격에 매우 유용합니다.
또 다른 고려 사항은 사용되지 않는 소프트웨어는 유지 관리될 가능성이 낮다는 것입니다. 보안 업데이트를 받는 배포 패키지라면 이에 대해 걱정할 필요가 없습니다. 그러나 로컬에 설치된 소프트웨어는 잊어버릴 수 있습니다. 이는 구성에도 적용됩니다. 배포판에서 유지관리하는 패키지도 안전하지 않게 구성될 수 있으며 사용하지 않으면 무시될 가능성이 더 높습니다.
답변2
소프트웨어란 services
LAN(로컬 네트워크) 또는 WAN(인터넷)에서 들어오는 연결을 수신할 목적으로 로컬 시스템의 포트를 여는 소프트웨어를 의미합니다.
이러한 소프트웨어의 예로는 사용자가 시스템에 연결한 후 특정 정보를 제공할 수 있는 웹 서버, 메일 서버 또는 기타 서비스가 있습니다."services"
일반 사용자(예: 자신)의 관점에서 볼 때 토렌트 클라이언트를 실행 중일 수 있습니다. qbittorrent
이는 인터넷의 다른 사용자가 시스템에 연결할 수 있도록 로컬로 포트를 열 수 있는 이러한 유형의 소프트웨어의 예이기도 합니다. 파일을 공유합니다.
보안 위험은 이러한 소프트웨어에 잠재적인 공격자가 소프트웨어의 목적을 넘어서 시스템에 액세스하기 위해 악용할 수 있는 취약점이 포함될 수 있다는 것입니다.
nmap
공격자가 수행하는 첫 번째 단계 는 시스템의 열린 포트 검색과 같은 도구를 사용 하고 동일한 도구의 방법을 사용하여 사용 중인 소프트웨어 버전과 운영 체제를 이해하는 것입니다.
그런 다음 공격자는 소프트웨어 소스 코드를 검사하여 취약점이 존재하는지 확인하고, 존재한다면 이를 악용하는 코드를 작성할 수 있습니다.
물론, 포트 스캐닝은 시스템을 직접 대상으로 삼는 것이 아니라, NAT
수신 소프트웨어가 액세스할 수 있도록 포트를 열어야 하는 라우터를 대상으로 합니다.
이것이 공격 표면을 줄이고 취약점을 줄이기 위해 이러한 소프트웨어를 업데이트해야 하는 이유입니다.
이제 그러한 소프트웨어가 필요하지 않은 경우(예: 사용되지 않는 경우) 취약점이 나타나지 않고 잠재적인 공격자가 이를 악용할 수 없으므로 해당 소프트웨어를 제거하는 것이 좋습니다.
그러나 일부 서비스(소프트웨어)가 필요합니다. 이 경우 소프트웨어를 업데이트하는 것 외에도 포트 스캔을 감지하고 방지하도록 방화벽을 구성해야 합니다.
시스템에 이러한 포트 개방 소프트웨어가 있는지 확인하려면 다음 명령을 실행하십시오.
sudo ss -tunlp
nftables
아래 링크는 TCP
포트 스캔을 감지하고 중지하기 위한 샘플 방화벽 설정을 보여주는 내 답변입니다.https://unix.stackexchange.com/a/774404/599939
답변3
안전 원칙을 고려하십시오. 에서 인용컴퓨터 보안: 예술과 과학Matt Bishop 작성(Bold Mine):
원칙최소 권한해당 작업을 완료하는 데 필요한 권한만 주체에 부여되어야 함을 나타냅니다.
주체에 액세스 권한이 필요하지 않은 경우 해당 주체는 해당 권한을 가져서는 안 됩니다.
이 원칙에 따르면 합법적인 사용자가 허용된 작업을 수행하는 데 필요하지 않은 소프트웨어는 해당 사용자에게 제공되어서는 안 됩니다. 여기에는 루트 사용자가 포함됩니다. 정의에 따르면 이러한 소프트웨어는 라이선스가 없는 작업을 수행하는 데에만 사용할 수 있으므로 존재해서는 안 됩니다.
원칙메커니즘 경제보안 메커니즘은 가능한 한 단순해야 한다는 점을 지적하십시오.
설계와 구현이 간단하면 오류가 발생할 가능성이 줄어듭니다. 테스트할 구성 요소와 사례가 적기 때문에 검사 및 테스트 프로세스가 덜 복잡합니다. 복잡한 메커니즘은 종종 자신이 작동하는 시스템과 환경에 대해 가정합니다. 이러한 가정이 올바르지 않으면 보안 문제가 발생할 수 있습니다.
이 모든 것은 컴퓨터에 설치된 소프트웨어의 양에 적용됩니다. 소프트웨어가 적다는 것은 해당 소프트웨어에 버그가 발생할 가능성이 적거나 해당 소프트웨어를 구성할 때 오류가 발생할 가능성이 적다는 것을 의미합니다.테스트 머신 보안; 기계 안전은 더 적은 가정에 의존해야 합니다.
즉, 사용하지 않는 소프트웨어를 제거하는 것은 작업량을 줄이는 한 가지 방법입니다.공격 표면. 사용하지 않는 소프트웨어가 권한 있는 사용자만 액세스할 수 있는 경우에도 해당 소프트웨어를 제거하면 도움이 될 수 있습니다.심층적인 방어.
답변4
공격 표면이 손상될 수 있는 또 다른 방법은 더 이상 사용되지 않거나 일시적으로 수정되거나 더 이상 사용되지 않는 코드 개정판을 자동으로 제거하도록 설계된 기능이 작동하지 않는 경우입니다.
내 경우에는 숫자를 데이터베이스로 이식하는 임시 수정된 코드 버전이 잘못 로드되어 며칠 동안 기본값으로 실행되면서 데이터베이스가 손상되었습니다. 다행스럽게도 이것이 공격으로 이어지지는 않았지만 이 수치에 의존했던 수십 명의 엔지니어들은 분노했습니다.
이 경우 해결 방법은 임시 코드 개정판이 원본 코드를 덮어쓰는 것을 방지하는 것입니다.